2018 年 11 月 14 日,星期三

由杰出工程师 Marc Levoy 和资深软件工程师 Yael Pritch 发表,

Night Sight 是 Pixel Camera 应用程序的一项新功能,可让您在非常低的光线下拍摄清晰、干净的照片,即使在光线昏暗的情况下也看不清你自己的眼睛。它适用于所有三代 Pixel 手机的主摄像头和自拍相机,并且不需要三脚架或闪光灯。在本文中,我们将讨论为什么在弱光下拍照具有挑战性,我们将讨论计算摄影和机器学习技术,其中大部分技术建立在HDR+之上,使 Night Sight 发挥作用。

左: iPhone XS(此处为全分辨率图片)。右图: Pixel 3 Night Sight(此处为全分辨率图像)。

为什么弱光摄影很难?
任何拍摄过昏暗场景的人都会熟悉图像噪点,它看起来像是像素与像素之间亮度的随机变化。对于具有小镜头和传感器的智能手机相机,噪声的主要来源是进入镜头的光子数量的自然变化,称为散粒噪声。每个相机都会受到它的影响,即使传感器电子设备是完美的,它也会存在。然而,它们并非如此,因此第二个噪声源是在将光击中每个像素所产生的电荷转换为数字时引入的随机误差,称为读取噪声。这些和其他随机源对整体信噪比有贡献(SNR),衡量图像从这些亮度变化中脱颖而出的程度。幸运的是,SNR 随曝光时间的平方根(或更快)而上升,因此进行更长的曝光会产生更清晰的图片。但是很难在昏暗的光线下保持足够长的时间来拍出好照片,而且无论您拍摄什么,也可能无法保持静止。

2014 年,我们推出了HDR+,一种计算摄影技术,它通过捕捉一连串的帧、在软件中对齐帧并将它们合并在一起来改善这种情况。HDR+ 的主要目的是提高动态范围,这意味着能够拍摄具有广泛亮度范围的场景(如日落或逆光人像)。各代 Pixel 手机都使用 HDR+。事实证明,合并多张图片还可以减少散粒噪声和读取噪声的影响,因此可以提高昏暗灯光下的 SNR。为了在您的手抖动和主体移动的情况下保持这些照片清晰,我们使用短曝光。我们还会拒绝无法找到良好对齐的帧片段。这使得 HDR+ 即使在收集更多光线的情况下也能产生清晰的图像。

黑暗有多黑暗?
但是,如果捕捉和合并多帧在低光下产生更清晰的图片,为什么不使用 HDR+ 合并数十帧,以便我们可以在黑暗中有效地看到呢?好吧,让我们从定义“黑暗”的含义开始。当摄影师谈论场景的光线水平时,他们通常以勒克斯为单位进行测量。从技术上讲,勒克斯是每单位面积到达表面的光量,以每平方米流明为单位。为了让您感受不同的勒克斯水平,这里有一个方便的表格:

拍摄单张照片的智能手机相机开始在 30 勒克斯下挣扎。捕捉并合并多张照片(如 HDR+ 所做的)的手机在低至 3 勒克斯时表现良好,但在较暗的场景中表现不佳(更多见下文),这依赖于使用它们的闪光灯。有了 Night Sight,我们的目标是在 3 lux 到 0.3 lux 范围内改善拍照效果,使用智能手机,按一次快门,不使用 LED 闪光灯。为了使此功能正常工作,包括几个关键要素,其中最重要的是捕获更多光子。

捕获数据
虽然延长每帧的曝光时间会增加 SNR 并导致更清晰的图片,但不幸的是它引入了两个问题。首先,Pixel 手机上的默认拍照模式使用零快门延迟(ZSL) 协议,从本质上限制了曝光时间。一旦您打开相机应用程序,它就会开始捕获图像帧并将它们存储在一个循环缓冲区中,该缓冲区会不断擦除旧帧以为新帧腾出空间。当您按下快门按钮时,相机会将最近的 9 或 15 帧发送到我们的HDR+Super Res Zoom软件。这意味着您可以准确捕捉您想要的瞬间——因此得名零快门延迟。但是,由于我们在屏幕上显示这些相同的图像以帮助您瞄准相机,因此无论场景多么昏暗,HDR+ 都会将曝光时间限制为最多 66 毫秒,从而使我们的取景器能够保持至少 15 帧/帧的显示速率第二。对于需要更长曝光时间的较暗场景,Night Sight 使用正快门滞后(PSL),它会等到您按下快门按钮后才开始拍摄图像。使用 PSL 意味着您需要在按下快门后保持一小段时间静止不动,但它允许使用更长的曝光时间,从而在低得多的亮度水平下提高 SNR。

增加每帧曝光时间的第二个问题是运动模糊,这可能是由于握手或场景中移动的物体造成的。Pixel 2 和 3 上的光学图像稳定 (OIS) 可减少中等曝光时间(最多约 1/8 秒)的握手,但对长时间曝光或移动物体没有帮助。为了对抗 OIS 无法修复的运动模糊,Pixel 3 的默认拍照模式使用“运动测光”,包括使用光流测量最近的场景运动并选择一个曝光时间,以最大限度地减少这种模糊。Pixel 1 和 2 在其默认模式下不使用运动测光,但所有三款手机都在夜视模式下使用该技术,如果没有太多运动,每帧曝光时间最多可增加 333 毫秒。对于没有 OIS 的 Pixel 1,我们增加的曝光时间更少(对于同样没有 OIS 的自拍相机,我们增加的时间更少)。如果相机处于稳定状态(例如靠墙放置或使用三脚架),则每帧的曝光增加至一秒。除了改变每帧曝光之外,我们还改变了我们捕获的帧数,如果手机放在三脚架上,则为 6,如果是手持设备,则最多为 15。这些帧限制可防止用户疲劳(以及需要取消按钮)。因此,1

这是在检测运动时使用较短的每帧曝光的具体示例:

左图:由两部并排的 Pixel 3 手机之一拍摄的 15 帧连拍。中:禁用运动测光的夜视拍摄,导致这款手机使用 73 毫秒的曝光时间。在这种作物中,狗的头部运动模糊。右图:启用运动测光的夜视拍摄,使这款手机注意到运动并使用更短的 48 毫秒曝光。这张照片的运动模糊较少。(迈克·米尔恩)

这是当我们检测到手机在三脚架上时使用更长曝光时间的示例:

左图:从手持夜视天空拍摄的裁剪图(此处为全分辨率图像)。有轻微的握手,所以夜视选择了 333 毫秒 x 15 帧 = 5.0 秒的捕获。右:三脚架拍摄(此处为全分辨率图像)。未检测到握手,因此 Night Sight 使用了 1.0 秒 x 6 帧 = 6.0 秒。天空更干净(噪音更少),你可以看到更多的星星。(弗洛里安·凯恩兹)

对齐和合并
平均帧以减少成像噪声的想法与数字成像一样古老。在天文摄影中,它被称为曝光叠加。虽然技术本身很简单,但困难的部分是在手持相机时正确对齐。我们在这方面的努力始于 2010 年的一款名为Synthcam的应用程序。这个应用程序连续拍摄图片,在低分辨率下实时对齐和合并它们,并显示合并结果,随着您观看,它逐渐变得清晰

Night Sight 使用类似的原理,但采用全传感器分辨率而非实时。在 Pixel 1 和 2 上,我们使用HDR+ 的合并算法,修改和重新调整以增强其检测和拒绝未对齐帧的能力,即使在非常嘈杂的场景中也是如此。在 Pixel 3 上,我们使用Super Res Zoom,无论您是否缩放,都进行了类似的重新调整。虽然后者是为超分辨率而开发的,但它也可以减少噪音,因为它将多个图像平均在一起。Super Res Zoom 对某些夜间场景的效果比 HDR+ 更好,但它需要 Pixel 3 更快的处理器。

顺便说一下,所有这一切都在几秒钟内发生在手机上。如果您快速点击将您带到幻灯片的图标(等到捕获完成!),您可以在 HDR+ 或 Super Res Zoom 完成其工作时观看您的图片“显影”。

其他挑战
尽管上述基本思想听起来很简单,但在开发 Night Sight 时,如果

光线不足,则存在一些问题:1. 自动白平衡 (AWB) 在低光下失败。

人类擅长颜色恒常性——即使在彩色照明下(或戴着太阳镜)也能正确感知事物的颜色。但是当我们在一种光线下拍摄照片并在不同光线下观看时,这个过程就会中断。这张照片对我们来说看起来会有点颜色。为了校正这种感知效果,相机会调整图像的颜色以部分或完全补偿照明的主色(有时称为色温)),有效地改变图像中的颜色,使其看起来好像场景被中性(白色)光照亮。此过程称为自动白平衡(AWB)。

问题是白平衡是数学家所说的不适定问题。那场雪真的像相机记录的那样是蓝色的吗?或者是被蓝天照亮的白雪?大概是后者。这种模糊性使白平衡变得困难。非夜视模式中使用的 AWB 算法很好,但在非常昏暗或色彩强烈的照明(想想钠蒸气灯)中,很难确定照明是什么颜色。

为了解决这些问题,我们开发了一种基于学习的 AWB 算法,经过训练以区分白平衡良好的图像和平衡不佳的图像。当捕获的图像平衡不佳时,算法可以建议如何改变其颜色以使照明看起来更中性。训练此算法需要使用 Pixel 手机拍摄各种场景,然后在经过颜色校准的显示器上查看照片时手动校正白平衡。您可以通过比较使用 Pixel 3 使用两种方式捕获的相同低光场景来了解该算法的工作原理:

左图: Pixel 默认相机模式下的白平衡器不知道温哥华海滨这个小屋的照明有多黄(全分辨率图片在这里)。右图:我们基于学习的 AWB 算法做得更好(此处为全分辨率图像)。(马克·莱沃伊)

2. 太暗而看不清的场景的色调映射。

Night Sight 的目标是拍出黑暗到无法用肉眼看清的场景的照片——几乎就像一种超能力!一个相关的问题是,在非常昏暗的灯光下,人类无法看到颜色,因为我们视网膜中的视锥细胞停止运作,只留下无法区分不同波长光的视杆细胞。夜色依旧绚丽多姿;我们只是看不到它们的颜色。我们希望 Night Sight 的图片丰富多彩——这是超能力的一部分,但另一个潜在的冲突。最后,我们的视杆细胞空间敏锐度低,这就是为什么在晚上看东西似乎模糊不清的原因。我们希望 Night Sight 图像清晰,细节比您在晚上真正看到的要多。

例如,如果您将单反相机放在三脚架上并进行长时间曝光(几分钟,或将几次较短的曝光叠加在一起),您可以使夜间看起来像白天。阴影会有细节,场景会色彩鲜艳、锐利。看看下面的照片,这是用数码单反相机拍摄的;一定是晚上,因为你可以看到星星,但草是绿色的,天空是蓝色的,月亮从树上投下阴影,看起来就像太阳投下的阴影。这是一个不错的效果,但它并不总是您想要的,如果您与朋友分享照片,他们会在您拍摄时感到困惑。

夜间的优胜美地山谷,佳能数码单反相机,28mm f/4 镜头,3 分钟曝光,ISO 100。现在是晚上,因为您可以看到星星,但看起来像白天(此处为全分辨率图像)。(杰西·莱文森)

几个世纪以来,艺术家们都知道如何使一幅画看起来像夜晚;看看下面的例子。2

一位哲学家在 Orrery 上演讲,德比的约瑟夫·赖特 (Joseph Wright),1766 年(图片来源:维基数据)。艺术家使用从黑到白的颜料,但所描绘的场景显然是黑暗的。他是如何做到这一点的?他增加了对比度,用黑暗包围了场景,并将阴影变成了黑色,因为我们看不到那里的细节。

我们在夜视中使用了一些相同的技巧,部分是通过在我们的色调映射中加入S 曲线。但是,在为您提供“神奇的超能力”的同时仍然在拍摄照片时提醒您之间取得有效平衡是很棘手的。下面的照片在这方面特别成功。

Pixel 3,带三脚架的 6 秒夜视镜头(此处为全分辨率图像)。(亚历克斯·萨武)

夜视能有多黑?
低于 0.3 勒克斯,自动对焦开始失败。如果您在地板上找不到钥匙,您的智能手机也无法对焦。为了解决这个限制,我们在 Pixel 3 的夜视中添加了两个手动对焦按钮——“近”按钮对焦在大约 4 英尺处,“远”按钮对焦在大约 12 英尺处。后者是我们镜头的超焦距,这意味着从该距离的一半(6 英尺)到无限远的所有物体都应该聚焦。我们还在努力提高 Night Sight 在低光下自动对焦的能力。低于 0.3 勒克斯,您仍然可以使用智能手机拍摄出令人惊叹的照片,甚至可以像这篇博文一样进行天文摄影演示,但为此您需要一个三脚架、手动对焦以及使用 Android 的 Camera2 API 编写的第 3 方或自定义应用程序。

我们能走多远?最终达到一个亮度水平,读取噪声淹没了该像素收集的光子数量。还有其他噪声源,包括暗电流,它随曝光时间增加并随温度变化。为了避免这种情况,生物学家知道在对弱荧光标本进行成像时将他们的相机冷却到远低于零(华氏度)——我们不建议对您的 Pixel 手机这样做!超噪声图像也很难可靠地对齐。即使你能解决所有这些问题,风在吹,树在摇摆,星云在移动。超长曝光摄影很难。

如何充分利用夜视
Night Sight 不仅可以在低光下拍出精美的照片;使用起来也很有趣,因为它可以拍摄几乎看不到任何东西的照片。当场景足够暗时,我们会在屏幕上弹出一个“芯片”,您可以使用 Night Sight 获得更好的图片,但不要仅限于这些情况。在日落之后,或在音乐会上,或在城市中,Night Sight 会拍摄干净(低噪音)的照片,并使它们比现实更亮。这是一个“外观”,如果做得对,这看起来很神奇。以下是一些Night Sight 图片示例,以及一些A/B 比较,主要由我们的同事拍摄。以下是使用 Night Sight 的一些提示:

– Night Sight 无法在完全黑暗的情况下运行,因此请选择有光线照射的场景。
– 柔和、均匀的灯光比产生暗影的刺眼灯光效果更好。
– 为避免镜头眩光伪影,尽量让非常明亮的光源远离视野。
– 要增加曝光,请点击各种对象,然后移动曝光滑块。再次点击以禁用。
– 要减少曝光,请稍后在Google 照片编辑器中拍摄并变暗;噪音会小一些。
– 如果太暗相机无法对焦,请点击高对比度边缘或光源边缘。
– 如果这对您的场景不起作用,请使用近(4 英尺)或远(12 英尺)对焦按钮(见下文)。
– 为了最大限度地提高图像清晰度,请将手机靠在墙壁或树上,或者将其支撑在桌子或岩石上。
– Night Sight 也适用于自拍,就像在A/B 专辑中一样,可选择屏幕本身的照明。

手动对焦按钮(仅限 Pixel 3)。

Night Sight 在 Pixel 3 上效果最好。我们也将它带到了 Pixel 2 和原始 Pixel,尽管在后者上我们使用较短的曝光时间,因为它没有光学图像稳定 (OIS)。此外,我们基于学习的白平衡器针对 Pixel 3 进行了训练,因此它在旧手机上的准确度会降低。顺便说一下,我们在夜视中调亮了取景器,以帮助您在低光下构图,但取景器基于 1/15 秒的曝光,因此会产生噪点,并且不能准确显示最终照片。所以抓住机会 – 构图,然后按下快门。你会经常感到惊讶!

致谢
Night Sight 是谷歌几个团队的合作项目。该项目的主要贡献者包括:来自 Gcam 团队的 Charles He、Nikhil Karnad、Orly Liba、David Jacobs、Tim Brooks、Michael Milne、Andrew Radin、Navin Sarma、Jon Barron、Yun-Ta Tsai、Jiawen Chen、Kiran Murthy、Tianfan Xue、Dillon Sharlet、Ryan Geiss、Sam Hasinoff 和 A​​lex Schiffhauer;来自 Super Res Zoom 团队 Bart Wronski、Peyman Milanfar 和 Ignacio Garcia Dorado;来自 Google 相机应用团队 Gabriel Nava、Sushil Nath、Tim Smith、Justin Harrison、Isaac Reynolds 和 Michelle Chen。


1顺便说一下,Google 相册中显示的曝光时间(如果您按“i”)是每帧的,而不是总时间,这取决于捕获的帧数。您可以通过在相机收集光线时观看动画来了解帧数。圆圈周围的每个刻度都是一个捕获的帧。

2有关这些技术的精彩分析,请参阅冯·亥姆霍兹 (von Helmholtz) 的“论光学与绘画的关系”(1876 年)。

说点什么
支持Markdown语法
在"夜视:在 Pixel 手机上在黑暗中看到"已有1条评论
Loading...