谷歌發文詳解Pixel 3中的拍照黑科技——Super Res Zoom

雷鋒網按:前些天,谷歌發佈了全新Pixel 3/Pixel 3XL手機,其最新的AI拍照功能令人感到驚豔。Night Sight夜間拍照效果吊打iPhone XS;Top Shot功能可以連續拍攝多張HDR+照片,自動去掉抖動、眨眼的廢片,推薦效果最好的一張;Photo Booth模式可以在檢測到人臉有微笑或者有趣的表情時自動拍照,幫你留下珍貴的一刻;Super Res Zoom通過攝像頭的變焦功能拍攝具備高分辨率的照片。

在雷鋒網看來,Super Res Zoom可以說是此次幾項全新AI拍照功能中最難理解的一個,也讓不少業內人士感到好奇。幸而,谷歌計算成像領域首席科學家Peyman Milanfar和軟件工程師Bartlomiej Wronski在Google Blog特意發佈一篇博文,講述了Super Res Zoom技術實現的全部過程。雷鋒網對原文進行了不改變原意的翻譯和編輯。

一直以來,使用算法(而不是鏡頭)來進行數碼變焦的移動設備相機就像是“醜小鴨”。數碼變焦的圖像質量難以與數碼單反相機的光學變焦相提並論,因此傳統觀點認為,大型相機的複雜光學機制無法被更緊湊的移動設備相機和聰明的算法替代。

憑藉Pixel 3上新的Super Res Zoom功能,我們正在挑戰這一概念。

此前,數碼變焦技術主要是升級單個圖像中的像素,Pixel 3中的Super Res Zoom技術則不然。Super Res Zoom的做法是將許多幀的圖像直接合並以產生更高分辨率的圖像,這個方法能大大改善圖片的細節,能許多其他智能手機上的2倍光學變焦鏡頭大致相當。

谷歌发文详解Pixel 3中的拍照黑科技——Super Res Zoom

2倍變焦:Pixel 2 vs.Super Res Zoom Pixel 3

數碼變焦的挑戰

數碼變焦是困難的。因為一個好的算法期望從低分辨率的圖像開始,並可靠地“重建”缺失的細節——在典型的數字變焦中,單個圖像的一小部分被放大,生成一個大得多的圖像。傳統上,這是通過線性插值方法來實現的,這種方法試圖重新創建在原始圖像中丟失的信息,但會使得圖像模糊,缺乏紋理和細節。基於單圖像來提升圖像質量一般採用機器學習的方法(包括我們自己的早期工作RAISR)。這些圖像放大了一些特定的圖像特徵,如直線邊緣,甚至可以合成某些紋理,但無法恢復自然的高分辨率細節。雖然我們仍然使用RAISR來提高圖像的視覺質量,不過Super Res Zoom創新性地採用了多幀圖像方法。

彩色濾鏡陣列和脫模

重構細節尤其困難,因為數碼照片已經不完整了。通過一種叫做脫模(Demosaicing)的過程,我們可以從部分顏色信息中重構丟失的信息。在典型的消費相機中,相機傳感器元件只用於測量光的強度,而不是直接測量光的顏色。為了捕捉場景中呈現的真實顏色,攝像機使用放置在傳感器前面的顏色濾鏡陣列,以便每個像素只測量一種顏色(紅色、綠色或藍色)。如下圖所示,它們以拜耳模式排列。

谷歌发文详解Pixel 3中的拍照黑科技——Super Res Zoom

拜耳馬賽克彩色濾鏡:每2x2組像素捕獲由特定顏色過濾的光——兩個綠色像素(因為我們的眼睛對綠色更敏感),一個紅色,一個藍色。這種模式在整個圖像中重複出現。

然後,在給定部分信息的情況下,攝像機處理管道必須重構所有像素的真實顏色和所有細節。 脫模(Demosaicing)過程的第一步是要猜測丟失的顏色信息,通常會選取附近像素的顏色進行插值,這意味著RGB數字圖像的三分之二實際上是重建的!

谷歌发文详解Pixel 3中的拍照黑科技——Super Res Zoom

脫模利用相鄰像素重建丟失的顏色信息

在最簡單的形式中,這可以通過對相鄰值進行平均來實現。大多數真正的解謎算法都比這更復雜,但由於只能得到部分信息,脫模的效果仍然不完美而且有很重的人工痕跡。雖然大尺寸的單反相機也存在這種情況,但它們更大的傳感器和更大的鏡頭能比一般的移動相機能夠捕捉到更多的細節。

如果你在移動設備上進行縮放變焦,情況會變得更糟;然後,算法被迫通過附近的像素進行插值來彌補更多的信息。然而,這也不是一無是處,因為即使受到移動設備光學的限制,高速連拍(Burst Photography)以及多幅圖像的融合可以用來實現超分辨率。

從高速連拍(Burst Photography)到多幀超分辨率

雖然單個幀不能提供足夠的信息來填充缺失的顏色,但是我們可以從高速連續拍攝的多個圖像中獲得一些缺失的信息。谷歌的HDR+算法在Nexus手機和Pixel手機上得到了成功應用,它已經利用多幀的信息使手機照片達到了更大傳感器所期望的質量水平,是否可以使用類似的方法來提高圖像分辨率?

多幀超分辨率的概念出現已經有十多年曆史了(在天文攝影上,類似的概念被稱為“drizzle”),通過捕捉和組合多個細微位置差異的照片可以產生相當於光學變焦的效果,至少在2-3倍的低倍變焦和良好的照明條件下。在這個過程中,一般的想法是將低分辨率的圖像部分直接對齊併合併到一個理想(更高)分辨率的網格上。下面是一個理想化的多幀超分辨率算法如何工作的例子:

谷歌发文详解Pixel 3中的拍照黑科技——Super Res Zoom

(與頂部的需要插值的脫模過程相比,用多個圖像填充,每個圖像水平或垂直移動一個像素更為理想)

在上面的示例中,我們捕獲了4個幀,其中3個幀精確地移動了一個像素:從水平方向、垂直方向以及同時從水平和垂直方向。所有的洞都會被填滿,根本就不需要任何脫模。一些單反相機支持這種操作,但只有當相機在三腳架上,傳感器/鏡頭能進行移動,這有時被稱為“微步”(microstepping)。

多年來,這種“超級分辨率”的高分辨率成像方法的應用仍然主要侷限於實驗室,或以其他方式控制的設置中。在這些設置中,傳感器和主體是對齊的,它們之間的移動要麼是有意控制的,要麼是受到嚴格限制的。例如,在天文成像中,用固定的望遠鏡來拍攝星空的移動軌跡。但在當今智能手機等廣泛使用的成像設備及應用程序中,超級分辨率的實際應用仍是可望而不可及的。

多幀超分辨率功能需要滿足一些條件。首先,也是最重要的一點,鏡頭需要比所使用的傳感器更好地處理細節(相反,你可以想象這樣一個情況,鏡頭設計得很差,添加一個更好的傳感器沒有任何好處)。數碼相機有的一種常見的且不受歡迎的效果,叫做混疊(aliasing)。

圖像混疊

當攝像機傳感器不能忠實地表示場景中的所有模式和細節時,就會發生混疊。混疊的一個很好的例子是龜紋圖案( Moiré patterns),當兩種同樣的圖案以一定的角度重疊會出現的現象。

谷歌发文详解Pixel 3中的拍照黑科技——Super Res Zoom

由兩組平行線產生的莫爾條紋,一組垂直,另一組傾斜5°

此外,當物體在場景中移動時,對物理特徵(如表邊)的混疊效果也會發生變化。您可以在以下連拍序列中觀察到這一點,在連拍序列中,相機的輕微運動會產生時變的混疊效果:

左圖:高分辨率下的桌子邊緣的單幅圖像,右圖:連拍產生的不同圖像幀。混疊效果和雲紋效果在不同的幀之間是可見的——像素似乎跳來跳去,產生不同的彩色圖案

但是,我們也能因禍得福,如果分析混疊效果產生的模式,就會得到顏色和亮度值的多樣性,以實現超分辨率。儘管如此,要在手持移動設備和任何連拍序列中實現高分辨率,依然有諸多挑戰存在。

手部移動實現超分辨率

如前所述,一些單反相機提供了特殊的三腳架超分辨率模式,類似於我們目前描述的方式。這些方法依賴於相機內傳感器和光學器件的物理運動,但需要相機完全穩定。然而,這在移動設備上是不切實際的,因為它們幾乎總是手持的。

然而,藉助手部運動方案,我們將這個最大的難點變成了我們的優勢。當我們用手持相機或手機拍攝一組照片時,畫面之間總會有一些運動。光學圖像穩定(OIS)系統可以補償相機的大運動——通常間隔1/30秒以內的5-20像素移動——但不能完全消除更快、更低的幅度、自然的手震顫。當使用高分辨率傳感器的手機拍照時,這種手抖的幅度只有幾個像素。

谷歌发文详解Pixel 3中的拍照黑科技——Super Res Zoom

在進行處理後,連拍中手掌震顫的結果

為了利用手部抖動的優勢,我們首先需要將高速連拍的照片排列在一起,我們選擇高速連拍圖像中的單個圖像作為“基”或參考幀,並對齊與之相關的所有其他幀。對齊後,這些圖像大致結合在一起。當然,手部運動不太可能將圖像精確地移動單個像素,因此我們需要在每個新捕獲的幀中插入相鄰像素,然後將顏色注入基幀的像素網格中。

當由於設備是完全穩定的(例如放置在三腳架上)而沒有出現手部運動時,我們仍然可以通過故意“抖動”相機來達到模擬自然手部運動的目的,通過強迫OIS模塊在鏡頭之間輕微移動。這個移動非常小,選擇的時候不會干擾正常的照片——但是你可以在Pixel 3上自己觀察它,你可以把手機完全固定,比如把它按在窗口上,或者最大限度地縮放取景器。如下圖所示,可以觀察遠處物體微小但連續的橢圓運動。

克服超分辨率的挑戰

以上是我們對理想過程的描述,聽起來很簡單,但是要實現超分辨率並不是那麼容易。有很多原因導致沒有被廣泛應用到手機等消費產品中,例如其需要大量的算法創新。挑戰可以包括:

即使在良好的光照條件下,連拍的單個圖像也是有噪聲的。一個實用的超分辨率算法需要意識到這種噪音,並正確工作。我們不想只得到更高分辨率的噪聲圖像——我們的目標是既提高分辨率,又能產生更小的噪聲。

左:在良好的光照條件下拍攝的單幀圖像,由於曝光不足,仍然可能包含大量的噪聲。右:連拍處理後合併多幀的結果。

在連拍的圖像之間的運動不僅僅侷限於相機的運動,可能有複雜的場景中運動如風吹動的樹葉、水面漣漪、汽車、人的面部變化、火焰的閃爍——甚至一些不能被視為獨立運動的如吸菸。一般來說,完全可靠和局部對準是不可能的,因此即使運動估計不完美,一個好的超分辨率算法也要能用。

因為大多數運動是隨機的,即使有良好的對齊,數據可能在圖像的某些區域密集,而在其他區域稀疏。超分辨率的關鍵是一個複雜的插值問題,因此數據的不規則傳播使得在網格的各個部分生成更高分辨率的圖像具有挑戰性。

谷歌发文详解Pixel 3中的拍照黑科技——Super Res Zoom

以上所有的挑戰似乎都使得超分辨率在實踐中不可行,或者充其量只能侷限於靜態場景和放在三腳架上的相機。利用Pixel 3上的Super Res Zoom,我們開發了一種穩定、精確的連拍分辨率增強方法,它使用自然的手部運動,並且足夠強大,可以部署在手機上。

以下是我們解決上述挑戰的方法:

為了在高速連拍(Burst Photography)情況下有效地合併幀,併為每個像素生成一個紅色、綠色和藍色的值,而不需要進行除噪,我們開發了一種跨幀集成信息的方法,該方法考慮了圖像的邊緣,並相應地進行了調整。具體地說,我們分析輸入幀並調整我們如何將它們組合在一起,權衡增加的細節,分辨率,噪聲抑制和平滑。我們通過沿著明顯邊緣的方向合併像素,而不是跨越它們來實現這一點。效果是我們的多幀方法提供了噪音減少和細節的增強之間的最佳平衡。

為了使算法能夠可靠地處理複雜的局部運動場景(人、車、水或樹葉移動),我們開發了一個魯棒性模型來檢測和減輕對齊誤差。我們選擇一幀作為“參考圖像”,並只有當我們確信我們找到了正確的對應特徵才將來自其他幀的信息合併到它。通過這種方式,我們可以避免像“重影”或運動模糊,或者是錯誤地合併圖像的部分。

谷歌发文详解Pixel 3中的拍照黑科技——Super Res Zoom

一輛快速行駛的公共汽車的連拍圖像。左:沒有魯棒性模型下合併。右:有魯棒模型下合併

推動移動攝影技術的發展

去年穀歌推出的人像模式(Portrait mode),以及之前HDR+ pipeline都展示了移動攝影的優越性。今年,我們從變焦下手。Super Res Zoom能提高計算機攝影技術水平,同時縮小移動攝影和數碼單反之間的質量差距。

超分辨率的概念比智能手機的出現早了至少10年。在幾乎同樣長的時間裡,它也通過電影和電視在公眾的想象中存在,它也是學術期刊和學術會議上成千上萬篇論文的主題。現在,在你手掌中的Pixel 3裡,超分辨率真實存在。

如何最大限度地利用Super Res Zoom?

這裡有一些關於如何在Pixel 3的手機上使用Super Res Zoom的技巧:

  • 縮放再縮放,或者使用+按鈕增加縮放的離散步驟。

  • 雙擊預覽以快速切換縮放和縮小。

  • Super Res Zoom可以在所有縮放係數下工作,不過出於性能原因,它只激活了1.2倍以上。

  • Pixel的廣角攝像機的光學分辨率有基本的限制。因此,為了最大限度地利用縮放,請保持放大係數適中。

  • 避免快速移動的物體。Super Res Zoom能正確捕捉它們,但你不可能得到更高的分辨率。

via Google Blog


分享到:


相關文章: