文章摘要: 我們訓練出一個將 Google 影象識別技術與人類評分者智慧(5000 萬條關於內容有趣性的評估意見)完美融合的模型訓練 Clips 質量模型 掌握質量得分訓練資料後
Source: Google AI 部落格:Google Clips 自動攝影 from 谷歌開發者-中文部落格
code { background-color: transparent }
釋出人:Clips 內容團隊負責人兼研究員 Aseem Agarwala
在我看來,攝影就是在一瞬間內認識到某個事件的重要性,同時通過精準的形態組合完整記錄其面貌。
– Henri Cartier-Bresson
在過去幾年中,人工智慧經歷了一場類似寒武紀的大爆發,藉助深度學習方法,計算機視覺演算法已能夠識別出優質照片的許多元素,包括人、微笑、寵物、日落和著名地標,等等。然而,儘管近期取得了一系列進展,自動攝影仍是未攻克的一道難題。相機能自動捕捉不平凡的瞬間嗎?
最近,我們釋出了 Google Clips ,這是一款全新的免持相機,可自動捕捉生活中的有趣瞬間。我們在設計 Google Clips 時遵循了下面三個重要原則:
- 我們希望所有計算都在裝置端執行。除了延長電池壽命和縮短延遲時間之外,裝置端處理還意味著,除非儲存或共享短片,否則任何短片都不會離開裝置,這是一項重要的隱私控制措施。
- 我們希望裝置能夠拍攝短視訊,而不是單張照片。因為動作能更好地記錄瞬間的形態,留下更真實的記憶,而且,為一個重要瞬間拍攝視訊往往比即時捕捉一個完美瞬間更容易。
- 我們希望專注於捕捉人和寵物的真實瞬間,而不是將精力放在捕捉藝術影象這種更抽象、更主觀的問題上。也就是說,我們並未試圖教 Clips 思考構圖、色彩平衡和燈光等問題,而是專注於如何選取包含人和動物進行有趣活動的瞬間。
學習識別不平凡的瞬間
如何訓練演算法來識別有趣的瞬間?與大多數機器學習問題一樣,我們首先從資料集入手。先設想 Clips 的各種應用場景,在此基礎上建立出一個由數千個視訊組成的資料集。同時,我們還確保這些資料集涵蓋廣泛的種族、性別和年齡群體。 然後我們聘請了 專業攝影師和視訊剪輯師仔細檢查視訊,從中選出最佳的短視訊片段。這些前期處理方式為我們的演算法提供了可以模仿的例項。然而,僅僅依據專業人士的主觀選擇來訓練演算法並不容易,我們需要平滑的標籤梯度來教會演算法識別內容的質量(從「完美」到「糟糕」)。
爲了解決這個問題,我們採取了另一種資料收集方法,目標是為整個視訊建立連續的質量得分。我們將每個視訊剪輯成短片段(類似於 Clips 捕捉到的內容),然後隨機選擇片段對,並要求人類評分者選擇他們喜歡的片段。
之所以採用這種成對比較的方法,而不是讓評分者直接為視訊打分,是因為兩者擇其優要比給出具體分數容易得多。我們發現評分者在成對比較時的結論非常一致,而在直接評分時則有較大分歧。如果為任意給定視訊提供足夠多的成對比較短片,我們就能計算整個視訊的連續質量得分。通過這一過程,我們從 1000 多個視訊中收集了超過 5000 萬對成對比較短片。如果單純依靠人力,這項工作將異常辛苦。
訓練 Clips 質量模型
掌握質量得分訓練資料後,下一步是訓練一個神經網路模型來評估裝置捕捉到的任意照片的質量。我們首先做了一個基本假設,即瞭解照片 中 的內容(例如人、狗和樹等)有助於確定「有趣性」。如果此假設正確,那麼我們可以學習一個函式,通過識別到的照片內容來預測其質量得分(如上文所述,得分基於人類的對比評估結果)。
爲了確定訓練資料中的內容標籤,我們使用了支援 Google 影象搜尋和 Google 照片的 Google 機器學習技術,這項技術可以 識別超過 27000 個描述物體、概念和動作的不同標籤 。我們當然不需要所有標籤,也無法在裝置上對所有標籤進行計算,因此請專業攝影師從中選擇了幾百個他們認為與預測照片「有趣性」最相關的標籤。我們還新增了與評分者質量得分關聯度最高的標籤。
有了這個標籤子集之後,我們需要設計一個緊湊高效的模型,在電量和發熱嚴格受限的條件下於裝置端預測任意給定影象的標籤。這項工作提出了不小的難題,因為計算機視覺所依託的深度學習技術通常需要強大的桌面 GPU,並且移動裝置上執行的演算法遠遠落後於桌面裝置或雲端的最新技術。爲了在裝置端模型上進行此項訓練,我們首先收集了大量照片,然後再次使用 Google 基於伺服器的強大識別模型來預測上述每個「有趣」標籤的置信度。我們隨後訓練了一個 MobileNet 影象內容模型 (ICM) 來模仿基於伺服器的模型的預測。這個緊湊模型能夠識別照片中最有趣的元素,同時忽略不相關的內容。
最後一步是使用 5000 萬成對比較短片作為訓練資料,利用 ICM 預測的照片內容預測輸入照片的質量得分。得分通過 逐段線性迴歸模型 進行計算,將 ICM 輸出轉換為幀質量得分。視訊片段中的幀質量得分取平均值即為瞬間得分。給定一組成對比較短片,我們模型計算出的人類偏好的視訊片段的瞬間得分應當更高一些。訓練模型的目的是使其預測結果儘可能與人類的成對比較結果一致。
生成幀質量得分的訓練過程圖示。逐段線性迴歸模型將 ICM 嵌入對映為幀質量得分,視訊片段中的所有幀質量得分取平均值即為瞬間得分。人類偏好的視訊片段的瞬間得分應當更高。 |
通過此過程,我們訓練出一個將 Google 影象識別技術與人類評分者智慧(5000 萬條關於內容有趣性的評估意見)完美融合的模型。
這種基於資料的得分在識別有趣(和無趣)瞬間方面已經做得很好,我們在此基礎上又做了一些補充,針對我們希望 Clips 捕捉的事件的整體質量得分增加了一些獎勵,這些事件包括臉部(特別是因經常出現而比較「熟悉」的臉部)、微笑和寵物。在 最新版本 中,我們為客戶特別想捕捉的某些活動(如擁抱、親吻、跳躍和跳舞)增加了獎勵。要識別到這些活動,需要擴充套件 ICM 模型。
拍照控制
基於這款強大的場景「有趣性」預測模型,Clips 相機可以決定哪些瞬間需要實時捕捉。它的拍照控制演算法遵循以下三大原則:
- 尊重電量和發熱 :我們希望 Clips 的電池能夠續航大約三小時,同時不想裝置過熱,因此裝置不能一直全速運轉。Clips 大部分時間都處於每秒拍攝一幀的低電耗模式。如果這一幀的質量超出根據 Clips 最近拍攝量所設定的閾值,它將進入高電耗模式,以 15 fps 的速度進行拍攝。Clips 隨後會在遇到第一次質量高峰時儲存短片。
- 避免冗餘 :我們不希望 Clips 一次捕捉所有瞬間,而忽略了其他內容。因此,我們的演算法將這些瞬間聚合成視覺相似的組,並限制每一叢集中短片的數量。
- 後見之明的好處 :檢視拍攝的所有短片之後再選擇最佳短片顯然要簡單得多。因此,Clips 捕捉的瞬間要比預期展示給使用者的多。當短片要傳輸到手機時,Clips 裝置會花一秒時間檢視其拍攝成果,只把最好和最不冗餘的內容傳輸過去。
機器學習的公平性
除了確保視訊資料集展現人口群體多樣性之外,我們還構建了多項測試來評估我們演算法的公平性。我們通過從不同性別和膚色中均勻取樣,同時保持內容型別、時長和環境條件等變數恆定,來建立可控的資料集。然後,我們使用此資料集測試演算法在應用到其他群體時是否具備類似效能。爲了幫助檢測提升瞬間質量模型時可能發生的任何公平性迴歸,我們為自動系統增加了公平性測試。對軟體進行的任何變更都要進行這些測試,並且要求必須通過。但需要注意的是,由於我們無法針對每一個可能的場景和結果進行測試,因此,這種方法並不能確保公平性。但實現 機器學習演算法的公平性 畢竟任重而道遠,無法一蹴而就,而這些測試將有助於促進目標的最終實現。
結論
大多數機器學習演算法都是圍繞客觀特性評估而設計,例如,判斷照片中是否有貓。在我們的用例中,我們的目標是捕捉一個更難捉摸、更主觀的特性,即判斷個人照片是否有趣。因此,我們將照片的客觀、語義內容與主觀人類偏好相結合,在 Google Clips 中實現了人工智慧。此外,Clips 的設計目標是與人協同,而不是自主工作;爲了獲得良好的拍攝效果,拍攝人仍要具備取景意識並確保相機對準有趣的拍攝內容。我們對 Google Clips 的出色表現感到欣慰,期待繼續改進演算法來捕捉「完美」瞬間!
致謝
本文介紹的演算法由眾多 Google 工程師、研究員和其他人共同構想並實現。圖片由 Lior Shapira 製作。同時感謝 Lior 和 Juston Payne 提供視訊內容。
除非特別宣告,此文章內容採用 知識共享署名 3.0 許可,程式碼示例採用 Apache 2.0 許可。更多細節請檢視我們的 服務條款 。