Google Clips AI 拍照新技术,更善于自动抓拍「有趣」瞬间

过去几年,深度学习让电脑视觉演算法辨识一张好照片的许多元素:人物、笑脸、宠物、有名地标及其他元素。儘管深度学习近期取得进步,但自动摄影依旧有极具挑战的难题:相机能自动抓拍精彩瞬间吗?

Google 去年发表了自动抓拍生活有趣瞬间的全新相机产品:Google Clips 相机,遵循以下 3 项重要原则:

    Google 想要全部计算在相机端进行。在相机端计算的好处,除了可以延长相机电池寿命和减少计算延迟,还代表除非用户决定储存或分享拍摄资料,所有资料都保留在相机端,这也是用户隐私控制的关键。Google 希望 Clips 拍摄短片,而不是照片。拍摄动态瞬间更能切中用户需求和忠于回忆,且相较即时抓拍单张完美瞬间的照片,拍摄一段引人注目瞬间的影片更容易。Google 想让相机专注于「偷拍」人和宠物,而不是更抽象和有主观困难的艺术照片。也就是说,Google 并没有尝试教 Clips 思考构图、色彩平衡、光线等拍摄技巧;相反地,Clips 专注于选择「偷拍」人和动物在做有趣活动的瞬间。
学习辨识记录精彩瞬间

如何训练演算法辨识精彩瞬间?和解决大多数机器学习问题一样,Google 也是从资料库开始。首先,Google 打造一个有成千上万不同场景的影片资料库,并认为 Clips 可在这些场景派上用场。Google 还确保资料库大量涵盖种族、性别、年龄等範围。另外,Google 还雇用专业摄影师和影片剪辑师,从 Clips 拍摄的影片素材精心挑出最优片段。早期综合处理影片为 Google 提供样本,这些样本可供演算法模拟。但是,训练演算法独立学习人类的主观选择很具挑战性,这需要平滑梯度的标籤来教演算法学会辨识影片的内容品质(从「完美」到「糟糕」)。

为了处理这个问题,Google 採用第二种资料收集方法,就是为影片长度内创造连续品质评分。Google 将每支影片切成短片段(类似 Clips 拍摄的内容片段),并从中随机选出一组(两片段)让人类评估员从中挑出较喜欢的。

Google Clips AI 拍照新技术,更善于自动抓拍「有趣」瞬间

「你表弟拍了一段长片,他想让你帮助选出一部分片段储存。他向你展示几组片段并让你在每组中挑出比较喜欢的。」

因为从一组片段选出较好的比从一堆片段选最喜欢的容易,所以 Google 採用成组比较的方法,而不是让人类评估员直接对整支影片打分数。Google 发现使用成组比较时,人类评估员始终如一,直接打分数时就没那幺稳定了。对任何特定影片,只要给予够多成组片段,Google 就能在整支影片内计算出连续片段品质评分。Google 从 Clips 的 1 千多支影片,取样超过 5 千万个用于成组比较的影片片段。这过程耗费了大量人力。

Google Clips AI 拍照新技术,更善于自动抓拍「有趣」瞬间

训练一个片段品质模型

给予特定训练资料的品质得分情况下,Google 下一步就是训练一个神经网路模型,并使用这个模型评价 Clips 拍摄的照片品质。Google 先基本假设模型知道照片里有什幺(如人物、狗、树等),这将帮助模型定义何为「有趣」。如果这个假设成立,Google 就可以得到人类比较照片的行为衍生的新特徴:透过已辨识的照片内容来预测该照片的品质得分。

Google 利用驱动 Google 影像搜寻和 Google 相簿的同款机器学习技术,来辨识训练资料库说明事物、概念及动作的内容标籤,可辨识的不同标籤超过 2.7 万种。Google 显然不需要所有标籤,也不可能在装置端全都计算过,因此,Google 的摄影专家只选择几百种标籤,他们认为这些标籤与预测一张照片的「有趣」最接近。Google 还加上人类评估员表示片段品质得分最契合的那些标籤。

获得这些标籤的子集后,Google 需要设计一个压缩高效模型,在能源和发热的严格限制下,让装置端预测任何给定影像。这带来一项挑战,因支援电脑视觉的深度学习技术通常需要强大的桌面 GPU,目前适合在行动端装置执行的演算法还落后桌面和云端技术。为了训练装置端模型,首先 Google 使用一组数量很多的照片集,并再次使用 Google 强大且基于伺服器的辨识模型,为上述每个「有趣」标籤预测可信度。随后,Google 训练一个 MobileNet 影像内容模型(ICM)来模拟 server-based 模型(server-based model)的预测。这个压缩模型能辨识照片最有趣的元素,同时捨弃与「有趣」无关的内容。

最后一步,为一张汇入照片(照片内容由 ICM 预测)预测单一品质评分,同时使用 5 千万个成组比较样本为训练资料。这项评分是使用一个分段线性回归模型计算所得,模型将 ICM 的汇出合併成某分格片段的品质得分。这分格的品质得分,是综合影片片段产生瞬间得分。给定一个成组比较样本后,模型应该可计算出瞬间得分,也就是帮人类偏爱的片段打出更高分数。这样训练模型让它的预测尽可能与人类在成组片段比较的喜好相符。

Google Clips AI 拍照新技术,更善于自动抓拍「有趣」瞬间

 生成分格品质得分的模型训练过程。分段线性回归是从一个 ICM 嵌套对映到一个得分,也就是对一支影片综合评估时,得到的瞬间得分。人类偏爱的片段瞬间得分应该更高。

这个过程允许 Google 训练一个结合 Google 图片辨识技术和人类评估员智慧的模型,其中人类评估员的智慧由 5 千万个关于「何为有趣内容」的观点代表。

虽然由资料驱使的评分模型,已在辨识影片的有趣和无趣瞬间表现相当不错,但 Google 仍在整体评分的基础上增加一些奖励,激励模型拍摄一些 Google 想让它拍摄的画面,包括人脸(特别是经常出现在镜头前的熟悉面孔)、笑容和宠物。Google 近期发表了一篇《Jump for joy: Google Clips captures life’s little moments》论文,Google 针对用户明确想记录的特定行为(如拥抱、接吻、跳跃和舞蹈等)增加一些奖励,激励模型记录这些用户行为。辨识上面这些行为,需要延伸 ICM 模型。

抓拍控制

有了可预测场景「有趣」的强大模型后,Clips 相机就能判断哪个场景需要即时抓拍了。Clips 相机的拍摄控制演算法遵循下面 3 个主要原则:

    高效利用电池和避免装置过热:Google 希望 Clips 的电池可保持约 3 小时续航,且不希望装置过热(禁止装置以高效能状态全程执行)。Clips 大部分时间在低能耗状态执行,期间 Clips 每秒拍摄一格画面。如果某分格画面品质达到 Clips 的临界值(依据 Clips 最近拍到最好照片品质而定),Clips 就会进入每秒拍摄 15 格画面的高效能状态。随后,Clips 会储存包含第一张达到最好品质照片的影片片断。避免多余拍摄:Google 不希望 Clips 一次记录所有瞬间,捨弃掉剩余的。因此,Google 的拍照控制演算法将 Clips 拍摄的瞬间,分群摆入视觉相似的组别,并限制每群片段数量。二次评估所拍内容:当拍摄片段总体摆在眼前时,可轻鬆判断哪个片段拍得最好。相较于直接将拍摄结果展示给用户,Clips 倾向记录更多瞬间再让用户选择。将拍摄片段传送至手机端前,Clips 相机会再次评估内容,然后只将品质最好和最少多余的内容呈现给用户。
机器学习的公平性

除了保证影片资料库涵盖人种类别多样性,Google 还建立了几项其他测试来评估演算法的公平性。在保证平衡的前提下,Google 从不同性别和肤色中对取样 subject 打造一个可控资料库,同时保持内容类别、时长、环境条件恆定等多样性。随后,Google 使用这个资料库测试演算法应用到不同组时,是否保持相同表现。为了帮助侦测演算法公平性是否有退化,一旦发现退化,Google 就会即时改进瞬间品质模型(moment quality models),Google 也将这个公平性测试加到自家自动化系统。任何软体改变都要测试电池续航,需要合格通过。需要注意的是,这个方法无法完全保证演算法公平,正如 Google 无法对每个可能场景和结果都测试。但 Google 相信在机器学习演算法中实现公平的长期研究,以上步骤是重要部分。

结论

大多数机器学习演算法都设计成评估目标的品质:如判断一张照片有猫或没有猫。在这个案例,Google 旨在将演算法设计成拍摄更难懂、更主观的品质,即判断一张个人照片是否有趣。因此 Google 将照片的客观、语义内容与人类的主观喜好结合,用于打造支援 Google Clips 相机的 AI 技术。另外,Clips 还设计成可在用户参与下工作,而不是独自工作;为了取得更佳拍摄结果,需要用户考虑取景并把 Clips 调校至有趣。Google 很高兴看到 Google Clips 表现良好,并将继续改进演算法来帮助 Clips 捕捉「完美」瞬间。