pixel 3 Top Shot

翻译自 google AI blog  https://ai.googleblog.com/2018/12/top-shot-on-pixel-3.html

 

Top Shot on pixel 3

生活中充满了有意义的时刻——从孩子的第一步到因为喜悦的即兴跳跃——人们的愿望是这些瞬间可以通过一幅图片保存下来。然而,由于这些时刻往往是不可预测的,错过完美的镜头是智能手机相机用户每天面对一个令人沮丧的问题。利用我们开发谷歌剪辑的经验,我们想知道是否可以为Pixel 3相机开发新技术,让每个人每次都能捕捉到完美的镜头。

Top Shot是最近推出的Pixel 3 手机上的一项新功能,它可以帮助你在按下快门按钮时精确、自动地捕捉珍贵的瞬间。Top Shot利用计算机视觉技术实时保存和分析设备按下快门前后的图像,并推荐几种可供选择的高质量HDR+照片。

 

捕获多个时刻

当用户打开Pixel 3相机应用程序时,Top Shot在默认情况下是启用的,Top Shot 功能通过分析快门按下之前和之后拍摄的照片,帮助用户捕捉最完美的瞬间。每幅图像都被实时地分析一些可量化的特征(例如,拍摄对象是否微笑),这些工作完全在设备上运行,这样可以保护隐私和最小化延迟。每个图像还与其他信号相关联,如图像的光学流程、曝光时间和陀螺仪传感器数据,这些信息将作为输入特征,来给每帧图像打分。

当你按下快门按钮, 镜头捕捉从快门按下之前和之后的1.5秒内的最多90图像, 选择了两个高分辨率保存的照片供用户选择, 这两张照片, 一张是快门按下时拍下的图像,一张是Top Shot 选择的高分辨率的图像(其他低分辨率的图像也可以根据用户的需要保存下来供用户选择)。在Top Shot 拍摄的过程中, 首先处理并保存快门按下的原始图片。然后是 Top shot 选择的最好的推荐的照片被处理并保存下来。因为HDR+ 图像有一定的额外的延迟,谷歌在Pixel 3上的Google Vision Core 硬件单元用来处理Top Shot 产生推荐给用户的最优的照片的计算过程, 并将最优的Top Shot 的照片信息嵌入到Motion Photo 的图像文件中。

由于运行在相机拍照过程中的 Top Shot 是在后台处理的,所以必须有非常低的功耗。因此,Top Shot使用了硬件加速的MobileNet-based 的single shot detector(SSD)。这样的优化模型的执行也需要受到功耗和thermal 传感器的限制。

 

识别最优的时刻
当我们开始理解如何让人们用相机捕捉到最美好的瞬间时,我们关注了三个关键属性:1. 功能性的指标(比如光照等;)2. 客观属性(拍摄者的眼睛睁开了吗? 拍摄对象是否微笑等); 3. 主观指标(比如情感的表现)。我们设计了一个计算机视觉模型来识别这些属性,而且这个计算过程是低延迟的 在手机上运行。

在我们的开发过程中,我们从一个普通的MobileNet模型开始,并开始为了Top Shot 功能优化这个模型,得到了一个在我们的精度、延迟和功率权衡约束下运行的定制架构。我们的神经网络设计检测早期层次的低等级的视觉属性,比如主体是否模糊,然后专用的额外的计算和菜蔬用来处理更复杂的客观属性,比如主体的眼睛是否睁开,以及主观属性,比如是否有娱乐或惊喜的情感表达,提供额外的计算和参数。在训练和推理过程中,我们使用知识提取( knowledge distillation )对大量不同的人脸图像进行训练这个模型。

然后我们采用分层广义加性模型(Generalized Additive Model)来提供人脸的质量分数,并将它们合并成加权平均的“框架人脸”分数。这个模型使我们能够很容易地解释和确定成功或失败的确切原因,使快速迭代能够提高属性模型的质量和性能。自由参数的数量大约是几十个,因此我们可以使用谷歌的黑盒优化器Vizier来优化这些参数,同时使用影响选择质量的任何其他参数。

 

帧评分模型

虽然Top Shot会优先进行面部分析,但在某些时候,面部并不是主要的拍摄对象。为了处理这些情景,我们在整体框架质量评分中包括以下额外的分数: 主体运动显著性评分—在ISP中评估当前帧和以前帧之间的低分辨率图像留,以确定场景中是否存在明显的物体运动。 全局运动模糊评分-从相机的运动和曝光时间来评估。摄像机的运动由陀螺仪和光学稳像仪(OIS)的传感器数据计算得到。 “3A”分数——自动曝光、自动聚焦和自动白平衡的状态也被考虑在内。 所有个体得分被用来训练一个预测整体质量得分的模型,该模型与人类评分者的框架偏好相匹配,以最大化端到端产品质量。

 

端到端质量与普遍性

上面的大部分组件都是单独评估精度的,但是Top Shot提出了一些独特的挑战,因为它是实时运行在Pixel相机中的。此外,我们需要确保所有这些信号都能在一个系统中得到良好的结果。这意味着我们需要根据用户所认为的 Top Shot 来评估我们的预测。 为了验证这一点,我们收集了数百名志愿者的数据,以及他们对哪一帧(从多达90帧中选出)最好看的看法。这个调查的数据集涵盖了许多典型的用例,例如肖像、自拍照、动作、风景等。 Top Shot提供的许多3秒视频都有不止一个好的镜头,所以我们需要设计质量指标来处理这个问题。我们使用了一些改进版本的传统精度和召回,一些经典的排名标准(如平均倒数排名),以及一些专门为我们的目标顶部拍摄任务而设计的其他一些标准。除了这些指标外,我们还研究了在开发过程中看到的图像质量问题的原因,从而改进了避免模糊、更好地处理多张脸等等。通过这样做,我们能够将模型引向一组人们可能会给予很高评价的选择。 重要的是,我们测试了Top Shot系统的普遍性,以确保我们的产品能够为非常广泛的用户提供一致的体验。我们评估了Top Shot中使用的每个信号在不同人群中(基于性别、年龄、种族等)的准确性,并测试了这些人群中每个信号的准确性。

结论
Top Shot只是谷歌如何利用优化的硬件和前沿的机器学习来提供有用的工具和服务的一个例子。我们希望你会发现这个功能有用,我们致力于进一步提高手机摄影的能力!

Acknowledgements
This post reflects the work of a large group of Google engineers, research scientists, and others including: 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 and Chris Breithaupt.

 

posted @ 2018-12-21 16:06  mojl  阅读(441)  评论(0编辑  收藏  举报