首頁/ 遊戲/ 正文

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

這一兩年來,計算攝影這個詞我們聽到太多次了。

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

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

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

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

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

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

自動新增合成光源:對於給定的人像照片,演算法進行合成新增往外光源,並且將於現實中攝影師的打光照明相一致。

合成後重新照明:對於給定的照明方向和人像照片,以最自然方式新增合成光。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

此外,Google 並非直接透過神經網路模輸出最後的影象,而是讓神經網路模型輸出一個較低解析度的商影象。

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

然後透過原始影象的底層,取樣時輸入商影象的資料新增額外的光源,就能得到一個最終輸出的影象。

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

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

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

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

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

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

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

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

集虎卡,開鴻運!最高拆522元驚喜福袋!

相關文章

頂部