[論文理解] Noise2Noise: Learning Image Restoration without Clean Data


Noise2Noise: Learning Image Restoration without Clean Data

Intro

本文亮點是輸入圖像和target圖像都是有噪聲的圖像,而不是clean的圖像,網絡可以利用有噪聲的圖像學習到將有噪聲的圖像轉化為無噪聲的clean圖像。文章解釋了在使用l2 loss時,網絡對於一對多的映射關系學習到的是映射值的均值,基於此idea,將clean的圖像加上0均值的噪聲作為target,數據量足夠多時,網絡就能學習到預測clean圖;作者也探究了使用l1 loss的影響,即利用l1 loss的稀疏性,事先如果知道噪聲的分布,且該分布下圖片中的像素為噪聲的概率較低時,使用l1 loss要優於l2 loss,其他情況根據噪聲分布的實際情況設計相應的loss。

Theoretical Background

在高分辨率算法中,由低分辨率到高分辨率圖的對應是一對多的,也就是說,一張低分辨率圖是可以對應多張高分辨率圖的,網絡直接使用l2 loss去回歸高分辨率的結果,實際上會傾向於回歸可能對應的高分辨率圖像的均值,因此預測的高分辨率圖會傾向於模糊。

也就是說,對於任務$$\mathop{\arg\min}_z \mathbb{E}_y{L(z,y)}$$,其最小值在\(z = \mathbb{E}\{y\}\)取得。

同樣地,L1 loss取得最小值時在target的中位數處取得。

這樣的一對多的回歸任務用神經網絡擬合可以寫成:

\[\mathop{argmin}_\theta \mathbb{E}_{(x,y)}\{L(f_\theta(x),y)\} \]

由於一張圖對應對個target,所以上式優化時同時對x、y兩個變量優化。

如果輸入變量x之間相互獨立,那么上式又可寫成:

\[\mathop{argmin}_\theta \mathbb{E}_x\{\mathbb{E}_{y|x}\{L(f_\theta(x),y)\}\} \]

可見優化過程可以分成兩步優化。這有什么好處呢?如果一張圖對應的target足夠多,並且target的噪聲滿足0均值分布,那么\(y|x\)的優化結果理應就是clean的target,然后再對每張輸入圖片進行第二步優化。

用公式表達就是:

\[\mathbb{E}\{\hat{y}_i|\hat{x}_i\} = y_i \]

上式\(y_i\)表示clean data,只要近似滿足噪聲是0均值分布的,優化的結果就可以將噪聲均值化從而達到去噪的目的。

Practical Examples

本文還列舉了很多去噪的例子,我僅看了幾個感興趣的。

  1. Additive Gaussian Noise: 滿足0均值特性,按照上文說的方式進行優化,發現也可以SOTA。
  2. 去除彈幕(暫且這么叫),主要看了一下這個。
  3. MRI圖像恢復。

對於1,不再闡述。

對於2,文章隨機對圖片添加文字,保證圖片每個像素被污染的概率為[0,0.5]區間范圍內,而在測試時,污染概率采用的是約為0.25來進行測試。結果如圖所示:

可以看到,L2 loss要差於L1 loss,這是因為事先已知噪聲的分布特性,即每個點是噪聲的概率在[0,0.5]之間,因此網路理應更傾向於認為預測的像素點不是噪聲,這剛好與L1 loss的稀疏特性是對應的,由於L1 loss具有稀疏性,所以其預測的結果中0會偏多,也就是網絡會更相信要擬合的target就是clean target,這剛好是符合噪點概率分布特點的,因此L1 loss是優於L2 loss的。還有一點,由於噪聲不一定是0均值的,使用L2 loss的話,網絡的預測結果就是clean data和噪聲均值的線性和,這會導致輸出圖片的顏色整體看起來怪怪的,而使用L1 loss就更相信原圖,相當於減弱了噪聲對loss的影響。

對於3,文章中還說到了可以本文的方法可以幫助MRI圖像的重建。

MRI圖像重建常規的方法是在k空間中周期性采樣然后重建原圖(因為頻域空間是連續的而圖像空間是離散的),但是需要滿足奈奎斯特采樣定律,因此采樣頻率必須比較高;然后就是利用壓縮感知(cs)重建圖像,壓縮感知技術是在k空間中隨機采樣,而不是周期采樣,因而可以不必滿足奈奎斯特采樣定律,甚至可以以更少的采樣點恢復原圖。本文將在k空間的采樣過程看成是概率分布一定的伯努利過程的隨機采樣,然后將采樣后的信號通過傅里葉反變換恢復原圖、其中,k空間內每個點保留的概率為\(p(k) = e^{-|k|}\),如圖,a是d經過采樣后重建的圖像,其只保留了10%的信號頻率。那么我們訓練的時候,就有兩種選擇,一種是拿采樣合適的clean圖作為target取學習,還有一種就是拿同樣只保留10%信號頻率后重建的圖作為target,而前者就對應了一般的高分辨率算法,后者對應本文的方法。

因此,loss定義為:

\[L = (F^{-1}(R_{\hat{x}}(F_\theta(\hat{x})))-\hat{y})^2 \]

其中F是傅里葉變換,R是對頻譜圖加上一常數,防止有0值出現,因為在傅里葉反變換的時候可能會除以0值導致溢出。

由圖可見,使用伯努利采樣訓練的denoise結果和使用原本clean的樣本訓練的結果是差不多的。

Coding

文章開源在:https://github.com/NVlabs/noise2noise


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM