光影之间:Pixel 「肖像光」背后的计算摄影奥秘
译者注:本文原文发布于 Google AI Blog,原作者 Yun-Ta Tsai / Rohit Pandey, Software Engineers, Google Research,《Android Weekly Update》在原文基础上译制并修改。
伴随 Pixel 5 而来的新光源
对于专业的人像摄影师来讲,利用外置闪光灯(也就是俗称的「离机闪」)或补光、聚光灯等外置补光的人造光源,往往能在减少环境光影响的同时,充分利用造出的光影效果,拍摄出更具张力的肖像照。
但对日常更多在使用智能手机拍摄人像照的普通用户来讲,让以上的专业摄影条件随时随地存在,既不现实也没有必要,但为了能让智能手机也能通过计算摄影,拍摄出媲美专业摄影师光线效果的人像照片,Google 在 Pixel 5/4a 5G 发布的同时,还公布了一项 Google Camera 新的研究成果 —— 「肖像光」(Portrait Light)功能。
具体到实现到效果而言,这其实是一个针对人像照片的后期编辑功能:用户可以用手指在照片中的人像周围拖动,从特定的角度为照片「补光」。同时这一功能会自动应用在人像模式下拍摄的照片中,当然,你也可以从相册中,手动选择含有人脸的照片来加入后期效果。
更有 Google 风格的是,这一功能并不依赖 Pixel 手机中的某一特定硬件才能实现。目前 Google 已经为包括 Pixel 4、Pixel 4a、Pixel 4a 5G 以及 Pixel 5 推送了这一新功能,只要用户在人像模式下拍摄,算法就能自动为照片加入这种神奇的补光效果。而对于 Pixel 2/3 等较老版本 Pixel 的用户,也可以借助新版 Google Photos 中加入的这一功能,来后期编辑照片中的光线效果。
造一盏不存在的补光灯
但在这种如同魔术的效果背后,为了给照片加入一台看不见的补光灯,摆在 Google 面前,有两个问题亟待解决:一来是「如何让光源添加后看起来更加自然」而来是在 Pixel 5 的人像模式下「如何确定自动放置合成光的最佳位置」,而且这些都需要基于移动设备平台算力环境来解决。
现实世界中有经验的摄影师依据往往都是基于经验得出的感性认知:根据对被拍摄者脸上的光线强度、方向以及柔和度来判断,同时被拍摄者也可以通过调整头部姿势来获得更好的补光效果。
为了模拟这种真实自然的补光,Google 选择加入了设计并训练新的深度学习模型,来优化新的补光算法模型,并实现上述两种不同的效果。但想要建立这样的新模型,海量的有效数据就必不可少。
如果你还对 Pixel 3 时 Google 打造的那台「弗兰肯斯『机』(Frankenphone)」还有印象的话,看到这里,你应该能意识到,在解决这种问题的方式上,一贯非常「硬核」的 Google 又要给我们整点新活了。
关联阅读:《为了改进单摄 Pixel 3 的人像模式,Google 造了一台「五摄怪物」》
这次,Google 为了获取训练模型的素材,同样设计了一款新的设备:在 Google LLC 与 Google Research 发表的论文《LEARNING ILLMINATION FROM DIVERSE PORTRAITS》中我们能看到,为了同时获取包括高动态范围(HDR)以及低动态范围(LDR)下的全向光照信息模型。Google 为 Pixel 5 设计了一个装有三个小球的拍摄架,并使用它在各种不同的场景、不同肤色的人拍摄肖像。
虽然就脑洞上相比「弗兰肯斯机」要简单很多,但在这样的支架上拍出的人像样张,等于将人脸当作一个探针,并借此保存下拍摄场景中来自各个方向的所有光源以及相对强度、颜色等信息。用来进一步训练模型。
但除此之外,训练模型还需要添加更多含有定向光源信息且没有自然光干扰的原始照片,但这一条件不仅极为苛刻:因为自然环境下,基本上没有人像照片是不受自然光干扰的。而且训练所需的照片数据规模也相当庞大。
为了解决这种问题,「手工谷」的工程师进一步发挥来脑洞,打造出了一个特殊的地笼子」:这个笼子装载了 64 个不同视角的相机以及 331 个独立控制的 LED 光源,并利用这一灯阵营造出各种不同的光源效果,并由相机记录下每一个光源对应的每一个相机所拍摄到的数据。
在这个阶段,为了收集足量的数据,Google 一共让 70 名具有不同脸型、性别、肤色、发型和服装/配件的人钻进去来拍摄样张,最终制成了一个包括数百万组图像的数据集。
此外,Google 开发团队还利用 MediaPip地 Face Mesh 这样现成的面部机器学习模型,来判断人像主体以及头部的姿势,来进一步确定合成光应该从哪个方向打出。
而且 Google 也表示,最终搭载在 Pixel 上的算法并没有直接使用模型输出的图像,而是通过训练模型,输出一个低分辨率的商图像,当采样时,可以应用到原始输入的图像中,直接在原始图像的基础上添加额外的光源效果,产生所需的输出图像。这种算法除了计算效率更高之外,还不影响更多高亮度区域的图像细节。
通过这些数据,最终实现了让 Pixel 能在拍照完成后,自动确定合成光应该从哪个方向射出:比如在经典人像摄影中,主要的离机闪(或称关键光)一般会放置在眼线上方约 30°,并偏离相机轴线 30° 至 60° 之间。Pixel 的算法就能在遵循这一摄影准则来拍摄经典的人像照片的同时,还能借助算法加强场景中的已有的照明方向性,在光和影之间,找到恰到好处的平衡。
后记
计算摄影一直能让我们得以了解 Pixel 系列乃至 Google 深度学习领域强大实力的冰山一角,从 Google Camera 到 Pixel 3 时代的「人像模式」,以及 Pixel 4 主打的「夜视模式」与 Live HDR+,都给我们带来了不少关于计算摄影的新期待。
在当前计算摄影已经逐渐成为智能手机主流发展方向的同时,Google Pixel 当初所带给我们震撼的惊人实力以及与其他手机摄影上的差距,也在各家手机厂商的奋起直追下逐渐缩小,但 Google 随着每一代 Pixel 的发布,在手机摄影引起的各种开发浪潮,不如说更像是在作为一个先行者,通过尝试各种实现方式,来引导计算摄影向前发展。
希望 Google 能继续在计算摄影领域,为我们带来更多好料。
下周见~