DHDN (a Densely connected Hierarchical image Denoising Network)
代碼實(shí)現(xiàn)git地址 | 結(jié)構(gòu)詳解
DHDN介紹
作者提出的網(wǎng)絡(luò)中應(yīng)用了修改的UNet分層結(jié)構(gòu)以提高了圖像去噪的表現(xiàn),可以使網(wǎng)絡(luò)有效的利用有限的內(nèi)存。這使得他們的網(wǎng)絡(luò)比其他方法用到更多的參數(shù),因此這個(gè)網(wǎng)絡(luò)達(dá)到了比傳統(tǒng)方法更好的效果。由于有大量的參數(shù),容易遭受梯度消失的問(wèn)題,作者在卷積塊和網(wǎng)絡(luò)中使用了稠密連接和殘差學(xué)習(xí)使特征重用并成功的解決梯度消失問(wèn)題。在訓(xùn)練模型的時(shí)候使用帶有廣泛的噪聲圖片,使得他們的網(wǎng)絡(luò)可以在一套參數(shù)下處理多級(jí)噪聲。最后,作者成功地應(yīng)用了模型集成和自集成方法,這使得他們能夠改善所提出的網(wǎng)絡(luò)的性能。
這個(gè)網(wǎng)絡(luò)的表現(xiàn)在NTIRE19被驗(yàn)證,在sRGB獲得了第二名,在rawRGB獲得第三名。
亮點(diǎn)
- 應(yīng)用修改后的UNet的分層結(jié)構(gòu),使我們的網(wǎng)絡(luò)能夠有效地使用有限的內(nèi)存。因此,模型可以使用比傳統(tǒng)網(wǎng)絡(luò)更多的參數(shù)。
- 將稠密連接和殘差學(xué)習(xí)應(yīng)用于我們的新型卷積塊和網(wǎng)絡(luò)架構(gòu),以準(zhǔn)確地消除輸入圖像的噪聲并解決消失梯度問(wèn)題。
- 應(yīng)用自集成和模型集成方法; 這使網(wǎng)絡(luò)能夠改善輸出圖像的客觀和主觀質(zhì)量。
- 使用一組經(jīng)過(guò)訓(xùn)練的參數(shù)訓(xùn)練模型以處理各種噪聲級(jí)別。由于網(wǎng)絡(luò)不需要輸入噪聲級(jí)別的信息,完全克服了傳統(tǒng)方法的局限性。
圖像去噪領(lǐng)域介紹
圖像去噪是從帶有additive white Gaussian noise(AWGN) [1, 15], speckle noise [3, 8], and impulse noise [7] 等額外噪聲的低質(zhì)量圖片產(chǎn)生高質(zhì)量圖片的過(guò)程。
由于圖像去噪的廣泛使用(如醫(yī)藥圖像去噪,satellite image denoising,壓縮圖像去噪),它是圖像處理研究的一個(gè)主要研究領(lǐng)域。在許多用途當(dāng)中,自動(dòng)駕駛中的目標(biāo)檢測(cè)和識(shí)別引起了圖像去噪學(xué)者的極大關(guān)注。這是由于從圖像中移除噪聲對(duì)提升目標(biāo)識(shí)別的性能是至關(guān)重要的。出于這些圖像去噪研究的需求,大量的圖像去噪解決方案被提出。然而,在應(yīng)用CNN之前,圖像去噪性能的改善有限。在使用CNN之前,由Dabov在2007提出的BM3D是最熱門(mén)的圖像去噪算法。這表明圖像去噪研究在性能改進(jìn)方面缺乏進(jìn)展。最近,隨著CNN的應(yīng)用,包括圖像去噪在內(nèi)的眾多圖像處理解決方案的性能大幅提升。
2016年提出的DnCNN運(yùn)用了BN和殘差學(xué)習(xí)。
緊接著提出的IRCNN減小了計(jì)算量并最小化性能損失,運(yùn)用了dilated filter到他們的7層模型去擴(kuò)大感受野。
他們還提出了FFDNet,該網(wǎng)絡(luò)可以通過(guò)一個(gè)簡(jiǎn)單的去噪網(wǎng)絡(luò)去靈活處理大范圍的噪聲。他們指出,傳統(tǒng)的圖像去噪模型學(xué)會(huì)從具有特定噪聲級(jí)別的圖像中去除噪聲,這迫使他們?yōu)椴煌脑肼暭?jí)別訓(xùn)練多個(gè)模型。為了解決這個(gè)問(wèn)題,F(xiàn)FDNet使用具有不同噪聲級(jí)別的訓(xùn)練圖像訓(xùn)練他們的模型以處理多個(gè)噪聲級(jí)別。但是,F(xiàn)FDNet在去除具有未指定噪聲級(jí)別的圖像噪聲時(shí)表現(xiàn)出其局限性,因?yàn)镕FDNet需要將圖像的噪聲級(jí)別作為輸入數(shù)據(jù)。UDN模型有與之相似的缺陷。
MWCNN運(yùn)用了修改后的UNet結(jié)構(gòu)和小波變換,這在減小了計(jì)算復(fù)雜性的同時(shí)擴(kuò)大了模型的感受野,局限是只能處理單一的噪聲。
相關(guān)工作
分層結(jié)構(gòu)
隨著圖像處理研究開(kāi)始應(yīng)用CNN,有效的使用有限的內(nèi)存去加深網(wǎng)絡(luò)是深重要的。一個(gè)傳統(tǒng)的方法就是分層結(jié)構(gòu)。UNet將分層結(jié)構(gòu)的概念運(yùn)用到CNN,它包含兩步:收縮路徑和擴(kuò)張路徑。在收縮路徑中,UNet用步長(zhǎng)為2的2x2最大池化處理特征圖,并將通道擴(kuò)大到2倍。因此,每個(gè)降采樣步驟將U-Net應(yīng)處理的數(shù)據(jù)量減半。他讓UNet比其他方法使用了更多的參數(shù)。
稠密鏈接和殘差學(xué)習(xí)
隨著CNN模型的加深,梯度消失完全的阻礙了模型的訓(xùn)練。ResNet通過(guò)short connection使網(wǎng)絡(luò)學(xué)習(xí)殘差,DenseNet類(lèi)似的連接了多個(gè)層使得先前的特征得以重用,這都解決了梯度消失。RDN(residual dense network for image restoration)也被提出。
自集成和模型集成方法
集成方法是從多個(gè)輸出中得到一個(gè)更好的輸出的方法。這里應(yīng)用了自集成和模型集成方法。在自集成方法中,取變換的輸入圖像的輸出的均值。這是一個(gè)高度有效的集成方法,因?yàn)椴恍枰魏晤~外的訓(xùn)練過(guò)程。這里平均了8個(gè)輸出圖像的結(jié)果,由翻轉(zhuǎn)和旋轉(zhuǎn)輸入圖像組成。在模型集成方法中平均了多個(gè)網(wǎng)絡(luò)的輸出,與自集成不同,應(yīng)用這個(gè)方法需要訓(xùn)練多個(gè)網(wǎng)絡(luò)。在這里,除了參數(shù)初始化不同之外,用相同的條件訓(xùn)練了2個(gè)相同的模型。
算法細(xì)節(jié)
DHDN結(jié)構(gòu)

上圖展示了DHDN的結(jié)構(gòu)。
首先用1x1卷積和PReLU產(chǎn)生原始特征圖給后面的DCR block(densely connected residual block),該初始卷積層使我們能夠在DCR塊中應(yīng)用局部殘差學(xué)習(xí)。更重要的是,由于初始卷積層,這里可以使用灰度和彩色圖像作為網(wǎng)絡(luò)的輸入而無(wú)需任何修改。初始卷積層產(chǎn)生了128通道的特征圖,然后送到每一層的兩個(gè)DCR block處理。當(dāng)降采樣特征圖到1/2時(shí),這里倍增了輸出特征的通道以防止信息量的嚴(yán)重減少。這里提出的結(jié)構(gòu)在壓縮路徑上重復(fù)了3次。這導(dǎo)致網(wǎng)絡(luò)考慮4種分辨率的特征圖。
擴(kuò)張路徑是壓縮路徑的相反操作,每用DCR處理兩次,輸出特征圖就上采樣2倍,通道減小到四分之一,因?yàn)槭褂昧俗酉袼夭逯捣ㄔ谏喜蓸訅K中。為了防止嚴(yán)重的特征圖通道數(shù)減小和重用之前的特征圖,上采樣塊的輸出連接了同一級(jí)的降采樣塊的輸入。然而在最低層,作者連接了上采樣的輸入和降采樣的輸出。與壓縮路徑相同,這里的結(jié)構(gòu)也在擴(kuò)張路徑上重復(fù)了3次。在擴(kuò)張路徑之后,被最后的1x1卷積和PReLU處理,產(chǎn)生最后的輸出。最后產(chǎn)生的圖通道數(shù)為1或3。
最后,這里應(yīng)用了全局殘差信息學(xué)習(xí)去產(chǎn)生輸出圖像。
block 結(jié)構(gòu)
DCR

conv3是3x3卷積層,f是特征圖的通道數(shù)。一個(gè)DCR由3個(gè)被PReLU跟著的卷積層組成。每一個(gè)特征圖都用稠密連接達(dá)到特征重用。DCR的增長(zhǎng)率設(shè)定為f的1/2,最后的卷積層產(chǎn)生通道為f的特征圖作為輸出,如此就可以應(yīng)用局部殘差學(xué)習(xí)。通過(guò)使用稠密連接和局部殘差學(xué)習(xí),可以增強(qiáng)信息流規(guī)避梯度消失,達(dá)到精準(zhǔn)去噪。
downsampling and upsampling

降采樣塊由2層組成:2x2最大池化,3x3conv PReLU。和輸入進(jìn)來(lái)的特征圖相同,2x2的最大池化步長(zhǎng)為2減小了特征圖的尺寸,3x3卷積層倍增通道數(shù)防止信息的減少。因此輸出的特征圖是尺寸是輸入的1/4,通道是2倍。
上采樣塊用3x3conv PReLU和sub-pixel插值層,不像UNet用2x2的反卷積。而是使用了亞像素插值層(sub-pixel interpolation layer)去更效率和精準(zhǔn)地?cái)U(kuò)張?zhí)卣鲌D的尺寸,在擴(kuò)張之前,3x3卷積層精細(xì)化了特征圖,從而使得亞像素插值可以更加精準(zhǔn)。因此,上采樣塊特征圖的輸出是輸入的兩倍大,通道數(shù)是1/4。
多級(jí)噪聲去噪
傳統(tǒng)的基于CNN的模型對(duì)于每一種噪聲都要訓(xùn)練一個(gè)模型。這里的模型使用帶有隨機(jī)噪聲的數(shù)據(jù)來(lái)訓(xùn)練,可以不需要額外輸入信息地處理廣泛的噪聲。
實(shí)驗(yàn)
訓(xùn)練細(xì)節(jié)
最近,用于圖像重建的DIV2K數(shù)據(jù)集被發(fā)布。它的訓(xùn)練集包含了800張高質(zhì)量圖片,分辨率和FHD一樣是1920x1080,驗(yàn)證集包含100張和訓(xùn)練集一樣的圖。在訓(xùn)練模型時(shí),作者從訓(xùn)練圖片提取了64x64的小塊。在全局噪聲級(jí)別模式下,可以處理廣泛的噪聲級(jí)別,作者隨機(jī)的添加噪聲級(jí)別為5-50的AWGN到訓(xùn)練的小塊上;在固定噪聲級(jí)別模式下,使用10、30、50的噪聲圖片訓(xùn)練。輸入的小塊用隨機(jī)翻轉(zhuǎn)、旋轉(zhuǎn)進(jìn)行數(shù)據(jù)擴(kuò)增。批大小設(shè)置為16,使用Adam優(yōu)化器,初始學(xué)習(xí)率為1e-4,每3個(gè)epoch就減半,使用L1損失函數(shù)。測(cè)試集為Kodak(24張768x512的圖片)和BSD68(68張321x481的圖片)。
性能對(duì)比
為了對(duì)比客觀性能表現(xiàn),這里使用峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)來(lái)比較BM3D、DnCNN、IRCNN、FFDNet這幾種較新的圖像去噪算法產(chǎn)生的結(jié)果。表中DHDN_g代表全局噪聲級(jí)別訓(xùn)練的模型,DHDN_g+代表使用了自集成;類(lèi)似的,DHDN_f代表用固定的噪聲級(jí)別訓(xùn)練,DHDN_f+代表用了自集成。在表中,最好的結(jié)果用紅色高亮,其次用藍(lán)色高亮。這里只使用了自集成方法在AWGN去噪實(shí)驗(yàn)中,模型集成方法只在NTIRE19去噪競(jìng)賽中使用。


在BSD68彩圖實(shí)驗(yàn)中,噪聲級(jí)別為50時(shí),固定噪聲級(jí)別和全局噪聲級(jí)別的性能不相上下,并且固定噪聲級(jí)別的模型使用了自集成后性能發(fā)生了退化。作者推測(cè)發(fā)生這種現(xiàn)象有2個(gè)原因:1. 性能已經(jīng)飽和了。2. 訓(xùn)練網(wǎng)絡(luò)的時(shí)候多重噪聲級(jí)別增加了高噪聲級(jí)別的表現(xiàn)。在Accurate image superresolution using very deep convolutional networks中,作者闡述了用多個(gè)scale可以提高在大scale的性能。類(lèi)似的,用多個(gè)級(jí)別訓(xùn)練也可以提高在高噪聲級(jí)別的性能。實(shí)驗(yàn)結(jié)果還顯示,當(dāng)比較全局噪聲和固定噪聲時(shí),高級(jí)別噪聲比低級(jí)別噪聲有更高的性能提升。
為了比較主觀性能,這里對(duì)比了幾個(gè)方法的結(jié)果圖像。圖5中傳統(tǒng)方法無(wú)法恢復(fù)衣服的圖案細(xì)節(jié)。圖6中傳統(tǒng)方法沒(méi)有還原連貫的窗戶(hù)。圖7精準(zhǔn)的恢復(fù)了圖案,而傳統(tǒng)方法很模糊。圖8的窗戶(hù)也是如此。
最后附上NTIRE19去噪挑戰(zhàn)比賽結(jié)果
