Introduction
這是哈工大與香港理工大Lei Zhang老師課題組合作完成的論文,是今年7月份纔在arxiv上放出來。Lei Zhang老師課題組在圖像去噪方面一直走在前沿,許多經典工作都是他們提出的,如WNNM、DnCNN等。這一篇也是其在深度圖像去噪方面的新的文章。與其前面的工作不同的是,這篇文章主要研究了卷積網絡在真實圖像上的去噪效果,其主要貢獻在於以下幾點:
- 提出了一個更加真實的噪聲模型,其考慮了信號依賴噪聲和ISP流程對噪聲的影響,展示了圖像噪聲模型在真實噪聲圖像中起着關鍵作用。
- 提出了CBDNet模型,其包括了一個噪聲估計子網絡和一個非盲去噪子網絡,可以實現圖像的盲去噪(即未知噪聲水平)。
- 提出了非對稱學習(asymmetric learning)的損失函數,並允許用戶交互式調整去噪結果,增強了去噪結果的魯棒性。
- 將合成噪聲圖像與真實噪聲圖像一起用於網絡的訓練,提升網絡的去噪效果和泛化能力。
Proposed Method
真實噪聲模型
給定一張乾淨的圖像 ,一個更加真實的噪聲模型 可以表示爲
這裏, 包含了信號依賴噪聲部分 和平穩噪聲部分 。其中 常常建模爲方差爲 的高斯白噪聲,而 常常與圖像亮度有關。
除此之外,文章還進一步考慮了相機內ISP流程,其導致了下面的信號依賴和顏色通道依賴的噪聲模型
其中, 表示合成的噪聲圖像, 代表了相機響應函數(CRF),其將輻照度 轉化爲原始乾淨圖像 。 表示將sRGB圖像轉化爲Bayer圖像的函數, 表示去馬賽克函數。既然去馬賽克函數中的線性插值運算涉及到了不同顏色通道的像素,所以合成的噪聲是通道依賴的。
另外,進一步考慮圖像壓縮效應,將JPEG壓縮後的合成噪聲圖像表示爲
對於RAW圖像,可以使用第一個公式合成噪聲;對於未壓縮圖像,可以使用第二個公式合成圖像;對於壓縮圖像,使用第三個公式合成圖像。
網絡結構
CBDNet包含了兩個子網絡:噪聲估計子網絡和非盲去噪子網絡。
首先,噪聲估計子網絡將噪聲觀測圖像 轉換爲估計的噪聲水平圖 。然後,非盲去噪子網絡將 和 作爲輸入得到最終的去噪結果 。除此之外,噪聲估計子網絡允許用戶在估計的噪聲水平圖 輸入到非盲去噪子網絡之前對應進行調整。文章提出了一種簡單的策略 。
噪聲估計子網絡使用五層全卷積網絡,卷積核爲 ,並且不進行pooling和batch normalization。
非盲去噪子網絡使用16層的U-Net結構,且使用殘差學習的方式學習殘差映射 ,從而得到乾淨的圖像 。
另外,雖然在DnCNN中提到,batch normalization成功應用於高斯去噪中,但是對於真實圖像的噪聲去除並沒有多大幫助,這可能是由於真實世界的噪聲分別與高斯分佈相差較大。
非對稱學習(Asymmetric Learning)
作者觀察到非盲去噪方法(如BM3D、FFDNet等)對噪聲估計的誤差具有非對稱敏感性。如下圖所示,分別用BM3D和FFDNet使用不同的輸入噪聲標準差去噪(標準差依次設爲5、10、15、25、35、50),其中綠色框代表輸入噪聲的標準差與真實噪聲標準差一致。可以觀察到,當輸入噪聲的標準差與真實噪聲的標準差一致時,去噪效果最好。當輸入噪聲標準差低於真實值時,去噪結果包含可察覺的噪聲;而當輸入噪聲標準差高於真實值時,去噪結果仍能保持較好的結果,雖然也平滑了部分低對比度的紋理。因此,非盲去噪方法對低估誤差比較敏感,而對高估的誤差比較魯棒。正是因爲這個特性,BM3D可以通過設置相對較高的輸入噪聲標準差得到滿意的真實圖像去噪效果。
爲了消除這種非對稱敏感性,文章設計了非對稱損失函數用於噪聲估計。給定像素 的估計噪聲水平 和真實值 ,當 時,應該對其MSE引入更多的懲罰,因此
當 時, ,否則爲0。通過設定 ,我們可以對低估誤差引入更多的懲罰。
另外,引入全變分(TV)正則項約束 的平滑性:
對於去噪網絡輸入的 ,定義重建誤差
綜上所述,整個CBDNet的目標損失函數爲
在訓練中結合合成噪聲圖像與真實噪聲圖像
對於合成噪聲圖像,作爲ground-truth的乾淨圖像和噪聲水平圖是可用的,但噪聲模型可能與真實噪聲不太相符;而對於真實噪聲圖像,噪聲是真實的,但僅僅可以獲得接近無噪聲的圖像作爲ground truth,而噪聲水平圖是未知的。另外,一般真實噪聲圖像的ground truth比較難以獲取,而合成噪聲圖像可以比較方便的大規模合成。因此,在訓練CBDNet的過程中,結合這兩種類型的圖像,提高網絡的泛化能力。
文章使用上述的噪聲模型合成噪聲圖像。其使用了BSD500的400張圖像,Waterloo的1600張圖像,MIT-Adobe FiveK數據庫的1600張圖像作爲訓練數據。對於真實圖像,使用RENOIR數據庫的120張圖像。
爲了提高網絡的泛化能力,交替使用一批合成圖像和一批真實圖像進行訓練。當時使用一批合成圖像時,所有的損失函數都會被最小化以更新CBDNet;當使用一批真實圖像時,由於真實噪聲水平未知,僅僅在訓練中使用 和 。
Experiment Results
數據集及參數
使用三個真實噪聲圖像數據集:NC12、DND和·Nam。
參數設置:
損失函數中, , , ;
使用ADAM算法訓練網絡: ;
使用Delving deep into rectiers中的方法初始化;
最小batch的大小爲32,圖像塊大小爲 ;
所有模型訓練40 epochs,前20epochs使用 學習率,然後使用 的學習率fine tune模型。
實驗結果
小的 (如0.3)有利於去除位置的真實噪聲且保持圖像結構。
只使用合成噪聲圖像訓練網絡會使得網絡在真實圖像去噪中效果受限,一方面是由於噪聲模型不能完整的模擬真實噪聲,另一方面深度網絡容易對訓練數據過擬合,從而不能泛化於真實圖像。而由於圖像場景數量有限且不能完全獲取無噪聲圖像,只使用真實噪聲圖像也會使得結果過平滑。
在多個測試集上與其他方法比較,無論是圖像視覺效果還是客觀指標都是比較突出。
代碼地址:github