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

  • 介绍
    • 关键词
    • 简单介绍
  • 网络结构
    • RFN 融合网络
    • 编码器
    • 解码器
  • 训练
    • 训练自动编码器网络
      • 损失函数
    • 训练RFN
      • 损失函数
  • 实验
  • 个人总结
  • 参考

论文: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

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

  1. 论文阅读 [TPAMI-2022] U2Fusion: A Unified Unsupervised Image Fusion Network

    论文阅读 [TPAMI-2022] U2Fusion: A Unified Unsupervised Image Fusion Network 论文搜索(studyai.com) 搜索论文: U2Fu ...

  2. 【读论文】DIVFusion: Darkness-free infrared and visible image fusion

    [读论文]DIVFusion: Darkness-free infrared and visible image fusion 介绍 网络结构 SIDNet 损失函数 TCEFNet GRM(梯度保持 ...

  3. 【读论文】Self-supervised feature adaption for infrared and visible image fusion

    Self-supervised feature adaption for infrared and visible image fusion 介绍 小知识 常用的两类用于图像融合的神经网络架构 红外融 ...

  4. 我的读论文经验总结!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:胡来,Datawhale成员 从入门到精通一个领域,绕不开文献阅读 ...

  5. 记录理解程度、一篇至少读3遍,吴恩达建议这样读论文!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale推荐 作者:Richmond Alake,来源:机器之心 在科研领域中,读论文 ...

  6. 沈向洋:读论文的三个层次

    Datawhale干货 来源:AI科技评论,沈向洋博士 作者 | 蒋宝尚 编辑  | 丛  末 5月14日,沈向洋博士在全球创新学院(GIX)课程上曾做了一场线上公开课<You are how ...

  7. 如何高效读论文?剑桥CS教授亲授“三遍论”:论文最多读三遍,有的放矢,步步深入...

    鱼羊 编译整理 量子位 报道 | 公众号 QbitAI 嗑盐之始,在于读论文. 一方面,把握最前沿的研究动态,激发自身研究灵感.另一方面,不做好文献调研,自己的绝妙想法变成了重复造轮子,这种体验可不太 ...

  8. 读论文七步走!CV老司机万字长文:一篇论文需要读4遍

      视学算法报道   编辑:LRS [新智元导读]读论文对于AI新手和工程师来说可能是一件比较难的事.最近一位从业超5年的CV老司机发布了一篇万字长文,讲述了读论文七步法,从找论文到总结,每篇论文由浅 ...

  9. 覆盖近2亿篇论文还免费!沈向洋旗下团队「读论文神器」登B站热搜

      视学算法报道   编辑:小咸鱼 好困 [新智元导读]无意中发现B站上有个叫ReadPaper的在线论文阅读笔记神器冲上了热榜!ReadPaper由沈向洋博士创办的IDEA旗下团队研发,其收录了近2 ...

最新文章

  1. P1603 斯诺登的密码
  2. 当前版本与卡刷包android_Z2 Android 6.0.1卡刷包 23.5.0.486发布,快刷起来!(来自XDA)...
  3. LeetCode Hot100 ---- 滑动窗口专题
  4. matlab bwdist
  5. 机房收费系统合作版(一):开始团队合作之旅
  6. java-maven的配置
  7. 物联网应用技术的就业前景和现状
  8. 学好UI设计必备软件
  9. Keil:Undefined symbol ......(referred from......)
  10. Eclipse 更换皮肤
  11. 世界由物质、能量、信息
  12. MMO游戏服务器从零开发(架构篇)- 网络部分
  13. 【STL容器讲解—deque】
  14. 异构数据源之间交换数据的工具
  15. html打印预览 分页,有分页功能的WEB打印_js
  16. 当int类型超出了[-2147483648,2147483647]会发生什么?
  17. 佳能Canon PIXMA MG6851 一体机驱动
  18. 如何看待清华段子手“毕导”毕啸天至今没有发表过高质量论文?
  19. 【UNIAPP】APP快速免费生成一键发布页面
  20. 腾讯公司副总裁王巨宏:腾讯互联网+教育做好连接和内容两件事

热门文章

  1. java Object 重写toString方法
  2. 随性而为_2015/08/21 周五 晴
  3. 汉子转拼音和拼音首字母
  4. 分贝,功率,功率谱,功率谱密度,信噪比
  5. [历朝通俗演义-蔡东藩-前汉]第005回 信佞臣尽毁诗书 筑阿房大兴土木
  6. ad7714 c语言程序,基于AD7714的高精度数字化称重传感器设计.pdf
  7. 微信推文无缝滚动是这样炼成的
  8. php 两个时间戳相隔小时数,php 计算两个时间戳相隔的时间实例
  9. int、dev、uat、prod、pp、sit、ides、qas、pet、sim、zha环境是什么
  10. 做IT精英还是IT民工?