我们研究自动校正输入图像曝光的问题。通用自动曝光校正方法通常在个别曝光过度/曝光不足的区域失败。交互式校正可能会解决这个问题,但调整每张照片都需要技巧和时间。本文将通过估计最适合输入图像的图像特定 S 形非线性色调曲线来自动化交互式校正技术。我们的第一个贡献是一个新的基于区域的区域级最佳曝光评估,它将考虑各个区域的可见性和区域之间的相对对比度。然后根据最佳曝光应用保留细节的 S 曲线调整以获得最终输出。我们表明,与流行的图像编辑工具和其他自动方法相比,我们的方法可以实现更好的校正。
曝光是决定照片质量的最重要因素之一。在曝光过度或曝光不足的区域,细节会丢失,颜色也会褪色。尽管相机配备了先进的测光技术,但拍摄曝光良好的照片对于普通用户来说仍然是一个挑战。原因有几个:1)相机的测光(例如点测光、中央重点测光、平均测光或多区域测光)不完善。如果测光点/区域未针对被摄体或存在多个被摄体,则测光可能会失败。图1(a)是背光引起的故障案例; 2)由于世界的反射率复杂,拍摄对象的中间色调为灰色的假设有时是无效的(例如,在没有曝光补偿的情况下,一只雪白的兔子经常被捕捉为不受欢迎的灰兔子); 3)相机内的后处理能力有限,尤其是低端相机。
为了解决这个问题,一些自动方法如自动水平拉伸[1]和直方图均衡[1]被提出来校正曝光。例如,自动调平拉伸将亮度线性映射到最大色调范围(例如,[0, 255])。然而,该方法仅使用整个图像的统计数据,而没有单独考虑每个图像区域。对于图1中的背光情况,自动水平拉伸不起作用(见图1(b)),因为图像直方图已达到最大色调范围(图1(a)的左上角)。直方图均衡 [1](及其变体 [2])可以更好地将强度值分布在直方图上。不幸的是,它会在照片中产生不切实际的效果(见图1(c))。
如果允许用户帮助,交互式校正方法会更有效。例如,大多数照片编辑软件允许用户手动调整非线性色调曲线 [3](例如 S 曲线)以分别校正暗/中色调/亮区域。图1(d)是专家的辅助结果。但曲线的最佳形状因图像而异。对于普通消费者来说,修饰每一张图像是不切实际的。
在本文中,我们提出了一种自动曝光校正方法,可以估计给定图像的最佳图像特定非线性色调曲线(在我们的例子中为 S 曲线)。与[4]不同,我们不需要训练数据。请注意,这是一项不平凡的任务,因为输入的消费者照片的变化如此之大。自动校正成功的关键是了解每个图像区域的最佳曝光度。
为了解决这个基本问题,我们借鉴了摄影中成熟的区域系统[5]中的“区域”概念。区域系统将整个曝光范围量化为十一个离散区域。我们将曝光校正表述为区域估计问题 - 我们优化全局目标函数,通过同时考虑两个目标来估计每个图像区域中的所需区域:最大化每个区域的局部细节,并保留区域之间的相对对比度。
在获得每个区域的估计区域后,我们提出了一种新的基于非线性曲线的校正算法,称为细节保留 S 曲线调整,以尽可能地将每个区域推向其所需的区域。与一般的S曲线调整[6][7][8]相比,我们的保留细节的S曲线调整可以保持局部细节并避免光晕效应。图1(e)显示了我们的估计曲线和最终校正结果。
与大多数自动方法一样,我们的方法没有解决用户偏好问题[9]。 “正确”曝光可以定义为达到摄影师想要的效果的曝光。然而,我们的用户研究表明,自动校正仍然有利于大多数典型消费者 - 特别是对于他们的日常照片处理。我们还表明,与之前的工作相比,我们新的曝光优化提供了显着的视觉质量改进。由于我们的校正简单而强大,因此可以选择它作为照片编辑工具和内置相机组件的更好替代品。
自动曝光控制是相机制造商最重要的研究问题之一。大多数开发的技术都是基于硬件的。代表作品有惠普“Adaptive Lighting”技术[10]、尼康“D-Lighting”技术[11]。这些方法通过已知的色调映射曲线(例如Log曲线)压缩图像的亮度范围,并通过“Retinex”处理进一步避免局部对比度失真[12]。特定的硬件被设计用于执行每像素曝光控制[13]或基于场景(例如背光、前光[14]或面部[15])的曝光控制。提出了一些自动技术(例如[16])来估计拍照过程中的最佳曝光参数(快门速度和光圈)。
基于软件的曝光调整有多种技术,包括最流行的全局校正(例如自动水平拉伸、直方图均衡[1])和局部曝光校正[17][18]。然而,这些方法仅使用一些启发式直方图分析将每个像素的曝光映射到所需的曝光,而没有考虑像素(或区域)的空间信息。一项有趣的工作 [19] 尝试通过频域(即块 DCT)增强图像。但是每个图像都使用一些固定色调曲线,并且其结果中偶尔会出现块伪影。
一些算法[8][20]只考虑感兴趣区域(ROI)的曝光,并假设它对整个图像校正最重要。与我们不同的是,他们使用已知的预定义色调曲线,但我们将估计每个图像的特定曲线。一些色调映射算法[21]也可用于估计场景的关键点并推断色调曲线以将其原始曝光映射到所需的关键点。然而,关键估计是基于全局直方图分析,有时不准确。曝光融合[22]将图像序列中曝光良好的区域与包围曝光结合在一起。相反,我们只使用单个图像作为输入。
由于曝光校正有点主观,最近的方法[23][4][9]使用来自互联网或个性化照片的训练样本来增强输入图像。然而,我们的曝光校正并不依赖于训练图像的选择,而只关注输入图像本身。另一个值得一提的问题是,我们的方法并不旨在恢复完全饱和的像素,如[24]。
我们的曝光校正流程如图 2 所示,分为两个主要步骤:曝光评估和 S 曲线调整。两个组件均在亮度通道中执行。为了避免由于不同相机测光系统或用户手动设置造成的偏差,我们首先将输入色调范围线性归一化为 [0, 1]。
我们系统的核心是基于优化的区域级曝光评估(参见第 4 节)。在曝光评估中,我们应用基于区域的曝光分析来估计每个图像区域的所需区域(即曝光)。我们首先将输入图像分割成各个区域(即超像素)。在每个区域中,我们测量可见细节、区域大小以及区域之间的相对对比度。然后,我们将最佳区域估计制定为考虑所有这些因素的全局优化。我们还使用高级信息(例如,面部)来设置区域的优先级。曝光评估后,我们估计整个图像的最佳非线性曲线(S 曲线)映射,以将每个区域推向其最佳区域。我们进一步引入了保留细节的 S 曲线调整(参见第 5 节),而不是简单的 S 曲线映射,以保留局部细节并抑制最终结果中的光晕效应。
我们曝光评估的目的是推断图像特定的色调曲线,以便进行后续保留细节的 S 曲线调整。为了实现这一目标,我们首先需要知道每个区域的“最佳”曝光度是什么以及如何将它们一起估计。
为了测量曝光度,我们借用了Ansel Adams的区域系统[5]中的“区域”概念,如图3(d)所示。在区域系统中,将整个亮度范围[0, 1]平均分为11个区域,从O到X用罗马数字表示,其中O代表黑色,V代表中灰色,X代表纯白色;这些值称为区域。在每个区域中,平均强度值称为其相应的曝光量。这个概念也被用在最近的 HDR 色调映射应用 [21][25] 和真实图像合成 [26] 中。
我们用许多区域来表示图像。我们首先通过基于图的分割将图像分解为一组区域[27]。每个区域都属于其中一个区域。然后,我们合并具有相同区域值的相邻区域。为了提取高级信息(例如,面部/天空)以进行高优先级调整,我们需要检测面部区域[28]和天空区域[29]。属于面部/天空区域的所有连接区域也被合并。我们将最终合并的区域称为“zone区域”。图3(a-c)显示了区域区域提取的过程。
通过考虑两个方面,最佳区域估计可以表述为全局优化问题:最大化视觉细节和保留相邻区域之间的原始相对对比度。
Measure of visible details.
曝光不足/曝光过度区域中的可见细节量可以通过这些图像中检测到的边缘的差异来测量,这些图像是通过在输入图像 I 上应用不同的伽玛曲线而生成的(该过程表示为 Igamma = Iγ) 。它基于一个观察:在曝光不足的区域,当伽玛γ较小/较大时,我们可以在伽玛校正后检测到更多/更少的可见边缘,以及两个伽玛校正图像(一个较小的图像)之间的边缘数差值。 gamma(另一种是gamma较大的)表示可恢复的细节量。类似的过程也可以应用于过度曝光的区域。
Measure of relative contrast.
我们使用强度直方图距离来测量区域之间的相对对比度。该距离定义为两个直方图最大化其交集的最小移动距离(如图 5 所示)。对于这个距离,我们使用术语“相对对比度”。例如,当它们的直方图太接近时,我们说它们的相对对比度小。
Zones estimation as an optimization.
定义了两个度量后,我们将最佳区域估计制定为基于图的标签问题。每个zone区域被视为一个节点,任意两个相邻的zone区域通过链路连接。节点的最优标签 是最终期望的区域。我们将图的马尔可夫随机场 (MRF) 能量函数 E(Z) 定义为:
其中 Ei 是单个区域 i 的数据项,Eij 是两个相邻区域 i 和 j 之间的成对项。在我们的工作中,数据项和成对项分别由以下形式指定:Ei = −log(P(i)) 和 Eij = −log(P(i, j))。
区域 i 的似然 P(i) 通过其细节可见性 νi、区域大小 Ci(通过整个图像大小归一化)和重要区域大小 θi(通过整个图像大小归一化)来测量。重要区域是直接根据面部/天空检测器的概率图计算的。我们考虑所有三个因素:
为了获得全局最优值,我们使用强力搜索方法来遍历所有区域的所有区域候选组合,因为区域合并后区域区域的总数不是很高。为了自动估计权重 λ,我们首先计算所有候选区域组合的数据项之和以及成对项之和。然后我们将 λ 设置为两个总和的比率。我们发现它在我们的实验中运行得很好并且不需要任何调整。
在获得每个区域的最佳区域后,我们可能会将每个区域的区域值(即曝光)单独映射到其所需的区域。然而,这种局部测绘存在在相对较小的区域中产生曝光失真的风险,因为这些区域通常包含不足以估计其最佳区域的信息。为了解决这个问题,我们使用非线性色调曲线将每个像素的亮度全局映射到其所需的曝光。我们通过全局曲线映射和自适应局部细节增强之间的融合进一步保留局部对比度。
S-curve adjustment.
Detail-preserving S-curve adjustment.
如果我们直接将 S 曲线映射(方程 4 中)应用于输入图像,我们可能会丢失局部细节。图 7(b) 显示了这种情况,尽管黑暗区域变亮了,但结果看起来太平坦。这种不期望的效果是由于:将强度从阴影和高光移动到中间会压缩中间色调。由于S曲线通常是单调的,因此中间色调中两个相邻像素之间的对比度可能会降低。
为了解决这个问题,我们提出了保留细节的 S 曲线调整。给定输入图像 I,我们自适应地将其 S 曲线结果 f(I) 与局部细节图像融合
Efficient implementation.
为了高效计算,我们强制执行两个额外的约束,以大大减少可能区域值的搜索空间:1)我们的调整使用全局 S 曲线,它将相同的输入像素值映射到相同的输出。因此我们可以认为,对于具有相同原始区域值的区域,区域的变化应该是相同的; 2)由于我们使用的S曲线不会改变中间灰度(0.5)的值,因此我们可以认为每个区域的变化不允许跨区域V。此外,我们的曝光是在缩小的图像上评估的其长边不超过 400 像素。所以我们的分割和面部/天空检测可以非常有效。对于 16 兆像素 RGB 图像,在单线程、无 SSE 加速的 Core2 Duo CPU 3.16GHz 上,整个评估和校正时间为 0.3 秒。
我们提出了一种自动校正消费者照片曝光的方法。该方法的核心是基于优化的曝光评估和保留细节的曲线调整算法。通过同时考虑每个区域的可见细节和区域之间的相对对比度,我们能够在区域级别获得适当的曝光并产生自然的结果。