谷歌HDR+研讀(三)

谷歌HDR+研讀(一)

谷歌HDR+研讀(二)

6整理

對齊和合並捕獲的拜耳原始幀會生成具有較高比特深度和SNR的單個原始圖像。在實踐中,我們的輸入是10位原始數據,我們將其合併到12位以保留從合併獲得的精度。這張圖片現在必須經過校正,去馬賽克和色調映射 - 這些操作通常由ISP來執行,但在我們的情況下,這些操作是軟件,並且包括動態範圍壓縮的關鍵附加步驟。按應用順序,這些操作是:

1.黑色級別減法可以減少所有像素的偏移量,使得不接收光線的像素變爲零。我們從傳感器上的光學屏蔽像素獲得這種偏移。

2.透鏡陰影校正。增強圖像的角落以補償透鏡漸暈,並校正由於光以斜角照射傳感器而在空間上變化的顏色。這些更正是使用ISP提供的低分辨率RGGB圖像執行的。

3.白平衡。線性縮放四個(RGGB)通道,以便場景中的灰度映射到圖像中的灰色。這些比例因子由ISP提供。

4. Demosaicking。將圖像從Bayer原始圖像轉換爲每像素12位的全分辨率線性RGB圖像。我們使用Gunturk等人的技術組合。包括帶有加權平均的邊緣插入插值,基於恆定色調的插值和作爲校正項的二階梯度。

5.色度去噪。減少暗光低光圖像中的紅色和綠色斑點。爲此,我們使用一個近似的雙邊濾波器,使用YUV中的兩遍應用的稀疏3×3抽頭非線性核來實現。

6.色彩校正使用ISP提供的3x3矩陣將圖像從傳感器RGB轉換爲線性sRGB。

7.動態範圍壓縮。請參閱下面的描述。

8.除霧 通過應用全局色調曲線來降低眩光的影響,該曲線將低像素值推到更低的位置,同時保留中間調和高光。具體來說,我們允許多達0.1%的像素被鉗位到零,但只能調整低於白色電平7%的像素。

9.全局色調調節,通過將S形對比度增強色調曲線與標準sRGB色彩分量傳輸功能連接起來,以提高對比度並應用sRGB伽瑪校正。

10.色差校正,以隱藏橫向和縱向色差。我們不假設鏡頭模型,而是沿着高對比度邊緣查找像素,並將其附近像素的色度替換爲不太可能受色差影響的像素。

11.銳化,使用由3級卷積金字塔構造的高斯內核的總和來實現不銳利的掩蔽[Farbman et al。 2011]。

12.色調特定的顏色調整,使藍天和蔬菜看起來更具吸引力,通過將藍藍色和紫色轉換爲淡藍色來實現,並且通常會增加藍色和綠色的飽和度。

13.抖動,當從每像素12位減少到8位顯示時,通過添加來自預計算表的藍噪聲來實現量化僞像。

動態範圍壓縮。對於高動態範圍場景,我們使用本地色調映射來減少高光和陰影之間的對比度,同時保留局部對比度。我們選擇的色調映射方法是曝光融合的變體[Mertens et al。 2007年]。給定以不同亮度級別描繪相同場景的輸入圖像時,曝光融合使用圖像金字塔來混合輸入圖像的最佳曝光部分,以生成單一輸出圖像,看起來很自然並且具有比輸入更少的曝光不足區域。

通常將曝光融合應用於使用方括號捕獲的圖像。在我們的流水線中,我們採用恆定曝光捕捉多個幀,而不是包圍。爲了使曝光融合適應我們的流水線,我們通過對其進行增益和伽馬校正,從中間HDR圖像中推導出“合成曝光”,然後將它們融合,就好像它們已經使用包圍拍攝一樣。我們以灰度進行這些提取,我們只創建兩個合成曝光 - 一個短和一個長。短時間曝光告訴我們有多少像素會被吹出,併成爲捕捉過程中使用的整體曝光,而短曝光和長曝光之間的比例告訴我們正在應用多少動態範圍壓縮。這兩個值都來自我們的自動曝光算法。

融合灰度而不是彩色圖像,只使用兩個合成曝光,可以減少計算和內存要求。與Mertens等人的工作相比,它還使我們能夠簡化每像素混合權重。 [2007]。特別是,我們使用亮度固定的加權函數,有利於中等亮度的像素。

該函數可以表示爲一維查找表。 融合合成曝光之後,我們撤消所得灰度圖像的伽馬校正,並通過複製原始線性RGB圖像中的每像素色度比值來對其進行重新着色。

7結果

圖10顯示了使用我們的系統並排拍攝由傳統成像管線生成的單次曝光照片的示例照片。我們的系統幾乎總能產生優於傳統單一曝光管線的效果,並且在動態範圍較大或光線較弱的場景中,改善效果通常很明顯 - 較少的高光溢出或壓碎的陰影,較少的噪點,較少的運動模糊,較好的色彩,更清晰的細節和更多的紋理。雖然我們的結果受益於選擇一個尖銳的參考框架,但我們的系統對替代選擇非常有效;它可以將任何突發轉換爲去噪視頻。


圖10:將我們的方法產生的照片與同一設備上的標準單次曝光處理流水線產生的類似照片進行比較。在作物中,我們還將我們的管線結果應用於單個框架,以展示合併的好處。鼓勵讀者放大。最上面一行顯示了一個經典的HDR場景:教堂裏的彩色玻璃窗。在這個例子中,我們的方法在明亮的窗戶和周圍較暗的牆壁中保留了更多細節。中間一行顯示一個黑暗的場景(3勒克斯大致相當於燭光)。這裏我們的方法產生比標準管道更亮的圖像。另外,通過減少空間去噪,我們可以保留低對比度的細節。最下面的一行顯示了中等光線下的一個快速移動的物體。在這種情況下,我們使用比傳統流水線中的單次曝光更短的曝光時間來減少運動模糊。我們還從這個場景中獲益,從幸運成像中選擇最接近爆發開始時可以找到的最清晰的幀。


爲了更詳細地評估我們的系統的對齊和合並方法,證明其與現有技術的連拍融合相比的穩健性[Liu et al。 2014; Dabov等人2007年a; Adobe Inc. 2016; Heide等人2014],請參閱附錄。


失敗情況。儘管總體圖像質量良好,但我們的系統在極端情況下確實失敗。我們設計了它在這些情況下優雅地退化,但我們希望它更好。其中一些情況如圖11所示。


圖11:我們處理不好的情況。 上圖:在這個非常高的動態場景中,我們優先曝光面部和建築物內部,從而在明亮的開放門道上丟失細節。 中:在快速運動的低光場景中,我們會將曝光時間縮短,產生過多噪音以避免運動模糊。 機身:由於我們使用了曝光融合,高對比度的場景可以呈現輕微的中頻暈(天空中的深藍色斑點)。

另外,如果一個場景的動態範圍如此之高,以至於使用兩次合成曝光的曝光融合將產生卡通效果,那麼我們將場景當作其動態範圍很低並且允許更多像素吹出來處理。使用三種合成曝光效果可能會更好,但計算起來很昂貴,需要對自動曝光數據庫進行更細微的調整。另外,如果一個場景包含如此短的曝光時間即使有模糊的快速運動,那麼對齊可能會失敗,從而在輸出照片上留下過多的噪點。

我們最嚴重的失敗模式是,在非常低的光照水平下,ISP的自動對焦和白平衡估計開始失敗。儘管合併和對齊可能仍然有效,但照片可能會失焦或產生偏色。圖1中可以看到輕微的模型。

性能。爲了使我們的流水線足夠快以部署在移動設備上,我們選擇了算法來提高計算效率。這意味着要避免非本地通信和數據依賴性,避免並行化,消耗盡可能少的內存,並儘可能採用定點算法。這些同樣的擔憂妨礙了使用具有全局迭代的算法(例如,FlexISP [Heide等人,2014]),大的或動態的空間支持(例如,BM3D [Dabov等人2007b])或昂貴的色調映射(例如局部拉普拉斯濾波器[Aubry等2014])。

我們的系統已在具有12-13 Mpix傳感器的設備上發貨,我們在該設備上捕獲最多8幀的突發數據。因此,我們可能需要存儲和處理每張輸出照片104萬像素。雖然我們選擇了效率算法,但處理這麼多數據仍然需要高度優化的實現。我們的大部分代碼都是用Halide編寫的[Ragan-Kelley et al。 2012],使我們能夠更容易地融合流水線階段,並使用SIMD和線程並行。另外,由於我們計算了許多用於對齊和合並的小2D實數DFT,我們在Halide中實現了自己的FFT。對於我們管道中的小型DFT,這種實現比基於ARM的移動電話上的FFTW [Frigo和Johnson 2005]快5倍。

總結一下,在Qualcomm Snapdragon 810不受熱調節的情況下,產生輸出照片所需的時間範圍爲2.5至4秒,具體取決於連拍中的幀數。對於4秒鐘的低光照,這種情況分解爲1秒捕獲幀,500毫秒對齊,1200毫秒合併,1600毫秒完成。對於日光拍攝

2.5秒,我們測量100毫秒的捕獲,250毫秒的對齊,合併爲580毫秒,完成爲1600毫秒。

8結論

在本文中,我們描述了一種捕獲曝光不足幀的系統,對齊和合並這些幀以產生高比特深度的單箇中間圖像,並對該圖像進行色調映射以產生高分辨率照片。我們的結果比傳統成像管道生成的單次曝光照片具有更好的圖像質量,特別是在高動態範圍或低光照場景中,並且幾乎不會顯示令人反感的僞影。該系統部署在幾款大規模生產的手機中,在Nexus 6,5X和6P中作爲“HDR +”銷售。使用我們系統的消費者不知道他們在每次快門按下時都會拍攝幀,或者他們的最終照片是使用計算攝影從多個圖像生成的。

在技​​術論文中很難證明我們對超級圖像質量的一般要求,或覆蓋我們的系統強有力處理的角落案例的範圍。然而,我們的系統在新聞界得到了積極的評價,在獨立評估[DxO Inc. 2015]中獲得的評分高於大多數競爭商業系統,並且每週消費者捕獲的數百萬張照片中,我們沒有看到災難性的結果。

爲了讓其他人可以判斷我們的圖像質量並改進我們的算法,我們創建了DNG格式的數千個原始圖像陣列的存檔[Google Inc. 2016b]。對於每個突發,我們都包含我們的合併原始輸出和最終的JPEG輸出。 EXIF標籤和附加文件描述了我們的攝像機參數,噪聲模型和用於生成結果的其他元數據。

侷限性和未來的工作。我們系統的最大缺點是,用戶按下快門後,在爆發開始並捕獲參考幀之前存在明顯的滯後。由於此框架設置了照片的構圖,因此可能很難在動作場景中捕捉正確的時刻。這種滯後的部分原因是我們的自動曝光算法,有些針對Camera2的軟件結構,另一些針對我們使用的幸運成像,它根據選擇哪個幀作爲參考增加了可變延遲。

爲了避免快門時滯,許多手機採用零快門時滯(ZSL),其中相機連續捕捉全分辨率幀,將它們存儲在循環緩衝區中,並通過從該緩衝區中選擇一個圖像來完成並存儲快門按鈕。由於焦點,曝光和白平衡在目標期間不斷變化,處理ZSL將需要放鬆我們對恆定曝光突發的假設。這是未來工作的主題。

我們系統的另一個限制是,計算輸出照片需要幾秒鐘,並且佔用大量內存直到完成。如果用戶快速連續按下快門幾次,我們可以很容易地耗盡內存,導致相機應用程序失速。可編程硬件可能會解決這個問題,但是將這些硬件併入批量生產的移動設備並不容易。

最後,我們的ISP生成的取景器和軟件生成的照片之間的差異產生了不理想的用戶體驗。在極端情況下,用戶可能會放棄拍攝場景,因爲它在取景器中看起來很差,實際上,我們的軟件會生成該場景的可用照片。可編程硬件也可以解決這個問題。

致謝

如果沒有與Android相機團隊的密切合作,我們的系統與Google相機應用的集成將不可能實現。我們感謝他們在HDR +上的產品和工程貢獻,以及他們對圖像質量的寶貴反饋。特別感謝[Liu et al。 2014]和[Heide et al。 2014]爲他們的實驗比較提供幫助。我們也感謝Peyman Milanfar進行有益的討論,並感謝匿名評論者對論文的反饋意見。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章