对我而言,摄影就是在几秒钟之内认识到一个事件的重要性,同时为这个事件找到恰当表达形式的一种精密组织形式。
——Henri Cartier-Bresson
在过去几年里,人工智能经历了一场类似寒武纪的爆发,在深度学习方法的帮助下,计算机视觉算法能够识别出一张优质照片中的许多元素,包括人、微笑、宠物、日落、著名地标等。但是,尽管最近取得了这些进展,自动摄影仍是一个颇具挑战性的问题。相机能自动捕捉不平凡的时刻吗?
今年 2 月,谷歌发布了 Google Clips,这是一款全新的免持相机,可以自动捕捉生活中的有趣瞬间。在 Google Clips 的设计过程中,谷歌主要遵循以下三个重要原则:
谷歌希望所有计算都在设备上运行。除了延长电池寿命和减少延迟之外,设备端处理还意味着,除保存或共享视频之外,任何视频都不会离开设备,这是隐私控制的关键一环。
谷歌希望该设备能够拍摄短视频,而不是单张照片。有动作的时刻可能更深刻,也能留下更真实的记忆。而且,拍摄一个引人注目时刻的视频往往比即时捕捉一个完美瞬间更容易。
谷歌希望捕捉人和宠物的真实时刻,而不是将精力放在捕捉艺术图像这种更抽象、更主观的问题上。也就是说,谷歌并未试图教 Clips 思考构图、色彩平衡、灯光等问题,而是专注于如何选取包含人和动物进行有趣活动的时刻。
如何训练算法来识别有趣的时刻?与大多数机器学习问题一样,研究者首先从数据集入手。他们在不同的场景中创建了一个由数千个视频组成的数据集,想象 Clips 在这些场景中得到应用。同时研究者还确保数据集涵盖广泛的种族、性别和年龄。之后,谷歌聘请了专业摄影师和视频编辑仔细查看视频,选出最佳的短视频片段。这些早期的处理为他们的算法提供了可以模仿的实例。然而,仅仅从内容处理者的主观选择来训练算法是有挑战性的,我们需要平滑的标签梯度来教会算法识别内容的质量(从「完美」到「糟糕」)。
为了解决这个问题,研究者采用了第二种数据收集方法,目标是在视频长度上创建连续的质量分数。研究者将每个视频分割成小段(类似于 Clips 捕捉到的内容),然后随机选择片段对,并要求人类评分者选择他们喜欢的片段。
研究者采用这种成对比较的方法,而不是让评分者直接给视频评分,因为选择一对中更好的一个要比给出一个数字容易得多。研究者发现评分者在成对比较中非常一致,而在直接评分时分歧大一些。给定任意给定视频足够多的成对比较片段,我们就能计算整个长度上的连续质量分数。在这个过程中,研究者从 1000 多个视频中收集了超过 5000 万对成对比较视频片段。这是一项非常耗费人力的工作。
基于该质量得分训练数据,研究者的下一步就是训练一个神经网络模型来评估设备捕捉到的任意照片的质量。谷歌研究者首先假设了解照片中的内容(即人、狗、树等)有助于确定「有趣性」(interestingness)。如果该假设正确,则我们可以学习一个使用识别到的照片内容的函数来预测其质量得分(得分基于人类的对比评估结果)。
为了确定训练数据中的内容标签,研究者使用了支持谷歌图像搜索和 Google Photos 的谷歌机器学习技术,该技术可以识别超过 27000 个描述对象、概念和动作的标签。研究者当然不需要所有标签,也不会在设备端对所有标签进行计算,因此专业摄影师选择了几百个他们认为与预测照片「有趣性」最相关的标签。研究者还将最相关的标签与评分者的质量得分结合起来。
有了这个标签子集之后,研究者需要设计一个紧凑高效的模型,在能量和发热严格受限的设备端预测任意给定图像的标签。这是一项挑战,因为计算机视觉背后的深度学习技术通常需要强大的 desktop GPU,在移动端设备上运行的算法远远落后于桌面端或云端的当前最优技术。为了训练设备端模型,谷歌研究者首先采用大量照片集合,然后再次使用谷歌基于服务器的强大识别模型来预测上述每个「有趣」标签的置信度。研究者训练了一个MobileNet图像内容模型(Image Content Model,ICM),用于模仿基于服务器的模型的预测。该紧凑模型能够识别照片中最有趣的元素,忽略不相关的内容。
最后一步是利用 ICM 预测的照片内容,预测输入照片的质量得分,使用 50M 成对比较视频片段作为训练数据。得分通过逐段线性回归模型进行计算,将 ICM 输出转换为帧质量得分。视频片段中的帧质量得分取平均即为 moment score。给定一组成对对比视频片段,该模型计算出的人类偏好的视频片段的 moment score 更高一些。该模型的训练目的是使其预测尽可能与人类的成对比较结果一致。
生成帧质量得分的训练过程图示。逐段线性回归模型将 ICM 嵌入映射至帧质量得分,视频片段中的所有帧质量得分取平均即是 moment score。人类偏好的视频片段的 moment score 应该更高。
该过程使得研究者训练出一个结合谷歌图像识别技术和人类评分者智慧的模型。(人类评分者智慧主要体现在指出有趣内容的 5000 万条意见。)
基于这一预测照片「有趣性」的强大模型,Google Clips 可以决定哪些时刻需要实时捕捉。其拍照控制器算法遵循以下三个主要原则:
尊重电量 & 发热:谷歌希望 Clips 的电池能够持续大约三小时,同时不想设备过热,因此该设备不能一直全力运行。Clips 大部分时间处于每秒拍摄一帧的省电模式。如果这一帧的质量超过 Clips 最近拍摄的阈值集,则它进入高功率模式,以 15 fps 进行拍摄。Clips 在遇到第一次质量高峰时保存该视频片段。
避免冗余:谷歌不希望 Clips 一次捕捉所有时刻,而忽视了其他内容。因此谷歌的算法将这些时刻聚合成视觉相似的组,限制每一簇中的视频片段的数量。
后见之明的好处:看到所有的视频片段后,再选择最佳的视频片段就比较简单了。因此视频片段捕捉到的时刻要比它展示给用户的多。当视频片段要迁移至手机时,Clips 设备会花一秒时间查看其拍摄成果,只把最好和最不冗余的内容迁移过去。
除了确保视频数据集展现人口多样性,研究者还构建了多个测试来评估该算法的公平性。研究者通过从不同性别、肤色中均匀采样,同时保持内容类型、时长和环境条件不变,来精心创建数据集。然后,研究者使用该数据集测试该算法在应用到其他群体时是否具备相似性能。为了帮助检测提升 moment 质量模型时可能发生的任何公平性回归,研究者向该自动系统添加了公平性测试。该软件的任意改变都会在该测试中运行,并获得通过。注意该方法无法确保公平性,因为研究者无法测试每一个可能的场景和结果。但是,研究者相信这些步骤是实现机器学习算法公平性的长期工作中的重要部分。
多数机器学习算法都是为评估客观质量而设计的,如判断照片中是否有猫。在本文中,谷歌的目标是捕捉一个更难捉摸、更主观的质量——判断个人照片是否有趣。因此,谷歌将照片的客观、语义内容与主观人类偏好相结合,构建了 Google Clips 背后的人工智能。此外,Clips 被设计成与人协同,而不是自主工作;为了获得优质的结果,人类的取景意识依然重要,还要确保相机的方向是有趣的内容。谷歌对 Google Clips 的出色表现感到欣慰,期待继续改进算法来捕捉「完美」时刻!
原文链接:https://ai.googleblog.com/2018/05/automatic-photography-with-google-clips.html