Google 解密機器學習在 Pixel 手機上的應用

簡單的相機功能背後不簡單的技術。

在近期手機持續向多鏡頭的方向前進,由不同的鏡頭擔當望遠、廣角、大光圈夜拍、模擬淺景深等各功能的同時,Google 的 Pixel 系列絕對是當中的異類,意圖靠著 AI 的智慧演算能力,將唯一一顆的鏡頭的效益發揮到最大,讓它在各種場景下都能發揮實力,與多鏡頭手機比相比,依然有一拼之力。

我們拍照只要按一下快門,就幾乎都能拍出好照片來,然而究竟 Google 在背後做了些什麼神奇的黑科技?今天 Google 延續了進行許久的 AI 系列研討會,特地請來了 Google 的傑出工程師(Distinguished Engineer)、史丹佛大學榮譽退休教授 Marc Levoy,來介紹由他的團隊所領導開發的 HDR+ 模式、肖像模式、和最新的夜視功能等 Pixel 手機背後的各種強大系統與技術。

HDR+


Pixel 3 HDR+
Pixel 3 HDR+


首先,是早在 2014 年就已經推出,但老實說至今依然無人能敵的 HDR+。HDR(高動態範圍)照片的處理真的是一門「藝術」--由於它在本質上是拉高陰影的亮度、並同時降低亮部的亮度,以達到展現更多細節的效果。傳統的 HDR 的做法是拍攝幾張不同曝光長度的照片,再將它們疊合在一起,並且視局部需要取用不同程度的曝光結果;但是 HDR+ 不一樣 -- 它是一口氣拍一大堆極短曝光的照片,然後視局路需要疊合足夠數量的照片。這讓 HDR+ 可以更精確地抓到邊緣來對正影像,也可以減少長曝光的殘影。

此外,如果只是將一條固定的曲線呆板地套用到照片上的話,會顯得照片灰灰的,沒有什麼對比。對此,Pixel 3 的 HDR+ 的做法是針對亮暗的邊緣處去做強化對比,但壓縮非邊緣的部份,讓照片符合人類的視覺。這結果,就是 Pixel 3 總是能提供最「養眼」的照片來,雖然對於拍照的人來說會一眼就看出以「相機」的角度這樣的照片幾乎不可能做到,但以「人眼」的角度來說好像相去並不遠呢。

肖像模式


Pixel 3 portrait
Pixel 3 portrait


第二個介紹的,是肖像模式。Pixel 手機的肖像模式最早是在 Pixel 2 上推出,是 Pixel 2 的大賣點之一。和 iPhone 的一大差異,是 iPhone 僅能將肖像模式運用在人物上,而 Pixel 卻是人像、近物皆可。據 Levoy 介紹,原來有人在畫面中和沒有人在畫面中,Pixel 用的是完全不一樣的技術來做深度圖 —— 有人的時候,它是利用神經網路與機器學習的訓練,來截取人的位置;而在沒有人的時候,它則是利用「雙像素」感光器(Dual-Pixel)來判斷深度。由於肖像模式的虛化完全是人工的,Google 還幫一般拍攝者取了個巧,故意「擴大」人物前後的景深範圍,讓你不用太準確去對焦,就能拍出人物銳利的照片來。

在 Pixel 3 上,則是對雙像素進行了進一步的優化,加入了機器學習,讓它能由 R、G、B 三色的左右輸入直接算出深度圖來,而不用傳統對比同一畫素在左右兩張圖間的距離的方式,計算距離。

高解析變焦


Pixel 3
Pixel 3


第三個,是用來取代長鏡頭的「Super Res Zoom」功能。傳統上數位變焦似乎總是被瞧不起(其實小編也是),主要就是和光學變焦相比,數位變焦並不能真的變出原本不在的資料來。無論是受限於鏡頭的解像力、還是數位放大的演算法,其極限就在那邊。Google 的做法是利用「像素移位」的原理,將多張略微偏移的照片疊合,試圖找出不同照片中可以還原的細節。這一點點的偏移可以靠握持手機時的手震來達成,如果是架在三腳架上的話,Pixel 3 還會晃動自己的防手震機構,來自已製造偏移呢。

當然,嘗試疊加多張照片的演算法也已經存在多年,但現實上的挑戰並不少,例如單張照片的噪點容易被判讀錯誤、不同畫格間物體的相對位置可能有移動等,都是傳統單純計算每個畫素時難以避免的挑戰。這就是輪到 Google 的 AI 登場的時候了。在噪點誤判的方面,Google 用的是「尋找邊緣」的方法,先將邊緣定下來後,在其附近減少降噪,確保邊緣的銳利,其他地方就能用較激進的方式去做柔化,來減小噪點造成的衝突。而在移動中物體的部份,則是要靠 AI 來找到畫面中的「特徵物」,將不同畫格中相同的特徵物對齊,而不是全畫面的對齊,以求達到更銳利的效果。

只是要了解畢竟物理上的限制擺在那邊,數位強化能做到的終究還是有其極限,以 Pixel 的技術來說大約到 2x 變焦都能有接近光學變焦的效果,但如果再放大的話,就是光學變焦的天下囉。

夜視模式


Pixel 3
Pixel 3


最後,是在 Pixel 3 世代首度推出,取代大光圈鏡頭的「夜間模式」。手機的小鏡頭一般來說進光量就有了先天的限制,高密度的感光器又是個後天的限制,兩者相加之下的結果,就是夜拍效果經常慘不忍睹。一個簡單的解決方法就是從硬體上著手,裝上大光圈、低畫素的夜拍專用鏡頭,但這勢必要增加成本;而另一個比較常見的替代方案就是從軟體上想辦法,用更多張的照片來「疊合」出足夠的亮度,但一般來說你很難確保畫面在長快門的期間都不晃動,另一方面這樣的照片噪點也很多,如果要把噪點抹平的話,照片上的細節也就沒了,相當難用啊!

Pixel 3 新推出的夜視模式(Night Sight)試圖用 AI 的輔助,來強化軟體夜拍的方案。因為在操作上的本質的不同,夜視模式是一個獨立的模式在「其他」裡,不像 Super Res Zoom 是只要有數位放大就會啟用。它和普通拍照最大的不同,就是普通拍照其實是從相機啟動開始,便持續地將鏡頭看到的影像存在一個循環式的緩衝區裡,在你按下快門鍵的瞬間,就會將緩衝區中最近的幾個畫格送進影像處理單元,達到「無延遲」的效果。但用這方式的話,在夜拍時最多就只能取得 1/15 秒的影像,也就是說快門無法長於 1/15 秒。在夜視模式下則會像一般照相機一樣,在按下快門後才開始依曝光需求收光,所以就沒有這個限制了。

Pixel 3
Pixel 3


第二個不同,是運用了一種名為「光流法」(Optical Flow)的技術,讓夜視模式可以即時地判斷目前的畫面有沒有手震的風險。如果說你的鏡頭有光學防手震(例如 Pixel 3),那夜視模式就會開放更長一點的快門;如果手機是放在一個穩定的平台上(例如三腳架、甚至是靠在牆上)的話,夜視模式甚至可以將曝光時間延長至 1 秒。

拍完多張照片之後,下一步當然就是將它們疊合在一起了。在 Pixel 1 和 Pixel 2 上,夜視模式用的是 HDR+ 的疊合技術,而在 Pixel 3 上則是改用了前面的 Super Res Zoom 的疊合技術。後者自然是更先進,但也更費運算資源,所以只有 Pixel 3 才能使用。

Pixel 3 night sight
Pixel 3 night sight


最後,Google 還有最後的大絕招「AI」可以使用,為夜拍的照片帶來更自然的白平衡,以及更適當的光照曲線。白平衡向來是夜間拍攝的一個極為頭痛的問題,特別是在頻率單一的光線之下,很多物體根本分辨不出顏色來。Google 的 AI 會透過機器學習盡量削除掉一些人造光的影響,試圖還原一些物體本來的顏色,但小編也碰到過在很個別的情況下,Night Sight 會很用力地去矯正顏色,結果反而和原本的場景天差地遠了。

整體來說,Night Sight 是這次 Pixel 相機的各種 AI 新功能中,最為讓人驚豔的一個。雖然說 Pixel 1 和 Pixel 2 也都能安裝,但前者沒有光學防手震、後者也沒有 Pixel 3 的運算力,因此論最終效果,還是 Pixel 3 最棒呢。