RFN-Nest_ An end-to-end residual fusion network for infrared and visible images 论文解读
RFN-Nest 2021
研究
图像融合分为三步:特征提取,融合策略,图像重建。
当前端到端的图像融合方法:基于GAN的、还有本文提出的
研究背景:当前设计的融合策略在为特定任务生成融合图像方面是比较困难的。
研究目的:提出一种基于可以学习的融合网络架构(RFN)来实现端到端的图像融合方法(RFN-Nest)。
研究方法:
使用基于残差架构的残差网络结构(RFN)来取代传统融合方法。
使用一种新颖的细节保留损失函数和特征增强损失函数来训练RFN。
使用新颖的两阶段训练策略来完成融合模型的学习。(第一阶段训练自编码器(带有Nest),第二阶段使用损失函数来训练RFN)
主要贡献:
提出了一种可学习的融合网络来取代传统手工设计融合策略,整体网络变成端到端。
设计了两阶段的训练策略。先把自编码器的特征提取和特征重建能力训练好,然后再训练提出的残差融合网络结构RFN。
设计了新的损失函数(包括图像细节损失函数和特征增强损失函数)来训练RFN(可以保持更多的细节和特征)。
本文提出的融合方法在公共数据集和上达到了更好的结果(相比于其他主流的融合方法)。
网络结构
整体结构
网络包含三个方面:编码器、残差融合网络RFN(用来提取某个尺度的融合特征的深层次特征)、解码器(基于Nest连接)。
编码-解码器表现非常强大的特征提取能力和特征重建能力,由于RFN是可学习的结构。因此使用两阶段的训练策略来训练网络。
设计一种新的损失函数L(RFN)来训练提出的RFN网络,可以有效保证可见光图像的细节信息,同时保持红外图像的显著特征。
整体流程:首先将红外图像和可见图像作为输入,编码器可以提取多尺度特征(浅层深层)。然后RFN会对每个尺度提供的特征进行特征融合并对融合特征进行更深的提取。最后多个RFN将不同尺度的融合特征送到解码器中。基于Nest连接的解码器充分利用多尺度结构的融合特征来重建融合图像。
RFN(Residual fusion network)
RFN由6个卷积层组成,输入是编码器某一尺度(m=1,2,3,4)提取的红外图像特征和可见图像特征。输出是这一尺度的融合特征。
经过conv1和conv2将两种特征串联起来然后作为后面的输入(深层RFN保留显著特征)。conv6直接将两种特征融合(浅层RFN保留图像细节)。
解码器(Nest)
左边是负责不同尺度的RFN产生的融合特征。DCB是卷积块,包含两个卷积层。每一行都有短连接(类似密集连接)。不同行通过跨层连接(将解码器中多尺度深层特征连接起来)。
两阶段训练策略
1.训练一个自动编码器网络来重建输入图像。
编码器提取输入图像的多尺度深层特征,基于Nest的解码器根据多尺度深层特征重建输入图像。在自动编码器的过程中,使用L(auto)损失函数。
L(auto) = L(pixel) + &L(ssim)
等式右边分别是像素损失和结构相似性损失。
L(pixel) = || O - I ||F ^2
(输出图像像素 - 输入图像像素) 进行范数操作(|| || F^2)。
L(ssim) = 1 - SSIM(O,I)
SSIM是计算输出图像与输入图像的结构相似性,SSIM值越大,L(ssim)值越小,代表输入输出图像越一致。
2.向自编码器中加入RFN,固定自编码器网络的参数等等,使用合适的损失函数训练RFN。
第一阶段训练的编码器网络去提取两个源图像的多尺度深度特征。一个RFN负责一个尺度的深度特征,并将深度特征融合。
设计一个新的损失函数L(RFN)去训练RFN L(RFN) = & L(detail) + L(feather)
L(detail)表示背景细节保留损失函数,L(feather)表示目标特征增强损失函数。
大多数背景信息来自可见光图像。因此L(detail)是针对输出图像和可见光图像。
L(detail)= 1 - SSIM(O, I(vi)) I(vi)表示输入的可见光图像
L(feather)可以去约束融合的深度特征来保留红外图像显著结构。 W(vi) 和W(ir)可以控制融合特征与可见光特征和红外特征的相关影响。通过调节W(vi) 和W(ir)来控制融合信息中的显著特征。M(这里是4)是不同尺度的数量。W1是一个向量,可以平衡损失幅度。
首先详细介绍训练阶段和测试阶段的实验设置之后,进行消融实验,对最后与其他方法进行定性比较。
训练阶段和测试阶段,都是将数据集中的图像转到灰度图像并reshape大小后,进行实验。使用6个指标进行方法评估,熵(En)、标准偏差(SD)、交互信息(MI)、融合伪影测量(Nabf)、差异相关性总和(SCD)、多尺度结构相似性(MS-SSIM)。
消融实验
L(detail)和 L(feature) 的消融实验:通过设置&=0 或者& = 700 来控制L(detail)是否存在,对实验结果的影响。
通过实验发现 & = 700时候 Wir = 6.0 和 Wvi = 3.0 时候实验效果比较好。
&取值的消融实验:由上一条可知& != 0 实验效果更好,这个实验来确定&具体取哪些值会更好。通过实验发现 & = 700达到最好的实验效果。
两阶段训练策略的消融实验
本文采取的是两阶段的训练策略,通过消融实验来说明为什么采取两阶段的训练策略。
一阶段的训练意味着 编码器、解码器、RFN同时训练。结构如下图所示
两阶段训练是先训练编码器-解码器结构、再固定自编码器来训练RFN结构。如下图所示。
一阶段与两阶段除训练步骤不同以外,采取所有相同的设置进行比较。
通过结果可以看到两阶段训练达到的实验效果比一阶段实验效果好。原因如下:
1.编码器和解码器在使用一阶段训练策略进行设计时可能不具有理想的特征提取和重建能力。(自我感觉,应该是自编码器与RFN一块训练可能不具有良好特征提取和重建能力,要不两阶段训练策略的第一阶段为什么是训练自编码器来获取特征提取和重建能力)
2.更重要的是,由于RFN是我们融合网络中的关键,因此应仔细训练它以获得良好的融合性能。所以采取两阶段训练。
Nest connection的消融实验
本文采用的是带有Nest的解码器,通过对Nest connection的消融实验来对比有无Nest的实验效果。除了有无Nest其它一切都相同。
由下表可知,带有Nest的实验效果比不带Nest的实验效果更好。
融合策略的消融实验
本文采用的是基于RFN(基于残差的可学习的融合网络)融合策略,通过和其他手工设计的融合策略进行比较。
“add”: 提取的源特征进行相加得到融合特征。 (红外源特征与可见光图像特征 ,下面也是 )
"max": 源特征中每个元素中选择最大的值作为融合特征。
"L1-norm": 根据L1范数计算权重,源图像特征*权重 相加 得到融合特征。
"L*-norm": 计算深度特征的全局池化操作中涉及的矩阵的奇异值之和,以获得融合权值 。
“SCA”: 使用的空间/通道注意力融合策略。用 1范数进行空间注意力融合,并使用平均池计算通道注意力。
各种融合策略的公式
实验结果如下:
与其他方法的比较
跟其他方法相比展示比较好的结果。
物体跟踪实验
RGBD数据集: RGB图像 与 深度图像
RGBT数据集:RGB图像 与 红外图像
将RFN用到物体追踪的算法上面,并且达到了不错的效果。进一步证明了我们提出来的RFN-Nest的应用广泛。
本阶段没看太懂。
RFN-Nest_ An end-to-end residual fusion network for infrared and visible images 论文解读的更多相关文章
- Paper | Residual Dense Network for Image Super-Resolution
目录 Residual dense block & network 和DenseNet的不同 摘要和结论 发表在2018年CVPR. 摘要和结论都在强调方法的优势.我们还是先从RDN的结构看起 ...
- Paper | Dynamic Residual Dense Network for Image Denoising
目录 1. 故事 2. 动机 3. 做法 3.1 DRDB 3.2 训练方法 4. 实验 发表于2019 Sensors.这篇文章的思想可能来源于2018 ECCV的SkipNet[11]. 没开源, ...
- Paper Read: Robust Deep Multi-modal Learning Based on Gated Information Fusion Network
Robust Deep Multi-modal Learning Based on Gated Information Fusion Network 2018-07-27 14:25:26 Paper ...
- Paper | Residual Attention Network for Image Classification
目录 1. 相关工作 2. Residual Attention Network 2.1 Attention残差学习 2.2 自上而下和自下而上 2.3 正则化Attention 最近看了些关于att ...
- Residual Attention Network for Image Classification(CVPR 2017)详解
一.Residual Attention Network 简介 这是CVPR2017的一篇paper,是商汤.清华.香港中文和北邮合作的文章.它在图像分类问题上,首次成功将极深卷积神经网络与人类视觉注 ...
- 《Hyperspectral Image Classification With Deep Feature Fusion Network》论文笔记
论文题目<Hyperspectral Image Classification With Deep Feature Fusion Network> 论文作者:Weiwei Song, Sh ...
- 【网络结构】Deep Residual Learning for Image Recognition(ResNet) 论文解析
目录 0. 论文链接 1. 概述 2. 残差学习 3. Identity Mapping by shortcuts 4. Network Architectures 5. 训练细节 6. 实验 @ 0 ...
- 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification
Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...
- 论文解读(DFCN)《Deep Fusion Clustering Network》
Paper information Titile:Deep Fusion Clustering Network Authors:Wenxuan Tu, Sihang Zhou, Xinwang Liu ...
- ICCV 2017论文分析(文本分析)标题词频分析 这算不算大数据 第一步:数据清洗(删除作者和无用的页码)
IEEE International Conference on Computer Vision, ICCV 2017, Venice, Italy, October 22-29, 2017. IEE ...
随机推荐
- Shell 脚本实践指南
代码风格规范 开头有"蛇棒" 所谓shebang其实就是在很多脚本的第一行出现的以#!开头的注释,他指明了当我们没有指定解释器的时候默认的解释器,一般可能是下面这样: #!/bin ...
- 【ceph】理解Ceph的三种存储接口:块设备、文件系统、对象存储
文章转载自:https://blog.51cto.com/liangchaoxi/4049104
- 第五章:Admin管理后台 - 2:自定义Admin actions
通常情况下,admin的工作模式是"选中目标,然后修改目标",但在同时修改大量目标的时候,这种模式就变得重复.繁琐. 为此,admin提供了自定义功能函数actions的手段,可以 ...
- P3261 [JLOI2015]城池攻占 (左偏树+标记下传)
左偏树还是满足堆的性质,节点距离就是离最近的外节点(无左或者右儿子 或者二者都没有)的距离,左偏性质就是一个节点左儿子的距离不小于右儿子,由此得:节点距离等于右儿子的距离+1. 本题就是对于每个节点 ...
- Vue学习之--------深入理解Vuex之getters、mapState、mapGetters(2022/9/3)
这一篇博客的内容是在上一篇博客的基础上进行:深入理解Vuex.原理详解.实战应用 @ 目录 1.getters的使用 1.1 概念 1.2 用法 1.3 如何读取数据 2.getters在项目中的实际 ...
- java连接数据库加载驱动到java项目
java连接数据库 package com.cook.zheng; import java.sql.Connection; import java.sql.DriverManager; public ...
- 2022年整理最详细的java面试题、掌握这一套八股文、面试基础不成问题[吐血整理、纯手撸]
这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.面向对象 2.JDK.JRE.JVM区别和联系 3.==和equals 4.final 5.String .Strin ...
- springboot+thymeleaf中前台页面展示中、将不同的数字替换成不同的字符串。使用条件运算符
主要用到的知识就是thyme leaf中的条件运算符 表达式:(condition)?:then:else 当条件condition成立时返回then.否则返回else 具体代码:<td th: ...
- python如何引入外部其他py文件
新手常常会遇到这种问题 解决方法如下: 比如我在C:\Users\123\Desktop有一个mmm.py文件,内容为: def abc(): print('hello,world') 当我写程序想引 ...
- 还在使用@Autowrired注入?不妨试试@RequiredArgsConstructor
一.前言 小编最近在项目里看到有的同事大神用到了Lombok中的一个@RequiredArgsConstructor,带着好奇发现这个东西就是简化了一些@Autowired注解,想想如果一个Servi ...