Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning

ABSTRACT

如何恢复背光图像仍然是一项具有挑战性的任务。该领域最先进的方法基于监督学习,因此通常仅限于特定的训练数据。在本文中,我们提出了一种用于背光图像恢复的“零样本”方案,该方案利用深度学习的力量,但不依赖于任何先前的图像示例或先前的训练。具体来说,我们在测试时训练一个小型图像特定 CNN,即 ExCNet(曝光校正网络的缩写),以估计最适合测试背光图像的“S 曲线”。一旦估计出S曲线,就可以直接恢复测试图像。 ExCNet 可以适应每个图像的不同设置。这使得我们的方法广泛适用于不同的拍摄场景和各种背光条件。对 1512 个真实背光图像进行的统计研究表明,我们的方法可以大幅优于竞争对手。据我们所知,我们的方案是第一个基于 CNN 的无监督背光图像恢复方法。为了使结果可重现,源代码可从 https://cslinzhang.github.io/ExCNet/ 获取。

1 INTRODUCTION

拍摄图像时,最令人讨厌的不良照明条件之一是背光。尽管大多数现代成像传感器可以根据拍摄目标的光照条件自动调整相关硬件参数(如光圈、快门速度和电子增益[24]),但在大多数逆光条件下仍然无法获得满意的结果案例。解决这个问题的一种可能方法是使用 HDR(高动态范围)成像技术 [5]。然而,HDR只能用于逆光下的图像采集,无法帮助恢复现有的劣质逆光图像。

在这项工作中,我们研究了背光图像恢复问题,并引入了一种“零样本”方案,即 ExCNet(曝光校正网络的缩写)。 “零样本”是指 ExCNet 不需要事先训练。 ExCNet 是一种专门设计的 CNN(卷积神经网络),可以直接估计给定背光图像的最佳拟合 S 曲线 [2, 28]。通过其S曲线,可以相应地恢复背光图像。在图 1 中,我们展示了 4 个典型的背光图像以及 ExCNet 的恢复结果。可以看出,所提出的方法对于恢复质量较差的背光图像具有很强的能力。

1.1 Related Work

实际上,可以探索传统的图像增强方法[8,13,19,21,30]来增强背光图像,但在大多数情况下其效果相当有限。还有一些专门为恢复背光图像而设计的启发式方法。在[22]中,Safonov 提出了一种基于对比度拉伸和初始图像亮度的 alpha 混合以及反射率估计的方法。在[25]中,Tsai和Yeh首先通过简单的亮度通道阈值检测背光区域,然后线性拉伸检测到的背光区域。李等人[15]通过引入四叉树生长和引导过滤来完善Tsai和Yeh的想法[11]。在[12]中,Im等人的方法首先使用暗通道先验[10]提取曝光不足的区域,然后执行空间自适应对比度增强。在[28]中,Yuan和Sun通过基于区域的区域级最佳曝光评估来估计图像特定的S曲线。他们将最佳区域估计表述为图标记问题,并通过强力搜索策略来解决它。后来,作者将他们的工作扩展到纠正曝光不良的视频序列 [6]。

背光图像恢复方法的另一个分支是基于机器学习理论。在[4]中,戴尔等人首先建立了一个包含100万张图像的数据库。给定要恢复的输入图像,他们的系统执行视觉搜索以查找数据库中最接近的图像;这些图像定义了输入的视觉上下文,可以进一步利用它来实例化恢复操作。在[14]中,Kang等人构建了一个数据库,其中存储描述训练图像的特征向量以及增强参数的向量。给定测试图像,然后在数据库中搜索最佳匹配图像,并使用相应的增强参数来执行增强。遵循 Kang 等人的想法 [14],Bychkovsky 等人[1] 构建了一个包含 5000 个示例输入输出图像对的数据集,可用于学习全局色调调整。在[16]中,Li和Wu提出了一种两阶段管道,它对背光和前光区域执行对象引导分割,然后进行空间自适应色调映射。

1.2 Our Motivations and Contributions

我们发现使用机器学习工具来解决背光图像恢复问题是最近的趋势,也是一个有前途的方向。然而,应该注意的是,该领域现有的解决方案[1,3,4,14,16,27]都是基于监督学习框架,因此它们的性能高度依赖于训练数据集。事实上,对于背光图像恢复问题,如何收集足够有效的训练数据本身就是一项具有挑战性的任务。因此,这些基于监督学习的方案通常在满足训练条件的测试图像上表现良好;相反,一旦这些条件不满足,它们的性能就会显着恶化。这促使我们思考:是否可以从逆光图像中学习曝光校正模型来恢复自身?如果“是”,学习的模型将是特定于图像的,并且该方法本身可以适应未见过图像的不同设置。实际上,仅从测试图像本身学习恢复模型的想法在图像超分辨率领域已被证明是可行的[23]。在[23]中,Shocher 等人提出了一种超分辨率模型,这是一种特定于图像的 CNN,仅在从低分辨率测试图像中提取的内部示例上进行训练。在处理现实世界的低分辨率图像时,Shocher 等人的方法大大优于其竞争对手。

因此,在本文中,受 Shocher 等人在超分辨率领域工作成功的启发,提出了一种用于背光图像恢复的“零样本”方案。 “零样本”一词是从识别领域借用的,这里用来强调我们的方法不需要事先的图像示例或事先的训练。我们的主要贡献总结如下。

(1)我们方法的核心是一个专门设计的CNN,即ExCNet(曝光校正网络)。给定测试背光图像 I,ExCNet 可以在有限的迭代时间内估计最适合 I 的参数“S 曲线”。凭借它的S曲线,I可以直接恢复。据我们所知,我们的工作是第一个自动校正图像曝光的无监督学习框架。它可以轻松应用于不同曝光级别下各种内容的图像。

(2)在设计ExCNet时,一个关键问题是如何设计一个可以评估图像曝光不良程度的损失函数。为此,在MRF(马尔可夫随机场)[17]公式的推动下,我们设计了一种基于块的损失函数,该函数倾向于最大化所有块的可见性,同时保持相邻块之间的相对差异。实验表明,设计的损失函数可以指导ExCNet获得高视觉质量的恢复结果。当多种竞争方法的结果呈现在他们面前时,人们更倾向于选择我们方法的输出。

(3)由于ExCNet的CNN结构,我们的方法可以学习图像与其最佳“S曲线”参数之间的映射关系。因此,随着处理图像的增加,ExCNet在面对未见过的图像时需要更少的迭代次数来收敛到优化曲线。此外,在处理视频流时,后续帧的校正可以由先前帧的参数来指导,这不会导致像[28]那样的明显的闪烁伪影,并且计算成本相对较低。

2 S-CURVE

大多数摄影师经常使用S形非线性曲线,即S曲线,通过照片编辑软件手动调整照片中阴影/中调/高光区域的曝光度[2]。 S 曲线可以将输入电平映射到所需的输出电平。典型的S曲线图如图2所示。图的横轴代表原始图像值,纵轴代表新的调整值。调整图像时,图表的右上区域代表高光,左下区域代表阴影。

正如[28]中所建议的,S曲线可以简单地用两个参数来参数化,即阴影量 \phi _{s}和高光量 \phi _{h} ,因此它可以表示为:

3 EXCNET: AN UNSUPERVISED CNN-BASED APPROACH TO ESTIMATE THE S-CURVE

这里详细介绍了我们提出的背光图像恢复方法 ExCNet。 ExCNet实际上是一个CNN,旨在从输入图像I的亮度通道I_{l}估计最佳S曲线。利用估计的S曲线,可以相应地恢复I。 ExCNet的结构如图3所示。为了更好地理解它,ExCNet的每次训练迭代在概念上可以被认为有两个阶段,使用中间S曲线调整I_{l}并导出损失。这两个阶段的详细内容将在 3.1 和3.2节给出。实施细节将在3.3给出。

3.1 Adjusting I_{l} Using the Intermediate S-curve

3.2 Deriving the Loss

3.3 Implementation Details

ExCNet 可以被认为是一种无监督学习方法。也就是说,在处理一些图像后,ExCNet可以逐步学习捕获图像色调信息的能力。当处理即将到来的图像时,这种预先训练的 ExCNet 的收敛速度比随机初始化的对应图像快得多。因此,在我们的实现中,我们准备了 50 张背光图像并使用 ExCNet 来估计它们的最佳 S 曲线。最终权重被保存并用于随后处理新图像时初始化 ExCNet。

4 BACK-LIT IMAGE RESTORATION USING EXCNET

值得一提的是,我们在实现中还考虑了细节保留。我们首先使用引导滤波器[11]将每个输入图像分离为基础层和细节层,然后使用估计的S曲线来调整基础层。最后,我们采用韦伯对比度[26]来融合细节层和调整后的基础层。

我们的硬件平台是一个配备 3.0GHZ Intel Core i7-5960X CPU 和 Nvidia Titan X GPU 卡的工作站。该方法使用Python和TensorFlow实现。我们的方法处理一张 4032 × 3024 图像大约需要 1.0 秒。

5 EXPERIMENTAL RESULTS

6 CONCLUSION

背光图像修复具有重要的实际意义,但尚未得到很好的解决。本文提出了一种“零样本”背光图像恢复方案,该方案利用深度学习的力量,无需依赖任何外部示例或事先训练。这是通过一个小型的特定于图像的 CNN(即 ExCNet)实现的,它通过最小化在中间恢复结果上定义的基于块的损失函数来指导恢复进度。所提出的方案简洁而强大。它非常稳健,因此可以在不同类型的照明条件下产生令人满意的结果。综合进行了主观和客观评估,以证实所提出的方法相对于其他主流竞争对手的优越性。据我们所知,这是第一个基于 CNN 的无监督背光图像恢复方法。

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

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

相关文章

好工具|datamap,一个好用的地图可视化Excel插件,在Excel中实现地理编码、拾取坐标

在做VRP相关研究的时候,需要对地图数据做很多处理,比如地理编码,根据“重庆市沙坪坝区沙正街174号”这样的一个文本地址知道他的经纬度;再比如绘制一些散点图,根据某个位置的经纬度在地图上把它标注出来。还有有的时候…

标签打印机打印标签时出现,数据处理过程中错误 无法设置项目 图片1的内容无法打印

环境: Win10专业版 NiceLabel Designer 10.1 问题描述: 标签打印机打印标签时出现,数据处理过程中错误 无法设置项目 图片1的内容无法打印 解决方案: 1.删除标签部分文字打印测试 还是一样(未解决) …

数字逻辑电路基础-时序逻辑电路之触发器

文章目录 一、D触发器二、verilog源码三、综合及仿真结果一、D触发器 本文介绍数字逻辑电路中常用的基础时序逻辑电路触发器。它有记忆和存储信息功能,触发器是边沿触发电路。 下图是触发器常用表示方式(时钟上升沿有效): 触发器由两个锁存器组成,前级是主锁存器,后级…

python爬取天气数据并做可视化分析

数据采集逻辑 数据schema 历史天气数据schema { ‘当日信息’:2023-01-01 星期日, 最高气温: 8℃, 最低气温: 5℃, ‘天气’: 多云, 风向信息:北风 3级 } 数据爬取 1.导入库 import numpy as np import pandas as pd import requests from bs4 import BeautifulSoup…

什么是指针碰撞

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…

postgresql数据库中update使用的坑

简介 在数据库中进行增删改查比较常见,经常会用到update的使用。但是在近期发现update在oracle和postgresql使用却有一些隐形区别,oracle 在执行update语句的时候set 后面必须跟着1对1的数据关联而postgresql数据库却可以一对多,这就导致数据…

LabVIEW中如何达到NI SMU最大采样率

LabVIEW中如何达到NI SMU最大采样率 NISMU的数字化仪功能对于捕获SMU详细的瞬态响应特性或表征待测设备(DUT)响应(例如线性调整率和负载调整率)至关重要。没有此功能,将需要一个外部示波器。 例如,假设在…

vite项目配置vite.config.ts在打包过程中去除日志

在生产环境上,务必要将日志清除干净,其因有二,在webgis系统中,有很多几何数据,体积大、数量多,很容易引起系统卡顿;清除log后,系统看着舒服,协同开发有很多无聊的日志&am…

C++基础入门(超详细)

话不多说,序言搞起来: 自从开始学老师布置的任务后,目前还是OpenCV,哈~哈。我就莫名问老师:“以后编程是用C还是python?”,果然还是太年轻,老师说:“两们都要精通”。唉&…

在C语言中\t的作用

\t为转义字符。转义字符是一种特殊的字符常量。以反斜线"\"开头,后跟字符。具有特定的含义,不同于字符原有的含义,故称“转义”字符。 【\t】是水平制表符,作用为补全前面字符串的位数到8的整数倍。若\t前面没有字符/字…

解决mv3版本浏览器插件,不能注入js脚本问题

文章目录 背景引入ifream解决ifream和父页面完全跨域问题参考链接 背景 浏览器插件升级mv3版本后,不能再使用content_script内容脚本向原浏览器(top)注入script标签达到注入脚本的目的。浏览器认为插入未经审核的脚本是不安全的行为。 引入…