【读论文】RFN-Nest: An end-to-end residual fusion network for infrared and visible images

论文:https://arxiv.org/abs/2103.04286
代码:https://github.com/hli1221/imagefusion-rfn-nest

如有侵权请联系博主

介绍

关键词

  • 可学习的融合网络
  • 两阶段训练
  • 新颖的有效的损失函数

简单介绍

一篇2021年发表的论文,论文作者是我们熟悉的DenseFuse的作者。

论文提出了一种基于残差架构的残差融合网络,称为RFN,在读过DenseNet之后我们知道,在DenseNet采用的融合策略是手动设计的,该文章中则使用RFN作为融合器,这里的RFN是通过学习得到的。

论文中提到的网络由三部分组成,分别是编码器,解码器和RFN(特征融合你网络),不同于DenseFuse,这里编码器提取的特征包括4个尺度的特征,然后四个尺度的特征送入到RFN中进行特征融合,再交由解码器进行解码,从而得到我们想要的融合图像。

网络结构

在这里插入图片描述
论文中提到的方法的网络结构如上图所示,相对于DenseFuse来说复杂一些,接下来我们将上面的网络分成三部分去聊。

RFN 融合网络

在这里插入图片描述
如上图所示,是一个RFN的结构图,输入是多尺度提取的特征,ir是红外图像的特征,vi是可视图像的特征。两个特征分别作为conv1和conv2的输入,同时也作为conv6的输入,conv1和conv2的输出连接起来又作为conv3的输入。

这里conv6的输出和conv5的输出被处理之后才作为融合网络生成的特征,这里可以看到conv6的输出作为最后结果的输入,有点相似,是不是很像ResNet,好像就理解残差在那里。
在这里插入图片描述
最终产生的输出作为解码器的输入,接下来我们依次来讲。

编码器

在这里插入图片描述

解码器的结构如上图所示,可以将解码器网络结构分为四块,每一块都由两层,然后后接一个最大池化。

网络的输入是可视图像和红外图像,图中右侧还有八个箭头,每一个箭头都代表一个输出,代表红外图像提取的特征或则可视图像提取的特征。这里就可以结合一下前面的RFN了,RFN中的vi和ir输入也就是这个提取的特征。如下图
在这里插入图片描述

现在我们大概把解码器和融合网络联系在一起了。

那么为什么会有八个输出呢,这里就是论文中提到的多尺度特征提取。

通过卷积和最大池化之后,图像的大小已经变化了,最下面的图像尺寸越小。大尺寸的图片用于提取细节特征,小尺寸的图片用于提取总体特征,总共分为4个尺度用来提取特征,这些特征输入到RFN中,得到融合后的特征,输入到解码器中用于重建图像。

解码器

在这里插入图片描述
解码器的结构如上图所示

这里比较有趣的就是每一行,一行一行的看,你会发现这有点像DenseNet。尺度3提取的融合特征和尺度4提取的融合特征经过DCB20一并处理得到输出,然后该输出再与其他特征处理输出的一块处理,这样一直进行,直到最后的输出,就产生了融合图像。

看到这里,你可能觉得有点迷,卷积之后不是下采样嘛,全篇没有一个上采样,咋能恢复到与原图同大小的图片呢?

这里不是很明显的黑箭头就是上采样,这里就解释了咋回去的。

现在我们只需要对以上三个部分进行组装,就得到最终的结构了。
在这里插入图片描述

训练

这里采用两阶段训练的方式进行训练。

训练自动编码器网络

首先将RFN提取出来,先训练编码器和解码器,训练的网络结构如下图所示
在这里插入图片描述

训练上面的网络的目的就是使得编码器有更好提取特征的能力,解码器有更好的解码能力,也就是生成图像的能力。

注意,这里input和out都是单张图片

损失函数

在这里插入图片描述
Lpixel代表像素损失,Lssim代表结构损失
在这里插入图片描述
这里的F的公式如下,Lpixel就是将output和input做一个差,根据差值来不断优化网络从而使得生成的图像与原图像越来越像。
在这里插入图片描述
在这里插入图片描述
SSIM即计算Output与Input的结构相似性。具体计算内容可以参考SSIM公式:结构相似性计算原理,基于SSIM的图像质量评价

训练RFN

训练RFN是在编码器和解码器训练完成之后,此时我们的目的就是编码器和解码器固定之后,训练RFN从而取得一个最好的效果。

训练时的结构就是上面我们提到的完整结构了,这里就不贴图了。

损失函数

在这里插入图片描述
在这里插入图片描述
在我的理解,这里Ldetail就是为了保证图像有可视图像中更多的细节和结构信息,但是在可视图像往往不能完全展示出目标的全部结构,这就需要我们再在红外图像中提取出我们想要的信息。
在这里插入图片描述
例如上面这两张图像,我们可以看到人身上衣服的一些细节,但是我们不能完整找到身体的轮廓,这就需要将二者进行融合,从而生成信息较为全面的图像。这就引入下面的损失函数,也就是总损失函数的第二项。
在这里插入图片描述

这里的M是多尺度的数量,w是参数,w1是用来调整不同尺度特征的信息权重的参数,wvi和wir分别是调整可视图像和红外图像特征信息的权重的参数。在Lfeature中我们主要要保留的是红外的特征,所以wvi往往会比wir要小。

这时候看一下损失函数,直观来看,该损失函数就是希望融合的特征和有权重的可视特征和红外特征的和尽可能相同,这是为什么呢?

我来讲一下我自己的理解,这里就需要我们回顾一下训练自动编码器的时候,在那里的时候我们把RFN结构去掉了,这就代表提取的特征直接作为解码器的输入进行重建图像,而当加入RFN之后,重建的图像就是以融合特征为输入,这时假如融合特征与红外特征相似,是不是就可以说明解码器生成的图像就应与红外图像尽可能的相似,也就达到了我们的目标,尽可能保留红外图像中的信息。

那么wvi可以取0吗?是不是wvi等于0时就是最好呢

并不是,因为Ldetail和Lfeature在Wvi为0时是冲突的,这会导致网络无法收敛。那么为什么会冲突呢,当Wvi为0时,即我们希望融合的特征与红外特征尽可能相似,这样解码器生成的图像就会与红外图像相似,这就与前面Ldetai损失函数希望生成图像有更多可视图像中的细节相悖。

实验

经过了众多实验,最终确定了wir=6.0,wvi=3.0,a=700

同时也证实了两阶段训练相对于一阶段训练的优越性以及nest网络的必要性,具体实验内容可在原文中阅读,这里就不赘述了。

个人总结

相比于DenseFuse来说,无论是编码器,解码器还是融合策略都要复杂了许多。

  • 编码器方面不再采用单尺度的特征提取,而是采用多尺度的特征提取
  • 解码器方面不再是简单的多层cnn的堆积,而是采用nest连接的结构,将多尺度的特征进行处理从而生成融合图像
  • 融合策略不再采用简单的人工设计的方式,而是使用神经网络来融合特征信息
  • 损失函数方面提出了新颖的损失函数,从而保证RFN有很好的特征融合效果

参考

[1] RFN-Nest: An end-to-end residual fusion network for infrared and visible images

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年3月4日
下一篇 2023年3月4日

相关推荐