《Unprocessing Images for Learned Raw Denoising》論文閱讀

摘要

當用於訓練的數據與用於評估的數據類似時,機器學習技術最有效。這對於學習過的單圖像去噪算法來講是正確的,這些算法應用於真實的原始相機傳感器讀數,但因爲實際的限制,一般在合成圖像數據上進行訓練。雖然從合成圖像推廣到真實圖像須要仔細考慮相機傳感器的噪聲特性,圖像處理管道的其餘方面(如增益、顏色校訂和色調映射)經常被忽略,儘管它們對原始測量數據如何轉換成最終圖像有重要影響。爲了解決這個問題,咱們提出了一種經過反轉圖像處理管道的每一個步驟來反處理圖像的技術,從而使咱們可以從廣泛可用的互聯網照片合成現實的原始傳感器測量。此外,在評估咱們的損失函數時,咱們還對圖像處理管道的相關組件建模,這使得訓練可以意識到去噪後將發生的全部相關光度處理。經過對訓練數據和模型輸出進行反處理和處理,咱們能夠訓練出一個簡單的卷積神經網絡,它的錯誤率在Darmstadt Noise數據集上比以前的技術低14%-38%,快9-18,也適用於這個數據集以外的傳感器數據。git

1、引言

傳統的單圖像去噪算法一般是對圖像的性質及其要去除的噪聲進行分析建模。相比之下,現代的去噪方法一般使用神經網絡來學習從噪聲圖像到無噪聲圖像的映射。深度學習可以表示圖像和噪聲的複雜屬性,可是訓練這些模型須要大的成對數據集。所以,大多數基於學習的去噪技術依賴於合成訓練數據。儘管在設計用於去噪的神經網絡方面作了大量的工做,最近的基準測試代表,在對真實的噪聲原始圖像進行評估時,深度學習模型每每比傳統手工設計的算法表現得更好。咱們認爲,形成這種差別的部分緣由是不現實的合成訓練數據。因爲噪聲是加性的、白噪聲和高斯噪聲的假設,許多經典算法對真實數據的推廣效果不好。最近的工做已經發現了這種不許確性,並轉移到更復雜的噪聲模型,更好地匹配物理圖像造成。可是,這些技術沒有考慮典型圖像處理管道的許多步驟。爲了改善人工訓練數據與真實原始圖像之間的不匹配,一種方法是利用降噪算法所針對的同一攝像機捕獲有噪聲和無噪聲的圖像對。然而,捕捉噪聲和無噪聲的圖像對是困難的,須要長時間曝光或多攝圖像,以及後處理來應對相機的運動和照明變化。獲取這些圖像對既昂貴又耗時,而在訓練神經網絡時,爲了防止過分擬合,須要大量的訓練數據,這又加重了這個問題。此外,因爲不一樣的相機傳感器表現出不一樣的噪聲特徵,將一種學習去噪算法應用到新的相機傳感器可能須要捕獲新的數據集。算法

圖1 來自Darmstadt噪聲數據集的圖像,其中咱們給出(a)噪聲輸入圖像,(b)地面真值無噪聲圖像,(c)先前最早進算法的輸出,以及(d)模型的輸出。四幅圖像均由原始Bayer空間轉換爲sRGB進行可視化。每一個結果旁邊是三個裁剪的子圖像,用最近鄰插值渲染。更多結果見補充。編程

當適當建模時,合成數據是簡單和有效的。數字傳感器的物理特性和成像管道的步驟已經獲得了很好的理解,能夠利用它們從幾乎任何圖像中生成訓練數據,只須要使用目標攝像機傳感器的基本信息。提出了一種對圖像處理管道關鍵部件建模的系統方法,對通常的互聯網圖像進行反處理以生成真實的原始數據,並將傳統的圖像處理操做集成到神經網絡的訓練中。在Darmstadt Noise數據集中對真實的噪聲原始圖像進行評估時,咱們的模型的錯誤率下降了14%-38%,比之前的技術水平快了9 -18個百分點。模型輸出的可視化結果如圖1所示。咱們的反處理和處理方法還能夠在生成咱們的綜合訓練數據時,泛化沒有明確建模設備捕獲的圖像。本文從如下幾個方面展開:第2節對相關工做進行了回顧。在第3節中,咱們詳細介紹了原始圖像處理管道的步驟,並定義了每一個步驟的逆過程。在第4節中,咱們提出了將通常的網絡圖像處理爲合成原始數據的反處理程序,修改訓練損失以適應原始處理,訓練咱們簡單有效的去噪神經網絡模型。在第5節中,咱們展現了咱們的模型在Darmstadt噪聲數據集上的改進性能,並提供了一個消融研究,隔離了咱們方法的各個方面的相對重要性。網絡

2、相關工做

單幅圖像去噪一直是計算機視覺和圖像處理領域的研究熱點。經典的技術,如各向異性擴散、全變差去噪和小波核取心,在信號和噪聲都表現出特定統計規律的前提下,使用手工設計的算法從噪聲輸入中恢復乾淨的信號。這些參數化模型雖然簡單有效,但其容量和表達能力有限,這使得人們對BM3D和非局部均值等非參數、自類似性驅動的技術愈來愈感興趣。從簡單的分析技術向數據流方法的轉變繼續以詞典學習和KSVD和專家領域等基本搜索算法的形式進行,這些算法經過查找稀疏性保持或統計規律建模良好的圖像表示形式進行操做。在現代,大多數單圖像去噪算法徹底是數據驅動的,由深度神經網絡組成,通過訓練能夠從噪聲圖像迴歸到去噪圖像。最經典的去噪工做是在圖像噪聲爲加性、白噪聲和高斯噪聲的假設下進行的。該模型雖然方便、簡單,但並不現實,光子到達傳感器的隨機過程更適合描述爲「拍攝」和「讀取」噪聲。總體噪聲能夠更準確地建模爲包含高斯和泊松信號相關份量或者從一個方差是強度函數的異方差高斯分佈中採樣。分析建模圖像噪聲的一種替代方法是使用真實的噪聲和無噪聲圖像的例子。這能夠經過捕捉由一對真實照片組成的數據集來實現,其中一張照片是短曝光,所以會產生噪聲,而另外一張照片是長曝光,所以基本上沒有噪聲。這些數據集能夠觀察到,使用合成數據訓練的最新技術被老模型(如BM3D)所超越。所以,最近的工做經過收集這些真實的、成對的數據顯示出了進展,這些數據不只用於評估,並且用於訓練模型。這些方法顯示了巨大的但願,但將這種技術應用於特定的相機須要大量的艱苦的收集與僅須要合成訓練數據或校準參數的老技術相比,該攝像機的訓練數據須要徹底對齊,大大增長了從業者的負擔。此外,還不清楚該數據集採集程序如何用於捕捉小運動無處不在的對象,如水、雲、樹葉或生物。最近的研究代表,可使用同一場景的多個噪聲圖像做爲訓練數據而不是成對的噪聲和無噪聲圖像,但這並無很大程度上減輕這些大型真實照片數據集的侷限性或勞動要求。雖然人們廣泛認爲,在圖像造成過程當中對噪聲進行正確的建模是學習有效去噪算法的關鍵,一個較少被深刻探討的問題是用於將原始傳感器讀數轉換成最終圖像的圖像處理管道的影響。現代圖像處理管道由幾個步驟組成,這些步驟轉換圖像強度,從而影響輸入噪聲如何縮放或修改,以及最終呈現的圖像如何做爲原始傳感器測量的函數出現。在這項工做中,當爲咱們的模型合成訓練數據時,咱們對這些步驟進行建模和反求,並證實這樣作能夠顯著提升去噪性能。架構

3、方法

這部分描述了傳統的圖像處理流程,從傳感器測量到最終成像的過程。app

3.1 :Shot and Read Noise

因爲非線性和像素值之間的相關性,processed image中的噪聲具備很是複雜的特性,可是raw sensor data(就是raw image)中的噪聲就很是簡單,主要是兩種:框架

(1)「shot」 noise:photon arrival statistics(光子到達統計)機器學習

Shot noise是一個泊松隨機變量,其均值爲真實光強(以光電子測量)函數

(2)「read」 noise:imprecision in the readout circuitry (讀出電路中的不精確)性能

Read noise是一個近似高斯隨機變量,均值爲零,方差固定。

將兩種noise共同近似爲單個異方差高斯分佈,強度y視爲隨機變量,方差是真實信號x的函數:

 

 

是由傳感器的模擬和數字增益決定( sensor’s analog and digital gains)。

gd: 數字增益。ga:模擬增益。σr2:就是read noise的固定方差。

爲了選擇合成圖像的噪聲水平,文中模擬了真實原始圖像中不一樣的shot/read noise參數對和來自該分佈的樣本的聯合分佈。

以Darmstadt Noise Dataset數據集爲例,shot/read noise因子的合理採樣程序是:

 

3.2:Demosaicing

傳統相機傳感器中的每一個像素由單個紅色,綠色或藍色濾色器覆蓋,以Bayer模式排列,例如R-G-G-B。恢復圖像中每一個像素的全部三種顏色測量的過程是一個去馬賽克問題。

例如:Darmstadt數據集遵循雙線性插值來執行去馬賽克方式。

反轉在這一步驟能夠忽略,對於圖像中的每一個像素,根據Bayer濾波器模式省略三個顏色值中的兩個。

3.3:Digital Gain

相機一般會對圖像強度應用數字增益,其中每一個圖像的特定增益由相機的自動曝光算法選擇。這些自動曝光算法一般是專有的「黑匣子」,而且對任意圖像很難進行逆處理。可是要將這一步反轉爲一對合成和真實數據集。方法是找到一個全局縮放,它能匹配兩個數據集中全部圖像強度的邊際統計。

爲了產生這種縮放,假設真實和合成圖像強度都來自不一樣的指數分佈:

對於x>0。尺度參數λ的最大似然估計簡單地是樣本均值的倒數,而且縮放x等於λ的逆縮放。這意味着能夠經過使用兩組樣本均值的比率來匹配兩組指數均爲指數分佈的強度。

使用合成數據和達姆施塔特數據集時,此縮放比率爲1.25。

爲了更全面的數據加強並確保咱們的模型在訓練期間觀察整個[0,1]的像素強度,,而不是應用這種恆定的縮放, 選擇1/1.25=0.8爲中心的正態分佈中採樣反向增益,標準差爲0.1,致使反向增益大體跨越[0.5, 1.1]。

3.4:White Balance(WB白平衡)

相機記錄的圖像是場景中燈光顏色和物體的材料顏色的乘積。

相機管道的一個目標是消除一些照明效果,讓圖片看起來更加天然。

這是經過白平衡算法執行的,該算法使用啓發式或統計方法估計圖像的紅色和藍色通道的每通道增益。

從合成數據中反轉此過程具備挑戰性,由於與自動曝光同樣,相機的白平衡算法是未知的,所以難以進行逆向工程。

然而,原始圖像數據集(如達姆施塔特)記錄了他們圖像的白平衡元數據,所以能夠經過簡單地從該數據集中的白平衡增益的經驗分佈中採樣來合成一些實際數據:[1.9,2.4]之間的紅色增益和[1.5 , 1.9]中的藍色增益,而後均勻,獨立地採樣便可。

當合成訓練數據時,對inverse digital white balance gain進行採樣,並將它們的乘積來得到每條通道的反向增益,這個反向增益就應用於合成的訓練數據。反向增益的值是小於1,意味着,合成圖像數據集缺乏高亮度(highlights)和沒有剪切像素(clipped pixels)。

這是有問題的,由於正確處理飽和圖像強度在去噪方面是很是重要的。

爲了解決這個問題,應用一個高亮度保留變化函數f(x,g),其中當g≤1或對於一些閾值t = 0.9 x≤t時是線性的,可是當g > 1,x > t時是一個立方變換:

 

這個變換被設計成當x<=t時f(x,g) = x/g,當g<=1時f(1,g) =1,f(x,g)是連續可微的。這個函數用圖形4表示。

圖4 函數f(x,g)(定義在公式6中)咱們用於在保持高光的同時下降合成圖像的強度x,獲得一組具備表明性的增益{g}。

 

 

3.5:Color Correction

一般,相機傳感器的顏色濾鏡與sRGB顏色空間所指望的光譜不匹配。爲了解決這個問題,相機將應用3x3色彩校訂矩陣(CCM)將其本身的相機空間」RGB顏色測量值轉換爲sRGB值。達姆施塔特數據集由四個攝像頭組成,每一個攝像頭在執行色彩校訂時都使用本身的固定CCM爲了生成咱們的合成數據以便它將推廣到數據集中的全部相機,本文對這四個CCM的隨機凸組合進行採樣,而且對於每一個合成圖像,咱們應用採樣CCM的逆採樣以撤消顏色校訂的效果。

3.6: Gamma Compression

因爲人類對圖像黑暗區域的漸變動加敏感,伽瑪壓縮一般用於將更多動態範圍的比特分配給低強度像素。本文使用標準gamma曲線,同時注意將輸入鉗位到ε=10-8的伽馬曲線,以防止訓練期間數值不穩定:

在生成合成數據時,咱們應用此運算符的(略微近似,因爲)逆。

圖5 (a)來自MIR Flickr數據集的sRGB圖像的每一個顏色通道的直方圖;(b)按照第4.1節列舉並在第3節詳細說明的過程建立的未處理圖像;(c)來自Darmstadt數據集的真實原始圖像。注意,真實原始強度的分佈和咱們的未加工強度是類似的。

 

3.7: Tone Mapping

高動態範圍的圖像須要極端的色調映射,即便是標準的低動態範圍的圖像,也常用s形曲線來處理,以匹配電影的特徵曲線。能夠執行更復雜的具備邊緣感知的本地音調映射,可是對這種操做進行反向工程是困難的。所以,咱們假設色調映射是用一個簡單的平滑步長曲線執行的,而且在生成合成數據時使用該曲線的逆。

其中,二者僅在[0,1]中的輸入上定義。

4、訓練

輸入和GT是使用第三部分提出的相機管道逆處理過程獲得的,

4.1:Unprocessing Training Images

爲了生成真實的合成RAW數據,本文經過對圖像處理轉換順序逆變來對圖像進行反處理,如圖2所示。這包括的逆變有,按順序,色調映射(3.7節),應用伽瑪解壓(3.6節),將sRGB應用到相機RGB色彩校訂矩陣(3.5節),以及逆變白平衡增益(3.4節)和數字增益(3.3節)。獲得的合成RAW圖像在訓練期間用做無噪聲真實情況,而且添加了shot和read噪聲(第3.1節)以建立嘈雜的網絡輸入。咱們合成的RAW圖像更接近真實的原始強度,如圖5所示。

6.咱們模型的網絡結構。網絡輸入是4通道噪聲馬賽克圖像,與4通道噪聲水平圖鏈接,輸出爲4通道去噪馬賽克圖像。

 

4.2:Processing Raw Images

因爲RAW圖像在被查看以前最終要通過一個圖像處理管道(ISP),所以咱們模型的輸出圖像在評估任何損失以前也應該受到這個管道的約束。所以咱們RAW處理應用到咱們的模型的輸出,依次由應用白平衡收益(3.4),雙線性去馬賽克(3.2),應用色彩校訂矩陣從相機RGB轉換到sRGB(3.5),和gamma壓縮(3.6)。這個簡化的圖像處理管道與Darmstadt噪聲數據集基準中使用的管道相匹配,對於通常的圖像管道是一個很好的近似。在計算損失以前,咱們將此處理應用於網絡輸出和地面真值無噪聲圖像。將這個管道合併到訓練中,可讓網絡推斷出下游處理將如何影響所需的去噪行爲。

 

4.3:Architecture

輸入:Bayer域中的噪聲原始圖像

輸出:raw格式降噪圖像

添加噪聲:根據圖像的shotread噪聲參數,經過網絡對輸入圖像中的噪聲標準差進行逐像素估計。

輸入爲4通道,每一個通道對應於R-G-G-B拜耳平面

網絡框架:U-Net。在編碼器和解碼器塊之間具備相同規模的skip connect(詳見圖6),編碼時採用盒下采樣(box downsampling),解碼時採用雙線性上採樣,PReLU激活函數。

網絡預測:噪聲殘差。

4.4:Training

本文中的訓練數據是本身合成的。從MIR Flickr擴展數據集的100萬張照片開始,留出5%的數據集用於驗證,5%用於測試。

使用高斯2x內核(σ= 1)下采樣

訓練圖像尺寸爲128x128

使用unprocessing steps來合成噪聲和乾淨的原始訓練對。

Adam,學習率爲10^{-4}

本文訓練了兩個模型,一個針對sRGB錯誤度量的性能,另外一個針對RAW錯誤度量的性能。對於咱們的sRGB模型,在計算損失以前,網絡輸出和合成地面真值都被轉換到sRGB空間,如4.2節所述。咱們「RAW」模型直接計算咱們的網絡輸出和咱們的RAW合成地面真值之間的損失,沒有這個處理。對於這兩種實驗,本文都將輸出圖像與地面真值圖像之間的L1損耗最小化。

5、結果

一、評估數據集:用了Darmstadt噪聲數據集。

VST:方差穩定轉換。表中爲何有些算法沒有+VST。文中給的解釋是,由於這些算法加了VST比沒加的效果更好,因此這裏只列出效果好的形式。

由於在PSNR和SSIM上的相對改進很難判斷,由於這兩個指標都被設計成在錯誤變得很小時達到飽和。因此添加了括號中的指標

括號中是報告性能最好的模型相對於該模型的錯誤的相對減小,即經過將PSNR轉換爲RMSE,RMSE\alpha \sqrt{10^{-PSNR/10}}和SSIM到DSSIM ,(DSSIM = (1-SSIM)/2)

 

消融實驗:

無CCM、WB、增益代表,在生成合成訓練數據時,咱們沒有執行sRGB對相機RGB CCM反演的反處理步驟,也沒有對白平衡和數字增益進行反演。沒有色調映射,Gamma表示咱們沒有執行逆色調映射或Gamma解壓縮的反處理步驟。沒有反處理表示咱們沒有執行任何反處理步驟,4 bigger表示咱們將每一個conv層的通道數量增長了3倍。Noise-blind是指沒有將噪聲電平做爲輸入提供給網絡。AWGN代表,不使用咱們更現實的噪聲模型當合成訓練數據時,咱們使用的加性高斯白噪聲σ在0.001~0.15之間均勻取樣。沒有殘差輸出代表咱們的模型架構直接預測輸出圖像,而不是預測添加到輸入中的殘差。

消融實驗結果:

移除任何模型組件都會下降質量。性能對咱們的噪聲建模最爲敏感,由於使用高斯噪聲會顯著下降性能。反處理(Unprocessing)也有很大的貢獻,尤爲是在使用sRGB度量進行評估時,儘管它比實際的噪聲模型稍微小一些。值得注意的是,增長網絡大小並不能彌補unprocessing steps的缺失。惟一有效的消融研究是刪除了神經網絡架構的一個組件(殘留輸出塊),致使最小的性能降低。

最後運行時間:能夠看到運行時間很是快。

二、可視化效果

爲了驗證本文的方法是否適用於其餘數據集和設備,文中對HDR+數據集的RAW圖像去噪方法進行了評估。

 

圖7 來自HDR+數據集圖像,與圖1相同的格式表示(a)有噪聲的輸入圖像和(b)模型的輸出。更多結果見補充。

 

6、總結

通俗的說,本文提出了一種方法,將普通的圖片能夠處理成相似於真實相機傳感器捕獲的原始測量數據(經過建模和反轉相機圖像處理管道的每一步)。神經網絡對raw圖像進行處理。這樣就能夠從互聯網中獲取大量的訓練數據。

注:rRAW的原意就是「未經加工」。能夠理解爲:RAW圖像就是CMOS或者CCD圖像感應器將捕捉到的光源信號轉化爲數字信號的原始數據。RAW文件是一種記錄了數碼相機傳感器的原始信息,同時記錄了由相機拍攝所產生的一些元數據(Metadata,如ISO的設置、快門速度、光圈值、白平衡等)的文件。RAW是未經處理、也未經壓縮的格式,能夠把RAW概念化爲「原始圖像編碼數據」或更形象的稱爲「數字底片」。RAW格式的全稱RAW Image Format,在編程中稱之爲原始。

其優點:

·RAW文件幾乎是未通過處理而直接從CCD或CMOS上獲得的信息,經過後期處理,攝影師可以最大限度地發揮本身的藝術才華。

·RAW文件並無白平衡設置,可是真實的數據也沒有被改變,就是說做者能夠任意的調整色溫和白平衡,而且是不會有圖像質量損失的。

·顏色線性化和濾波器行列變換在具備微處理器的電腦上處理得更加迅速,這容許應用一些相機上所不容許採用的、較爲複雜的運算法則。

·雖然RAW文件附有飽和度、對比度等標記信息,可是其真實的圖像數據並無改變。用戶能夠自由地對某一張圖片進行個性化的調整,而沒必要基於1、兩種預先設定好的模式。

·也許RAW最大的優勢就是能夠將其轉化爲16位的圖像。也就是有65536個層次能夠被調整,這對於JPG文件來講是一個很大的優點。當編輯一個圖像的時候,特別是當你須要對陰影區或高光區進行重要調整的時候,這一點很是重要。