上次看過文章Noise2Noise(簡稱爲N2N吧),其使用noisy-noisy image pairs對網絡進行訓練,可以達到使用noisy-clean image pairs的效果。但在N2N中,使用的noisy-noisy image pairs要求有相同的圖像內容帶有不同的噪聲,即 ,其中 是圖像信號, 和 是相互獨立的噪聲。也就是說我們對同一場景要獲得兩張以上的噪聲圖像才能進行訓練。那能不能只有一張噪聲圖像就可以訓練網絡進行去噪吶?最近看到網上出了好幾篇文章都是對這個問題進行討論的。我看到了三篇分別是《Noise2Void - Learning Denoising from Single Noisy Images》、《SELF-SUPERVISED DEEP IMAGE DENOISING》、《Noise2Self: Blind Denoising by Self-Supervision》,文章鏈接放在最後了。我只通讀了第一篇,後兩篇只大體瀏覽了一下,雖然方法不同,但內容和效果也有相似之處。下面重點介紹一下第一篇Noise2Void(簡稱N2V)。
對於一張帶噪聲的圖像
,作者做了兩個假設:
(1) 信號
是像素相關的。
這個不難理解,圖像信號的像素不是相互獨立的,這也是爲什麼我們能用各種濾波器對圖像進行平滑濾波去噪的原因。
(2) 噪聲
在給定信號
的條件下是像素無關的。
也就是說各個像素之間的噪聲是獨立同分布的。
除此之外,作者還做了和N2N相同的一個假設,即噪聲的均值爲0,
也就是說如果能對同一個信號獲取多張有不同噪聲的圖像,對它們取平均可以接近真實的信號值。
一般我們用來做去噪的網絡都是CNN,進一步說是全卷積網絡(FCN)。對於一個FCN來說,網絡輸出的每一個像素的預測值
都有一個確定的感受野
。也就是說輸入圖像的一個範圍內的像素都會對輸出預測值有形象。
基於這個想法,可以把去噪網絡看做一個函數
,其輸入是一個patch
,輸出是一個位於位置
的像素
,
其中,
表示網絡參數。
在傳統監督學習中,使用noisy-clean image pairs
對網絡進行訓練,就可以表示爲
在N2N中,使用noisy-noisy image pairs
對網絡進行訓練,其中
噪聲部分都來自於同一個噪聲分佈的獨立採樣。雖然網絡學習得是從一張噪聲圖像到另一張噪聲圖像的映射,但訓練仍然能夠收斂到正確的解。這個現象的關鍵在於噪聲圖像的期望值等於乾淨的圖像。
在N2V訓練中,只有單張噪聲圖像
,如果只是簡單得提取一個patch作爲輸入,而用其中心像素作爲目標進行訓練,網絡將只會學到恆等映射,即直接把輸入patch的中心值映射到輸出。爲此,文章設計了一種有着特殊感受野的網絡結構——盲點網絡(blind-spot network)。如下圖所示,該網絡的感受野中心是一個盲點。網絡的預測值
受其鄰域所有輸入像素的影響,除了其自身位置的輸入像素
。
該網絡的優點在於其不會學到恆等映射。因爲我們假設了噪聲在像素間是不相關的,所以只利用鄰域信息是不能恢復噪聲的,而只能恢復圖像信息。也因此網絡不能產生比期望值更好的估計結果。
當然,文章也提到了,由於該網絡在預測時並沒有使用所有可用信息,所以其結果精確度可能比起正常網絡會有略微的下降。
文章也提出在實際使用中,爲了網絡的有效性,並不直接使用該網絡,而是使用一種等價策略:在每個輸入patch中,隨機選擇一個鄰域值替代中心像素。如下圖所示。
在具體應用中,文章仿照CARE的設置,使用U-net結構,並在每個激活層之前加入batch normlization。
文章與現有的方法做了對比,結果如下圖。可以看出,雖然結果略遜於傳統N2C(Noise2Clean),N2N方法,但比起BM3D還有有一定優勢。
文章在一開始便做出了一些先驗假設,不滿足這些假設的情況當然會出現錯誤。
如下圖所示,在第一行中,孤立的白點與其鄰域像素相比是獨立的,所以不能用其鄰域像素正確地預測。也就是說信號要有可預測性。同樣,在第二行中,許多紋理細節也因不能正確地預測而丟失了。
除此之外,如下圖所示,N2V不能區分信號和結構性噪聲,這違反了噪聲是像素獨立的假設。
整體來說,N2V提出了一種新的思路,使用單張噪聲圖像來訓練去噪網絡。其關鍵在於建立盲點網絡,避免網絡變成恆等映射。同樣地思路也出現在《SELF-SUPERVISED DEEP IMAGE DENOISING》文章中,只不過其用了另一種方式來實現盲點網絡。除此之外,《SELF-SUPERVISED DEEP IMAGE DENOISING》還利用最大後驗概率的方法將被去掉的像素給利用起來,增加輸入信息,從而提高結果質量。
在《Noise2Self: Blind Denoising by Self-Supervision》中,文章主要證明了在一定條件下(
的值不依賴於
),損失函數
是可以取得除恆等映射外的最優解的。且對於傳統的去噪函數
可以變爲
,使得損失函數
與
在相同參數 下取得最優解。
這三篇論文基於相同的假設,即噪聲在像素間是獨立同分布的,且主要都是基於鄰域像素去預測當前像素值。我沒有仔細地閱讀文章(主要是很多地方還看不懂……),理解地可能有偏差,具體內容請參考原文。
參考文獻: