谷歌HDRplus研读(一)

网站:http://www.hdrplusdata.org/

paper理解总结

paper: Burst photography for high dynamic range and low-light imaging on mobile cameras

摘要:

(1)我们从同一个曝光常数下获取多张图片,为避免过曝,我们曝光参数设置的足够小;

(2)我们直接获得Bayer格式的图像数据,与RGB区别见这篇博客;

(3)我们使用基于FFT的新型配准算法,混合2D / 3D维纳滤波器降噪并合并帧。

1 背景介绍(谷歌翻译如下)

改善照片的主要技术障碍是缺乏光线。在室内或夜间拍摄时,整个场景可能提供的光线不足。标准解决方案是应用放大噪声的模拟或数字增益,或延长曝光时间,由于相机抖动或拍摄对象移动而导致运动模糊。令人惊讶的是,高动态范围的白天拍摄也可能因缺乏光线而受到影响。尤其是,如果减少曝光时间以避免高光溢出,则可能会在阴影区域收集到不足的光线。使用本地色调映射可以使这些区域变亮,但这又会放大噪音。

采集更多光线的方法包括使用大光圈镜头,光学防抖,曝光包围曝光或闪光灯。但是,每种方法都是一种折衷。如果相机是手机,那么它的厚度受到限制,所以使它的光圈变大很困难。这些设备也受到功率限制,因此通过增加摄像机数量来创建合成光圈是具有挑战性的[Wilburn et al。 2005; Light 2016]。光学防抖功能可以延长曝光时间,同时最大限度地减少相机抖动模糊,但无法控制由主体移动引起的模糊。使用曝光包围和图像融合,融合图像的不同部分代表不同时间的场景,这使得难以获得单一的自洽组合。由于对齐不同时间拍摄的图像很困难,由不正确融合引起的最常见的伪影是重影(图2a)。在相邻扫描线之间交替曝光时间的传感器可以稍微改善重影,但会牺牲细节并且难以准确进行去马赛克。对许多摄影师而言,相机闪光灯是最不可取的选择。它增加了光线,但可以以不愉快的方式改变场景。闪光/无闪光摄影[Petschnigg et al。 2004]解决了这个问题,但不够健全。

在本文中,我们描述了一个摄像机系统,通过捕获一连串图像并将它们与动态范围压缩相结合来解决这些问题。尽管这样做的算法是众所周知的[Debevec and Malik 1997],但基于这些算法构建系统并在移动摄像机上进行商业部署仍然具有挑战性。在构建我们的系统时,我们发现以下设计原则非常重要:

•立即。即使相机没有连接(有线或无线),系统也必须在几秒钟内生成照片并将其显示在相机上。这意味着我们不能将处理推迟到桌面计算机或云。

•自动。该方法必须是无参数且完全自动的。摄影师应该在不知道用于拍摄或图像处理的策略的情况下拍摄更好的照片。

•自然。我们拍摄的照片必须忠实于场景的外观。在高动态范围的情况下,我们必须限制我们为避免卡通或超现实主义图像而做的局部色调映射量。在光线很暗的场景中,我们不能使图像变亮以至于它会改变明亮的照明或显示过度的噪音。

•保守。应该可以将此用作缺省拍照模式。这意味着所拍摄的照片不得包含伪影,并且必须始终至少与传统照片一样好。而且,在极端的情况下,它必须逐渐退化为传统的照片。

鉴于这种保守的限制,我们发现最可靠的连拍摄影方法是以相同的曝光时间捕捉连拍中的每个图像。换句话说,我们不支架。我们到达了这个意想不到的协议,因为准确对齐使用不同曝光时间拍摄的图像存在固有的困难。由于噪声和运动模糊程度不同,较小的曝光变化可能会损害对齐,如果在没有可见图像内容的情况下曝光补丁,则较大的变化可能导致局部对齐不可能。最近的HDR融合方法通过复杂的对齐和修补解决了不同曝光的挑战[Gallo and Sen 2016]。虽然这些方法可以产生令人信服的结果,但最好的方法是昂贵的,并且仍然表现出偶尔的伪影或物理不一致性。

为了执行我们的恒定曝光协议,我们选择足够低的曝光以避免给定场景的裁剪(高光溢出)。换句话说,我们故意向下暴露。我们这样做来捕捉更多的动态范围。无论场景内容如何,​​我们也选择比典型的曝光时间更短的时间来减轻相机抖动模糊[Telleen et al。 2007年]。尽管使用较低的曝光似乎会恶化噪声,但我们通过捕获和合并多个帧来抵消这种影响。

由我们的保守约束引起的第二个设计决定是,我们选择一个连拍中的图像作为“参考”帧,然后将这些帧中的那些补丁与我们确信已经成像的其他“替代”帧对齐并合并到此帧中场景的相同部分。此外,为了减少计算复杂度,我们仅合并每个替代帧中的单个修补程序。我们保守的合并可能会导致最终图像的某些部分显得比其他部分更嘈杂,但是这个工件很少引人注目。

通过对齐和合并多个帧,我们生成的中间图像比我们的输入帧具有更高的比特深度,更高的动态范围和更低的噪声。这可以让我们仅仅通过丢弃低位来产生高质量(尽管曝光不足)的照片。然而,我们的目标之一就是制作出自然的照片,即使场景包含强烈的对比。因此,我们反而会增加阴影,保留局部对比度,同时明智地牺牲全球对比度。这个过程被称为HDR色调映射,并且已经得到很好的研究[Reinhard et al。 2010]。它的效果与印刷摄影中传统的“闪避和刻录”方法产生的效果类似[Adams 1981]。我们使用暴露融合的变体[Mertens et al。 2007],因为它计算效率高,能够生成自然的图像;然而,其他算法是可能的。

编写关于商业计算机摄影系统的系统论文时遇到的一个挑战是,该领域的学术论文仅描述算法,而不是完整的系统,现有商业系统中的算法是专有的,不易反向设计。相机行业的这种情况比计算机图形学界更糟,因为公共API已经导致了开放和比较的传统[Levoy 2010]。这种保密性使我们很难将定量结果与竞争系统进行比较。为了解决这个问题,我们围绕着设计原则的列举,实施的描述和我们的结果的抽样(无论是好的还是坏的)来构建本文。我们还在补充材料中详细比较了几种最先进的连拍融合方法[Liu et al。 2014; Dabov等人2007年a; Adobe Inc. 2016; Heide等人2014],评估我们与其他系统隔离对齐和合并框架的方法。最后,我们创建了包含数千个原始输入字符串和相关输出的档案[Google Inc. 2016b],所以其他人可以改进或与我们的技术进行比较。

2捕获和处理概述

图3总结了我们的捕获和图像处理系统。它由一个实时流水线(顶行)和一个非实时流水线(底行)组成,可以产生连续的低分辨率取景器流,生成单个高分辨率图像。

在我们当前的实施中,取景器流由移动设备的片上系统(SoC)上的硬件图像信号处理器(ISP)计算。相比之下,高分辨率输出图像是在运行在SoC应用处理器上的软件中计算出来的。为了获得良好的性能,这个软件是用Halide编写的[Ragan-Kelley et al。 2012]。我们利用ISP来处理取景器,因为它功效高。但是,它的图像看起来不同于我们的软件计算的图像。换句话说,我们的取景器不是所见即所得。

对于我们的方法来说,关键的启用技术是能够针对突发中的每个帧请求特定的曝光时间和增益。为此,我们在选定的Android手机上使用了Camera2 API [Google Inc. 2016a]。 Camera2利用基于Frankencamera的基于请求的架构[Adams et al。 2010]。 Camera2的另一个优势是它可以访问拜耳原始图像,使我们能够绕过ISP。如图3所示,我们在两个地方使用原始图像:(1)从ISP使用的相同流中确定曝光和增益以生成取景器,以及(2)捕获用于计算高分辨率照片的连拍。使用原始图像传达了几个优点:

•增加动态范围。原始图像中的像素通常为10位,而移动ISP产生的YUV(或RGB)像素通常为8位。实际优势小于2位,因为raw是线性的,而YUV已经有gamma曲线,但它不可忽略。

•线性。减去黑色电平偏移后,原始图像与场景亮度成正比,而ISP输出的图像包含非线性色调映射。线性使我们能够精确地模拟传感器噪声,这使得对齐和合并更加可靠,并且还使得自动曝光更容易。

•可移植性。合并由ISP生成的图像需要对其处理进行建模和逆向处理,这是专有和场景相关的[Kim et al。 2012]。从原始图像开始,我们可以省略这些步骤,这使得将我们的系统移植到新相机更容易。

在学术文献中,基于原始图像的爆裂融合方法[Farsiu et al。 2006; Heide等人2014]相对不常见。原始图像的一个缺点是我们需要实施全面的摄影管线,包括校正镜头阴影和色差以及去马赛克。 (为简洁起见,图3中省略了这些校正步骤。)幸运的是,由于我们的对齐和合并算法在原始图像上运行,昂贵的去马赛克步骤仅需要在单个合并图像上执行一次,而不是在连拍图。

3自动曝光

移动ISP的一项重要功能是在用户瞄准相机时不断调整曝光时间,增益,对焦和白平衡。原则上,我们可以采用ISP的自动曝光,请求我们的恒定曝光连拍时,重新使用最近取景器帧中的捕捉设置。对于动态范围适中的场景,此策略运作良好。但是,对于动态范围较高的场景,拍摄的图像可能包含高光溢出或曝光不足的拍摄对象,以后的HDR色调映射无法恢复。

为了解决这个问题,我们开发了一种能够识别未来色调映射的自定义自动曝光算法,负责确定整体曝光量以及即将到来的动态范围压缩。我们处理HDR场景的方法包括三个步骤:

1.刻意曝光不足使像素更少饱和,

2.捕捉多个帧以减少阴影中的噪声,并且

3.使用本地色调映射来压缩动态范围。

曝光不足是高动态范围捕获的一种众所周知的方法,被普遍应用于数码单反相机“暴露于正确的方式”[Mar-tinec 2008]。在我们的系统中曝光不足的原因是通过捕连拍提供的降噪。实际上,我们将HDR成像视为去噪[Hasinoff et al。 2010; Zhang等人2010]。

鉴于此解决方案,我们的自动曝光算法必须确定使用何种曝光(即曝光不足),动态范围压缩多少以及要捕捉多少帧。

作为动态范围压缩的曝光不足对于我们使用的HDR色调映射方法,捕捉时曝光不足与处理中应用的动态范围压缩密切相关。如第6部分所述,我们的方法通过融合两个经过伽马校正的图像(曝光不足的输入框和相同帧的较亮版本)进行操作,其中数字增益补偿曝光不足。因此,我们的自动曝光算法的输出可以表示为两个曝光等级,用于高光的短曝光,用于拍摄场景以及用于HDR色调映射的合成长时间曝光阴影。

请注意,如果我们曝光不足太多,即使我们合并多个帧,照片也会很嘈杂。由于捕捉和合并需要时间和力量,我们无法捕捉到无限的数字。此外,如果我们将动态范围压缩太多,我们的照片看起来就像卡通(见图2c)。因此,我们将最大动态范围压缩(在我们的方法中曝光不足)限制为8.幸运的是,如图4所示,很少有真实场景需要比这更多的压缩。

通过示例自动曝光自动选择  曝光的关键难点在于该选择与场景有关。例如,让太阳晒干通常是可以接受的,但是如果场景在海滩上是日落的话,太阳应该保持着色,并且周围的颜色环不应该过度曝光,即使海滩必须是黑暗。为了解决这个问题,我们创建了一个使用传统HDR包围拍摄的场景数据库,当使用我们的色调映射方法进行渲染时,我们已经手动调整以使其看起来尽可能自然。这种方法的成功取决于涵盖消费者可能遇到的各种场景。我们的数据库包含约5,000个场景,这些场景是在几年内收集的,手动标记了两个参数,对应于短时间和长时间曝光,产生最佳的最终再现。

给定这个带标签的数据库和原始格式的输入帧,我们计算帧的描述符并在数据库中搜索匹配它的场景。我们用于这个描述符的特征是图像亮度分布的分位数,在白平衡和积极下采样版本的帧上测量。我们的完整描述符包含四组64个非均匀间隔分位数,以两种不同的空间尺度测量,并测量RGB通道的最大值和平均值。这分别有助于表示不同空间频率下的曝光并考虑颜色限幅。在计算这些分位数时,我们应用一个固定的权重来支持图像的中心,并且我们强烈地提高检测到脸部的区域的权重。我们还将候选集的范围限制在当前场景的8倍亮度范围内。这有助于保持对场景亮度的感知,避免例如不自然的日夜演绎。

一旦我们找到了一组候选匹配场景,我们计算出这些场景的手动调整自动曝光的加权混合。这种混合最终会产生两个参数:短暂的曝光时间以及在色调映射期间应用的长时间曝光。有关我们实施的更多细节,请参阅补充资料。

曝光分解 将拍摄曝光转换为传感器设置需要将其分解为曝光时间和增益(ISO设置)。对于这一步,我们使用固定的时间表来平衡运动模糊和噪音。对于我们保持最小亮度的最明亮场景,曝光时间可以增加到8毫秒。接下来,随着场景变暗,我们将曝光时间保持在8 ms,并将增益提高到4倍。最后,我们同时增加曝光时间和增益,最高可达100 ms曝光时间和96倍增益,并在对数空间中按比例增加。为了使信噪比最大化,我们尽可能多地应用模拟形式的增益[Martinec 2008]。任何增益超过我们在我们的管道中数字化应用的摄像头传感器所支持的限制。

连拍大小 除了确定曝光时间,增益和动态范围压缩之外,我们还必须决定在一次突发中捕捉多少帧。我们捕获的数字N是一个折衷。在低光照条件下,或者在高动态范围场景中,我们稍后将提升阴影,我们需要更多帧来提高信噪比,但是它们需要更多时间和内存来捕获,缓冲和处理。在明亮的场景中,捕捉1-2幅图像通常是足够的,尽管更多的图像通常仍然有益于对抗相机抖动模糊。在实践中,我们将我们的突发限制为2-8幅图像,并使用我们的模型为原始图像噪声做出决定(更多细节请参见第5节)。

取景器集成 我们的自动曝光算法建立在ISP控制的取景器之上。为了改善延迟,我们不断分析在取景期间捕获的原始帧;在快门按下时,我们已经准备好了所需的连拍设置。虽然我们的自动曝光实时运行,每帧大约10毫秒,但分析每个取景器帧是不必要的,因为场景亮度的快速变化并不常见。为了节省电力,我们仅在每4帧中运行一次自动曝光。

我们的算法面临的一个挑战是,对于高度HDR场景,单个ISP控制的取景器帧可能包含许多过度曝光的像素。这可能会使估计曝光不足的技巧变得棘手。我们在观察期间试验了连续的包围。但是,在取景过程中,不同的曝光图像无法显示给用户,并且在背景中捕捉它们会破坏取景器的平滑度。幸运的是,我们发现,在评估我们的匹配度量时,忽略剪裁的像素,我们仍然可以确定从相似场景中曝光不足的程度。我们的算法预测87%的投篮中包围结果的10%内的曝光量;具有较大变化的镜头倾向于更强烈的HDR,并且更加宽容精度不足。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章