葛 超 周先春,2 殷 豪 吳 迪
(1.南京信息工程大學(xué)電子與信息工程學(xué)院 南京 210044)
(2.南京信息工程大學(xué)江蘇省大氣環(huán)境與裝備技術(shù)協(xié)同創(chuàng)新中心 南京 210044)
目前的去噪算法多種多樣,在傳統(tǒng)的圖像去噪算法中基于偏微分方程(PDE)[1]和三維塊匹配算法(BM3D)[2~3]去噪效果較為優(yōu)秀。偏微分方程的圖像去噪方法可以在去掉圖像噪聲的同時(shí)保持圖像的邊緣和紋理等細(xì)節(jié),但在圖像平滑區(qū)域會(huì)產(chǎn)生階梯效應(yīng)。而B(niǎo)M3D 通過(guò)塊匹配操作尋找相似塊,同時(shí)結(jié)合硬閾值濾波和維納濾波的優(yōu)勢(shì)進(jìn)行去噪,不僅有突出的峰值信噪比(PSNR),而且視覺(jué)效果較好,然而計(jì)算時(shí)間耗時(shí)比較大。近些年來(lái)隨著硬件的提升和大數(shù)據(jù)的爆發(fā),掀起了深度學(xué)習(xí)浪潮,從AlexNet[4]到VGGNet[5],再到Inception v1~v4[6~8]網(wǎng)絡(luò)等取得的成果,展現(xiàn)了深度學(xué)習(xí)帶來(lái)的圖像識(shí)別和分類等領(lǐng)域的進(jìn)步。隨著深度學(xué)習(xí)的發(fā)展,國(guó)內(nèi)外學(xué)者開(kāi)始使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像去噪領(lǐng)域的應(yīng)用,如使用多層感知機(jī)(MLP)[9],Vincent 等提出了去噪自編碼的概念,而Xie 等則將去噪自編碼器應(yīng)用于圖像去噪工作[10];Chen 等構(gòu)建了一種前饋深層網(wǎng)絡(luò)(TNRD)[11],去噪效果較為理想。2017 年,Zhang等提出了一種結(jié)合批標(biāo)準(zhǔn)化算法和殘差學(xué)習(xí)的網(wǎng)絡(luò)模型(DnCNN)[12~14],使得圖像去噪達(dá)到了新的高度;次年,又提出一種快速、靈活的基于CNN的圖像去噪方案(FFDNet)[15],使得網(wǎng)絡(luò)更具有魯莽性。
過(guò)去的去噪研究,一般都是建立在單一的3×3卷積核的基礎(chǔ)上,感受野只有加深卷積層才能得到提升,但隨著卷積層數(shù)的提升,圖像的邊緣信息往往容易丟失,且訓(xùn)練更加困難。根據(jù)現(xiàn)有的前人的研究成果,提出了由不同卷積核并聯(lián)連接組成的Concatenate block,隨后對(duì)Concatenate block 內(nèi)部的卷積的大小、通道數(shù)和Concatenate block 數(shù)量的選擇進(jìn)行大量研究對(duì)比,最終得出一個(gè)圖像去噪效果與邊緣信息保存完整的優(yōu)秀模型;并通過(guò)殘差激勵(lì)把淺層的圖像信息連接到末尾,更好地保護(hù)了圖像細(xì)節(jié)的丟失。最后本文的圖像去噪模型加入了批標(biāo)準(zhǔn)化算法(BN)、殘差學(xué)習(xí)、Adma 優(yōu)化算法[16]和ReLU非線性激活函數(shù)等。
當(dāng)前人們對(duì)于卷積神經(jīng)網(wǎng)絡(luò)處于研究階段,如何進(jìn)行參數(shù)選擇、卷積核的尺寸大小、學(xué)習(xí)率的變化和如何選擇最優(yōu)的網(wǎng)絡(luò)層數(shù)等還需要經(jīng)過(guò)嚴(yán)格的證明與研究,本文主要針對(duì)以上問(wèn)題繼續(xù)研究。
在圖像分類中,由于使用了不同的卷積運(yùn)算可以獲得輸入圖像的不同特征信息,并行處理這些運(yùn)算并結(jié)合所有結(jié)果將獲得更好的圖像表征。因此提出構(gòu)造一個(gè)新的Concatenate block 的框架,如圖1 所示。Concatenate block 的輸入層為上一層非線性激活函數(shù)的輸出,經(jīng)過(guò)不同的卷積核再通過(guò)依次并連輸出。
圖1 新的Concatenate block框架
為了找出不同卷積核組合的優(yōu)異性,進(jìn)行concatenate block 的實(shí)驗(yàn)?zāi)P陀脕?lái)檢驗(yàn)不同卷積核的去噪效果;如圖2所示。設(shè)置(1)1×1、3×3、5×5;(2)3×3、5×5、7×7;(3)5×5、7×7、9×9;(4)1×1、3×3、5×5、7×7;(5)3×3、5×5、7×7、9×9;五種不同的Concatenate block 組合進(jìn)行實(shí)驗(yàn)對(duì)比。為了簡(jiǎn)化參數(shù)量,根據(jù)卷積核大小,通道數(shù)量依次遞減設(shè)置為64-32-32或64-32-16-16,但總的通道數(shù)量需要保持128 不變,且僅包含三層Concatenate block。最終定義相同的損失函數(shù)作為評(píng)判標(biāo)準(zhǔn)。
圖2 基于Concatenate block的實(shí)驗(yàn)?zāi)P?/p>
實(shí)驗(yàn)在BSD400 公開(kāi)數(shù)據(jù)集中進(jìn)行訓(xùn)練,如圖3 所示,圖中縱坐標(biāo)為損失函數(shù)曲線(越低越好),橫坐標(biāo)為訓(xùn)練一次正反傳播的次數(shù)。經(jīng)過(guò)實(shí)驗(yàn)可知,其中5-7-9 的實(shí)驗(yàn)結(jié)果比較接近3-5-7-9 的效果,但是考慮到隨著層數(shù)的增加,5-7-9 構(gòu)成的CCNN網(wǎng)絡(luò)參數(shù)遠(yuǎn)超3-5-7-9的網(wǎng)絡(luò),不利于訓(xùn)練,并且因?yàn)闇\層而帶來(lái)的感受野優(yōu)勢(shì)也會(huì)消失,最終本文選擇3-5-7-9 卷積核組成的Concatenate block應(yīng)用于的圖像去噪。
圖3 不同卷積核的損失函數(shù)變化
如表1,使用Set12 數(shù)據(jù)集進(jìn)行測(cè)試,檢測(cè)3-5-7-9 組成的簡(jiǎn)單CCNN 模型在噪聲水平為25下對(duì)比BM3D、EPLL、MLP 和TNRD 算法的平均PSNR(dB),已經(jīng)比BM3D 算法高出0.15(dB)。證明本文構(gòu)想的CCNN網(wǎng)絡(luò)可行性。
表1 簡(jiǎn)單CCNN模型對(duì)比不同算法在Set12數(shù)據(jù)集上的平均PSNR(dB)
卷積神經(jīng)網(wǎng)絡(luò)模型旨在學(xué)習(xí)輸入圖像到殘差圖像之間的端到端映射函數(shù)。根據(jù)2.2節(jié)的實(shí)驗(yàn)結(jié)果,實(shí)現(xiàn)了如圖4 所示的Concatenate block 框架。輸入層為上一層非線性激活函數(shù)ReLU 層的輸出,分別經(jīng)過(guò)3×3×64、5×5×32、7×7×16和9×9×16卷積核后進(jìn)入Concatenate 函數(shù),為了順利進(jìn)行連接操作,對(duì)不同的卷積層都加入對(duì)應(yīng)大小的padding 操作,使得圖像大小保持不變并且可以更好地保留更多的邊緣細(xì)節(jié)。經(jīng)過(guò)Concatenate 函數(shù)后最終就得到了不同的卷積核組成寬通道,更有利于對(duì)學(xué)習(xí)圖像中的特征和噪聲的分布。對(duì)Concatenate 函數(shù)后面加上批量歸一化(BN)層,最后在采用非線性激活函數(shù)ReLU作為輸出前加上一個(gè)跳躍連接。
圖4 優(yōu)化的Concatenate block框架
為了確定提出的CCNN 網(wǎng)絡(luò)最佳網(wǎng)絡(luò)層數(shù),本文選擇使用BSD400數(shù)據(jù)集訓(xùn)練新模型。圖像去噪與圖像識(shí)別、分類不同,圖像去噪不需要完整的物體輪廓信息,因此本文在BSD400數(shù)據(jù)集基礎(chǔ)上,進(jìn)行如下設(shè)計(jì):
Step1:以步長(zhǎng)為10 裁剪patch 大小為(40×40)的圖像,以最低的成本擴(kuò)充了大量的訓(xùn)練樣本。為了加快運(yùn)行效率,批處理大小為128,最終構(gòu)成238336張40×40大小的圖像為訓(xùn)練樣本H。
Step2:以2個(gè)Concatenate block為一個(gè)步長(zhǎng),依次串聯(lián)組成圖像去噪模型,輸入訓(xùn)練樣本集H。用平方誤差函數(shù)定義代價(jià)函數(shù),則引入代價(jià)函數(shù)如式(1):
其中hw,b(x)是預(yù)測(cè)圖像,優(yōu)化的目標(biāo)主要是為了使代價(jià)函數(shù)Loss 最小,就是L(w,b)最小,需要對(duì)權(quán)重w和偏置b進(jìn)行不斷調(diào)整來(lái)實(shí)現(xiàn),初始化時(shí),為了方便訓(xùn)練會(huì)將它們?cè)O(shè)置成隨機(jī)的、各不相同的很小的數(shù)據(jù),每一次迭代,權(quán)重w與偏置b都通過(guò)式(2)與式(3)進(jìn)行更新:
式中,L表示當(dāng)前網(wǎng)絡(luò)層數(shù),α為學(xué)習(xí)率。同時(shí)設(shè)置循環(huán)為50次,每個(gè)循環(huán)訓(xùn)練為2000次,得到實(shí)驗(yàn)網(wǎng)絡(luò)模型,再將Set12 數(shù)據(jù)集經(jīng)過(guò)已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)模型,求出平均峰值信噪比(PSNR)作為判定條件。為了防止出現(xiàn)過(guò)擬合現(xiàn)象,可以使用提前終止算法減緩過(guò)擬合現(xiàn)象。
同時(shí)在每層中的非線性映射之前結(jié)合歸一化步驟完成尺度和移位步驟,能夠?qū)⑸窠?jīng)網(wǎng)絡(luò)中某層的將激活值規(guī)整到均值為0,方差為1 的正態(tài)分布范圍內(nèi)的數(shù)據(jù),然后向后輸入,來(lái)緩解內(nèi)部協(xié)變量移位的問(wèn)題,解決隨著網(wǎng)絡(luò)層數(shù)加深而使得導(dǎo)致網(wǎng)絡(luò)訓(xùn)練難度增大的問(wèn)題。
規(guī)范化計(jì)算方式:
在經(jīng)過(guò)標(biāo)準(zhǔn)化操作后,不論神經(jīng)元發(fā)生什么變化,輸出結(jié)果都會(huì)被規(guī)范化到這樣的范圍中,另外平移參數(shù)和縮放參數(shù)可以自適應(yīng)學(xué)習(xí),引入?yún)?shù)少,并且可以使用反向傳播進(jìn)行更新,能夠一定程度上加快神經(jīng)網(wǎng)絡(luò)訓(xùn)練的收斂速度,降低了對(duì)網(wǎng)絡(luò)參數(shù)初始化過(guò)程的依賴程度。
Step3:以2 個(gè)Concatenate block 構(gòu)建初始CCNN 圖像去噪網(wǎng)絡(luò),輸入訓(xùn)練樣本H。經(jīng)過(guò)Step2后得到的PSNR 為評(píng)價(jià)標(biāo)準(zhǔn),獲得峰值信噪比PSNR=PSNRn,PSNR越高說(shuō)明圖像去噪效果越好。
Step4:以2個(gè)Concatenate block為一個(gè)步長(zhǎng),迭代增加Concatenate block 構(gòu)建新的CCNN 圖像去噪網(wǎng)絡(luò)。采用與Step2 相同的步驟得到新CCNN 網(wǎng)絡(luò)的PSNRn+2。
Step5:若滿足PSNRn+2>PSNR,則PSNR=PSNRn+2,然后再繼續(xù)執(zhí)行Step4;若滿足PSNRn+2 Step6:針對(duì)Step5 中確定的網(wǎng)絡(luò)N層數(shù),再對(duì)N-1層和N+1層進(jìn)行訓(xùn)練并對(duì)比三者最終PSNR的大小,對(duì)比返回最大PSNR 值對(duì)應(yīng)的網(wǎng)絡(luò)層數(shù),并以此層數(shù)確定為最終的網(wǎng)絡(luò)層數(shù)。 經(jīng)過(guò)Step1~Step6 訓(xùn)練出不同層數(shù)的結(jié)果,如圖5 所示。首先根據(jù)Step5~Step6 的實(shí)驗(yàn)結(jié)果得到6 個(gè)Concatenate block 的去噪效果最優(yōu),再對(duì)比測(cè)試6-1 和6+1 層的PSNR 值,經(jīng)過(guò)實(shí)驗(yàn)數(shù)據(jù)對(duì)比最終確定本文的選擇6 個(gè)Concatenate block 構(gòu)造CCNN圖像去噪模型。 圖5 Concatenate block數(shù)量對(duì)PSNR(dB)的影響 由第2 節(jié)的實(shí)驗(yàn)數(shù)據(jù),本文提出最終的CCNN模型如圖6 所示。在參考了Inception 網(wǎng)絡(luò)基礎(chǔ)上,第一層使用3×3×64 的卷積層,僅使用ReLU 激活函數(shù);第二層使用3×3×128 卷積后,在ReLU 激活函數(shù)后加上增加批量規(guī)范化(BN),后面連接上文提出的6 個(gè)Concatenate block,最后一層僅采用3×3×1 的卷積層。 圖6 CCNN圖像去噪模型 通過(guò)shortcut 函數(shù)實(shí)現(xiàn)殘差激勵(lì),使得CCNN模型更加容易保留圖像的淺層的噪聲特征信息;使用Concatenate block提取噪聲特征。最后使用輸入圖像減去(Subtract)最后卷積核3×3×1 的輸出信息。使得整個(gè)模型學(xué)習(xí)的是噪聲的特征信息,相比較于圖像的各類特征,噪聲的高頻特征更容易訓(xùn)練。 為了評(píng)估所提出的CCNN 模型去噪效果,本文在BSD400數(shù)據(jù)集上裁剪patch大小為(40×40)的圖像。設(shè)置σ=25 和σ=50 兩個(gè)噪聲級(jí)別。采用Orthogonal初始化和Adam優(yōu)化器進(jìn)行訓(xùn)練,學(xué)習(xí)速率變化區(qū)間為0.001~0.00005。選擇常用的指標(biāo),即峰值信噪比(PSNR)以評(píng)估去噪性能。 選取的對(duì)比算法中有三維塊匹配算法(BM3D)、前饋深層網(wǎng)絡(luò)(TNRD)、DnCNN 和本文提出的CCNN模型。如圖7所示,在Set12數(shù)據(jù)集中選取C.man,starfish,peppers 三幅圖像在噪聲水平25下局部細(xì)節(jié)放大對(duì)比圖。 圖7 噪聲σ=25時(shí),不同算法的圖像去噪局部放大圖 從圖7 和表2 中可以看出,經(jīng)過(guò)CCNN 模型處理后的圖像視覺(jué)效果有明顯的改善,且圖像的邊緣信息保存完好,圖像質(zhì)量得到了顯著改進(jìn)。如C.man 圖像為例,BM3D 的頂樓黑色部分已經(jīng)模糊消失,TNRD 的樓房邊緣噪聲信息明顯,而DnCNN 和CCNN 都能較好的還原原圖信息。本文不僅對(duì)C.man 的高樓、海星的白圈和辣椒枝干圖片的噪聲信息處理的效果明顯,而且細(xì)節(jié)信息保存完好。 表2 在Set12數(shù)據(jù)集中不同照片面對(duì)不同算法的PSNR(dB) 為了防止數(shù)據(jù)的偶然性,選擇樣本更多的測(cè)試集(BSD68)上進(jìn)行實(shí)驗(yàn)并計(jì)算出平均PSNR。與文獻(xiàn)綜述[17]的多種算法實(shí)驗(yàn)數(shù)據(jù)做對(duì)比,對(duì)比結(jié)果如表3所示。 表3 不同噪聲水平時(shí),多種算法在BSD68上的平均PSNR(dB) 由表2、3 可知,對(duì)Set12 和BSD68 的數(shù)據(jù)集進(jìn)行測(cè)試,表明CCNN 模型都取得最優(yōu)秀的去噪效果。其中,與經(jīng)典算法中最好的BM3D 相比,平均PSNR 高出了0.50dB~0.65dB。與卷積神經(jīng)網(wǎng)絡(luò)中最新的去噪方法FFDNet、ADNet 等方法相比,本文提出的方法去噪結(jié)果也更優(yōu)秀。 本文提出了一種結(jié)合感受野優(yōu)化和殘差激勵(lì)的圖像去噪模型,即CCNN 模型。該模型針對(duì)圖像去噪中圖像邊緣細(xì)節(jié)容易丟失的特點(diǎn),提出由不同的卷積核并聯(lián)的Concatenate block,使得模型在淺層時(shí)候就獲得了更大的感受野,從而獲取更多的特征信息,并實(shí)現(xiàn)自適應(yīng)Concatenate block 層數(shù)。通過(guò)輸入圖像跨尾連接的殘差激勵(lì)更好地避免因隨著卷積層的加深而丟失特征信息,并且利用殘差學(xué)習(xí)結(jié)合噪聲特點(diǎn),使得模型更易于訓(xùn)練。實(shí)驗(yàn)結(jié)果表明,在Set12 和BSD68 的測(cè)試數(shù)據(jù)集中加入不同程度的高斯白噪聲,本文的CCNN 不僅相較于傳統(tǒng)的圖像去噪方法視覺(jué)效果優(yōu)秀且耗時(shí)短,而且與當(dāng)前先進(jìn)出色的DnCNN 和在高噪聲表現(xiàn)突出的FFDNet網(wǎng)絡(luò)比較,也取得了更好的PSNR值。3 基于CCNN模型的圖像去噪
4 實(shí)驗(yàn)結(jié)果與分析
5 結(jié)語(yǔ)