文 / Li Zhang 和 Wei (Alex) Hong ,软件工程师
从孩子迈出的第一步到不自禁的欣喜雀跃,生活中充满了有意义的时刻,每个人都希望可以用图片保存这些美好时刻。然而,由于这些时刻往往无法预知,错过完美抓拍成了智能手机相机用户每天都要面对的沮丧问题。凭借开发 Google Clips 的经验,我们想知道能否为 Pixel 3 摄像头开发一些新技术,让每位用户每次都能捕捉到完美的抓拍画面。
最佳照片是最近随 Pixel 3 推出的一项新功能,可以在您按下快门按钮时自动帮您精准捕捉珍贵瞬间。最佳照片功能采用计算机视觉技术,可以实时保存并分析按下设备快门键前后的图像帧,向您推荐多张高质量 HDR+ 备选照片。
Pixel 3 的最佳照片示例。在左侧,推荐的是更好的微笑照片。在右侧,推荐的是更好的跳跃照片。所推荐的图像都是高质量 HDR+ 照片
捕捉多个时刻
最佳照片功能会在用户打开 Pixel 3 相机应用时默认启用,通过分析按下快门前后拍摄的图像,帮助用户捕捉完美时刻。该功能会实时分析每个图像中的一些定性特征(例如,拍摄对象是否在微笑),而且全部工作都在手机上完成,可以保护隐私并最大限度缩短延迟时间。每个图像还会关联其他信号,例如图像的光流、曝光时间和陀螺仪传感器数据,以便形成用于为帧质量评分的输入特征。
当您按下快门按钮时,最佳照片功能可以在按下快门前后的 1.5 秒中捕捉高达 90 张图像,然后选出最多两张备选照片,并将其保存为高分辨率图像,即供您审看的原始快门帧和高分辨率备选图像(也可以根据需要查看其他分辨率较低的帧)。该功能会先处理并保存快门帧,然后保存最佳备选照片。Pixel 3 的 Google Visual Core 用于在非常短的额外延迟时间内将这些质量最好的备选照片处理成 HDR+ 图像,并将它们嵌入到 Motion Photo 文件中。
最佳照片捕捉的顶层图
由于最佳照片功能在相机中作为后台进程运行,它的耗电量必须要非常低。为此,最佳照片使用了基于 MobileNet 的硬件加速单镜头探测器 (SSD)。这种优化后模型的执行也会受到电量和发热限制的束缚。
识别最佳时刻
在考虑如何才能让用户使用自己的相机捕捉最佳时刻时,我们重点关注了三个关键属性:
1) 功能属性(例如光照);
2) 客观属性(拍摄对象的眼睛是否睁开?是否在微笑?);
3) 主观属性(例如情感表达)。
我们设计了一个计算机视觉模型,用于识别这些属性,同时保持在低延迟时间的设备内置模式下运行。
在开发过程中,我们从普通 MobileNet 模型开始,针对最佳照片功能进行优化,最终开发出了一个在我们的准确度、延迟时间和电量权衡约束下运行的自定义架构。我们的神经网络设计可以探测到早期层级中的低级视觉属性(例如拍摄对象是否模糊),然后为更复杂的客观属性(例如拍摄对象的眼睛是否睁开)和主观属性(例如是否存在开心或惊讶的情感表达)提供额外的计算和参数。在训练和推理期间,我们对采用了量化方法的大量不同种类人脸图像使用了知识蒸馏,以训练我们的模型。
然后,我们采用分层广义加性模型 (GAM) 为面部提供质量评分,并将它们合并,得出 “帧人脸” 加权平均评分。此模型让我们能够轻松地解释并确定成功或失败的确切原因,实现快速迭代,从而提升属性模型的质量和性能。自由参数的数量大约是几十个,因此我们可以使用 Google 黑盒优化器 Vizier 来优化这些参数,以及影响选择质量的任何其他参数。
帧评分模型
虽然最佳照片功能会针对面部分析进行优化,但在某些美好瞬间,人脸并不是主要的拍摄对象。为了处理这些用例,我们在整体帧质量评分中添加了下列额外评分:
对象动作显著性评分 — 在 ISP 中评估当前帧和前一帧之间的低分辨率光流,以确定场景中是否存在明显的对象动作。
全局动作模糊评分 — 根据相机动作和曝光时间评估得出。相机动作可以用陀螺仪和 OIS(光学稳像仪)的传感器数据计算得出。
“3A 评分” — 同时考虑自动曝光、自动聚焦和自动白平衡的状态。
所有单项评分都将用于训练一个预测整体质量评分的模型(整体评分与人类评分者的帧偏好相匹配),以便将端到端产品质量最大化。
端到端的质量和公平性
上述部分大多数都是分别评估准确度,但最佳照片功能提出的要求独具挑战性,因为它在 Pixel 相机中实时运行。此外,我们需要将所有这些信号都组合在一个系统中,并得到有利结果。这意味着我们需要根据用户认为的 “最佳照片” 标准来衡量我们的预测。
为了验证这一点,我们收集了几百名志愿者的数据以及他们眼中的最佳帧(从多达 90 帧的画面中选择!)。这个捐赠的数据集涵盖许多典型用例,例如肖像、自拍照、动作、风景等。
最佳照片功能提供的很多时长 3 秒的剪辑中不止有一个好镜头,因此我们有必要制定质量指标来处理这一问题。我们采用了一些传统查准率和查全率的修改版本、一些经典排名指标(例如平均倒数排名),以及专为我们的最佳照片目标任务设计的一些其他指标。除了这些指标,我们还研究了在开发过程中发现的图像质量问题的成因,从而提升了在避免模糊、更好地处理多个人脸等方面的能力。这样一来,我们就能够让模型选出人们可能会给出很高评分的一组选择。
重要的是,我们测试了最佳照片系统的公平性,以确保我们的产品能够为非常广泛的用户提供一致的体验。我们评估了最佳照片功能使用的每个信号在多个不同用户子群(基于性别、年龄、种族等条件)中的准确度,并测试了每个信号在这些子群间的准确度。
结论
最佳照片功能只是 Google 利用优化后的硬件和先进的机器学习技术来提供实用工具和服务的一个示例。希望您会觉得这个功能有用,我们正致力于进一步完善手机摄影功能!
致谢
本文由众多 Google 工程师、研究员和其他员工共同完成,包括:Ari Gilder、Aseem Agarwala、Brendan Jou、David Karam、Eric Penner、Farooq Ahmad、Henri Astre、Hillary Strickland、Marius Renn、Matt Bridges、Maxwell Collins、Navid Shiee、Ryan Gordon、Sarah Clinckemaillie、Shu Zhang、Vivek Kesarwani、Xuhui Jia、Yukun Zhu、Yuzo Watanabe 和 Chris Breithaupt。
更多 AI 相关阅读: