What’s new in image denoising
最近看了不少論文,閒下來對這些文章做一個總結,把握一下這個領域發展的一些小趨勢吧。下面總結主要以去噪方法爲主,輔助介紹一些圖像復原任務中的通用方法。Let’s do it!
下面主要從以下幾個方面介紹:
- 數據預處理
- 網絡結構
- 多任務結合和先驗
數據預處理
1. RAW vs RGB
現在越來越多的去噪方法應用於RAW域。RAW域與RGB域比起來,噪聲模式更爲簡單,一般可以描述爲泊松分佈與高斯分佈的疊加或者異方差高斯分佈。從RAW到RGB會經過一系列ISP流程,如demosaic等,這些操作會使得噪聲分佈更加複雜,使其變得與空間位置和顏色相關。在以前RGB圖像去噪中,我們常用添加高斯噪聲方法來模擬這種複雜的噪聲分佈,難免與實際噪聲分佈存在差異,所以在真實噪聲圖像上應用往往效果會有所下降。而在RAW域,無論是真實拍攝的圖像的噪聲去除還是人工添加噪聲模擬噪聲分佈,往往都更加方便、有效。從google的hdr+,到其多幀KPN方法,都是在RAW域進行去噪,以及其最近CVPR的文章也介紹瞭如何用RGB圖像生成RAW數據以用於訓練數據集的建立(見下圖),並在DND測試數據集的RAW域去噪中取得了最高PSNR的成績。另外,CVPR2019 的Workshop中,也有一項真實圖像去噪挑戰賽,其分爲了RAW-RGB比賽和sRGB比賽兩部分,屆時會有更多RAW域去噪的方法被提出。
2. 噪聲方差
噪聲方差是噪聲的一個重要的屬性,特別是當實際遇到的噪聲都是零均值分佈時,噪聲方差就成了噪聲分佈的唯一標識。噪聲方差越大,說明噪聲變化的更加劇烈,往往也更難以去除,或者在去噪中往往會丟失更多的紋理細節。在傳統去噪方法,如BM3D,WNNM中,往往需要噪聲方差作爲可調參數輸入控制去噪水平。而將噪聲方差作爲網絡輸入也可以使得網絡對不同的強度的噪聲有更好的魯棒性,這在FFDNET和KPN中都已經做了說明。噪聲方差的估計方法有很多,其都是將噪聲視爲高斯分佈(RAW域視爲異方差高斯分佈)。CBDNET將噪聲方差估計整合到網絡中,取得了state-of-art的效果。
3. 數據的獲取
數據集的建立對網絡訓練至關重要。而正如在去噪數據集中提到的,real noisy-clean pairs往往難以獲取。所以有一些文章討論如何利用已有的數據集生成更加真實的噪聲圖像。有用添加高斯噪聲的圖像模擬真實噪聲分佈的方法,如這篇文章中提到的;或者像上面提到的,用RGB圖像生成RAW數據,然後在RAW域上添加噪聲;也有一篇文章用GAN生成噪聲添加到圖像上,也是一種有趣的思路。當然,有些方法另闢蹊徑,探索在沒有noisy-clean pairs條件下訓練去噪網絡,這就有了Noise2noise、Noise2void、Noise2self等系列文章。
網絡結構
新的網絡結構可謂是層出不窮,這應該是大部分論文在做的事。改一下網絡結構,在現有數據集上跑一下,通用指標比較一下,得分高一點,發論文(笑哭)。當然調侃歸調侃,能夠提出一種有效的網絡結構還是不容易的,特別是那些有通用性、能即插即用的結構還是讓人覺得十分精巧。下面提到的網絡結構許多都具有通用性,而且很多是從high-level任務中移植過來的,但只介紹其在low-level中的應用情況。
1. 充分利用低層特徵
對於一個CNN來說,前面的卷積層往往代表着低層特徵,如像素級特徵。而後面的卷積層往往是高層特徵,如語義特徵等。
對於識別、分類等high-level任務,高層特徵往往更加重要。而對於去噪,超分辨等low-level任務來說,更要充分利用低層的像素級特徵。這也是RDN中所強調的,其使用了dense block來使用底層特徵。
而在圖像生成任務中,U-net(見下圖)往往比encoder-decoder效果更好。這也是因爲多了skip-connect結構利用了低層特徵。
2. 多尺度
多尺度結構往往是爲了獲取更大的感受野。最簡單的方法當然是用不同的卷積核,但是大卷積核往往會造成參數和計算量的增大。另一種方式是下采樣,經典的方法如U-net多次下采樣,縮小特徵尺寸。而下采樣往往會造成信息的丟失,所以U-net需要用skip-connect藉助於低層特徵上採樣,恢復圖像尺寸。而膨脹卷積(dilated convolution)可以在不改變圖像尺寸的基礎上獲得更大的感受野,如這篇文章的應用。
3. 注意力機制
注意力機制(Attention)使得網絡重點關注那些對任務更有作用的特徵。在low-level中用到的是兩種attention結構:空間注意力(space attention)和通道注意力(channel attention)。
空間注意力是使用non-local模塊實現的,其類似於傳統去噪中的non-local mean方式,利用空間其他特徵點與當前特徵點的相關程度對當前特徵點做加權。相關方法如NLRN、RNAN等。計算non-local模塊往往比較耗時,NLRN提出對於去噪來說,往往不需要關注全局所有點的特徵,只需要計算當前點的一個局部範圍的non-local module就可以了。
通道注意力是使用squeeze-and-excitation模塊實現的。其認爲各通道的特徵是有冗餘的,通過對各個特徵通道做加權,使得網絡更加關注那些重要的通道。該模塊計算量小且效果不錯,因此受到廣泛應用,相關方法如RCAN、RIDNET等。
多任務結合和先驗
圖像去噪,超分辨等圖像復原任務本身是欠定的,也就是說一張退化的圖像可能對應多張原始圖像。在傳統方法裏我們常常給予許多先驗知識來幫助圖像復原,在網絡中也可以借鑑這個思路。SFTGAN使用圖像分割的先驗信息,通過告訴網絡各位置像素的紋理類別,從而恢復更加準確的紋理。
其次,圖像的噪聲強度往往不是均勻的,以及對於同一張圖像的不同區域我們可能有不同的期望。比如對於紋理豐富的區域我們有可能會容忍一定的噪聲從而保持更多的紋理;而對於平滑區域,我們會期望噪聲去除得更加乾淨。Path-Restore方法提供了一種思路,對於同一張圖像的不同區域使用不同的網絡路徑來處理,從而在保持效果同時提高效率。
另外,將圖像去噪與high-level任務結合起來,兩個任務相互協作,提高彼此的效果,也是一條不錯的道路。比如這篇文章將圖像去噪網絡與圖像分類/分割網絡串聯在一起,藉助於高層視覺的損失提升去噪的效果。
結論
無論爲了獲取更好看的照片還是作爲其他任務的預處理,圖像去噪都是必不可少的環節。現在的圖像去噪方法更加關注於真實圖像的去噪。如何獲取更快速和輕量級的方法,如何平衡噪聲去除和紋理保持的效果,都是圖像去噪不斷追求的目標。