Abstract
用错误的曝光捕捉照片仍然是相机成像的主要错误来源。曝光问题可分为以下两类:(i)曝光过度,即相机曝光时间过长,导致图像区域明亮和褪色;(ii)曝光不足,即曝光时间过短,导致图像区域变暗。曝光不足和曝光过度都会大大降低图像的对比度和视觉吸引力。先前的工作主要集中在曝光不足的图像或一般图像增强。相比之下,我们提出的方法针对照片中的过度曝光和曝光不足错误。我们将曝光校正问题表述为两个主要子问题:(i)色彩增强和(ii)细节增强。因此,我们提出了一个从粗到精的深度神经网络(DNN)模型,可以端到端训练,分别解决每个子问题。我们的解决方案的一个关键方面是一个超过24,000张图像的新数据集,展示了迄今为止最广泛的曝光值范围和相应的正确曝光图像。我们的方法在曝光不足的图像上取得了与现有最先进的方法相当的结果,并且对遭受过度曝光错误的图像产生了显着改善。
1. Introduction
拍摄时使用的曝光直接影响最终渲染照片的整体亮度。数码相机使用三个主要因素来控制曝光:(i)捕捉快门速度,(ii) f值,即焦距与相机光圈直径的比率,以及(iii)控制接收像素信号放大系数的ISO值。在摄影中,曝光设置由曝光值(EV)表示,其中每个EV指的是产生相同曝光效果的相机快门速度和f值的不同组合,在摄影中也被称为“等效曝光”。
数码相机可以调整所摄图像的曝光值,以达到改变亮度水平的目的。这种调整可以由用户手动控制,也可以在自动曝光(AE)模式下自动进行。当使用AE时,相机调整EV以补偿拍摄场景中的低/高亮度,使用通过镜头(TTL)测光来测量从场景接收的光量[49]。曝光错误可能由以下几个因素引起,例如TTL测光测量错误、强光条件(例如,非常低的照明和背光)、场景亮度水平的剧烈变化以及用户在手动模式下的错误。这种曝光误差是在拍摄过程的早期引入的,因此在渲染最终的8位图像后很难纠正。这是由于相机图像信号处理器(ISP)在渲染最终的8位标准RGB (sRGB)图像[31]时应用了高度非线性的操作。
图显示了带有曝光误差的图像的典型例子。在图1中,曝光误差导致最终渲染图像中要么由于过度曝光导致图像区域非常亮,要么由于曝光不足导致图像区域非常暗。即使对于完善的图像增强软件包,纠正具有此类错误的图像也是一项具有挑战性的任务,参见图。虽然曝光过曝和曝光不足都是摄影中常见的错误,但大多数先前的工作主要集中在纠正曝光不足错误[23,56,58,65,66]或一般的图像质量增强[11,18]。
我们提出了一种从粗到精的深度学习方法,用于过度曝光和曝光不足的sRGB图像的曝光误差校正。我们的方法将曝光校正问题表述为两个主要的子问题:(i)颜色和(ii)细节增强。我们提出了一个从粗到细的深度神经网络(DNN)模型,可以端到端方式进行训练,该模型首先校正全局颜色信息,然后细化图像细节。除了我们的DNN模型之外,曝光校正问题的一个关键贡献是一个包含超过24,000张图像的新数据集1,这些图像从原始rgb渲染到sRGB,具有不同的曝光设置,曝光范围比以前的数据集更广。我们数据集中的每张图像都提供了相应的适当曝光的参考图像。最后,我们提出了一套广泛的评估和消融我们提出的方法与比较的艺术状态。我们证明,我们的方法达到了与以前的方法相当的结果,致力于曝光不足的图像和产生显着改善曝光过度的图像。此外,我们的模型可以很好地泛化到数据集之外的图像。
2. Related Work
我们的论文的重点是校正相机渲染的8位sRGB图像中的曝光误差。我们请读者参考[9,24,25,38],以获得渲染在低光或曝光误差下捕获的线性原始RGB图像的代表性示例。
曝光校正曝光校正和对比度增强的传统方法依赖于图像直方图来调整图像强度值[8,19,36,50,69]。或者,使用色调曲线调整来校正具有曝光误差的图像。该过程仅依赖于输入图像信息[63]或训练的深度学习模型[21,46,48,62]来执行。大多数先前的工作采用Retinex理论[34],假设曝光不当的图像可以用公式表示为目标图像的逐像素乘法,用正确的曝光设置捕获,通过照明图。因此,这些方法的目标是预测照明图以恢复曝光良好的目标图像。代表性的基于Retinex的方法包括[23,29,34,44,57,64,65]和最新的深度学习方法[56,58,66]。然而,这些方法中的大多数仅限于纠正欠显误差[23,56,58 - 60,65,66,68]。与之前的大多数工作相比,我们的工作是第一个使用单个模型明确纠正曝光过度和曝光不足照片的深度学习方法。
HDR 恢复和图像增强 HDR 恢复是从一幅或多幅低动态范围 (LDR) 输入图像重建场景辐射度 HDR 值的过程。 先前的工作要么需要访问多个 LDR 图像 [16, 30, 43],要么使用单个 LDR 输入图像,通过幻觉缺失信息将其转换为 HDR 图像 [15, 47]。 最终,这些重建的 HDR 图像被映射回 LDR 以进行感知可视化。 这种映射可以直接从输入多 LDR 图像 [7,13]、重建的 HDR 图像 [61] 执行,或者直接从单输入 LDR 图像执行,无需辐射 HDR 重建 [11, 18]。 还有一些专注于一般图像增强的方法,可用于增强曝光不良的图像。 特别是,[26, 27] 的工作主要是为了通过将捕获的图像映射为 DSLR 捕获的高质量图像来增强智能手机相机捕获的图像。 我们的工作并不寻求重建 HDR 图像或一般增强,而是经过训练以明确解决曝光错误。
配对数据集配对数据集对于图像增强任务的监督学习至关重要。 现有的曝光校正配对数据集仅关注低光曝光不足的图像。 代表性的例子包括 Wang 等人的数据集 [56] 和低光(LOL)配对数据集 [58]。 与现有的曝光校正数据集不同,我们引入了一个使用各种曝光错误渲染的大型图像数据集。 图 2 显示了我们的数据集和 LOL 数据集在图像数量和每个数据集中的曝光错误种类方面的比较。 与我们介绍的数据集相比,LOL 数据集涵盖了可能暴露水平的相对较小的一部分。 我们的数据集基于 MIT-Adobe FiveK 数据集 [6],并通过调整相机传感器原始 RGB 图像中提供的高色调值来准确渲染,以真实地模拟相机曝光错误。 另一种值得注意的方法是使用大型 HDR 数据集来生成训练数据,例如 Google HDR+ 数据集 [24]。 然而,一个缺点是该数据集是由不同数量的智能手机捕获的原始 RGB 图像组成的,这些图像首先与复合原始 RGB 图像对齐。 目标地面真实图像基于应用于该复合原始 RGB 图像的 HDR 到 LDR 算法 [18,24]。 我们选择使用 FiveK 数据集,因为它从单个高质量原始 RGB 图像开始,并且地面真实结果由专业摄影师生成。
3. Our Dataset
为了训练我们的模型,我们需要大量渲染有真实的过度曝光和曝光不足错误的训练图像以及相应的正确曝光的地面实况图像。 正如第 2 节中所讨论的。 2、目前此类数据集尚未公开以支持曝光校正研究。 因此,我们的首要任务是创建一个新的数据集。 我们的数据集是从 MIT-Adobe FiveK 数据集 [6] 渲染的,该数据集包含 5,000 个原始 RGB 图像以及由五位专业摄影师手动渲染的相应 sRGB 图像 [6]。 对于每个原始 RGB 图像,我们使用 Adobe Camera Raw SDK [1] 来模拟相机 [53] 应用的不同 EV。 Adobe Camera Raw 使用每个 DNG Raw 文件中嵌入的元数据准确模拟非线性相机渲染过程 [2, 53]。 我们使用不同的数字 EV 渲染每个原始 RGB 图像,以模拟真实的曝光错误。 具体来说,我们使用相对 EV -1.5、-1、+0、+1 和 +1.5 分别渲染具有曝光不足错误、原始 EV 零增益和过度曝光错误的图像。 零增益相对 EV 相当于拍摄期间相机上应用的原始曝光设置。
作为地面实况图像,我们使用由专家摄影师(在[6]中称为专家C)手动修饰的图像作为我们的目标正确曝光图像,而不是使用相对EV为+0的渲染图像。 这种选择背后的原因是,大量图像在原始曝光捕捉设置中包含背光或部分曝光错误。 专家调整的图像是在 ProPhoto RGB 色彩空间 [6](而不是原始 RGB)中执行的,我们将其转换为标准 8 位 sRGB 色彩空间编码。 我们的数据集总共包含 24,330 张具有不同数字曝光设置的 8 位 sRGB 图像。 我们丢弃了少量与其相应的地面真实图像不一致的图像。 这些错位是由于 Adobe Camera Raw SDK 和专家对 DNG 裁剪区域元数据的不同使用造成的。 我们的数据集分为三组:(i) 17,675 张图像的训练集,(ii) 750 张图像的验证集,以及 (iii) 5,905 张图像的测试集。 训练、验证和测试集不共享任何共同场景。 图 2 显示了我们生成的 8 位 sRGB 图像和相应的正确曝光的 8 位 sRGB 参考图像的示例。
4. Our Method
给定一个 8 位 sRGB 输入图像 I,使用不正确的曝光设置渲染,我们的方法旨在生成一个输出图像 Y,其曝光错误比 I 中的曝光错误更少。当我们同时针对曝光过度和曝光不足错误时,我们的方法的目标 输入图像 I 预计包含接近过饱和或欠饱和值的区域,且颜色和细节信息已损坏。 我们建议按顺序纠正 I 的颜色和细节错误。 具体来说,我们处理 I 的多分辨率表示,而不是直接处理 I 的原始形式。我们使用拉普拉斯金字塔 [4] 作为我们的多分辨率分解,它源自 I 的高斯金字塔 [5]。
4.1. Coarse-to-Fine Exposure Correction
令 X 表示 I 的 n 层拉普拉斯金字塔,使得 X(l) 是 X 的第 l 层。该金字塔的最后一层(即 X(n))捕获 I 的低频信息,而第一层捕获 I 的低频信息。 level(即 X(1))捕获高频信息。 这些频率级别可以分为:(i)存储在低频级别中的I的全局颜色信息和(ii)存储在中高频级别中的图像从粗到细的细节。 这些级别稍后可用于重建全色图像 I。
图3激发了我们从粗到精的曝光校正方法。图3-(A)和(B)分别显示了一个示例过曝图像及其相应的曝光良好的目标。可以看出,在拉普拉斯金字塔重建过程中,仅使用目标图像的低频层(即全局颜色信息)即可获得显著的曝光校正,如图图-(C)所示。然后,我们可以通过纠正拉普拉斯金字塔的每个层次,以顺序的方式增强细节,从而改善最终图像,如图图-(D)所示。实际上,在推理阶段,我们无法访问图-(B)中正确曝光的图像,因此我们的目标是预测拉普拉斯金字塔中每一层缺失的颜色/细节信息。
受这一观察结果和其他各种计算机视觉任务(例如[14,33,41,54])的粗精架构的成功启发,我们设计了一个DNN,该DNN使用拉普拉斯金字塔分解以顺序的方式校正I的全局颜色和细节信息。本节的其余部分解释了我们模型的技术细节(第4.2节),包括损失(第4.3节)、推理阶段(第4.4节)和训练(第4.5节)的细节。
4.2. Coarse-to-Fine Network
我们的图像曝光校正架构顺序地处理输入图像I的n级拉普拉斯金字塔X,以产生最终的校正图像Y。该模型由n个子网络组成。这些子网络中的每一个都是一个类似于U网的架构[52],具有不受约束的权重。我们基于每个子问题(即,全局颜色校正和细节增强)有助于我们的最终结果。图4提供了我们网络的概述。如图所示,我们的架构中最大的(就权重而言)子网络专用于处理I中的全局颜色信息(即,X(n))。该子网络(图4中黄色所示)处理低频电平X(n)并产生放大图像Y(n)。放大过程使用具有可训练权重的跨步转置卷积将我们的子网络的输出放大两倍。接下来,我们将第一个中频电平X(n−1)添加到Y(n),由模型中的第二个子网处理。这个子网络增强了当前层的相应细节,并产生一个残差层,然后将其添加到Y(n)+X(n-1)以重建图像Y(n-1),这相当于相应的高斯金字塔层n-1。该细化上采样过程继续进行,直到产生最终输出图像Y。我们的网络是完全可区分的,因此可以以端到端的方式进行训练。补充材料中提供了我们网络的其他详细信息。
4.3. Losses
我们对模型进行端到端训练,以最小化以下损失函数:
Pyramid Loss 为了引导每个子网络遵循拉普拉斯金字塔重建程序,我们在每个金字塔级别引入了专门的损失。令T(l)表示参考图像T的高斯金字塔的第l层,经过二倍的上采样。我们使用简单的插值过程进行上采样操作[43]。我们的金字塔损失计算如下:
其中hl和wl分别是训练图像的拉普拉斯金字塔中的第l级的高度和宽度的两倍,并且p分别是在第l级Y(l)处的我们的校正图像和在相同级T(l)处的适当曝光的参考图像中的每个像素的索引。金字塔损失不仅给出了每个子网络任务的原则性解释,而且与仅使用重建损失的训练相比,还导致更少的视觉伪影,如图5所示。请注意,如果没有中间金字塔损失,与使用每个尺度的金字塔损失相比,图5(顶部)所示的每个子网络的输出与中间高斯目标偏离很大,如图5(底部)所示。我们在补充材料中通过消融研究提供了该损失的支持性依据。
Adversarial Loss
为了在感知上增强校正图像输出的重建的真实性和吸引力,我们还考虑将对抗性损失作为正则化器。这个对抗性损失项可以用下面的等式[20]来描述:
其中 S 是 sigmoid 函数,D 是与我们的主网络一起训练的判别器 DNN。 我们在补充材料中提供了鉴别器网络的详细信息以及使用非对抗性和对抗性训练的结果之间的视觉比较。
4.4. Inference Stage
我们的网络是完全卷积的,可以处理不同分辨率的输入图像。 虽然我们的模型需要合理的内存大小(∼7M 参数),但处理高分辨率图像需要高计算能力,而这可能并不总是可用。 此外,处理比训练过程中使用的分辨率范围高得多的分辨率(例如 16 兆像素)的图像可能会影响我们的模型对大的均匀图像区域的鲁棒性。 出现这个问题的原因是我们的网络是在一定范围的有效感受野上进行训练的,与高分辨率图像所需的感受野相比,该范围非常低。 为此,我们使用双边引导上采样方法[10]来处理高分辨率图像。 首先,我们调整输入测试图像的大小,使其最大尺寸为 512 像素。 然后,我们使用我们的模型处理输入图像的下采样版本,然后应用快速上采样技术 [10] 和 22×22×8 单元的双边网格。 这个过程使我们能够在平均 4.5 秒内处理 16 兆像素的图像。 该时间包括在 NVIDIA GeForce GTX 1080TM GPU 上运行我们的网络所需的 0.5 秒,以及在 Intel Xeon E5-1607 @ 3.10 GHz 机器上运行网络的 4 秒,用于引导上采样过程。 请注意,使用 Halide 实现 [51] 可以显着改善引导上采样步骤的运行时间。
4.5. Training Details
在我们的实现中,我们使用具有四个级别(即 n = 4)的拉普拉斯金字塔,因此我们的模型中有四个子网络 - 一项消融研究,评估对拉普拉斯级别数量的影响,包括与普通模型的比较 U-Net 架构在补充材料中介绍。 我们在从不同维度的训练图像中随机提取的补丁上训练我们的模型。 我们首先在 128×128 像素大小的块上进行训练。 接下来,我们继续在 256×256 个 patch 上进行训练,然后在 512×512 个 patch 上进行训练。 我们使用 Adam 优化器 [32] 来最小化方程式中的损失函数。 1. 受之前工作 [40] 的启发,我们最初在没有对抗性损失项 Ladv 的情况下进行训练,以加速主网络的收敛。 收敛后,我们添加对抗性损失项 Ladv 并微调我们的网络以增强我们的初始结果。 补充材料中提供了其他培训详细信息。
5. Empirical Evaluation
6. Concluding Remarks
我们提出了一种从粗到精的深度学习模型,用于曝光过度和曝光不足的图像校正。 我们采用拉普拉斯金字塔分解来处理不同频段的输入图像。 我们的方法旨在以多尺度方式顺序校正每个拉普拉斯金字塔级别,从图像中的全局颜色开始并逐步解决图像细节。 我们的方法由包含超过 24,000 张图像的新数据集启用,这些图像使用迄今为止最广泛的曝光错误进行渲染。 我们引入的数据集中的每个图像都有一个由训练有素的摄影师通过良好的曝光补偿正确渲染的参考图像。 通过广泛的评估,我们表明,与校正曝光错误渲染的图像的可用解决方案相比,我们的方法产生了令人信服的结果,并且它具有良好的概括性。 我们相信我们的数据集将有助于未来改进照片曝光校正的工作。