Google Clips AI 拍照新技術,更善於自動抓拍「有趣」瞬間

作者 | 發布日期 2018 年 06 月 26 日 8:45 | 分類 AI 人工智慧 , Google , 軟體、系統 follow us in feedly

過去幾年,深度學習讓電腦視覺演算法辨識一張好照片的許多元素:人物、笑臉、寵物、有名地標及其他元素。儘管深度學習近期取得進步,但自動攝影依舊有極具挑戰的難題:相機能自動抓拍精彩瞬間嗎?



Google 去年發表了自動抓拍生活有趣瞬間的全新相機產品:Google Clips 相機,遵循以下 3 項重要原則:

  1. Google 想要全部計算在相機端進行。在相機端計算的好處,除了可以延長相機電池壽命和減少計算延遲,還代表除非用戶決定儲存或分享拍攝資料,所有資料都保留在相機端,這也是用戶隱私控制的關鍵。
  2. Google 希望 Clips 拍攝短片,而不是照片。拍攝動態瞬間更能切中用戶需求和忠於回憶,且相較即時抓拍單張完美瞬間的照片,拍攝一段引人注目瞬間的影片更容易。
  3. Google 想讓相機專注於「偷拍」人和寵物,而不是更抽象和有主觀困難的藝術照片。也就是說,Google 並沒有嘗試教 Clips 思考構圖、色彩平衡、光線等拍攝技巧;相反地,Clips 專注於選擇「偷拍」人和動物在做有趣活動的瞬間。

學習辨識記錄精彩瞬間

如何訓練演算法辨識精彩瞬間?和解決大多數機器學習問題一樣,Google 也是從資料庫開始。首先,Google 打造一個有成千上萬不同場景的影片資料庫,並認為 Clips 可在這些場景派上用場。Google 還確保資料庫大量涵蓋種族、性別、年齡等範圍。另外,Google 還雇用專業攝影師和影片剪輯師,從 Clips 拍攝的影片素材精心挑出最優片段。早期綜合處理影片為 Google 提供樣本,這些樣本可供演算法模擬。但是,訓練演算法獨立學習人類的主觀選擇很具挑戰性,這需要平滑梯度的標籤來教演算法學會辨識影片的內容品質(從「完美」到「糟糕」)。

為了處理這個問題,Google 採用第二種資料收集方法,就是為影片長度內創造連續品質評分。Google 將每支影片切成短片段(類似 Clips 拍攝的內容片段),並從中隨機選出一組(兩片段)讓人類評估員從中挑出較喜歡的。

「你表弟拍了一段長片,他想讓你幫助選出一部分片段儲存。他向你展示幾組片段並讓你在每組中挑出比較喜歡的。」

因為從一組片段選出較好的比從一堆片段選最喜歡的容易,所以 Google 採用成組比較的方法,而不是讓人類評估員直接對整支影片打分數。Google 發現使用成組比較時,人類評估員始終如一,直接打分數時就沒那麼穩定了。對任何特定影片,只要給予夠多成組片段,Google 就能在整支影片內計算出連續片段品質評分。Google Clips 1 千多支影片,取樣超過 5 千萬個用於成組比較的影片片段。這過程耗費了大量人力。

訓練一個片段品質模型

給予特定訓練資料的品質得分情況下,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 的匯出合併成某分格片段的品質得分。這分格的品質得分,是綜合影片片段產生瞬間得分。給定一個成組比較樣本後,模型應該可計算出瞬間得分,也就是幫人類偏愛的片段打出更高分數。這樣訓練模型讓它的預測盡可能與人類在成組片段比較的喜好相符。

▲ 生成分格品質得分的模型訓練過程。分段線性回歸是從一個 ICM 嵌套對映到一個得分,也就是對一支影片綜合評估時,得到的瞬間得分。人類偏愛的片段瞬間得分應該更高。

這個過程允許 Google 訓練一個結合 Google 圖片辨識技術和人類評估員智慧的模型,其中人類評估員的智慧由 5 千萬個關於「何為有趣內容」的觀點代表。

雖然由資料驅使的評分模型,已在辨識影片的有趣和無趣瞬間表現相當不錯,但 Google 仍在整體評分的基礎上增加一些獎勵,激勵模型拍攝一些 Google 想讓它拍攝的畫面,包括人臉(特別是經常出現在鏡頭前的熟悉面孔)、笑容和寵物。Google 近期發表了一篇《Jump for joy: Google Clips captures life’s little moments》論文,Google 針對用戶明確想記錄的特定行為(如擁抱、接吻、跳躍和舞蹈等)增加一些獎勵,激勵模型記錄這些用戶行為。辨識上面這些行為,需要延伸 ICM 模型。

抓拍控制

有了可預測場景「有趣」的強大模型後,Clips 相機就能判斷哪個場景需要即時抓拍了。Clips 相機的拍攝控制演算法遵循下面 3 個主要原則:

  1. 高效利用電池和避免裝置過熱Google 希望 Clips 的電池可保持約 3 小時續航,且不希望裝置過熱(禁止裝置以高效能狀態全程執行)。Clips 大部分時間在低能耗狀態執行,期間 Clips 每秒拍攝一格畫面。如果某分格畫面品質達到 Clips 的臨界值(依據 Clips 最近拍到最好照片品質而定),Clips 就會進入每秒拍攝 15 格畫面的高效能狀態。隨後,Clips 會儲存包含第一張達到最好品質照片的影片片斷。
  2. 避免多餘拍攝Google 不希望 Clips 一次記錄所有瞬間,捨棄掉剩餘的。因此,Google 的拍照控制演算法將 Clips 拍攝的瞬間,分群擺入視覺相似的組別,並限制每群片段數量。
  3. 二次評估所拍內容:當拍攝片段總體擺在眼前時,可輕鬆判斷哪個片段拍得最好。相較於直接將拍攝結果展示給用戶,Clips 傾向記錄更多瞬間再讓用戶選擇。將拍攝片段傳送至手機端前,Clips 相機會再次評估內容,然後只將品質最好和最少多餘的內容呈現給用戶。

機器學習的公平性

除了保證影片資料庫涵蓋人種類別多樣性,Google 還建立了幾項其他測試來評估演算法的公平性。在保證平衡的前提下,Google 從不同性別和膚色中對取樣 subject 打造一個可控資料庫,同時保持內容類別、時長、環境條件恆定等多樣性。隨後,Google 使用這個資料庫測試演算法應用到不同組時,是否保持相同表現。為了幫助偵測演算法公平性是否有退化,一旦發現退化,Google 就會即時改進瞬間品質模型(moment quality models),Google 也將這個公平性測試加到自家自動化系統。任何軟體改變都要測試電池續航,需要合格通過。需要注意的是,這個方法無法完全保證演算法公平,正如 Google 無法對每個可能場景和結果都測試。但 Google 相信在機器學習演算法中實現公平的長期研究,以上步驟是重要部分。

結論

大多數機器學習演算法都設計成評估目標的品質:如判斷一張照片有貓或沒有貓。在這個案例,Google 旨在將演算法設計成拍攝更難懂、更主觀的品質,即判斷一張個人照片是否有趣。因此 Google 將照片的客觀、語義內容與人類的主觀喜好結合,用於打造支援 Google Clips 相機的 AI 技術。另外,Clips 還設計成可在用戶參與下工作,而不是獨自工作;為了取得更佳拍攝結果,需要用戶考慮取景並把 Clips 調校至有趣。Google 很高興看到 Google Clips 表現良好,並將繼續改進演算法來幫助 Clips 捕捉「完美」瞬間。

(本文由 雷鋒網 授權轉載;首圖來源:Google