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} ,因此它可以表示为:

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第1张图片

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

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第2张图片

3.2 Deriving the Loss

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第3张图片

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第4张图片

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第5张图片

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第6张图片

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第7张图片

3.3 Implementation Details

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第8张图片

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第9张图片

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

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第10张图片

4 BACK-LIT IMAGE RESTORATION USING EXCNET

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第11张图片

Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning_第12张图片

值得一提的是,我们在实现中还考虑了细节保留。我们首先使用引导滤波器[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 的无监督背光图像恢复方法。

你可能感兴趣的:(paper,人工智能)