透過 AI 自學習,Google 讓 Pixel 3 的人像模式更優秀

作者 | 發布日期 2018 年 12 月 07 日 15:33 | 分類 AI 人工智慧 , Android , Google follow us in feedly

雖然雙鏡頭手機已普及,帶來的人像模式、多倍變焦也成了不少智慧手機的「標配」,但仍然有廠商依然堅持用單鏡頭。



比如以軟體著稱的 Google,從 Pixel 手機初代到今天 Pixel 3 / 3 XL,兩年時間裡(初代 Pixel 2016 年發表),仍堅持採用單鏡頭。

有意思的是,Pixel 不但是 DxOMark 榜單前段班常客,夜景表現長期力壓各旗艦,且還帶來了比雙鏡頭出品更優秀的人像模式。

這些都要歸功於軟體演算法和 AI 神經網路。Google 在 Google AI Blog 分析了 Pixel 3「人像模式」(Portrait Mode)的演算法原理。實際上,他們在這套演算法下了不少工夫。

Google 的演算法原理

如果你對 Google 相機演算法很陌生,不妨先來了解一下 Pixel 2 的人像演算法原理。

去年,Google 透AI(神經網路)演算法,讓 Pixel 2 / 2 XL 在僅一顆鏡頭的硬體條件下,拍出與雙鏡頭手機媲美的人像背景虛化照片。

(Source:Google

去年 Google 公布的這組對比圖,我們能快速區分出左邊的 HDR+ 和右邊 Portrait Mode「人像模式」照片在背景虛化的不同。

正如所見,「人像模式」下,人像後的背景被軟體虛化處理,與正常 HDR+ 對比看去視覺衝擊更強,同時也避免背景干擾拍攝主體的視覺。

拍攝一張 HDR+ 照片

根據 Google 去年 AI Blog 的介紹,Pixel 2 相機會先拍攝一組 HDR+ 照片,再多幀合成,提升最終成片的動態範圍、細節保留、高光表現。

下面這組 HDR+ 的對比圖,能看到此功能開啟前後的區別(注意右上角遠景曝光及地板線條細節)。

▲ 左:HDR+ 之前;右:HDR+ 之後。(Source:Google

分割遠近景

如果你想拍一張「人像模式」照片,那麼得到一張 HDR+ 成片後,相機會使用 TensorFlow AI 神經網路將人物畫素點、物體畫素點、遠近物畫素點篩選出來。

Google AI Blog 的對比圖能看到更直覺的展示效果:

左邊是 HDR+ 拍攝原圖,右邊黑色部分是 AI 辨識出來的背景部分,白色部分是辨識出來的主體人物外框(包括人物五官細節及外框內的物體)。

有意思的是,從最終成片能看到,桌上的餅乾在 AI 辨識是屬於「非人」部分,但最終這部分沒有虛化。這是因系統除了將主體和背景辨識出來,還辨識出主體周圍物體,因此 AI 最終沒有將人物下方的物體虛化。因為這部分雖然不屬於對焦主體,屬於近景,但這效果還不是最完美。

得到深度最佳化圖並合成最終成片

雖然去年 Pixel 2 和今年 Pixel 3 系列都沒有雙鏡頭,但 Google 似乎一直不是硬體取勝的公司,他們更擅長用軟體和演算法解決問題。

(Source:Google

儘管沒有硬體雙鏡頭,但 Pixel 相機都配備 PDAF 雙核相位對焦技術,Google 便可透過畫素點劃分,將一顆鏡頭「一分為二」:

鏡頭手邊拍攝到的畫面會和右側畫面約 1 公厘的不同視覺間距,如果是垂直拍攝,鏡頭則是分為上下兩部分排列。

拍攝後,系統會並排兩側鏡頭拍到的畫素。通過 Google 自家 Jump Assembler 算法得出立體演算的深度最佳化圖,利用雙向求解器將深度圖轉變成高解析度。

▲ 圖 12 為上半部、下半部相機拍攝,圖 3 動圖為前面兩圖區別。(Source:Google

上圖左是透過 PDAF 拍攝並演算得到的深度圖,白色部分越深,代表與鏡頭距離越近;右邊是決定畫素模糊程度,黑色部分為「不需模糊」範圍,紅色部分為「需模糊範圍」,透過紅色深淺,系統會自動判斷背景虛化的力度。

▲ 最終效果圖。(Source:Google

最後系統會將第 2 步驟分割出的背景圖和第 3 步驟得出的深度圖合併。在 AI 物體判別下,系統能估算出近景的餅乾和瓷盤到對焦(人物)主體的距離並虛化。最終得到比步驟 2 的初級處理更全面和自然的人像照片。

對比步驟 2 和步驟 3 最終效果圖,你能看到近景餅乾也適當虛化了。透過軟體演演算法,我們能將虛化範圍「捏造」成任何形狀。

Google 怎樣訓練神經網路的?

了解了 Pixel 2 的人像模式原理,那麼 Pixel 3 的最佳化就不難理解了。

透過軟體演算法,相機系統可大致估算出對焦主體和背景的距離,並虛化遠景。但手持拍攝時,手機難免出現輕微振動,因而影響到最終虛化效果。正是如此,之前有不少用戶在 Pixel 2 系列遇到景深辨識錯誤的問題。

(Source:Google

根據 Google AI Blog 介紹,基於神經網路學習的特徴,Pixel 3 上 Google 透過增加 AI 系統的辨識幫助和訓練 AI 神經網路的演算法,修復「人像模式」的辨識誤差問題。

例如,透過畫素點數量判斷物體與鏡頭的遠近距離,得出給 AI 更精準的距離判斷結果;或透過焦點內外的清晰情況,提供 AI 散焦。

(Source:Google

Franken Phone」是 Google 用於訓練 TensorFlow 編寫的神經網路系統的裝置,這套裝置由 5 Pixel 3 Wi-Fi 組成。

測試時,Google 會用 Franken Phone 5 台手機在不同角度同時拍攝,最終得出一張由多角度、立體演算法合成的動態深度圖。進而達到模擬拍攝動態、在複雜場景訓練神經網路精準辨識出人物(近景)和背景(遠景)的目的。

▲ 左圖為 Google Franken Phone。(Source:Google

當然,如果讀者對 Google 這套演算法感興趣,也可以親自研究。Google AI Blog 表示,使用 Google Camera App 6.1 版本的「人像模式」拍攝後,透過 Google Photos 能檢視照片的深度圖了。

或者,也可透過第三方軟體擷取深度圖,看看 AI 神經網路最佳化辨識的方式。

(本文由 愛范兒 授權轉載;首圖來源:Google