Explorable Tone Mapping Operators

Abstract

色调映射在高动态范围(HDR)成像中起着至关重要的作用。 它的目的是在有限动态范围的介质中保存HDR图像的视觉信息。 虽然许多工作已经提出从HDR图像中提供色调映射结果,但大多数只能以一种预先设计的方式进行色调映射。 然而,声调映射质量的主观性因人而异,声调映射风格的偏好也因应用而异。 本文提出了一种基于学习的多模态色调映射方法,该方法不仅获得了良好的视觉质量,而且探索了风格的多样性。 该方法基于Byclegan[1]的框架,通过操纵不同的潜在码,可以提供多种专家级的声调映射结果。 最后,我们证明了所提出的方法在定性和定量上都优于现有的音调映射算法。

I. INTRODUCTION

在现实世界中,自然场景的动态范围(DR)往往太宽(DR>10^7),相机无法捕捉,尤其是对太阳等直射光源。 由于多曝光融合技术[2]的发展,我们可以将不同曝光的图像中的所有细节融合到一张高动态范围(HDR)图像中。

HDR图像包含丰富的视觉信息,需要较高的位深度来存储大动态范围的数据。 然而,大多数显示设备只能显示低动态范围的图像(LDR,通常存储在8位)。 然后提出了色调映射算法,将HDR图像压缩为LDR图像,同时尽量保留感知内容。

在过去的二十年里,人们提出了一系列的音调映射算法[3]、[4]、[5]、[6]。 其中许多方法将HDR图像分解为两个部分:一个是经过平滑处理但仍保持原始全局动态范围的基本层,另一个是仅具有局部边缘或细节信息的细节层。 在将基础层和细节层融合回LDR图像之前,基础层通常被压缩以减小动态范围,而细节层被增强或提升以保留更好的视觉内容。

该方案将HDR图像中的低频信息和高频信息分开处理,在保持LDR图像局部细节的同时,大大压缩了图像的动态范围。 因此,将HDR图像分解为基础层和细节层对色调映射方法的质量有很大影响,而分解的方式几乎构成了不同方法之间的主要区别。

至于细节增强,一些方法试图使黑暗物体周围的区域变亮,从而导致光晕伪影[3]。 另外一些方法过分强调边缘信息,从而产生不切实际的过增强结果[7]。 虽然有一些方法可以解决这些问题,但它们通常只在特定类型的图像上有效,并且需要大量的参数调整才能获得最佳的结果[4]。 这个调优过程通常很耗时,而且很难重现。

最近还提出了基于深度学习的声调映射方法。 它们通常被建模为图像到图像的翻译任务。 杨等人[8]使用自动编码器架构将HDR图像转换为LDR图像。 然而,像不真实的颜色和对比度这样的伪影可以在他们的结果中看到。 拉纳等人[9]使用多尺度CGAN架构。 但是,当测试图像的尺度与训练图像不同时,仍然存在光环伪影,并可能导致其他伪影。 此外,上述基于深度学习的声调映射方法都是一对一映射,提供的主观风格较少。

本文提出了一种基于学习的多模态声调映射方法。 该方法可分为两个部分。 一个是EdgePreservingNet,它输出局部变化的内核,用于将输入的HDR图像分解为基础层和细节层。 另一个是预测全局音调压缩曲线的ToneCompressingNet。 两者都根据输入HDR图像的内容和动态范围自适应动态运行。

该方法以最小的伪影获得了良好的质量,在客观和主观上都优于现有的调音算法。 此外,由于Bicclegan[1]的体系结构,我们的方法可以从单个HDR图像中产生多样化的视觉吸引力的tonemapped结果。

我们的主要贡献总结如下:

1)提出了一种基于深度学习的音调映射方法,该方法由一个边缘保留网和一个ToneCompressingNet组成。

2)通过整合bicclegan体系结构,本文提出的方法能够从单个HDR图像中生成不同的色调映射结果。

3)利用双边滤波器,在保持HDR图像高频信息的同时压缩了动态范围的大部分。

4)与现有方法相比,该方法的主观评价和客观评价均较好。

II. RELATED WORK

A. Tone mapping

在过去的二十年里,人们提出了许多声调映射算法。 根据算法的工作方式,它们可以大致分为全局方法和局部方法。 全局色调映射方法在HDR图像的每个像素上使用单一的色调映射曲线[10],[11],这往往会造成对比度和细节信息的损失。 相比之下,局部音调映射方法利用空间特性自适应地执行此任务[12]。 全局方法需要更少的计算时间,而局部方法生成更好的细节。 局部方法通常将图像分解为两个部分:平滑的基础层和细节层[13]。 在局部方法中,晕影通常发生在边缘周围。 局部色调映射算法主要是为了减少这些伪影而提出的。 Durand和Dorsey在[3]中提出了使用边缘保持的双边滤波器来进行色调映射,但是在一些图像中仍然存在晕影。 曼蒂克等人[7]提出了对比处理框架,但细节被过度增强。 法布曼等人[14]提出了一种使用加权最小二乘滤波器的多尺度方案。 梁等人[6]提出了混合L1-L0分解模型。

虽然前人的工作取得了很好的效果,但对于不同的图像,通常需要进行超参数调整以达到最佳的视觉质量和减少晕影伪影。 近年来,基于深度学习的方法被提出,不需要参数调整,利用强大的GPU大大缩短了计算时间。 帕特尔等人[15]使用生成对抗网络(GAN)[16]来执行音调映射。 但问题过于简单化,只能在256×256的小块上进行测试。 杨等人[8]应用带有跳过连接的自动编码器网络将HDR图像传输到LDR空间。 然而,它们未能在一般HDR图像上产生良好的结果。 拉纳等人[9]使用条件生成对抗网络(CGAN)[17]和多尺度方案对图像进行色调映射。 虽然结果获得了很高的TMQI[18]分数,但结果包含光环伪影。 在这项工作中,我们采用BycleGan[1]来允许我们的模型生成多个高质量的色调映射图像。 分解方案使我们的模型能够产生没有晕轮效应的有吸引力的结果。

B. Multimodal image-to-image translation

模式崩溃是CGAN[17]中的一个著名问题。 鲍等人[19]提出了CVAE-GAN,它将变分自动编码器与生成对抗网络相结合,生成现实和不同的结果。 朱等人[1]将CVAE-GaN和CLR-GaN[20]、[21]、[22]组合成双环算法,使编码器产生的潜在码具有可逆性,并显示出更好的性能。 杨等人[23]在生成器中提出了一个新的正则化项来解决这种模式崩溃问题。

III. METHOD

A. Learning-based Bilateral Filters

双边滤波[3]是最常见的调音算子之一。 该算子的核心思想是将HDR图像分解为基础层和细节层,分别代表HDR图像的大部分动态范围和高频信息。 然而,基础层和细节层通常是通过一些手工制作的边缘保持过滤器和压缩操作来分解的。 由于参数量大,调优这些过滤器和操作通常是困难和耗时的。

代替手工制作的过滤器和操作,我们提出了一个基于学习的方案,如图所示 2. 该方案包括两个网络:(a)EdgePreservingNet和(b)ToneCompressingNet。 为了避免伪影,我们将EdgePreservingNet设为核预测网络(KPN)[24]。 因此,给定输入的HDR图像在对数域,EdgePreservingNet生成卷积核来生成基图像。 接下来,通过从输入HDR图像中减去基本图像来获取细节图像。 为了提高图像的视觉质量,我们对细节图像进行了增强处理。 然后使用ToneCompressingNet(典型的Conv-FC网络)预测的全局色调曲线对基图像进行压缩。 最后,将压缩后的基础图像和增强后的细节图像相加,并进行后处理和颜色校正,得到输出的LDR图像。 图 3展示了一个分解图像的例子。

EdgePreservingNet和ToneCompressingNet是使用BycleGan框架联合训练的,这将在第三-C节中描述。 值得一提的是,在训练过程中向这些网络中输入各种随机潜在码Z,使它们能够生成各种LDR图像。 此外,在第III-D节将介绍一个潜在代码优化方案,以帮助用户找到合适的潜在代码。

B. Tone Mapping Operators

我们将U-Net[25]体系结构应用于EdgePreservingNet,它由一个带有跳过连接的编码器-解码器组成。 正如Gu等人所建议的那样[12]中,输入的HDR图像首先被变换到对数域,然后归一化到[0,1]以适应人类的感知。 EdgePreservingNet不是直接生成基图像,而是预测一个大小为h×w×k^2的像素级滤波器,其中k是核大小,h,w是图像的高度和宽度。 然后对每个像素WP处的预测核进行归一化

 

其中I被称为WP的每个元素。 图 4表明这种归一化对色调映射的性能至关重要。

因此,通过在对数域中对输入HDR图像IHDR应用卷积来给出基图像IBASE

 其中1p表示像素p的值为1,否则为0。 然后通过idetail=ihdr-ibase获得细节图像。

 

 ToneCompressingNet由一系列连续的卷积层和一些完全连接的层组成。该网络可以预测压缩速率γ基以及后处理γ后的程度。压缩后的基本图像由

 

 

 D. Latent Code Optimization

回忆一下,色调映射是一个主观的任务,也就是说,人们喜欢不同类型或风格的色调映射图像。虽然我们的方法允许用户通过调整潜码来改变样式,但是由于搜索空间非常大,要找到合适的样式仍然是一个很大的挑战。在测试阶段,我们提出了一种优化音调映射的代表性评估指标TMQI[18]的方案,以帮助用户过滤掉不合适的潜在码,而不是使用随机潜码。给定一个训练良好的音调映射算子,该算子具有固定的模型参数和初始潜码,然后使用Adam[30]优化器通过反向传播迭代优化潜码。一般来说,这个过程通过大约30次迭代收敛。在该方案中,用户只需从少数候选码中选择潜在码即可。请注意,TMQI和我们的模型都是可微的。

V. CONCLUSIONS

提出了一种新的基于深度学习的调音方法。 该方法在定性和定量上均优于现有的传统方法和基于学习的方法。 我们还提供了一个用户研究,使实验结果更有说服力。 此外,通过调整潜在代码,该方法可以产生多种专家级的音调映射结果。

至于未来的工作,使潜在的代码更易于解释和调整可能是一个可能的方向。

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

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

相关文章

elevation mapping学习笔记3之使用D435i相机离线或在线订阅点云和tf关系生成高程图

文章目录 0 引言1 数据1.1 D435i相机配置1.2 协方差位姿1.3 tf 关系2 离线demo2.1 yaml配置文件2.2 launch启动文件2.3 数据录制2.4 离线加载点云生成高程图3 在线demo3.1 launch启动文件3.2 CMakeLists.txt3.3 在线加载点云生成高程图0 引言 elevation mapping学习笔记1已经成…

TartanVO: A Generalizable Learning-based VO 论文阅读

论文信息 题目:TartanVO: A Generalizable Learning-based VO 作者:Wenshan Wang, Yaoyu Hu 来源:ICRL 时间:2021 代码地址:https://github.com/castacks/tartanvo Abstract 我们提出了第一个基于学习的视觉里程计&…

Grafana技术文档-概念-《十分钟扫盲》

Grafana官网链接 Grafana: The open observability platform | Grafana Labs 基本概念 Grafana是一个开源的度量分析和可视化套件,常用于对大量数据进行实时分析和可视化。以下是Grafana的基本概念: 数据源(Data Source)&#…

新一代开源流数据湖平台Apache Paimon入门实操-下

文章目录 实战写表插入和覆盖数据更新数据删除数据Merge Into 查询表批量查询时间旅行批量增量查询 流式查询时间旅行ConsumerID 查询优化 系统表表指定系统表分区表全局系统表维表 CDC集成MySQLKafka支持schema变更 实战 写表 插入和覆盖数据 可以使用INSERT语句向表中插入…

RISC-V公测平台发布:如何在SG2042上玩转OpenMPI

About HS-2 HS-2 RISC-V通用主板是澎峰科技与合作伙伴共同研发的一款专为开发者设计的标准mATX主板,它预装了澎峰科技为RISC-V高性能服务器定制开发的软件包,包括各种标准bencmark、支持V扩展的GCC编译器、计算库、中间件以及多种典型服务器应用程序。…

C语言内嵌汇编

反编译(二进制文件或者so库) objdump --help objdump -M intel -j .text -ld -C -S out > out.txt #显示源代码同时显示行号, 代码段反汇编-M intel 英特尔语法-M x86-64-C:将C符号名逆向解析-S 反汇编的同时,将反汇编代码和源代码交替显…

机器学习深度学习——非NVIDIA显卡怎么做深度学习(坑点排查)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——数值稳定性和模型化参数(详细数学推导) 📚订阅专栏:机器…

conda install 和pip install有什么区别?

本篇为分享贴,截图部分选自知乎,部分选自csdn,文字内容是结合自己实践进行总结。 环境引用的包在哪? 首先,一条命令: python -m site 这条命令可以定位引用的包在哪里 ,当然也可以自己设置默认…

JavaWeb(9)——前端综合案例3(悬停显示下拉列表)

一、实例需求 ⌛ 实现类似百度首页的“一个简单的鼠标悬停显示的下拉列表效果”。 二、代码实现 ☕ <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.dropdown-cont…

iframe 标签的作用是什么?用法是什么?属性有什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ iframe 标签是什么&#xff1f;⭐ iframe 标签的作用什么&#xff1f;⭐ iframe 标签的用法⭐ iframe 标签的属性⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你…

【单片机】51单片机,TLC2543,驱动程序,读取adc

TLC2543 是一款 12 位精密模数转换器 (ADC)。 1~9、11、12——AIN0&#xff5e;AIN10为模拟输入端&#xff1b; 15——CS 为片选端&#xff1b; 17——DIN 为串行数据输入端&#xff1b;&#xff08;控制字输入端&#xff0c;用于选择转换及输出数据格式&#xff09; 16——…

机器学习复习题

1 单选题 ID3算法、C4.5算法、CART算法都是&#xff08; &#xff09;研究方向的算法。 A . 决策树 B. 随机森林 C. 人工神经网络 D. 贝叶斯学习 参考答案&#xff1a;A &#xff08; &#xff09;作为机器学习重要算法之一&#xff0c;是一种利用多个树分类器进行分类和预测…

chatGPT能力培训,客户最关注的99个方向

前言&#xff1a; chatGPT的主要应用&#xff0c;包括文本生成、图像生成和图文关联三大核心方向&#xff1a; 用户的在实际的工作和学习过程中&#xff0c;最关心的内容&#xff0c;可以按照上述类别进行划分&#xff0c;我们总结了&#xff0c;相关的插头GPT能力培训的相关主…

DAY04_SpringMVC—SpringMVC简介PostMan和ApiFox工具使用SpringMVC请求与响应REST风格

目录 一 SpringMVC简介1 SpringMVC概述问题导入1.1 SpringMVC概述 2 入门案例问题导入2.0 回顾Servlet技术开发web程序流程2.1 使用SpringMVC技术开发web程序流程2.2 代码实现【第一步】创建web工程&#xff08;Maven结构&#xff09;【第二步】设置tomcat服务器&#xff0c;加…

【iOS安全】开启任意app的WebView远程调试

参考&#xff1a;https://mp.weixin.qq.com/s/bNKxQaVrPaXsZ5BPbsXy7w &#xff08;来自周智老师的公众号&#xff09; 概述 Safari 有一个内置的前端调试器&#xff0c; 在iPhone通过局域网或者USB连接MacBook 并启用Safari 远程调试之后&#xff0c;前端调试器默认情况下对…

构建Docker容器监控系统 (1)(Cadvisor +InfluxDB+Grafana)

目录 Cadvisor InfluxDBGrafana 1. Cadvisor 2.InfluxDB 3.Grafana 开始部署&#xff1a; 下载组件镜像 创建自定义网络 创建influxdb容器 创建数据库和数据库用户 创建Cadvisor 容器 准备测试镜像 创建granafa容器 访问granfana 添加数据源 Add data source 新建 …

java.sql.SQLFeatureNotSupportedException 问题及可能的解决方法

目录 问题 分析&#xff1a; 解决方法 问题 java.sql.SQLFeatureNotSupportedException 分析&#xff1a; 可能是你的 druid的maven依赖版本太低了&#xff0c;我的以前是1.1.16&#xff0c;就出现了异常&#xff01; 解决方法 把druid的maven依赖版本调高&#xff01; 运…

unity海康威视原生SDK拉取网络摄像头画面,并展示在一个Material上

原理是使用sdk获取视频流&#xff0c;格式为YUV&#xff0c;然后分离YUV通道到三张不同的Texture2D上&#xff0c;通过shader将三个通道重新输出为原始图像。 我将所用的各个部分已经整理成一个压缩包&#xff0c;免积分下载 压缩包结构如下 使用步骤 1 DLL:放在Plugins文件…

湘大oj1138爱你一生一世题解:最大公约数 逆向思维 int整除会向下取整

一、链接 爱你一生一世 二、题目 题目描述 在2013年1月4日&#xff0c;这个“爱你一生一世”的特别日子&#xff0c;男生都想向自己的喜欢的女生表达爱意。 你准备在该死的C语言考试后&#xff0c;去向她&#xff08;或者他&#xff1f;&#xff09;告白。告白怎么能缺了礼…

渗透攻击方法:原型链污染

目录 一、什么是原型链 1、原型对象 2、prototype属性 3、原型链 1、显示原型 2、隐式原型 3、原型链 4、constructor属性 二、原型链污染重现 实例 Nodejs沙箱逃逸 1、什么是沙箱&#xff08;sandbox&#xff09; 2、vm模块 一、什么是原型链 1、原型对象 JavaS…