【读论文】AT-GAN

news2024/12/26 23:30:05

【读论文】AT-GAN

  • 介绍
  • 网络架构
    • 生成器
      • IAM
      • STM
    • 辨别器
  • 损失函数
    • SEM
    • 损失
      • 内容损失
      • 结构损失
      • 对抗损失
  • 总结
  • 参考

论文:https://www.sciencedirect.com/science/article/pii/S156625352200255X
如有侵权请联系博主

介绍

大概是刚开学的时候就读到一篇文章,看完这个指标,我直接膜拜。
在这里插入图片描述
这次要介绍的文章仍然是我们熟悉的Imformation Fusion中一篇论文,论文中将图像质量评价引入到图像融合领域,并且根据红外图像和可见光图像的不同,分别设置了IAM和STM两个模块。融合效果太强了,接下来我们一起看看吧。

网络架构

在这里插入图片描述
整体的网络架构是GAN,左边是生成器,右边是辨别器,可以看到网络架构十分的简单。(最近好像有这个趋势,大家都意识到庞大的网络也许可以产生较好的效果,但是可能无法达到实时性的要求,因此大家都有意识精简网络。)

我们可以发现红外特征提取路径和可见光特征提取路径是十分相似的,不同的是红外特征提取是使用的IAM,而可见光特征提取是使用的STM,之后我们再仔细去聊这两个模块。

接下来我们一点点的去看看吧

生成器

IAM

在这里插入图片描述
上图就是IAM的网络架构,可以看出这篇文章中的网络模型无时无刻不再告诉你,我是轻量模型。IAM的架构也是十分的简单,输入的特征直接被输入到四个卷积层中,然后得到四个不同的结果,我们可以按顺序给这几个结果命个名,Q,K,V和F0。看到你是不是突然觉得,这几个字母有点熟。是不是有点像transformer,没错正是在下
在这里插入图片描述

okokok 不扯了,这里IAM的计算过程就像Transformer的计算过程,如下
在这里插入图片描述
在这里插入图片描述
这里的Reshape是将经过注意力操作之后的特征还原至与F0大小相同,之后再乘以一个alpha,再与F0相加得到最终的特征。

作者希望通过这种注意力的方式来尽可能的保留重要的红外目标信息。

STM

正如我们所知道的那样,纹理信息是存在于浅层特征中,但是单纯的提取浅层特征会导致纹理特征会出现大量的噪声,因此作者希望通过更深一层的特征信息来约束本层特征信息,从而减少可是图像中的噪声信息。
在这里插入图片描述
在这里插入图片描述
这里的作者的操作是先将深层特征和较浅层特征进行拼接,然后进行卷积将拼接的特征的通道数减半,然后再与深层特征相加。

到现在为止,生成器就介绍完毕了。

辨别器

在这里插入图片描述
辨别器的结构就十分的友好了,由卷积层和全连接层组成。注意这里辨别器的输出类似我们之前了解过的GANMcc,都是输出的一个多分类的结果。

损失函数

SEM

这里着重说一下这个部分,也是我认为文章中最亮眼的部分。

之前的大多数文章在设置损失时会给红外图像和可见光图像对应的损失分配一个固定的超参数,这有什么问题呢

例如下面这两幅源图像
在这里插入图片描述
我们肯定希望更多的保存红外图像中的信息,因为可见光图像收到强光的污染,如果设置二者的权重相同的话产生的结果肯定并不是那么让人满意。这种设置下我们再来看下面这两幅源图像,我们可以看出可见光图像的图像质量是相当可以的,但如果我们给红外图像更高的权重就会导致可见光图像中的信息的丢失,从而导致生成的图像效果并不理想。
在这里插入图片描述

看完了上面两幅图像我们就了解了为什么作者采用动态权重来控制两种损失的比例。那么作者是怎么做的呢?

刚才我们已经了解到,作者的其中一个创新点就在于图像质量,那么怎么将图像质量评估结合到图像融合中?

这也就是SEM做的事情。

在这里插入图片描述
可以将X,Y认为是红外图像和可见光图像,通过计算二者的Q,然后根据二者所占的比例分配权重。

这个Q就是BRI-SQUE和图像熵的结合体,即依据这两项确定Q,我们知道BRISQUE越小,图像质量越好,而信息熵越大代表图像所蕴含的信息越丰富,通过这两项,我们就可以动态的给红外图像和可见图像损失分配权重。

损失

在这里插入图片描述
整体损失由三部分组成,分别是内容损失,结构损失,对抗损失。

内容损失

在这里插入图片描述
在这里插入图片描述
陌生一些的就是这个SD了,我们可以将其认为是强度损失。

那么其实内容损失就是梯度损失和强度损失两部分组成。

a就是我们前面说到的SEM得到的权重,即哪一个源图像的SEM值大,我们就倾向与保留哪一个的梯度信息和强度信息。

结构损失

在这里插入图片描述
结构损失同理,这里a与上面内容损失相同,采用SSIM(结构相似性)来定量表示融合图像和源图像之间的结构损失。

对抗损失

在这里插入图片描述
这里是生成器的对抗损失,很清楚的是我们肯定希望生成器生成的图像输入到辨别器之后,辨别器该输入图像既像红外图像又像可见光图像,这样就说明我们融合图像既保留了可见光图像的信息又保留了红外图像的信息。

在这里插入图片描述
辨别器的损失如上,一方面我们希望辨别器可以准确地识别出红外图像和可见光图像,因此第一个损失就是提高辨别器识别红外图像和可见光图像的能力,也就是说c设置为接近1的一个数。

第二部分就是对抗损失,我们希望辨别器可以准确地识别出融合图像,那么怎么表示辨别器觉得它是融合图像呢

如果说辨别器认为该输入图像既不是红外图像也不是可见光图像是不是就代表该图像为融合图像呢?

所以这里二点d设置为接近0的一个数。

到此,损失函数就介绍完毕了。

总结

这篇文章是我今年刚开学就读了的一篇文章,如今再来看看,正好写一下自己的阅读体会,非常强的一篇文章,是我见到的第一篇将图像质量评价结合到图像融合的文章,融合效果也是非常好,只能说大佬真强!!!

其他融合图像论文解读
==》红外与可见光图像融合专栏,快来点我呀《==

【读论文】AttentionFGAN

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

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

【读论文】DDcGAN

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

【读论文】FusionGAN: A generative adversarial network for infrared and visible image fusion

【读论文】DeepFuse: A Deep Unsupervised Approach for Exposure Fusion with Extreme Exposure Image Pairs

【读论文】DenseFuse: A Fusion Approach to Infrared and Visible Images

参考

[1] AT-GAN: A generative adversarial network with attention and transition for infrared and visible image fusion

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx静态资源传输优化,文件高效传输,事半功倍

1.引出问题 Nginx可以作为静态资源服务器,比如我们访问192.168.110.97:80,熟悉的nginx欢迎界面,这其实也是nginx为我们提供的一个静态文件:index.html。 既然是静态资源,那我们能否优化一下传输效率呢? 1…

训练计划安排(练一休一训练分化+倒金字塔训练法)【了解即可,一般人容量不用练一休一,看抖音@孙悟饭桶】

目录 练一休一训练分化每次训练的组数12-15组 (4-5个动作)QA 倒金字塔训练法倒金字塔热身正式组常见误区: 训练补剂bcaa咖啡因肌酸蛋白粉 如何降低皮质醇水平如何提升睾酮水平文献出处睡眠8h摄入适量脂肪(0.8g每公斤体重&#xff…

java APT原理及APT实战 - 一步步教你写ButterKnife

一、定义 Java APT 是 Java 技术设计的一个 APT 架构, APT(Annotation Processing Tool)即注解处理器,它是一种处理注解的工具,也是javac中的一个工具,用于在编译阶段未生成class之前对源码中的注解进行扫…

Windows巧用git实现笔记自动备份

Windows巧用git实现笔记自动备份 准备git仓库配置自动上传脚本设置 Windows 自动定时任务参考文献 准备git仓库 安装git:https://git-scm.com/downloads: 注册并登录gitee,本地生成ssh key(详情百度),然后…

数据处理Pandas学习笔记(一)

import pandas as pdpandas值series创建 t pd.Series([1, 2, 31, 12, 3, 4]) t0 1 1 2 2 31 3 12 4 3 5 4 dtype: int64type(t)pandas.core.series.Seriesseries指定索引 t2 pd.Series([1,23,3,2,3],indexlist(abcde)) t2a 1 b 23 c 3 d …

【Java-05】常用API、正则表达式、Collection集合

主要内容 BigInteger类BigDecimal类Arrays类包装类String类的常用方法正则表达式Collection集合 1 BigInteger类 1.1 概述 概述 : java.math.BigInteger类是一个引用数据类型 , 可以用于计算一些大的整数 , 当超出基本数据类型数据范围的整数运算时就可以使用BigInteger了。…

类别无关的姿态估计ECCV2022

现有的2D姿态估计工作主要集中在某一类别,例如人类、动物和车辆。然而,有很多应用场景需要检测unseen对象类的姿态(或关键点)。因此作者提出CAPE任务(Category-Agnostic Pose Estimation),该任务…

Sketch哪个版本好用?

使用最新版本的 Sketch 是很有意义的。一方面,最新版本通常会有新的功能和改进,使设计师更方便地完成工作。另一方面,使用最新版本还可以避免出现因版本不兼容而无法打开源文件的问题。此外,最新版本通常会更稳定,因此…

Linux command(sar)

说明 sar命令是一个系统性能监测工具,用于收集、报告和分析系统的各种资源使用情况。以下是sar命令的基本用法: sar [选项] [时间间隔] [次数] 选项:可用的选项包括-a(显示所有资源使用情况)、-b(显示I/…

图片修复增强调研

Real-ESRGAN 工程地址:https://github.com/xinntao/Real-ESRGAN 效果: 人脸增强部分,调用的GFPGAN. GFPGAN 工程地址:https://github.com/TencentARC/GFPGAN 论文效果: BasicSR-ESRGAN: 项目地址&a…

[Qt编程之Widgets模块] -001: QButtonGroup抽象容器

1.QButtonGroup简介 QButtonGroup提供了一个抽象容器,可以将按钮小部件放入其中。它不提供此容器的可视化表示,而是管理组中每个按钮的状态。 互斥按钮组,将关闭除已单击的按钮外的所有可选中(可切换)按钮。默认情况下…

免费使用GPT-4.0?【AI聊天 | GPT4教学】 —— 微软 New Bing GPT4 申请与使用保姆级教程

目录 认识 New Bing 2. 注册并登录 Microsoft 账号 3. 如何免科学上网使用 New Bing? 4. 加入 WaitList 候补名单 5. 使用 New Bing! 6. 使用 Skype 免科学上网访问 New Bing! 7. 在 Chrome 浏览器中使用 New Bing! 8. 总…

如何利用splice()和slice()方法操作数组

如何利用splice()和slice()方法操作数组 前言splice()是什么,有什么用?怎么用?slice()是什么,有什么用?怎么用?splice和slice方法的区别小结 前言 splice&am…

如今的Android就业率惨不忍睹~

3月底公司大裁员,投了一个月简历,一天投个几十份简历,而收到面试通知的就那么三四家,要么就是薪水给得很低不想去,要么就是高薪水的Offer拿不下,而自己中意公司的却没有给出回应,唉……真难啊!&…

4.2 线性表顺序表

目录 目录结构 线性表 线性表的特征: 顺序表存储结构的表示 顺序表存储结构的特点 顺序存储结构的表示 线性表的基本运算 基本运算的相关算法 线性表的基本运算 线性表 目录结构 线性表 线性表是包含若干数据元素的一个线性序列 记为: L(a0, …

Istio virtual service 故障注入之延时(fixedDelay)、中断(abort)

Istio 故障注入 Istio 故障注入与其他在网络层引入错误(例如延迟数据包或者直接杀死 Pod)的机制不同,Istio 允许在应用程序层注入故障。这使得可以注入更多相关的故障,比如 HTTP 错误代码等。 Istio 可以注入两种类型的故障&…

iLO初识

文章目录 什么是iLO?为什么需要iLO?iLO界面介绍风扇状态温度状态存储控制器的电池组件cpu状态内存状态网络设备列表存储状态固件状态 什么是iLO? iLO(Integrated Lights-Out)是一种远程管理技术,用于管理和…

第7章链接:7.1 编译器驱动程序

示例程序由两个源文件组成,main.c 和 swap.c。 main函数初始化一个两元素的整数数组,然后调用swap函数来交换这一对数。 main.c void swap();int buf[2] {1, 2};int main() {swap();return 0; }swap.c extern int buf[];int *bufp0 &buf[0]; i…

Android系统日志3-trace

1、使用 主要追踪耗时,如上图所示,记录的是traceBegin和traceEnd之间的耗时,这些日志信息可以通过systrace查看 2、获取trace日志 https://developer.android.com/topic/performance/tracing/command-line?hlzh-cn https://developer.andr…

Linux之shell基础(六)

1、shell 简介 shell 介于内核与用户之间,负责命令的编辑,是人机交互的一个桥梁 shell 的种类 [rootyhm ~]# cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/ksh /bin/rksh /usr/bin/ksh /usr/bin/rksh种类说明/bin/shbash的一个…