文 / 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 相关阅读:

  • Google AI 量子团队:一起探索量子神经网络

  • Grasp2Vec:通过自我监督式抓取学习物体表征

  • Google 翻译提供 “特定性别翻译”,大大消除性别表述歧义

Pixel 3 的最佳照片功能相关推荐

  1. 谷歌相册怎么下载照片_Google的实时相册可以自动分享您的最佳照片

    谷歌相册怎么下载照片 Google Photos now makes it easier to view and share your photos. Choose your favorite peo ...

  2. php 使用上传文件预览插件,bootstrap fileinput插件实现预览上传照片功能方法详解...

    本文主要介绍了bootstrap fileinput插件实现预览上传照片功能,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友可以参考下,希望能帮助到大家. 效果图如下所示: 具体代码如下: cl ...

  3. python处理图片去白底-Python实现将蓝底照片转化为白底照片功能完整实例

    本文实例讲述了Python实现将蓝底照片转化为白底照片功能.分享给大家供大家参考,具体如下: import cv2 import numpy as np img=cv2.imread('yay.jpg ...

  4. python黑屏改成白底_Python实现将蓝底照片转化为白底照片功能完整实例

    本文实例讲述了Python实现将蓝底照片转化为白底照片功能.分享给大家供大家参考,具体如下: import cv2 import numpy as np img=cv2.imread('yay.jpg ...

  5. 微信小程序(上传照片功能、统计字数功能)

    微信小程序仿淘宝申请界面中的"申请描述" 效果图:(上传照片功能.统计字数功能) .wxml : <view class="apply-describe" ...

  6. html放多张gif动态背景图片,美图秀秀上线“魔法照片”功能:静态图片秒变动态大片...

    [TechWeb]6月5日,美图秀秀最新推出基于AI技术的隐藏功能-"魔法照片",包括头发流动.鲜花环绕.花瓣变身.滤色叠加.空间位移.火焰星云等10多种魔法效果,用户可以将静态照 ...

  7. 世界前 1000 顶级计算机科学家名单出炉;Java25岁生日官方启动最佳JDK功能票选活动...

    行 业 要 闻 Industry   News ▲▲▲ 0 1 Java迎来25岁生日!官方启动最佳JDK功能票选活动 5月23日Java迎来25岁生日.Java起源于1991年的" Oak ...

  8. python制作白底界面_Python实现将蓝底照片转化为白底照片功能完整实例

    本文实例讲述了Python实现将蓝底照片转化为白底照片功能.分享给大家供大家参考,具体如下: import cv2 import numpy as np img=cv2.imread('yay.jpg ...

  9. android 动态显示多张图片,美图秀秀上线“魔法照片”功能:静态图片秒变动态大片!...

    一键生成大片,教你制作化静为动的"魔法照片" "魔法照片"的灵感来源于哈利波特的魔法世界,在神奇的魔法加持下,一张静态报纸中的人物竟然动了起来,现在这种神奇的效 ...

  10. qq空间的相册名称java_jsp实现仿QQ空间新建多个相册名称并向相册中添加照片功能...

    工具:Eclipse,Oracle,smartupload.jar:语言:jsp,Java:数据存储:Oracle. 实现功能介绍: 主要是新建相册,可以建多个相册,在相册中添加多张照片,删除照片,删 ...

最新文章

  1. spring 事务 配置 多个
  2. 数据库树状结构的关系表的删除方案
  3. 2012黑龙江省赛J题-最小均值圈
  4. Linux : find big file in the all directories
  5. 卷积神经网络(CNN)介绍
  6. 学成在线--19.新增课程(数据字典)
  7. HashMap 为什么会导致 CPU 100%?文章看不懂?来看这个视频吧!——面试突击 006 期...
  8. 一个暂时无法理解的bug
  9. python论文摘要_python新玩法:用python进行文章摘要拿取,只需要一行代码
  10. docker部署redis集群_Docker部署Redis集群----第六节(docker-redis-sentinel集群的机制)...
  11. ubuntu下安装gcc
  12. 陪孩子一起学习python
  13. web前端面试题(十一)之如何解决跨域问题?
  14. 欧姆龙CP1H+CIF11与3台施耐德ATV 71变频器通讯实战程序
  15. 从北斗到Mate 50:星空中的中国式浪漫
  16. C# 将raw格式的二进制灰度图像转为正常位图格式
  17. 在树莓派中解决浏览器自动更新失败弹框遮挡数据的方案
  18. 一篇文章教你从入门到精通 Google 指纹验证功能
  19. Graham Scan算法
  20. 备份微信聊天记录到电脑上,并且可以随时导回

热门文章

  1. PIXHAWK飞行模式
  2. 从零开始搭建服务器,拥有一个属于自己的网站
  3. GNSS/INS组合导航(六):惯性导航误差建模
  4. win10c盘扩容_Win10中无损分区扩容调整大小
  5. Iterator中的 FailFast FailSafe【学习笔记】
  6. HDU 5143 NPY and arithmetic progression(思维)
  7. 光纤交换机配置zone
  8. Android Wi-Fi源码分析之wpa_supplicant初始化(三):wpa_supplicant_add_iface函数分析
  9. 密歇根州立大学教授刘小明讲解:人脸识别的新技术 | 大牛讲堂
  10. 投稿Springer旗下某中科院1区TOP期刊时间记载