歡迎光臨
每天分享高質量文章

CVPR 2018 論文解讀 | 基於GAN和CNN的圖像盲去噪

作者丨左育莘

學校丨西安電子科技大學

研究方向丨計算機視覺

圖像去噪是low-level視覺問題中的一個經典的話題。其退化模型為 y=x+v,圖像去噪的標的就是通過減去噪聲 v,從含噪聲的圖像 y 中得到乾凈圖像 x 。在很多情況下,因為各種因素的影響,噪聲的信息是無法得到的,在這樣的情況下進行去噪,就變成了盲去噪。 

 

Image Blind Denoising With Generative Adversarial Network Based Noise Modeling 是中山大學和 CVTE 發表於 CVPR 2018 的工作,該文章通過利用 GAN 對噪聲分佈進行建模,並通過建立的模型生成噪聲樣本,與乾凈圖像集合構成訓練資料集,訓練去噪網絡來進行盲去噪。

 

很多去噪問題的解法,例如基於多種圖像先驗信息的方法,如 BM3D,可以通過結合 noise-level 估計演算法來達到盲去噪的效果。但是,這些方法還是有很大的缺陷。

 

首先,在這些方法中的圖像先驗信息大多基於人類知識,因此圖像的全部特征就很難被捕捉到。第二,這些方法中絕大多數都是只用了輸入圖像的內部信息,沒有使用到任何的外部信息,所以,還有很大的提升空間。

 

而基於已知噪聲信息(noise-level)的圖像去噪方法,特別是基於 CNN 的方法,對於已知高斯噪聲的信息,這些方法可以達到 SOTA 水平。而且,這些方法不需要依靠人類對於圖像的先驗信息。但是這些方法在實際中很難派上用場。因為實際中我們得到一張圖像,其中的噪聲信息是未知的。

 

基於上面的分析,作者的思路:通過給定的含噪聲圖像構建一個配對的訓練資料集,然後通過使用基於 CNN 的方法來進行盲去噪。

 

構建這樣一個資料集需要通過含噪聲的圖像來對噪聲分佈進行建模,然後生成噪聲資料。實際上,前面的工作已經使用 GMM(高斯混合模型)來進行對噪聲的模擬。但是得到的噪聲資料並不是和觀測得到的噪聲十分相似,因此就需要一個更好的噪聲建模方法。

 

作者在本文中提出了一個新穎的兩步框架。首先,訓練 GAN 以估計輸入噪聲圖像上的噪聲分佈並生成噪聲樣本。其次,利用從第一步採樣的噪聲塊來構建成對的訓練資料集,該資料集又用於訓練 CNN 以對給定的噪聲圖像進行去噪。

 

網絡結構

 

 GCBD方法

噪聲建模估計 

 

文章假設需要處理的圖像都含有同一型別的未知的均值為 0 的噪聲。然後,進行噪聲建模。 

 

1. 提取噪聲圖像塊 

 

這是正確訓練 GAN 以模擬未知噪聲的重要步驟,因為噪聲分佈將從噪聲主導資料中更好地被估計。 

 

為了減小原始背景的影響,需要從給定噪聲圖像中具有弱背景的部分中首先提取一組近似噪聲塊(或塊),例如 V。 

 

這樣,噪聲分佈成為 GAN 學習的主要標的,這可能使 GAN 模型更加準確。在噪聲分佈的期望為零的假設下,可以通過減去噪聲圖像中相對平滑的 patch (smoothed patch) 的平均值來獲得近似的噪聲 patch。 

 

這裡討論的 smoothed patch 指的是內部內容非常相似的區域。文中的數學定義即為 patch 中各部分的均值,方差在一個很小的範圍內波動

 

  • 以步長為 Sg 對整張含噪聲圖像提取圖像塊 Pi,其大小為 d × d; 

  • 以步長為 Sl 對圖像塊 Pi 提取區域性圖像塊,其大小為 h × h; 

  • 若對於 Pi 中所有的,都滿足以下條件,就說明 Pi 為 smoothed patch,μ, γ∈(0,1)

  • 將每一個 smoothed patch 儲存到集合 S 中,然後各自減去各自的均值,就得到 noise patch 集合 V。

 

2. 利用GAN進行噪聲建模 

 

利用剛纔得到的 noise patch 集合,然後用 GAN 來對噪聲進行建模,通過建立的模型生成更多的噪聲資料。 

 

在文章的方法中,GAN 是通過第一部得到的近似噪聲 patch 集合 V 來估計噪聲的分佈的。 

 

由於 WGAN 可以改進 GAN 的訓練並生成高質量的樣本。因此,在文章的實驗中,WGAN-GP 是 WGAN 的改進版本,用於學習噪聲分佈。 

 

這裡的 loss 函式為:

 

 

這裡的 Pr 表示 V 的資料分佈,Pg 是生成器生成資料的分佈。被定義為沿著 Pr 和 Pg 樣的點對之間的直線均勻分佈的採樣。

 

 GAN網絡結構

 

作者採用類似於 DCGAN 的網絡,訓練好的網絡被用來生成噪聲樣本(增強集合 V)並最終得到集合 V’。

 

通過深度CNN進行去噪

 

許多以前的工作提出通過訓練具有大型資料集的 CNN 來解決去噪問題,並取得了令人矚目的成果。如前所述,CNN 可以隱含地從配對的訓練資料集中學習潛在噪聲模型,從而放鬆了對圖像先驗的人類知識的依賴。因此,在文章的方法中使用 CNN 進行去噪。 

 

為了訓練 CNN,首先需要構建一個配對的訓練資料集,從剛纔得到的經過 GAN 擴展的 V’ 資料集,然後再從乾凈圖像的資料集中通過圖像分塊(patch 大小 d×d)的方法得到乾凈圖像資料集 X。在 V’ 中的 noise block 隨機地加入到 X 中,得到集合 Y。其中有。然後通過集合 X 和 Y 構成配對資料集 {X,Y}。

 

實際上,資料集是在訓練去噪網絡的時候構建的。在每個 epoch,xj 和的組合都會改變,然後構成一個新的配對資料集 {X,Y’} 。

 

 去噪網絡

 

作者使用的網絡結構類似於 DnCNN,CNN 被視為預測殘留圖像的殘差單元,即輸入噪聲圖像和潛在乾凈圖像之間的差異。

 

損失函式為:

 

 

引數設定

 

d=64,h=32,Sg=32,Sl=16,μ=0.1,γ=0.25

 

GAN 的引數設定則參考的是 DCGAN 中的設定,DnCNN 則是以 lr=0.001,用 SGD 優化器訓練 50 個 epoch。

 

相關實驗

 

作者用合成噪聲圖像和真實噪聲圖像評估了 GCBD 方法,並對幾種代表性方法進行了比較,主要分為 4 部分:

 

1. 驗證 GAN 的噪聲建模效果,GCBD 和一些 SOTA 的方法進行比較,特別是一些基於判別學習的方法(像 DnCNN),從高斯盲去噪方面進行比較;

 

2. GCBD 可以處理比高斯噪聲更複雜的噪聲,利用混合噪聲進行實驗;

 

3. 真實圖像去噪實驗;

 

4. 對噪聲建模的一些討論,說明選擇 GAN 而不是傳統方法(GMM)的原因。

 

實驗資料

 

Test set:BSD68

 

真實圖像:DND 資料集,NIGHT 資料集(25 張夜間高解析度含噪聲圖像) 

 

用於構建配對資料集的乾凈圖像集:CLEAN1 

 

為了模擬實際處理大量圖像資料的情況,將噪聲添加到另一組高解析度乾凈圖像集(CLEAN2)以在合成資料的評估中形成用於 GCBD 的輸入噪聲圖像(測試泛化能力)

 

實驗結果

 

1. 高斯盲去噪與合成噪聲去噪

 

 高斯盲去噪以及混合噪聲去噪結果

 

可以看到在高斯盲去噪方面,文章提出的方法 GCBD 和 DnCNN 不相上下,而在合成噪聲去噪方面,GCBD 則達到了最高水平。文中所用到的混合噪聲為 10% 的均勻分佈噪聲(分佈區間為[-s,s]),20% 的高斯噪聲(N(0,1)),70%的高斯噪聲(N(0,0.01)。

 

2. 真實圖像去噪

 

DND資料集實驗結果

 

 真實圖像去噪結果

NIGHT資料集實驗結果

 

因為 NIGHT 資料集沒有 GT,所以之後能通過視覺效果進行衡量。

 

 NIGHT資料集實驗結果

 

視覺效果上看,GCBD 達到了最佳的效果,在保留圖像信息的情況下,去除了噪聲。

 

3. 選擇GAN而不是GMM的原因

 

對於真實含噪聲圖像而言,GMM 對噪聲估計的效果並沒有 GAN 好,如圖所示:

 

 噪聲估計結果

 

可以看到利用 GAN 估計的噪聲比 GMM 估計的噪聲更接近與真實圖像噪聲。作者認為原因是 GMM 中高斯模型的數量以及顯式地對噪聲進行建模會限制 GMM 的估計能力,而 GAN 則是隱式地對噪聲進行估計,所以效果會更好一些。

 

4. 利用GAN生成噪聲樣本的效果

 

作者通過實驗發現利用 GAN 生成更多噪聲資料的方法能提升性能(高斯盲去噪提升 0.34dB,混合噪聲去噪提升 0.91dB)。作者認為原因是只對提取的噪聲塊直接進行訓練的話,資料缺少多樣性,而利用 GAN 生成更多噪聲資料則彌補了這一缺陷。

總結

這篇文章針對圖像盲去噪任務,通過利用 GAN 學習噪聲的分佈,並生成更多的噪聲資料來生成訓練資料集對 CNN 進行訓練,得到的圖像盲去噪效果達到了 SOTA 水平。

 

赞(0)

分享創造快樂