谷歌HDRplus研讀(一)

網站:http://www.hdrplusdata.org/

paper理解總結

paper: Burst photography for high dynamic range and low-light imaging on mobile cameras

摘要:

(1)我們從同一個曝光常數下獲取多張圖片,爲避免過曝,我們曝光參數設置的足夠小;

(2)我們直接獲得Bayer格式的圖像數據,與RGB區別見這篇博客;

(3)我們使用基於FFT的新型配准算法,混合2D / 3D維納濾波器降噪併合並幀。

1 背景介紹(谷歌翻譯如下)

改善照片的主要技術障礙是缺乏光線。在室內或夜間拍攝時,整個場景可能提供的光線不足。標準解決方案是應用放大噪聲的模擬或數字增益,或延長曝光時間,由於相機抖動或拍攝對象移動而導致運動模糊。令人驚訝的是,高動態範圍的白天拍攝也可能因缺乏光線而受到影響。尤其是,如果減少曝光時間以避免高光溢出,則可能會在陰影區域收集到不足的光線。使用本地色調映射可以使這些區域變亮,但這又會放大噪音。

採集更多光線的方法包括使用大光圈鏡頭,光學防抖,曝光包圍曝光或閃光燈。但是,每種方法都是一種折衷。如果相機是手機,那麼它的厚度受到限制,所以使它的光圈變大很困難。這些設備也受到功率限制,因此通過增加攝像機數量來創建合成光圈是具有挑戰性的[Wilburn et al。 2005; Light 2016]。光學防抖功能可以延長曝光時間,同時最大限度地減少相機抖動模糊,但無法控制由主體移動引起的模糊。使用曝光包圍和圖像融合,融合圖像的不同部分代表不同時間的場景,這使得難以獲得單一的自洽組合。由於對齊不同時間拍攝的圖像很困難,由不正確融合引起的最常見的僞影是重影(圖2a)。在相鄰掃描線之間交替曝光時間的傳感器可以稍微改善重影,但會犧牲細節並且難以準確進行去馬賽克。對許多攝影師而言,相機閃光燈是最不可取的選擇。它增加了光線,但可以以不愉快的方式改變場景。閃光/無閃光攝影[Petschnigg et al。 2004]解決了這個問題,但不夠健全。

在本文中,我們描述了一個攝像機系統,通過捕獲一連串圖像並將它們與動態範圍壓縮相結合來解決這些問題。儘管這樣做的算法是衆所周知的[Debevec and Malik 1997],但基於這些算法構建系統並在移動攝像機上進行商業部署仍然具有挑戰性。在構建我們的系統時,我們發現以下設計原則非常重要:

•立即。即使相機沒有連接(有線或無線),系統也必須在幾秒鐘內生成照片並將其顯示在相機上。這意味着我們不能將處理推遲到桌面計算機或雲。

•自動。該方法必須是無參數且完全自動的。攝影師應該在不知道用於拍攝或圖像處理的策略的情況下拍攝更好的照片。

•自然。我們拍攝的照片必須忠實於場景的外觀。在高動態範圍的情況下,我們必須限制我們爲避免卡通或超現實主義圖像而做的局部色調映射量。在光線很暗的場景中,我們不能使圖像變亮以至於它會改變明亮的照明或顯示過度的噪音。

•保守。應該可以將此用作缺省拍照模式。這意味着所拍攝的照片不得包含僞影,並且必須始終至少與傳統照片一樣好。而且,在極端的情況下,它必須逐漸退化爲傳統的照片。

鑑於這種保守的限制,我們發現最可靠的連拍攝影方法是以相同的曝光時間捕捉連拍中的每個圖像。換句話說,我們不支架。我們到達了這個意想不到的協議,因爲準確對齊使用不同曝光時間拍攝的圖像存在固有的困難。由於噪聲和運動模糊程度不同,較小的曝光變化可能會損害對齊,如果在沒有可見圖像內容的情況下曝光補丁,則較大的變化可能導致局部對齊不可能。最近的HDR融合方法通過複雜的對齊和修補解決了不同曝光的挑戰[Gallo and Sen 2016]。雖然這些方法可以產生令人信服的結果,但最好的方法是昂貴的,並且仍然表現出偶爾的僞影或物理不一致性。

爲了執行我們的恆定曝光協議,我們選擇足夠低的曝光以避免給定場景的裁剪(高光溢出)。換句話說,我們故意向下暴露。我們這樣做來捕捉更多的動態範圍。無論場景內容如何,​​我們也選擇比典型的曝光時間更短的時間來減輕相機抖動模糊[Telleen et al。 2007年]。儘管使用較低的曝光似乎會惡化噪聲,但我們通過捕獲和合並多個幀來抵消這種影響。

由我們的保守約束引起的第二個設計決定是,我們選擇一個連拍中的圖像作爲“參考”幀,然後將這些幀中的那些補丁與我們確信已經成像的其他“替代”幀對齊併合併到此幀中場景的相同部分。此外,爲了減少計算複雜度,我們僅合併每個替代幀中的單個修補程序。我們保守的合併可能會導致最終圖像的某些部分顯得比其他部分更嘈雜,但是這個工件很少引人注目。

通過對齊和合並多個幀,我們生成的中間圖像比我們的輸入幀具有更高的比特深度,更高的動態範圍和更低的噪聲。這可以讓我們僅僅通過丟棄低位來產生高質量(儘管曝光不足)的照片。然而,我們的目標之一就是製作出自然的照片,即使場景包含強烈的對比。因此,我們反而會增加陰影,保留局部對比度,同時明智地犧牲全球對比度。這個過程被稱爲HDR色調映射,並且已經得到很好的研究[Reinhard et al。 2010]。它的效果與印刷攝影中傳統的“閃避和刻錄”方法產生的效果類似[Adams 1981]。我們使用暴露融合的變體[Mertens et al。 2007],因爲它計算效率高,能夠生成自然的圖像;然而,其他算法是可能的。

編寫關於商業計算機攝影系統的系統論文時遇到的一個挑戰是,該領域的學術論文僅描述算法,而不是完整的系統,現有商業系統中的算法是專有的,不易反向設計。相機行業的這種情況比計算機圖形學界更糟,因爲公共API已經導致了開放和比較的傳統[Levoy 2010]。這種保密性使我們很難將定量結果與競爭系統進行比較。爲了解決這個問題,我們圍繞着設計原則的列舉,實施的描述和我們的結果的抽樣(無論是好的還是壞的)來構建本文。我們還在補充材料中詳細比較了幾種最先進的連拍融合方法[Liu et al。 2014; Dabov等人2007年a; Adobe Inc. 2016; Heide等人2014],評估我們與其他系統隔離對齊和合並框架的方法。最後,我們創建了包含數千個原始輸入字符串和相關輸出的檔案[Google Inc. 2016b],所以其他人可以改進或與我們的技術進行比較。

2捕獲和處理概述

圖3總結了我們的捕獲和圖像處理系統。它由一個實時流水線(頂行)和一個非實時流水線(底行)組成,可以產生連續的低分辨率取景器流,生成單個高分辨率圖像。

在我們當前的實施中,取景器流由移動設備的片上系統(SoC)上的硬件圖像信號處理器(ISP)計算。相比之下,高分辨率輸出圖像是在運行在SoC應用處理器上的軟件中計算出來的。爲了獲得良好的性能,這個軟件是用Halide編寫的[Ragan-Kelley et al。 2012]。我們利用ISP來處理取景器,因爲它功效高。但是,它的圖像看起來不同於我們的軟件計算的圖像。換句話說,我們的取景器不是所見即所得。

對於我們的方法來說,關鍵的啓用技術是能夠針對突發中的每個幀請求特定的曝光時間和增益。爲此,我們在選定的Android手機上使用了Camera2 API [Google Inc. 2016a]。 Camera2利用基於Frankencamera的基於請求的架構[Adams et al。 2010]。 Camera2的另一個優勢是它可以訪問拜耳原始圖像,使我們能夠繞過ISP。如圖3所示,我們在兩個地方使用原始圖像:(1)從ISP使用的相同流中確定曝光和增益以生成取景器,以及(2)捕獲用於計算高分辨率照片的連拍。使用原始圖像傳達了幾個優點:

•增加動態範圍。原始圖像中的像素通常爲10位,而移動ISP產生的YUV(或RGB)像素通常爲8位。實際優勢小於2位,因爲raw是線性的,而YUV已經有gamma曲線,但它不可忽略。

•線性。減去黑色電平偏移後,原始圖像與場景亮度成正比,而ISP輸出的圖像包含非線性色調映射。線性使我們能夠精確地模擬傳感器噪聲,這使得對齊和合並更加可靠,並且還使得自動曝光更容易。

•可移植性。合併由ISP生成的圖像需要對其處理進行建模和逆向處理,這是專有和場景相關的[Kim et al。 2012]。從原始圖像開始,我們可以省略這些步驟,這使得將我們的系統移植到新相機更容易。

在學術文獻中,基於原始圖像的爆裂融合方法[Farsiu et al。 2006; Heide等人2014]相對不常見。原始圖像的一個缺點是我們需要實施全面的攝影管線,包括校正鏡頭陰影和色差以及去馬賽克。 (爲簡潔起見,圖3中省略了這些校正步驟。)幸運的是,由於我們的對齊和合並算法在原始圖像上運行,昂貴的去馬賽克步驟僅需要在單個合併圖像上執行一次,而不是在連拍圖。

3自動曝光

移動ISP的一項重要功能是在用戶瞄準相機時不斷調整曝光時間,增益,對焦和白平衡。原則上,我們可以採用ISP的自動曝光,請求我們的恆定曝光連拍時,重新使用最近取景器幀中的捕捉設置。對於動態範圍適中的場景,此策略運作良好。但是,對於動態範圍較高的場景,拍攝的圖像可能包含高光溢出或曝光不足的拍攝對象,以後的HDR色調映射無法恢復。

爲了解決這個問題,我們開發了一種能夠識別未來色調映射的自定義自動曝光算法,負責確定整體曝光量以及即將到來的動態範圍壓縮。我們處理HDR場景的方法包括三個步驟:

1.刻意曝光不足使像素更少飽和,

2.捕捉多個幀以減少陰影中的噪聲,並且

3.使用本地色調映射來壓縮動態範圍。

曝光不足是高動態範圍捕獲的一種衆所周知的方法,被普遍應用於數碼單反相機“暴露於正確的方式”[Mar-tinec 2008]。在我們的系統中曝光不足的原因是通過捕連拍提供的降噪。實際上,我們將HDR成像視爲去噪[Hasinoff et al。 2010; Zhang等人2010]。

鑑於此解決方案,我們的自動曝光算法必須確定使用何種曝光(即曝光不足),動態範圍壓縮多少以及要捕捉多少幀。

作爲動態範圍壓縮的曝光不足對於我們使用的HDR色調映射方法,捕捉時曝光不足與處理中應用的動態範圍壓縮密切相關。如第6部分所述,我們的方法通過融合兩個經過伽馬校正的圖像(曝光不足的輸入框和相同幀的較亮版本)進行操作,其中數字增益補償曝光不足。因此,我們的自動曝光算法的輸出可以表示爲兩個曝光等級,用於高光的短曝光,用於拍攝場景以及用於HDR色調映射的合成長時間曝光陰影。

請注意,如果我們曝光不足太多,即使我們合併多個幀,照片也會很嘈雜。由於捕捉和合並需要時間和力量,我們無法捕捉到無限的數字。此外,如果我們將動態範圍壓縮太多,我們的照片看起來就像卡通(見圖2c)。因此,我們將最大動態範圍壓縮(在我們的方法中曝光不足)限制爲8.幸運的是,如圖4所示,很少有真實場景需要比這更多的壓縮。

通過示例自動曝光自動選擇  曝光的關鍵難點在於該選擇與場景有關。例如,讓太陽曬乾通常是可以接受的,但是如果場景在海灘上是日落的話,太陽應該保持着色,並且周圍的顏色環不應該過度曝光,即使海灘必須是黑暗。爲了解決這個問題,我們創建了一個使用傳統HDR包圍拍攝的場景數據庫,當使用我們的色調映射方法進行渲染時,我們已經手動調整以使其看起來儘可能自然。這種方法的成功取決於涵蓋消費者可能遇到的各種場景。我們的數據庫包含約5,000個場景,這些場景是在幾年內收集的,手動標記了兩個參數,對應於短時間和長時間曝光,產生最佳的最終再現。

給定這個帶標籤的數據庫和原始格式的輸入幀,我們計算幀的描述符並在數據庫中搜索匹配它的場景。我們用於這個描述符的特徵是圖像亮度分佈的分位數,在白平衡和積極下采樣版本的幀上測量。我們的完整描述符包含四組64個非均勻間隔分位數,以兩種不同的空間尺度測量,並測量RGB通道的最大值和平均值。這分別有助於表示不同空間頻率下的曝光並考慮顏色限幅。在計算這些分位數時,我們應用一個固定的權重來支持圖像的中心,並且我們強烈地提高檢測到臉部的區域的權重。我們還將候選集的範圍限制在當前場景的8倍亮度範圍內。這有助於保持對場景亮度的感知,避免例如不自然的日夜演繹。

一旦我們找到了一組候選匹配場景,我們計算出這些場景的手動調整自動曝光的加權混合。這種混合最終會產生兩個參數:短暫的曝光時間以及在色調映射期間應用的長時間曝光。有關我們實施的更多細節,請參閱補充資料。

曝光分解 將拍攝曝光轉換爲傳感器設置需要將其分解爲曝光時間和增益(ISO設置)。對於這一步,我們使用固定的時間表來平衡運動模糊和噪音。對於我們保持最小亮度的最明亮場景,曝光時間可以增加到8毫秒。接下來,隨着場景變暗,我們將曝光時間保持在8 ms,並將增益提高到4倍。最後,我們同時增加曝光時間和增益,最高可達100 ms曝光時間和96倍增益,並在對數空間中按比例增加。爲了使信噪比最大化,我們儘可能多地應用模擬形式的增益[Martinec 2008]。任何增益超過我們在我們的管道中數字化應用的攝像頭傳感器所支持的限制。

連拍大小 除了確定曝光時間,增益和動態範圍壓縮之外,我們還必須決定在一次突發中捕捉多少幀。我們捕獲的數字N是一個折衷。在低光照條件下,或者在高動態範圍場景中,我們稍後將提升陰影,我們需要更多幀來提高信噪比,但是它們需要更多時間和內存來捕獲,緩衝和處理。在明亮的場景中,捕捉1-2幅圖像通常是足夠的,儘管更多的圖像通常仍然有益於對抗相機抖動模糊。在實踐中,我們將我們的突發限制爲2-8幅圖像,並使用我們的模型爲原始圖像噪聲做出決定(更多細節請參見第5節)。

取景器集成 我們的自動曝光算法建立在ISP控制的取景器之上。爲了改善延遲,我們不斷分析在取景期間捕獲的原始幀;在快門按下時,我們已經準備好了所需的連拍設置。雖然我們的自動曝光實時運行,每幀大約10毫秒,但分析每個取景器幀是不必要的,因爲場景亮度的快速變化並不常見。爲了節省電力,我們僅在每4幀中運行一次自動曝光。

我們的算法面臨的一個挑戰是,對於高度HDR場景,單個ISP控制的取景器幀可能包含許多過度曝光的像素。這可能會使估計曝光不足的技巧變得棘手。我們在觀察期間試驗了連續的包圍。但是,在取景過程中,不同的曝光圖像無法顯示給用戶,並且在背景中捕捉它們會破壞取景器的平滑度。幸運的是,我們發現,在評估我們的匹配度量時,忽略剪裁的像素,我們仍然可以確定從相似場景中曝光不足的程度。我們的算法預測87%的投籃中包圍結果的10%內的曝光量;具有較大變化的鏡頭傾向於更強烈的HDR,並且更加寬容精度不足。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章