DAF-Net:一种基于域自适应的双分支特征分解融合网络用于红外和可见光图像融合

论文 DAF-Net: A Dual-Branch Feature Decomposition Fusion Network with Domain Adaptive for Infrared and Visible Image Fusion 提出了一种新的红外和可见光图像融合方法。该方法旨在结合红外图像和可见光图像的互补信息,以提供更全面的场景理解。红外图像在低光和复杂环境中擅长捕捉热辐射,而可见光图像则保留了丰富的细节和颜色。然而,红外与可见光图像在成像原理、分辨率和光谱响应上的显著差异,给融合过程中保留关键信息带来了挑战。为了解决这些问题,本文提出了一种双分支特征分解融合网络(DAF-Net),并引入了域自适应技术,以实现不同模态间的特征对齐。

I. 引言

红外和可见光图像融合旨在结合红外和可见光两种模态的互补信息,以实现更全面的环境感知。红外图像在夜间监控和目标检测等低光环境下表现优异,而可见光图像保留了丰富的细节和色彩。这两种模态的融合能够弥补各自的局限性,从而提供更完整的环境理解。然而,由于成像原理、分辨率和光谱响应的差异,保持关键信息的一致性成为一个主要挑战。

现有的图像融合方法大致分为三类:
  1. 传统方法:如像素级或特征级融合方法,这些方法通过简单的规则进行融合,计算效率高,易于实现,但无法充分利用红外和可见光图像的互补信息,导致融合效果有限。

  2. 变换域方法:如小波变换和拉普拉斯金字塔技术,这些方法通过将图像分解为不同的频率成分来保留细节,但在重建过程中可能丢失关键的模态特定特征,难以同时保留全局结构和细节纹理。

  3. 基于深度学习的方法:近年来,深度学习方法取得了显著进展,如卷积神经网络(CNN)和生成对抗网络(GAN)。这些方法能够通过学习模态间的非线性关系,生成视觉质量更高的融合图像。然而,深度学习方法通常需要大量标注数据,这在数据稀缺时成为限制因素。此外,在保持全局结构和细节纹理方面仍然存在挑战。

II. 方法

为了更好地对齐红外和可见光图像的潜在特征空间,本文提出了一种域自适应的双分支特征分解融合网络(DAF-Net)。该方法通过引入多核最大均值差异(MK-MMD)来减少红外和可见光图像之间的分布差异,从而提高融合图像的质量。DAF-Net的基础编码器基于Restormer网络,负责捕捉全局结构信息;细节编码器基于可逆神经网络(INN),负责提取细节纹理信息。MK-MMD仅在基础编码器中应用,以确保全局特征的一致性,避免局部细节的过度对齐和模态特定信息的丢失。该结构使得DAF-Net能够在全局结构和细节保留之间取得平衡。

 所提出的DAF-Net框架

A. 网络架构

DAF-Net由一个编码器-解码器分支和一个基于混合核函数的域自适应层组成。为了在每个训练阶段优化网络参数,本文引入了一个包含域自适应损失的新损失函数。

  • 编码器-解码器分支:编码器由三个部分组成:基于Transformer的共享特征层、使用Restormer块的基础编码器和使用INN块的细节编码器。基础编码器捕捉全局结构信息,细节编码器提取细节纹理信息。

编码分支的训练过程,其中在红外图像和可见光图像的基础编码器之间存在一个域自适应层

  • 域自适应层:域自适应层通过计算MK-MMD来减少红外和可见光图像特征的分布差异,实现跨模态特征转移。该层在基础编码器的最后三层卷积层中应用,以对齐全局特征,而细节编码器不使用MK-MMD,以保留局部细节。

B. 两阶段训练

为了应对红外和可见光图像融合中缺乏真实标签的问题,本文采用了两阶段学习方案来训练DAF-Net。

  1. 阶段一:编码器-解码器分支训练:在这一阶段,输入成对的红外和可见光图像,编码器提取全局结构和细节特征,重构原始红外和可见光图像。

  2. 阶段二:融合层训练:在这一阶段,输入已训练好的编码器的特征,融合层进行结构和细节特征的融合,最终生成融合图像。

 融合层训练的过程

C. 损失函数

DAF-Net的总损失函数是编码器-解码器损失和融合层损失的加权和。编码器-解码器阶段的重构损失包括均方误差(MSE)损失、结构相似性指数(SSIM)损失和梯度损失。为了捕捉跨模态关系,还引入了相关性损失和InfoNCE损失。融合层的损失函数由强度损失、最大梯度损失和相关性损失组成。

III. 实验与结果

A. 实验设置

实验在三个数据集上进行:MSRS、RoadScene和TNO。部分MSRS数据集用于训练,其余部分和TNO、RoadScene数据集用于评估。采用的评价指标包括互信息(MI)、视觉信息保真度(VIF)、熵(EN)、标准差(SD)、空间频率(SF)、边缘信息QAB/F和结构相似性指数(SSIM)。

B. 实现细节

实验在配备两块NVIDIA A100 GPU的系统上进行。训练样本被随机裁剪为128×128的图像块,模型在40个epoch上以无监督方式训练,批量大小为4。优化器采用Adam,初始学习率为10⁻⁴,每10个epoch减半。

C. 定性结果

与现有方法相比,DAF-Net在融合过程中有效保留了红外图像的热辐射信息和可见光图像的细节。实验结果表明,DAF-Net在暗区域增强了物体的可见性,有效区分了前景目标和背景。

 红外-可见光图像融合任务结果对比

D. 定量结果

通过在TNO和MSRS数据集上的实验,定量结果表明DAF-Net在大多数指标上均优于其他方法,在视觉质量和融合性能上表现出色。

数据集:TNO 红外-可见光图像融合

图片

数据集:MSRS 红外-可见光图像融合

IV. 结论

本文提出的DAF-Net通过在基础编码器中引入MK-MMD实现全局特征对齐,同时保留了模态特定的细节特征。实验表明,DAF-Net在多个数据集上均取得了优异的融合性能和视觉质量。

相关信息

  • 代码: https://github.com/xujian000/daf-net

  • 论文: https://arxiv.org/abs/2409.11642v1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/434340.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习C++的第七天!

1.虚函数是在基类中用 virtual 关键字声明的函数,可以在派生类中被重写。纯虚函数是在虚函数的基础上,在基类中被初始化为 0 的函数,含有纯虚函数的类是抽象类,不能被实例化。 2.如果基类的析构函数不是虚函数,当通过…

现代cpp多线程与并发初探

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 在现代c(c20)中,有了jthread和协程的概念,使得我们编写并发程序更加方便. 这里作简单学习. 前言知识 多线程编程 std::thread 用于创建一个执行的线程实例,所以它是一切并发编程的基础,使用时需要包含 <thread…

Android个性名片界面的设计——约束布局的应用

节选自《Android应用开发项目式教程》&#xff0c;机械工业出版社&#xff0c;2024年7月出版 做最简单的安卓入门教程&#xff0c;手把手视频、代码、答疑全配齐 【任务目标】 使用约束布局、TextView控件实现一个个性名片界面的设计&#xff0c;界面如图1所示。 图1 个性名片…

Transformer 算法模型详解

核心点&#xff1a;完整讲解Transformer模型&#xff01; 让我们用简单的语言来解释&#xff1a;想象一下&#xff0c;你正在阅读一本书&#xff0c;书中的每个字都很重要。但如果你每次只能关注一个字&#xff0c;理解整本书就会变得很慢。而Transformer模型就像是赋予你超能…

从密码学看盲拍合约:智能合约的隐私与安全新革命!

文章目录 前言一、什么是盲拍合约&#xff1f;二、盲拍合约的优势1.时间压力的缓解2.绑定与秘密的挑战 三、盲拍合约的工作原理1.提交盲出价2.披露出价3.结束拍卖4.退款机制 四、代码示例总结 前言 随着区块链技术的发展&#xff0c;智能合约在各种场景中的应用越来越广泛。盲…

基于Hive和Hadoop的病例分析系统

本项目是一个基于大数据技术的医疗病历分析系统&#xff0c;旨在为用户提供全面的病历信息和深入的医疗数据分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以 Spark…

Linux入门2——初识Linux权限

目录 0. Linux下的用户 1.文件访问者的分类 2.文件类型和访问权限 3. 文件权限值的表示方法 4.文件访问权限的相关设置方法 4.1 修改文件的访问权限 4.2修改文件的拥有者和所属组 0. Linux下的用户 在学习Linux权限之前&#xff0c;我们要先来了解Linux下的用户&#x…

vue+UEditor附件上传问题

&#x1f3c6;本文收录于《全栈Bug调优(实战版)》专栏&#xff0c;主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&am…

端口隔离配置的实验

端口隔离配置是一种网络安全技术&#xff0c;用于在网络设备中实现不同端口之间的流量隔离和控制。以下是对端口隔离配置的详细解析&#xff1a; 基本概念&#xff1a;端口隔离技术允许用户将不同的端口加入到隔离组中&#xff0c;从而实现这些端口之间的二层数据隔离。这种技…

算法记录——链表

2.链表 2.1判断是否是回文链表 1.方法一&#xff1a;利用栈反转链表 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode…

Invalid Executable The executable contains bitcode

Invalid Executable The executable contains bitcode 升级xcode16后&#xff0c;打包上传testflight时三方库报错&#xff1a;Invalid Executable - The executable ***.app/Frameworks/xxx.framework/xxx contains bitcode. 解决方案&#xff1a; 执行一下指令删除该framew…

软件测试学习路线图

软件测试工程师是专门从事软件、系统或产品测试和评估的技术专业人士&#xff0c;确保它们符合既定标准并无任何缺陷。通过精心设计和执行测试计划&#xff0c;软件测试工程师发现 Bug、故障和需要改进的领域&#xff0c;从而提高最终产品的可靠性和性能。 软件测试工程师在软…

Awcing 799. 最长连续不重复子序列

Awcing 799. 最长连续不重复子序列 解题思路: 让我们找到一个数组中&#xff0c;最长的 不包含重复的数 的连续区间的长度。 最优解是双指针算法&#xff1a; 我们用 c n t [ i ] cnt[i] cnt[i]记录 i i i 这个整数在区间内出现的次数。(因为每个数的大小为 1 0 5 10^5 105, …

状态模式原理剖析

《状态模式原理剖析》 状态模式&#xff08;State Pattern&#xff09; 是一种行为设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为。换句话说&#xff0c;当对象状态发生变化时&#xff0c;它的行为也会随之变化。 通过状态模式&#xff0c;可以消除通过 if-else…

从“可用”到“好用”,百度智能云如何做大模型的“超级工厂”?

如果说&#xff0c;过去两三年大模型处于造锤子阶段&#xff0c;那么今年&#xff0c;更多的则是考验钉钉子的能力&#xff0c;面对各类业务场景大模型是否能够有的放矢、一击必中&#xff0c;为千行百业深度赋能。 当前市场上&#xff0c;已经有200多把这样的锤子在疯狂找钉子…

【unity进阶知识1】最详细的单例模式的设计和应用,继承和不继承MonoBehaviour的单例模式,及泛型单例基类的编写

文章目录 前言一、不使用单例二、普通单例模式1、单例模式介绍实现步骤&#xff1a;单例模式分为饿汉式和懒汉式两种。 2、不继承MonoBehaviour的单例模式2.1、基本实现2.2、防止外部实例化对象2.3、最终代码 3、继承MonoBehaviour的单例模式3.1、基本实现3.2、自动创建和挂载单…

OCR 行驶证识别 离线识别

目录 正页识别 副页识别 全部识别 OCR 行驶证识别 离线识别 正页识别 副页识别 全部识别

电脑学习通看不到课程解决办法

电脑学习通看不到课程解决办法 查看学习通时发现没有课程 解决方法1: 更改单位 具体见:超星学习通关于PC版无法查看课程问题解决 解决方法二:添加应用 添加应用 点击账号管理 点击应用管理 添加应用、添加首页这个应用 添加完成后查看首页就能看到课程了 然后就OK啦、就可…

pcs集群表决盘故障导致主机reboot

建议重建fence设备并配置 PCSOracle HA实战安装配置参考 - 墨天轮

windows10使用bat脚本安装前后端环境之redis注册服务

首先需要搞清楚redis在本地是怎么安装配置、然后在根据如下步骤编写bat脚本&#xff1a; 思路 1.下载zip格式redis 2.查看windows server服务是否已安装redis 3.启动查看服务是否正常 bat脚本 echo off echo windows10 x64 server redis init REM 请求管理员权限并隐藏窗口 …