编注

每年 Google 都会通过博文分享他们在计算摄影上的最新成果及背后的实现方式,今年也不例外。

作为 Pixel 4 的卖点之一,能够拍到银河、星空的「天体摄影」模式相比去年的夜视模式有什么不同,Google 相机团队在实现这个功能的过程中又克服了哪些困难

我们翻译整理了 Google AI Blog 上的最新博文,为了保证可读性,成文与原文在结构和部分表述上略有调整。如果你对原文感兴趣,可以通过文末原文链接跳转阅读。


户外场景的夜间拍摄一直被单反这样的大尺寸镜头所主宰,只要摄影师愿意忍受沉甸甸的设备和可能会非常棘手的后期处理,他们往往可以得到质量出色的照片。早些年使用手机相机进行夜间摄影的 实验 虽然也得到了 令人满意的效果,但除了小部分摄影爱好者,当时所采用的方法对大多数用户来说都欠缺实操性。

直到去年搭载夜视模式功能的 Pixel 3 的出现,借助 Google Camera 应用中的夜视模式,即便在极暗的拍摄环境下,摄影爱好者们也可以在手持状态下拍出好看的照片——在同样的情况下,正常拍照模式往往只能拍出拥有大量噪点、曝光严重不足的图像。我们的团队之前曾在的一篇 博文 中介绍过夜视模式是如何实现这种拍摄效果的,同时也藉由 SIGGRAPH Asia 2019 会议公布了相关的 研究论文

在今年的夜视模式更新中,我们将继续尝试突破手机相机在暗光摄影下的极限:最新版本 Google Camera 允许 Pixel 4 通过最多 4 分钟的曝光时间(在 Pixel 3/3a 上最多 1 分钟)来进行夜视模式拍摄,在不借助任何人造光源的情况下,这也让拍摄一张清晰、锐利的星空照片或夜景成为了可能。

图注:九月夜晚无云无月下的银河,使用 Pixel 4 XL 摄于哈雷阿卡拉火山山顶,未进行任何后期。在如此漆黑的夜晚,这张照片展现了远多于人类肉眼所能观察到的细节:银河中的尘埃云清晰可见、天穹下布满了成千上万颗恒星……且与人类在夜间所看到的景象不同,这张照片充满了丰富的色彩。

夜视模式回顾

相机图像传感器本身在光量检测上的不确定性,导致了「散粒噪声」的出现。这些散粒噪声一般会让图像看起来很粗糙。考虑到散粒噪声随光量的增加而降低的特性,要想拍出高质量的照片,最好的办法就是增加相机收集的光量。不过受相机镜头光圈的限制,在特定时间内能够到达图像传感器的光量总是有限的。

尽管可以通过延长拍摄曝光时间的方法来进行提升,但运动场景下的拍摄或是手持相机时的抖动,又会在长时间曝光的过程中造成像模糊。

为了克服这一问题,Google 相机的夜视模式把传统的曝光拍摄过程进行分割,通过一系列曝光时间更短的单帧画面来减少上面提到的各种模糊问题。这些短曝光画面帧会被校准、对齐,用来补偿手持时的抖动以及场景中被摄对象的运动;然后再进行整合,打磨无法完美对齐的画面细节。

各个单帧看起来可能充满噪点,但经过对齐、整合处理后的图像看上去要干净不少。

对曝光时间的探索

初版夜视模式甫一成型,我们就开始探索在极暗条件下的户外拍摄天文星象的可行性。

正如早前实验所揭示的那样,我们意识到想在严苛光线条件下拍出高质量照片,所需要的可能远不止几分钟的曝光时长。这对于手持相机拍摄来说显然也太不现实了:手机必须放置在三脚架、岩石或者其他任意可以能固定手机的地方。

同时正如用夜视模式手持拍摄一样,夜间景观拍摄也必须考虑到场景中的运动因素:风中摇曳的树、空中飘荡的云、东升西落的皓月与星辰。对于拍摄者来讲,照片中模糊的云朵与树枝尚可接受,毕竟它们在画面中不必鲜明夺目;但星星不可以,它们在运动状态下长曝光成像出来会变成一条条的线段。

为了避免这种情况,我们想将单帧画面的曝光时间切分得更短,短到让星光看起来是一个光点。而在进一步摸索的过程中,我们发现要拍摄出这样的夜空照片,单帧的曝光时间应控制在 16 秒以内。

图注:单帧两分钟曝光,因运动模糊产生的星轨

对于单张夜间景观照片的拍摄而言,每一次快门的总帧数、也就是总计曝光时间不仅仅受到技术因素的限制,更受制于拍摄者的耐心。极少人会愿意为一张照片等待四分多钟,所以我们就把单张夜视模式照片控制在 15 帧以内,每帧最多 16 秒。

对我们来讲,每帧 16 秒的曝光可以捕获足够的光线来生成一张具有清晰辨识度的照片。但是对于一个能拍照、还要拍好的相机 App 来讲,它还必须能处理一些低光摄影所特有的问题。

「天体摄影」如何解决四大难题

问题一:暗电流与热像素

暗电流 的存在会导致 CMOS 传感器产生杂散信号,即使在没有任何实际光线的情况下,相机在也会生成类似因少量像素曝光生成的图像。

在曝光时间较短的情况下,这个现象的影响微不足道,但当曝光时间延长至数秒,暗电流造成的杂散图像信号就非常明显了。由于传感器硅基板大多存在不可避免的缺陷,某些像素相比周围的像素会产生更多的暗电流,在一帧已经记录下的画面中,这些「热像素」就会以肉眼可见的小亮点呈现出来。

为了识别出这些热像素,我们通过对比某张照片中同一帧画面、以及多帧画面中同一位置的相邻像素来计算 逸出值检测到的逸出值后,再通过临近像素平均值替代的方法来得到隐藏

因为这里同时弃用了热像素区域原始画面的像素值,理论上来说也会导致一定的画面信息丢失,不过实际表现中成像质量因此受到的影响几乎是肉眼不可见的。

图注:左图展示了的长曝光图像中,部分区域因热像素和暗电流存在出现的异常光点;右图同样的画面中,逸出值被处理后地面风景和场景中的正常灯光依然得到了保留。

问题二:取景构图

智能手机一般将屏幕作为电子取景器——相机捕捉到连续的画面帧,然后以实时视频的方式呈现出来用于后续拍摄合成,这些连续捕捉到的画面帧会用于自动对焦、自动曝光和自动白平衡系统。

为了便于拍摄者与之交互,取景器会以至少 15 帧每秒的帧率进行更新,在这种帧率下,取景器每帧的曝光时间也被限制在了 66ms。如何在暗光环境下让取景器呈现出足够的画面细节也充满挑战:在光照效果低于满月水平的夜间,取景器中的图像大部分都会变成灰色——可能会有一些明亮的星星,但没有地面的景物细节——这时取景构图都变得非常困难。

夜视模式通过「快门后取景」的呈现方式来协助暗光场景下的构图

在快门被按下之后,每一次长曝光生成的画面帧都会立即呈现在取景器内。在总曝光时间翻倍至 16s 的状态下,每个画面帧所收集到的光线可达通常情况下的 250 倍,这样一来拍摄者在第一帧被捕获到的同时,就能从取景器中感知到画面细节了。

在长曝光拍摄的过程中,我们也可以借此移动手机来调整构图。确保构图正确后取消第一次拍摄,然后在理想的构图情况下拍摄第二张照片即可。

图注:左图为夜视模式下户外暗光场景的取景器画面,除了远处建筑的零星光线,地面风景和天空细节都几乎不可见;右图为长曝光拍摄过程中「快门后取景」获得的取景器画面,可以看到画面更加清晰,同时每一帧长曝光的结果都会更新到画面当中。

问题三:自动对焦

自动对焦 能够保证相机成像效果的锐利。

在正常情况下,相机会分析取景器中传入的画面帧、判断镜头与传感器之间的距离然后才能保证图像准确对焦。而在暗光环境中,取景器中的画面帧亮度低、噪点多,缺少必要的画面细节来让自动对焦正常工作。

在这种情况下,Pixel 4 的夜视模式会切换到「快门后自动对焦」模式:当用户按下快门按钮后,相机会捕捉曝光时间最长为 1s 的两帧画面来协助完成自动对焦。这样的曝光时间足以生成用于暗光自动对焦的图像细节。

另外,这些画面帧仅用于镜头对焦,不会直接合成到最终图像当中。在暗光拍摄时,通过长曝光获取的画面帧能够帮我们获取到连人眼都无法清晰辨别的锐利细节。但如果拍摄环境实在过于昏暗,「快门后自动对焦」其实也无法正常工作。

在这种情况下,相机默认会将对焦距离设定为「无限远」。此外夜视模式还提供了手动对焦选项,允许用户在极暗拍摄条件下对近处物体采用手动对焦。

问题四:天空的后期处理

在手机上查看极暗环境下拍摄的夜景照片时,你会发现这些照片往往都比原始场景更加明亮。

这种现象可能会影响人们对照片实际拍摄时间的推测,毕竟我们一般认为夜景中的天空应该是昏暗的。如果一张夜间拍摄的照片最终呈现的是一片明亮的天空,我们可能会将其看作是日间拍摄场景或场景中有其它非自然光源。

在暗光场景中,夜视模式通过有针对性地降低天空亮度来解决这种问题

为此我们使用了机器学习来检测画面中天空的部分——这里用到了一个离线 卷积云神经网络,它经由 10 万多张照片的训练而来,每一张照片都由人类手动标记过。因此夜视模式能够精确识别图像中每一个「是天空」和「不是天空」的像素。

图注:满月夜晚拍摄的风景,左侧为没有后期处理过的天空,右侧则降低了天空的亮度。注意地面风景的亮度并未受到影响。

基于这种对天空区域的检测,我们同样也用来针对天空进行 降噪处理,比如有选择性地增加对比度,以此保证云朵、色彩渐变和银河这类景象特质更加突出。

仍有进步空间的结果

将手机固定在三脚架上,夜视模式就能清晰地拍下繁星点点的夜空,场景中哪怕有一丁点的月光,地面上的景象也可以被清楚而生动地保留下来。

虽然手机相机的能力并非没有上限,但总有可以进步的空间:夜间场景整体而言都比较昏暗,它们通常会包含月光、街灯、北极星这样的明亮光源。尽管现阶段我们能够捕捉到被月光照亮的夜景甚至月球表面的细节,在超过 500000:1 这样的极限大光比条件下,我们依然无法在同一张照片中同时保留下亮部和暗部的细节。

类似的,在只有星光作为光源时,我们也只能清晰地拍下夜空,地面景色最多只能呈现为可见的剪影。

天体摄影模式样张组图

对 Pixel 4 而言,我们一直以夜空中最亮的部分、也就是靠近人马座星系的区域,作为没有月亮时的夜景拍摄测试基准,在这种标准下夜视模式的表现非常出色。尽管这些星空照片会呈现一些残留噪点,相比人眼在仰望现实世界的星空时,这些照片能展现更多星星和更多细节,视觉观感非常舒服。

拍摄小技巧

在开发、测试夜视模式和天体摄影功能的过程中,我们也积累了不少使用 Pixel 手机进行户外夜景拍摄的经验。我们想把这些对我们有用的技巧和提示分享出来,你可以前往 这里 阅读。

相关链接:

关联阅读: