红外与可见光图像融合论文阅读(一)

2023-11-10 10:20

本文主要是介绍红外与可见光图像融合论文阅读(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近研究红外与可见光图像融合,看到一篇文章RFN-Nest: An end-to-end residual fusion network for infrared and visible images,这里记录一下。

Abstract

本文提出一种残差融合网络residual fusion network (RFN),用于替换传统的融合方法,同时提出两种损失函数用于训练RFN:细节保留损失函数和特征增强损失函数。模型训练使用了两阶段训练方法,第一阶段训练一个基于nest connection (Nest)的自编码器,第二阶段使用提出的损失函数训练模型。在目前公开数据集上本模型在主观和客观评价标准上都达到了SOTA。代码:https://github.com/hli1221/imagefusion-rfn-nest。

Introduction

图像融合主要有三个关键步骤:特征提取、融合策略和图像重建,目前方法分为传统方法和深度学习方法。传统方法中multi-scale transform在多尺度特征提取中使用广泛,并使用适当地融合策略将不同特征通道进行组合,最终融合特征使用inverse multiscale transform重建为原始分辨率的融合图像,但是这类方法高度依赖于特征提取方法。

Sparse represention (SR)和low rank represention (LRR)法也被用于提取显著性特征,这类方法中滑窗被用于将原始图像分解为patch,然后将这些patch重新组建为一个矩阵,每列元素是patch一维化后的向量,最后将这个矩阵送入SR或LRR模型中计算系数(也就是特征)。通过这种方法就将图像的融合转化为系数融合,融合系数通过适当的融合策略产生,在SR或LRR的框架下重建图像。

传统方法的缺陷有:1.融合效果高度依赖人工设计的特征,很难为所有融合任务设计出通用特征提取方法;2.不同的融合策略要求不同的特征;3.基于SR和LRR方法很耗时;4.基于SR和LRR的方法较难处理复杂图像。

深度学习方法则一定程度上克服了上述问题,根据融合的三个关键步骤段分为三类方法:深度特征提取、融合策略和端对端训练。深度特征提取用于提取深度特征表示,融合策略可以通过深度学习模型来设计,也有方法使用CNN来生成原始图像的decision map,可以对融合后的图像进行适当后处理。为了避免人工设计方法,一些端对端融合模型也被提出了,如FusionGAN、DDcGAN等,利用对抗学习避免了人工设计方法。但上述方法对细节保留不好,为了保留可见光图像更多细节引入了基于nest connection的自编码器模型NestFuse,在细节保留上不错,但是融合策略仍是不可学习的。

为了克服上述问题,本文也就提出了RPN-Nest模型,主要贡献点为:1.提出残差融合网络进行可学习的融合模块,代替人工设计的融合策略;2.使用两阶段训练策略,特征提取和特征重建能力分别是编码器和解码器的主要功能,先将编码网络和解码网络按照自编码器进行训练,再固定编码器和解码器,用适当的损失函数来训练RFN网络;3.设立了两种损失函数,分别用于保留细节和特征增强。

先前的工作主要分为非端对端模型和端对端模型。早期的非端对端模型有基于预训练的VGG19模型,先将源图像分解为显著性部分(纹理和边缘)和基础部分(轮廓和亮度),然后用VGG19从显著性部分提取多层次深度特征,每个层次根据深度特征计算decision map并生成候选融合显著部分,最后的融合图像使用适当的融合策略组合融合基础部分和融合显著性部分进行重建。也有使用ResNet50进行深度特征提取的,decision map通过zerophase component analysis(ZCA) 和 l1-norm 得到。此外还有PCANet这类模型。有一些方法把特征提取和融合用同一个网络完成,直接从输入图像得到decision map。也有深度编码器-解码器结构模型,一般为编码器-融合-解码器结构,编码器往往用于提取模态间互补信息。较新的模型有NestFuse,该模型保护了可见光图像更多细节信息,同时加强了红外图像的显著性信息,还添加了一个空间/通道注意力模块融合多尺度深度特征。不过上述非端对端方法都较难设计一个有效地人工设计融合策略。端对端模型消除了人工设计特征和融合策略的随意性,很多使用GAN来进行。FusionGAN的生成器计算融合图像,判别器约束融合图像使其可以包含更多可见光图像的细节信息,损失函数包含内容损失和判别器损失,不过该模型对细节的保留不是很好。FusionGANv2加深了生成器和判别器网络,使该模型可以保留更多细节,也提出新的损失函数:细节损失和目标边缘增强损失,这样一来融合图像重建了更多场景信息,锐化了目标边缘。IFCNN使用两层卷积层提取深度特征,元素级融合规则(元素最大值,元素总和,元素平均值)融合卷积层得到的深度特征,但是该模型结构过于简单,不能提取很深层的特征,融合策略也不是最有的。

本文模型

本文提出的RFN-Nest模型是端对端模型,包含的结构主要有编码器、残差融合网络(RFN)和解码器,如下图,卷积层上的数字分别表示:卷积核尺寸、输入通道数、输出通道数。

编码器

编码器有最大池化层将原始图像下采样为多尺度,RFN将每个尺度的多模态深度特征进行融合。浅层特征保护细节信息,深层特征传递语义信息(对重建显著性特征很重要)。最后融合图像通过基于nest connection的解码层网络进行重建。网络的输入层分别为红外图像和可见光图像,输出即为融合图像,4个RFN是四个尺度上的融合网络,4个网络模型结构相同,权重不同。

残差融合网络Residual fusion network (RFN)

RFN基于残差结构,如下图。

该结构的输入即为前面编码器提取得到的深度特征,每一个尺度都有对应的深度特征。Conv1-6是6个卷积层,可以看到Conv1和Conv2的输出会进行拼接,作为Conv3的输入,Conv6则是用于该模块第一个用于融合的层。使用该结构可以通过我们提出的训练策略进行优化,最后的输出送入解码层。

解码器

解码器的结构如下图,以nest connection为基础而来的。

解码器的输入是所有RFN的输出特征,DCB即为解码器卷积层模块decoder convolutional block,每个这样的模块包含2个卷积层。每列都有short connection连接每个卷积模块,cross-layer links则连接了不同尺度的深度特征。解码器最终的输出就是重建后的图像了。

两步训练策略

模型中编码器和解码器在分别用于特征提取和重建都很重要,所以需要两步训练策略保证每个步骤都能达到预期效果。

第一步先将编码器-解码器结构作为自编码器重建输入图像进行训练,第二步训练多个RFN网络进行多尺度深度特征融合。自编码器的训练如下图。

解码器有了cross-layer connections后可以充分利用多尺度深度特征进行图像重建了。该阶段使用的损失函数如下

右边两项分别代表像素损失、输入输出图像之间的结构相似性损失(SSIM),λ是平衡这两个损失的超参数。像素损失的计算方法如下

F为Frobenius norm,上面的损失函数约束了重建图像在像素级别与输入图像更相似。

SSIM 损失定义如下

SSIM函数是结构相似性,可以量化两个图像之间的结构相似性。

第二步是训练RFN,用于学习融合策略。这一步将编码器-解码器结构固定,再用适当的损失函数来训练RFN,过程如下。

因为编码器和解码器都固定了,所以提取的深度特征和重建图像都是固定的,只需要对中间的RFN进行训练即可,提出了新的损失函数,定义为

右边两项分别是背景细节保护损失函数和目标特征增强损失函数,α用于平衡这两个损失函数。在红外与可将光图像融合中,由于红外图像大多分辨率较差,所以细节信息可见光图像较多。细节保护损失函数也将从可将光图像中保护细节和结构特征作为目标,定义如下

红外图像一般包含的显著性目标特征更多,所以目标特征增强损失函数用于融合特征来保护显著性结构,定义如下

上式M也就是多尺度深度特征的数量,本文是4。因为不同尺度特征图大小不同,也需要向量来平衡不同尺度的损失。

分别控制融合特征中可见光和红外图像的占比。因为可见光信息被背景细节保护损失函数约束,同时目标特征增强损失函数保护了红外图像的显著性信息,所以一般会大一些。

实验部分

第一步用COCO数据集进行自编码器的训练,选择8万张图作为训练集,对这些图进行灰度化并重采样为256×256。λ设置为100,batch设置为4,epoch为2,学习率为10-4。第二步训练用KAIST数据集训练RFN模块,选择了八万张图像可见光与红外图像对进行训练,也对这些图进行灰度化并重采样为256×256,batch设置为4,epoch为2,学习率为10-4

测试数据来自于TNO和VOT2020-RGBT,TNO有21张图片对,VOT2020有40个图片对。用6种指标进行评估,即entropy(𝐸𝑛); standard deviation (𝑆𝐷);mutual information(𝑀𝐼); modified fusion artifacts measure (𝑁𝑎𝑏𝑓 ); the sum of the correlations of differences(𝑆𝐶𝐷); the multi-scale structural similarity (MS-SSIM)。

消融实验:

1.主要针对背景细节保护损失函数和目标特征增强损失函数,也有可见光和红外特征的相对权重对融合性能的影响。因为节保护损失和特征增强损失差异巨大,所以α也需要设置的较大才可,同时也因为细节保护损失保护可见光的细节,最终α的范围设置为0和700进行分析。目标特征增强损失函数中研究带来的影响,范围设置为0.5至6.0,下图α=0时这两个参数不同的融合结果,只使用目标特征增强损失函数训练。

取参数较为平衡的几组结果(黄色和粉色框)进行评价,结果如下表。

α为700时主要是背景细节保护损失函数起作用了,这样就需要提高wir的大小来保护更多红外显著性信息,结果对应于上图的红框。最终两个α值下的融合结果如下图。

上图右半部分的融合结果保留了更多细节信息,红外显著性特征也保留着。左半部分的细节信息则保留的较少。指标计算均在上表中。上面结果显示了如果不使用细节保护损失,融合结果的细节信息不好。最佳结果应该是𝛼 = 700,  = 6.0 和  = 3.0 这组。因此后续实验也使用这组参数进行。

2.α的影响:上面的实验结果可以看出α在不为0的情况下结果表现较好,因此这部分讨论α取值对实验的影响。首先将 = 6.0 和  = 3.0 这两个参数固定,然后的取值设置为{1, 10, 100, 1000} ,最优α值的搜索范围设置为{10, 100, 200, 500, 700, 1000} ,结果如下图和下表,可以看出α设置为最大的1000时红外图像的显著性信息基本看不见了,只有500和700时才能较好同时保留细节信息和显著性信息。最终的指标显示α=700时最优,因此后续实验将α固定为700。

3.训练策略:该部分讨论两阶段训练的有效性。一阶段训练法是同时训练编码器-解码器-RFN,使用前述最优参数进行训练,得到的结果如下图。

可以看出可见光细节在一阶段训练法中被大大增强,红外显著性信息基本丢失,相反右边的两阶段训练就对这两种信息都保留的很好。作者认为这样的原因是编码器-解码器的特征提取和重建能力不足,顺便对他提出的RFN称赞不绝。

4.解码器nest connection:本阶段讨论解码器中nest connection带来的影响。下图是不包含nest connection的解码器结构,用上面介绍过的参数来训练这个不带nest connection的解码器。

最终训练得到的模型结果如下表,non-nest即上述没有nest connection的解码器,粗体黑、红、蓝分别代表第一、二、三好的结果。指标显示具有nest connection的解码器可以保护更多特征信息,产生的融合图像也更平滑。

5.融合策略:本部分探究提出的RFN在融合策略方面的优势,选择了 𝑎𝑑𝑑、𝑚𝑎𝑥、𝑙1-norm、𝑙∗-norm、SCA这几种先前的融合方法作为对比,这四种方式的计算方法如下。SCA是NestFuse模型中曾经用过的方法。

这几个方法的结果如下图。基于RFN的模型保护了可见光更多的细节信息(蓝框)和更好的人造光源(红框)。最终TNO数据集中21个图像对的结果在上面的表中,基于RFN的方法在其中5个指标都是最优的,表明融合策略可学习时细节信息将被增强(En和SD)。

6.与SOTA模型的对比:选取TNO的21个图像对作为测试集和其他11个模型进行对比,指标计算见下表,两图是其中两个图片对的测试结果对比。

上图结果可以看出,DCHWT包含噪声较多。GTF和FusionGAN的融合结果更平滑,细节信息更多,但是直观看更像红外图,尤其是背景部分。ConvSR、VggML、DenseFuse、IFCNN、NestFuse、PMGI、U2Fusion都保留了更多的可见光信息,对红外显著性信息削弱的较多。DDcGAN的结果噪声较多,并且红外目标被模糊。

作者又对另外40个图片对进行了测试,得到了下表的对比结果。

上面实验显示很多方法都不能有效处理天空中的云这种纹理信息,融合结果不自然。注意和之前的方法一样DDcGAN还是引入和过多噪声并且模糊了红外目标。

此外作者对RGBT追踪进行了实验,这里不再介绍,有兴趣的可以研究原文。

这篇关于红外与可见光图像融合论文阅读(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/382050

相关文章

ssh在本地虚拟机中的应用——解决虚拟机中编写和阅读代码不方便问题的一个小技巧

虚拟机中编程小技巧分享——ssh的使用 事情的起因是这样的:前几天一位工程师过来我这边,他看到我在主机和虚拟机运行了两个vscode环境,不经意间提了句:“这么艰苦的环境写代码啊”。 后来我一想:确实。 我长时间以来都是直接在虚拟机里写的代码,但是毕竟是虚拟机嘛,有时候编辑器没那么流畅,在文件比较多的时候跳转很麻烦,容易卡住。因此,我当晚简单思考了一下,想到了一个可行的解决方法——即用ssh

康奈尔大学之论文审稿模型Reviewer2及我司七月对其的实现(含PeerRead)

前言 自从我司于23年7月开始涉足论文审稿领域之后「截止到24年6月份,我司的七月论文审稿GPT已经迭代到了第五版,详见此文的8.1 七月论文审稿GPT(从第1版到第5版)」,在业界的影响力越来越大,所以身边朋友如发现业界有相似的工作,一般都会第一时间发给我,比如本部分要介绍的康奈尔大学的reviewer2 当然,我自己也会各种看类似工作的论文,毕竟同行之间的工作一定会互相借鉴的,我们会学他们

芯片后端之 PT 使用 report_timing 产生报告如何阅读

今天,就PT常用的命令,做一个介绍,希望对大家以后的工作,起到帮助作用。 在PrimeTime中,使用report_timing -delay max命令生成此报告。switch -delay max表示定时报告用于设置(这是默认值)。 首先,我们整体看一下通过report_timing 运行之后,报告产生的整体样式。 pt_shell> report_timing -from start_

【论文精读】分类扩散模型:重振密度比估计(Revitalizing Density Ratio Estimation)

文章目录 一、文章概览(一)问题的提出(二)文章工作 二、理论背景(一)密度比估计DRE(二)去噪扩散模型 三、方法(一)推导分类和去噪之间的关系(二)组合训练方法(三)一步精确的似然计算 四、实验(一)使用两种损失对于实现最佳分类器的重要性(二)去噪结果、图像质量和负对数似然 论文:Classification Diffusion Models: Revitalizing

【python】python葡萄酒国家分布情况数据分析pyecharts可视化(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 python葡萄酒国家分布情况数据分析pyecharts可视化(源码+数据集+论文)【独一无二】 目录 python葡

音视频开发基础知识(1)——图像基本概念

像素 **像素是图像的基本单元,一个个像素就组成了图像。你可以认为像素就是图像中的一个点。**在下面这张图中,你可以看到一个个方块,这些方块就是像素。 分辨率 图像(或视频)的分辨率是指图像的大小或尺寸。我们一般用像素个数来表示图像的尺寸。比如说一张1920x1080的图像,前者1920指的是该图像的宽度方向上有1920个像素点,而后者1080指的是图像的高 度方向上有1080个像素点。

论文阅读--Efficient Hybrid Zoom using Camera Fusion on Mobile Phones

这是谷歌影像团队 2023 年发表在 Siggraph Asia 上的一篇文章,主要介绍的是利用多摄融合的思路进行变焦。 单反相机因为卓越的硬件性能,可以非常方便的实现光学变焦。不过目前的智能手机,受制于物理空间的限制,还不能做到像单反一样的光学变焦。目前主流的智能手机,都是采用多摄的设计,一般来说一个主摄搭配一个长焦,为了实现主摄与长焦之间的变焦,目前都是采用数字变焦的方式,数字变焦相比于光学

【LLM之KG】CoK论文阅读笔记

研究背景 大规模语言模型(LLMs)在许多自然语言处理(NLP)任务中取得了显著进展,特别是在零样本/少样本学习(In-Context Learning, ICL)方面。ICL不需要更新模型参数,只需利用几个标注示例就可以生成预测。然而,现有的ICL和链式思维(Chain-of-Thought, CoT)方法在复杂推理任务上仍存在生成的推理链常常伴随错误的问题,导致不真实和不可靠的推理结果。

【python】python基于akshare企业财务数据对比分析可视化(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 系列文章目录 目录 系列文章目录一、设计要求二、设计思路三、可视化分析 一、设计要求 选取中铁和贵州茅

【Python机器学习】NMF——将NMF应用于人脸图像

将NMF应用于之前用过的Wild数据集中的Labeled Faces。NMF的主要参数是我们想要提取的分量个数。通常来说,这个数字要小于输入特征的个数(否则的话,将每个像素作为单独的分量就可以对数据进行解释)。 首先,观察分类个数如何影响NMF重建数据的好坏: import mglearn.plotsimport numpy as npimport matplotlib.pyplot as