Google 是如何把 Pixel 5 上的人像光效做出來的?

愛範兒 於 21/12/2020 發表 收藏文章
這一兩年來,計算攝影這個詞我們聽到太多次了。

提到計算攝影,自然而然的就會讓人想到 Google 的 Pxiel 系列手機,這個系列可以説是開創了計算攝影的先河,它為我們揭示了計算攝影的威力和魅力所在。

也正是因為計算攝影帶來的威力如此驚人,這兩年逐漸回過味的手機廠商們才終於一股腦紮了進去。而 Google 這時候已經在玩更多的花活了。

「人像光效」的最初是隨着今年十月份 Google 發佈 Pixel 4a&Pixel 5 上,這一代 Pixel 獨佔的功能。但是在前幾天,Google 對相機和相冊應用進行了一次更新,將這個功能下放給了 Pixel 2 之後的用户。


受到肖像攝影師使用的攝影燈啓發,「人像光效」能夠對光源進行重新定位和建模,然後將新的光源添加到照片的場景中去。並且還能夠識別初始照明的方向和強度,然後對照明情況自動進行補充。

這樣強悍的計算攝影功能自然離不開神經網絡的機器學習能力,通過手機人像光效模式所拍攝的照片作為數據庫進行訓練之後,「人像光效」的後期能力啓用了兩種新的算法:

  • 自動添加合成光源:對於給定的人像照片,算法進行合成添加往外光源,並且將於現實中攝影師的打光照明相一致。
  • 合成後重新照明:對於給定的照明方向和人像照片,以最自然方式添加合成光。

首先説第一個問題,就是確定光源位置和添加。在現實中,攝影師通常採用經驗和感性的方式,通過觀察光線落在被拍攝者臉上的強度和位置,然後去確定如何去打光。但是對於 AI 來説,如何確定已有光源的方向位置是並不容易。


為此,Google 採用了一種全新的機器訓練模型——全方向照明輪廓。這種全新的照明計算模型可以將人臉當做光線探測器,從而推斷出來自所有照射的光源方向、相對強度和顏色,而且還能通過另一種面部算法來估計照片中頭部的姿勢。

雖然聽起來很高大上,但是實際訓練模型的呈現效果還是挺可愛的,它會把人的腦袋看做三個圓圓的銀色球形物體,頂部的球「質地」是最粗糙的,用來模擬光線的漫反射。中間的球也是磨砂的,它用來模擬較為聚集的光源。而最底下的球則是鏡面「材質」,用來模擬較為光滑的鏡面反光。

另外每個球體都能根據自身發的特點反映環境照明的顏色,強度和方向性。

這樣,Google 就能得到後期合成光源的方向應該在哪裏,比如經典的人像光源是位於視線上方 30°,與攝像機軸成 30° 至 60° 之間,Google 也遵循了這一經典規則。

在學會了給人像添加光源的方向之後,那接下來要做的就是如何讓添加的光源變得更加自然。

前一個問題有點像「獨孤九劍」的劍譜,學會了之後就會做固定的一些題目了。而解決後一個問題則需要讓「獨孤九劍」儘可能多的實戰,將不同的實際情況融會貫通,再學會破解世間萬般武學。


為了解決這個問題,Google 又研發了另一個新的訓練模型,用來確定自定向光源添加到原始的照片中。正常情況下是無法用已有的數據訓練這個模型的,因為無法面對近乎無窮的光線照射情況,並且還要與人臉完美的匹配起來。

為此 Google 打造了一個很特殊的用於訓練機器學習的裝置——一個球形的「籠子」。在這個裝置裏面具有 64 個具有不同視角的攝像機和 331 個可單獨編程的 LED 光源。

如果你去過杜比影院,在杜比影院的映前秀中有一個環節是聲音在一個半球型的穹頂中移動來模擬真實中近乎無限的方向。Google 這個裝置其實也是類似的原理。


通過不停地改變照射的方向和強度並模擬複雜的光源,然後可以得到人的頭髮、皮膚、衣服反射光的數據,從而獲得在複雜光源下的照明應該是怎樣的。

Google 一共請了 70 位不同的人,用不同的臉型、髮型、膚色、衣服、配件等特質訓練這個模型。這樣確保能夠最大限度讓合成的光源與現實相匹配。

此外,Google 並非直接通過神經網絡模輸出最後的圖像,而是讓神經網絡模型輸出一個較低分辨率的商圖像。

這裏解釋一下什麼是商圖像,一張圖片我們可以分解為兩層:底層和細節層。底層包含圖像的低頻信息,反映了圖像在大尺度上的強度變化;細節層包含圖像的高頻信息,反映了圖像在小尺度上的細節。底層乘以細節層即為源圖像,而細節層則又可以稱為商圖像。

然後通過原始圖像的底層,採樣時輸入商圖像的數據添加額外的光源,就能得到一個最終輸出的圖像。


最後的流程就是這樣,先給定一張圖片,然後計算圖片中人物的表面法線,緊接着計算圖片中的可見光源,通過神經網絡模型模擬額外光源輸出較低分辨率的商圖像,然後作為細節層與原始照片底層相乘計算,最終得到一張添加了額外光源的人像照片。

Google 還對管線進行了大量的優化,讓模擬的光效能夠在手機上實時交互,而整個模型的大小卻僅有 10MB 左右。


Pixel 5 的人像光效可以説是 Google 計算攝影中的一個典型案例,通過不斷訓練神經網絡模型讓手機得以模擬現實中的人像打光。完成了計算攝影一次新應用場景。

有些人説攝影本是門藝術,計算攝影在根本上是對攝影的侮辱,但自從 1839 年法國人達蓋爾做出了第一台具備實用性的相機以來,一百多年來相機一直在由小眾走向大眾,直到手機攝像頭的誕生,讓每個人都有了近乎平等的拍照機會。而人們的內心的表達也讓攝影這門藝術得以逐漸豐富起來。

沒錯,計算攝影在「攝影」的同時也在「算影」,但算法早已是手機攝影中不可分割的一部分,所追求的仍然是模擬現實中所能實現的效果,畢竟沒人會把「魔法換天」叫做計算攝影吧。

而當蘋果和 Google 在計算攝影上走的越來越遠時,我們才發現,算法其實是比硬件更強的壁壘。


資料來源:愛範兒(ifanr)

留言


請按此登錄後留言。未成為會員? 立即註冊
    快捷鍵:←
    快捷鍵:→