[论文阅读]Ghost-free High Dynamic Range Imaging with Context-aware Transformer

多帧高动态范围成像(High Dynamic Range Imaging, HDRI/HDR)旨在通过合并多幅不同曝光程度下的低动态范围图像,生成具有更宽动态范围和更逼真细节的图像。如果这些低动态范围图像完全对齐,则可以很好地融合为HDR图像,但是,实际拍摄到的图像容易受到相机、物体运动的干扰,三张低动态范围图像往往不能很好地得到对齐,直接对三图像做融合的话,所生成的图像容易产生伪影、重影,例如下图所示:

为了解决这一现象,传统的算法通常分为两类:在图像融合前对齐(align)图像或者拒绝(reject)不对齐的像素来去除重影,但精确地对齐图像或者精确地定位不对齐的像素往往难以实现,所生成的HDR图像效果并不好,因此现在常常以数据驱动的方法来训练CNN,利用CNN来实现图像的融合。

基于CNN的去重影方法主要分为两类:①利用单应性或光流法对LDR图像进行预对齐;②设计端到端的隐式对齐模块或者新颖的学习策略来处理重影。但是由于卷积局部性的限制,模型难以建立远程依赖(需要堆叠较深的卷积层来实现提高感受野的目的),如果图中物体的运动范围过大,则先前基于CNN的方法仍容易产生重影;同时由于在整幅图像中共享卷积核,因此卷积是内容无关的运算(content-independment),这一特性导致卷积运算忽略了不同图像区域的长距离强度变化,也就是卷积运算会平等地对待图像中的所有数据。(引入注意力机制可以解决这一问题)

对于模型的长距离建模能力,一个很好地策略就是利用transformer结构,例如ViT算法。然而,本文作者发现transformer结构并不能直接应用于HDR任务中,主要有两个原因:①transformer缺乏CNN中归纳偏差的能力(inductive biases),因此在数据量不足的情况下训练时泛化能力较差,模型性能不高;②帧内和帧间相邻像素之间的关系也对恢复图像的局部细节至关重要,而纯transformer结构难以提取局部上下文之前的关系。

注:在HDR任务中收集大量真实标记的样本成本过高,因此数据集往往有限。

对此,本文作者提出了一种上下文感知的ViT(Context-Aware Vision Transformer, CA-ViT),通过双分支架构来同时捕获全局和局部的依赖关系,也就是同时实现全局和局部的建模。对于全局分支,作者使用基于窗口的多头transformer编码器来捕远程上下文关系(即Swin transformer);对于局部分支,作者设计了局部上下文提取器(local context extractor, LCE),通过卷积块来提取局部特征映射,并且通过通道注意力机制在多个帧特征之间选择有用的特征,抑制无用的特征,因此,CA-ViT结构可以使全局和局部以互补的方式发挥作用。基于CA-ViT结构,作者提出了用于HDR成像的transformer结构(HDR-Transformer)。

对于HDR-Transformer,主要包括两个模块:特征提取网络和HDR恢复网络,特征提取网络利用卷积运算和空间注意力模块来提取浅层特征,并且进行粗融合,有助于稳定transformer的训练和抑制图像中不对齐的像素。HDR重建模块以CA-ViT为基本组件,从全局和局部两个角度对图像建模,有助于重建高质量的HDR图像,同时无需堆叠非常深的卷积块。

在本文中,作者提出了一种双分支上下文感知Transformer,通过加入局部特征提取器(即引入卷积操作)来克服传统ViT在局部建模上的不足,扩展了标准的ViT模块,可以实现全局和局部上下文的同时建模。此外,基于所设计的CA-ViT模块,作者提出了用于HDR成像的HDR-Transformer网络,通过结合Transformer和CNN的优点,来有效地缓解HDR成像过程中容易产生重影的问题。

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

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

相关文章

RTMP直播在虚拟数字人场景使用

虚拟数字人(Virtual Digital Human),指的是一种基于数字技术创建的虚拟人物,他们有自己的外貌、声音,甚至是性格。虚拟数字人通常是通过计算机图形学、人工智能和其他先进技术来实现的。人们可以与这些虚拟数字人进行交…

Xamarin.Forms更改AndroidManifest.xml导致错误:没有兼容的代码在线程上运行

想在APP中加一个打开摄像头的功能,按照该博主的方法:https://blog.csdn.net/zhenweied09/article/details/82287761 设置好后,再运行就出现上图的错误,于是查找原因,定位到是更改AndroidManifest.xml文件导致的&#…

QMI8658A_QMC5883L(9轴)-EVB 评估板

1. 描述 QMI8658A_QMC5883L(9轴)-EVB 评估板是一款功能强大的9轴IMU传感器,它利用了QMA8658A 内置的3轴加速度计和3轴陀螺仪,同时结合QMC5883L的3轴地磁数据,来测量物体在三维空间中的角速度和加速度(严格意义上的IMU只为用户提供…

Flash模拟EEPROM原理浅析

根据ST的手册,我们可以看到,外挂EEPROM和Dflash模拟EEPROM,区别如下: 很明显,模拟EEprom的写入速度要远远快于外挂eeprom(有数据传输机制); 其次,外挂EEPROM不需要擦除即可实现写入数据&#xf…

Wpf 使用 Prism 实战开发Day03

一.实现左侧菜单绑定 效果图: 1.首先需要在项目中创建 mvvm 的架构模式 创建 Models &#xff0c;放置实体类。 实体类需要继承自Prism 框架的 BindableBase&#xff0c;目的是让实体类支持数据的动态变更! 例如: 系统导航菜单实体类 / <summary>/// 系统导航菜单实体类…

【Python学习】—面向对象(九)

【Python学习】—面向对象&#xff08;九&#xff09; 一、初识对象 类中不仅可以定义属性来记录数据&#xff0c;也可以定义函数&#xff0c;用来记录行为&#xff0c;类中定义的属性&#xff08;变量&#xff09;我们称之成员变量&#xff0c;类中定义的行为&#xff08;函数…

【多态-动态绑定-向上转型-抽象类】

文章目录 静态绑定动态绑定多态的具体实现向上转型多态的优缺点抽象类抽象类的作用 总结 静态绑定 重载就是典型例子 动态绑定 多态的具体实现 //多态 class Animal{public String name;public int age;//无参构造方法public Animal() {}//有参构造方法public Animal(Strin…

MySQL Server 5.5 软件和安装配置教程

MySQL 5.5.58&#xff08;32/64位&#xff09;下载链接&#xff1a; 百度网盘&#xff1a;百度网盘 请输入提取码 提取密码&#xff1a;7act 软件简介&#xff1a; MySQL 是由瑞典MySQL AB 公司开发一个关系型数据库管理系统&#xff0c;目前属于 Oracle 旗下产品。MySQL 是最…

代码没注释?一个方法几百行?

干程序员的都有接收别人的代码的经历&#xff0c;大部分时候&#xff0c;我们都会偷偷骂一句“这人是傻逼吧&#xff0c;这代码写的这么烂&#xff01;” “一个方法写几百行&#xff0c;还没有注释&#xff0c;鬼知道写的什么东西&#xff01;” 现在&#xff0c;你不需要为…

__707设计链表

单向链表设计 package 日常Java程序测试.代码随想录.链表;public class __707设计链表__单向链表设计 {class MyLinkedList {//我们首先需要自己定义属性出来int val;MyLinkedList next;int size; //记录链表大小//MyLinkedList() 初始化 MyLinkedList 对象。public MyLinke…

2.flink编码第一步(maven工程创建)

概述 万里第一步&#xff0c;要进行flink代码开发&#xff0c;第一步先整个 flink 代码工程 flink相关文章链接 flink官方文档 两种方式 一种命令行 mvn 创建&#xff0c;另一种直接在 idea 中创建一个工程&#xff0c;使用 mvn 的一些配置 mvn命令行创建 mvn 创建flink工程&…

吴恩达《机器学习》1-4:无监督学习

一、无监督学习 无监督学习就像你拿到一堆未分类的东西&#xff0c;没有标签告诉你它们是什么&#xff0c;然后你的任务是自己找出它们之间的关系或者分成不同的组&#xff0c;而不依赖于任何人给你关于这些东西的指导。 以聚类为例&#xff0c;无监督学习算法可以将数据点分成…

《微习惯》-微习惯策略的八大规则

绝不要自欺欺人满意每一个进步经常回报自己&#xff0c;尤其在完成微习惯之后保持头脑清醒感到强烈抵触时&#xff0c;后退并缩小目标提醒自己这件事很轻松绝不要小看微步骤用多余精力超额完成任务&#xff0c;而不是制定更大目标

LeetCode383. Ransom Note

文章目录 一、题目二、题解 一、题目 Given two strings ransomNote and magazine, return true if ransomNote can be constructed by using the letters from magazine and false otherwise. Each letter in magazine can only be used once in ransomNote. Example 1: I…

接口测试,一篇搞定

大多数人对于接口测试都觉得是一种高大上的测试&#xff0c;觉得学会接口测试就可以从小白测试员&#xff0c;变成了高级测试员&#xff0c;但其实接口测试只是测试的基础内容 什么是接口 接口泛指实体把自己提供给外界的一种抽象化物&#xff08;可以为另一实体&#xff09;&…

9、电路综合-基于简化实频的任意幅频响应的微带电路设计

9、电路综合-基于简化实频的任意幅频响应的微带电路设计 网络综合和简化实频理论学习概述中的1-8介绍了SRFT的一些基本概念和实验方法&#xff0c;终于走到了SRFT的究极用途&#xff0c;给定任意响应直接综合出微带电路。 1、任意幅频响应的微带电路设计用途 我们演示了采用…

Django的静态文件目录(路径)如何配置?

通常用下面的三条语句配置Django的静态文件目录 STATICFILES_DIRS [os.path.join(BASE_DIR, static)] STATIC_URL /static/ STATIC_ROOT os.path.join(BASE_DIR, /static)那么这三条语句分别的作用是什么呢&#xff1f; 请参考博文 https://blog.csdn.net/wenhao_ir/articl…

STM32单片机智能小车一PWM方式实现小车调速和转向

目录 1. 电机模块开发 2. 让小车动起来 3. 串口控制小车方向 4. 如何进行小车PWM调速 5. PWM方式实现小车转向 1. 电机模块开发 L9110s概述 接通VCC&#xff0c;GND 模块电源指示灯亮&#xff0c; 以下资料来源官方&#xff0c;具体根据实际调试 IA1输入高电平&#xff…

添加主仓库后报错error: remote upstream already exists.

可能的原因 远程名 upstream 已经被使用&#xff1a; 这通常意味着你在之前已经添加了一个名为 upstream 的远程仓库。 解决方案 检查现有的远程仓库&#xff1a; 运行 git remote -v 来查看所有配置的远程仓库。这个命令会列出所有远程仓库的URL&#xff0c;你可以检查是否已…

视频分辨率/帧率/码率选择参考

1. 视频码率与分辨率的参考表 1080&#xff0a;720的分辨率&#xff0c;用5000K左右&#xff1b; 720&#xff0a;576的分辨率&#xff0c;用3500K左右&#xff1b; 640&#xff0a;480的分辨率&#xff0c;用1500K左右。 2. 计算公式 基本算法&#xff1a;码率&#xff08;kb…