了解才知道厲害 解密Google Pixel手機計算攝影原理

Google Pixel手機攝影功能一向有不錯口碑,原因在優秀的軟體技術,稱之為軟體定義(Software-defined)相機,雖然都是讓照片拍起來更漂亮,其實細節還是有所不同。帶領Pixel手機HDR+模式、肖像模式與夜視功能開發團隊的Google傑出工程師(Distinguished Engineer)Marc Levoy,親自來台介紹Pixel手機中津津樂道的特異功能,並闡述Google對未來手機攝影的看法。

Google Pixel 3a(右)與Pixel 3a XL
▲ Google Pixel 3a(右)與Pixel 3a XL(圖﹨Matt Kan攝)

Marc Levoy同時是史丹佛大學電腦科學榮譽退休教授,負責教導電腦繪圖學、數位攝影學和藝術科學。在Google他推出街景服務,共同設計圖書館書籍掃描器,目前帶領團隊負責的專案除了Pixel相機,還包括Jump光場相機與Halide圖像處理程式語言等。

他表示開發現代手機相機App有幾個原則:

  • 速度要快:即時觀景器的螢幕更新率大於15fps,快門延遲時間小於150毫秒,照片拍好的時間小於5秒。
  • 預設模式不能失敗:要有可靠的曝光、對焦、白平衡,不能有鬼影或其他影像異常。
  • 一般使用者會在意特殊需求:即使是不常用的拍攝需求也得滿足。
  • 特殊模式偶爾出問題還OK:尤其是拍出的照片很搞笑的時候。

未來手機相機系統會往三個趨勢發展:

  • 軟體定義相機:不像以往僅注重硬體規格,而會運用計算攝影(Computational Photography),整合多張連拍照片達成更好的攝影效果。
  • 機器學習:在許多功能上會以機器學習取代傳統演算法,擁有更多訓練資料會使新功能有更好的準確度。
  • 技術更為開放:藉由開放驅動創新,並藉此吸引博士等級高階人才。

Marc Levoy以Google Pixel手機知名的HDR+、肖像模式(Portrait mode)、高解析變焦(Super Res Zoom)、夜視模式(Night Sight)為例,說明Pixel軟體定義相機與傳統相機的不同。

HDR+

HDR+在Pixel手機推出之前,Nexus 5及Nexus 6手機時期就有了。HDR(High Dynamic Range Imaging)意思是高動態範圍成像,目的在減少低光源拍攝時產生的噪點(image noise),以及拍攝場景包含很亮及很暗的部份時,要讓亮部不過曝、暗部細節又清楚。

通常一般手機的作法,是把不同曝光時間的照片合成,達到亮部、暗部都清楚。但這樣做其實每張照片都像是不同的、難以合成,長曝時也容易手震造成模糊,成功率並不高。

Google是捕捉相同短曝時間的連拍影像,再把連拍影像中每個像素取平均色調合成。因為是短曝不會受到手震影響、暗部雜訊較少,相同曝光值合成時也容易校準。連拍張數夠多也可降低噪點,雖然會犧牲整體色調和對比度,但效果相對較佳。2016年時,Google Pixel手機相機就靠著HDR+獲得DXO評分第一名 (DXO 89)。

肖像模式

照片有景深效果可模糊背景降低干擾、突顯主體,是攝影的常見技巧。影響景深的要素包括光圈、焦距、攝物距離,不同鏡頭拍出來的光點模糊形狀也不同,例如有的是圓形、有的是六角形等。手機鏡頭因為光圈、焦距都是固定的,焦距也很短,因此拍出來的照片景深不太明顯。肖像模式就是試圖在手機上模擬景深效果,作法是計算出影像中每顆像素與相機的距離,區分出主體與背景,再把背景模糊。

目前手機主流算景深的方式是藉由雙鏡頭,以三角測量計算每顆像素距離,做出深度圖(Depth Map),再將前景與背景分開,將背景模糊達到效果。不過這樣的作法需要雙鏡頭,Pixel手機僅靠單鏡頭就做出景深,前後鏡頭都可以使用肖像模式。

Google使用約100萬張人物照片訓練機器學習模型,辨認影像中的內容例如人物、帽子、眼鏡、冰淇淋等,將人物與配件、背景區隔開。再透過數學計算中的「邊緣感知雙邊求解器(Edge-aware Bilateral
Solver)」對人物輪廓邊緣細化調整。優化之後,即使是人物的髮絲、手上拿的杯子也都可以正確識別出來,清楚的與背景區隔。

沒有雙鏡頭的問題,利用「雙像素(Dual pixels)」對焦技術解決。雙像素對焦在較新的單眼相機中也會用到,是將感光元件中的每顆像素分成左右兩半,左右兩半像素透過鏡頭取得的影像會有極小差距,剛好用來達成雙鏡頭的效果,算出深度圖。

肖像模式啟用時,會先運用前述HDR+拍出一張清晰圖,再套用機器學習模型分隔人物與背景,再與雙像素對焦做出的深度圖結合,對不同深度的像素做不同比例的模糊,就產生出與單眼相機景深效果類似的照片了。2017年時,Google Pixel 2手機因此成為DXO評分最高的智慧型手機, 也獲得DPReview Awards Innovation of the Year 年度創新獎的肯定。

而肖像模式到了Pixel 3又再度升級。因為雙像素對焦遇到場景中有平行線條的情況時,左右兩半像素形成的影像看起來幾乎是一樣的,就無法判別像素距離。Google又找出幾個判斷景深的方式,例如遠的物體看起來沒那麼銳利、近的物體看起來比較銳利;對於我們日常熟悉的物品,藉由目視大小就可以估計物體的遠近。

為了訓練機器學習模型辨識這些細小差異來估計距離,Google將五支手機拼起來,拍了成千上萬具有微小差異的的照片組來訓練。因為處理的資料量太大,又在Pixel 3手機中加入Visual Core處理晶片提升運算速度。最後的結果就是Pixel 3肖像模式拍出來的照片不但景深誤差更小,還包含了豐富的景深資訊,拍出來之後可以更改對焦點,改變前景、背景模糊程度。

肖像模式拍出的景深照片,與一般單眼相機運用光學拍出的景深效果不同。因為人的身體不是平的,用光學拍出的人身上也會有景深、會有模糊的地方,Google的肖像模式會整個人都是清楚的。另外,Pixel手機只有後方主鏡頭會用到機器學習技術+雙像素對焦,前方自拍鏡頭僅採用機器學習技術,因此自拍照的景深不會因為遠近而有不同的模糊程度,但背景依然有模糊效果。

高解析變焦

手機相機對於望遠這件事一向苦手,數位變焦的效果就是比光學變焦差,主要是因為用裁切的方式放大影像局部,然後再用模擬像素填滿缺少的部份。這樣的處理方式往往造成影像產生「油畫感」或「塗抹感」,缺乏細節及紋理。

Pixel 3的高解析變焦利用手持拍照時一定會發生的手震,在手震期間連拍多張照片,取得放大影像後遺失的像素。也就是說用來填補的像素都是物體原本的像素,並非模擬出來的像素,因此可以重建細節。對於放在三腳架上的手機,也可以藉由強制開啟手機內的OIS防手震來製造搖晃。這樣的方式當然也不能放大到太大,Google表示至少可與2倍光學變焦不相上下。

夜視模式

Pixel手機的HDR+本就有拍攝低光源場景並降低噪點的效果,只是當環境暗到眼睛都看不清楚的時候,連拍就必須曝光時間夠長,又不能因手震導致畫面模糊。

Google想出的辦法是「移動測量(motion metering)」,連拍時依據畫面的移動程度自動調整適當的曝光時間。如果手機在很穩定的狀態,例如裝在腳架上,曝光時間最長會採取1秒內連拍6張畫面合成;如果手機很不穩定或是被攝物移動,曝光時間最短會採取1秒內連拍15張畫面合成,連拍張數視偵測到的移動程度分佈於6張至15張之間。

連拍完成之後,Pixel 1及Pixel 2手機會使用HDR+技術合成這些照片,Pixel 3則是用高解析變焦技術來合成,因為高解析變焦也是分析多張照片合成,有降低雜訊的效果。

不過在低光源的情況下自動白平衡效果不佳,Google又用機器學習,以大量照片來訓練模型判斷正確的顏色。另外又發生一個問題,當照片拍得很清楚時,反而讓人不知道這是一張白天的照片還是晚上的照片,為此Google還參考歷史上知名畫家的呈現方式,特地把拍出來的照片又調整成一般人認知的夜景。

看起來像白天的夜景照片
▲ 這張圖看起來像白天,其實拍的是夜景,天空上是有星星的(圖﹨取自Google部落格)

一般手機拍夜景,在30照度(lux),大約是燈光昏暗的餐廳效果就開始不好。使用Pixel手機HDR+模式可以拍攝3照度的場景,大約是有路燈的行人道那種環境。夜視模式可以拍攝0.3照度以下的場景,那種情況是鑰匙掉在地上會找不到。因為看不到被攝物無法自動對焦,Google特地為Pixel 3手機增加了近距離、遠距離兩種對焦模式。近距離可以對焦約122cm左右,遠距離可對焦約366cm左右。遠距離是Pixel 3的泛焦焦段,大約從183cm到無限遠都能拍得清楚。

聽完Marc Levoy的介紹,了解到Google的軟體定義相機與硬體相機真的是不太一樣,如果能將兩種整合為一豈不更棒?答案是肯定的,Marc Levoy指出望遠還是硬體稱霸,改善信噪比硬體有部份影響,但軟體更重要。至於美學就因人而異,看創作者訴求而定。

史塔夫短評:相機廠商何時才要導入人工智慧啊。