許 雪 郭業(yè)才 李 晨
(1.南京信息工程大學(xué)電子與信息工程學(xué)院 南京 210044)(2.無錫學(xué)院電子信息學(xué)院 無錫 214105)
圖像去噪是計算機視覺中的一項重要工作,在圖像采集過程中,由于成像環(huán)境和設(shè)備的限制,噪聲常常是不可避免的。因此,去除噪聲是必不可少的一步,不僅對視覺質(zhì)量,而且對其他計算機視覺任務(wù)也是如此。傳統(tǒng)的去噪方法有利用自然圖像的先驗信息進行圖像去噪[1~2],應(yīng)用優(yōu)化算法迭代求解模型[3~4]也被眾多學(xué)者提出。然而,這些方法耗時較長,不能有效去除噪聲。隨著深度學(xué)習(xí)的興起,卷積神經(jīng)網(wǎng)絡(luò)(CNN)被應(yīng)用于圖像去噪任務(wù),并取得了高質(zhì)量的效果,比如DnCNN[5]、FFDNet[6]、IRCNN[7]等算法。另一方面,早期的研究噪聲假設(shè)是獨立、均勻分布的,加性高斯白噪聲(Additive White Gaussian Noise,AWGN)是一種常用的合成噪聲,人們現(xiàn)在意識到,噪聲以更復(fù)雜的形式呈現(xiàn),它們具有空間變異和信道依賴性。因此,最近的一些工作在真實圖像去噪方面取得了進展,XU 等提出的GIDNet[8]提出一種外部先驗引導(dǎo)內(nèi)部先驗學(xué)習(xí)的方法;Zhou 等提出的PD[9]去噪網(wǎng)絡(luò),僅使用與合成像素?zé)o關(guān)的噪聲數(shù)據(jù)進行訓(xùn)練,訓(xùn)練出的模型可以適應(yīng)真實噪聲;CBDNet[10]中作者根據(jù)圖像處理芯片ISP 的工作原理和異方差高斯噪聲提出了一種噪聲模型。
但仍有一些問題有待解決,部分網(wǎng)絡(luò)對真實噪聲進行去噪任務(wù)后,得到的圖像中仍有大量噪聲殘留,或者存在去噪后的圖像過于平滑,細節(jié)丟失嚴重等問題,依舊得不到較好的視覺效果。從以往的研究中發(fā)現(xiàn),多尺度的特征提取和融合可以改善以上問題,所以本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的多尺度特征融合去噪算法,漸進式的訓(xùn)練分層融合的特征,跨尺度的捕獲特征之間的聯(lián)系,還將具有空洞卷積的U-Net[11]加入每一個分層之中,擴大感受野,且不增加額外的參數(shù),減少了圖像細節(jié)的丟失和不必要的計算成本。
通過對文獻[12]和文獻[13]的學(xué)習(xí),本文提出的算法結(jié)構(gòu)主要由密集殘差塊DCR 和具有空洞卷積的D-UNet 組成,算法結(jié)構(gòu)如圖1 所示。噪聲圖像xi作為網(wǎng)絡(luò)輸入,去噪后的干凈圖像yi作為網(wǎng)絡(luò)的輸出,Conv卷積核大小為3×3,輸入噪聲圖像xi經(jīng)過池化操作得到4 個大小不同的分層,分別是256×256、128×128、64×64 和32×32,表示為(a=1,2,3,4),為第1層的輸入,經(jīng)過卷積層之后得到淺層特征(a=1,2,3,4),為第1 層的淺層特征,再依次經(jīng)過DCR 塊與D-UNet 后得到第1 個分層特征,第1 個分層特征經(jīng)過上采樣Upsampling后得到F1,表示為
圖1 本文算法結(jié)構(gòu)圖
其中HDCR表示DCR 塊的復(fù)合函數(shù)操作,HD-UNet表示D-UNet的復(fù)合函數(shù)操作。
此時F1特征圖大小與第2 層的特征圖大小一樣,將F1融合到第2個分層中得到,這樣設(shè)計可以跨尺度的捕獲特征之間的聯(lián)系,充分利用先前的特征。
則第2個分層特征F2可以表示為
其中HDCR,2表示D-UNet 前面未被使用過得2 個DCR塊操作。
以此類推出F3,在第4 分層中,所有的DCR 塊操作結(jié)束之后,當(dāng)前特征與進行第一次殘差學(xué)習(xí)得到特征F4,再與網(wǎng)絡(luò)輸入的噪聲圖像xi進行雙殘差學(xué)習(xí)得到最終的輸出結(jié)果yi。兩次殘差學(xué)習(xí)避免了梯度消失問題,兩次殘差學(xué)習(xí)之間的卷積層增強了第一次殘差學(xué)習(xí)后的特征。
DCR塊是密集連接殘差塊,在本文的算法中主要提取池化后每一分層的特征,每兩個卷積層組成一個DCR 塊,可充分提取層次空間特征,每一個特征圖之間密集連接起來,不僅保留了先前的特征還保存了局部密集特征,其中局部特征融合LFF可以減少特征數(shù)量,局部殘差學(xué)習(xí)LRL提高網(wǎng)絡(luò)表達能力和性能,DCR塊內(nèi)部結(jié)構(gòu)如圖2所示。
圖2 DCR塊內(nèi)部結(jié)構(gòu)
由圖2可知,F(xiàn)i-1和Fi作為第i個DCR模塊的輸入和輸出,其中第i個DCR模塊的第m個卷積層的輸出可以表示為
其中,σ表示激活函數(shù),Wi,m表示第m個卷積層的權(quán)重。
無需BN和池化,每兩個卷積層組成一個塊,再將前面各塊的輸出和當(dāng)前塊的輸出連接起來一起作為下一個塊的輸入,其中每個卷積層后面只有一個PReLU,更有利于特征的保留,用局部融合特征融合前面的DCR 塊和當(dāng)前DCR 塊中的卷積層,將第i-1 個DCR 的特征直接連接到第i個DCR 上,局部融合特征描述為
其中,M=6,Concat表示特征拼接層。
D-UNet 的輸入為各分層的上一個DCR 塊的輸出,D-UNet 具有4 層編碼結(jié)構(gòu)、4 層解碼結(jié)構(gòu)和兩個1×1 卷積層,來計算原始輸入與最后輸出的特征。每個編碼層具有兩個卷積核大小為3×3 的卷積層用來提取尺度特征,上一個編碼層經(jīng)過2×2的池化層后,數(shù)通道數(shù)相應(yīng)擴大2 倍,以減少從一層到另一層的信息丟失。如圖3 所示,第一個編碼層的通道數(shù)為32,第二個編碼層的通道數(shù)為64。在編碼器和解碼器之間的最小尺度中引入空洞卷積塊,在不改變分辨率的情況下進一步增加感受野。
圖3 D-UNet內(nèi)部結(jié)構(gòu)
每個解碼層具有兩個卷積層,與編碼器的卷積層一樣,卷積核大小為3×3。每兩個解碼層中間有一個上采樣因子為2 的卷積層,每次上采樣之后通道數(shù)相應(yīng)縮小2 倍。如圖3 所示,第一個解碼層的通道數(shù)為256,第二個解碼層的通道數(shù)為128。為了進一步防止信息丟失,解碼層同時與對應(yīng)特征圖大小一樣的編碼層相連接,也充分利用了先前的特征信息。最后通過1×1 層卷積得到DU-Net 的輸出,除了該層卷積之外,其他卷積層的激活函數(shù)均為LReLU,該激活函數(shù)在不引入大量額外參數(shù)的情況下增加了模型的靈活性。
多尺度信息對于圖像去噪任務(wù)非常重要。因此,網(wǎng)絡(luò)中經(jīng)常采用下采樣操作。但是當(dāng)空間分辨率太小時,圖像結(jié)構(gòu)被破壞,信息丟失,不利于特征的重建。為了在不進一步降低空間分辨率的情況下增加感受野并捕獲多尺度信息,本文設(shè)置在編碼器和解碼器之間的最小尺度中引入空洞卷積塊。與空間金字塔池化[14]相反,空洞卷積塊使用具有不同膨脹率的幾個膨脹卷積,而不是下采樣。如圖4所示,它可以在不增加參數(shù)數(shù)量或不損壞結(jié)構(gòu)的情況下擴大感受野。然后將不同感受野提取的特征進行融合,四個擴張率分別設(shè)置為1、2、3 和4。為了進一步簡化操作并減少運行時間,首先使用1×1卷積來壓縮特征通道。壓縮比設(shè)置為4。在融合設(shè)置中,采用1×1 卷積使輸出通道數(shù)與原始輸入特征的通道數(shù)大小相等,并在輸入和輸出特征之間采用局部殘差連接以防止信息阻塞。
圖4 Dilated Conv內(nèi)部結(jié)構(gòu)圖
本文采用l1損失函數(shù),給定一批訓(xùn)練圖像對的數(shù)量為N,即,目標是使經(jīng)過網(wǎng)絡(luò)后的去噪圖像與原始干凈圖像更為接近,l1損失函數(shù)表示為
其中,xi是輸入的噪聲圖像,yi是原始干凈圖像,W表示所有參數(shù)的集合。
使用SIDD[15]數(shù)據(jù)集進行真實噪聲圖像去噪模型訓(xùn)練,該數(shù)據(jù)集的訓(xùn)練集包含200 對干凈圖像和噪聲圖像,將其隨意分割成256×256 的圖像塊,得到48000 對圖像用于網(wǎng)絡(luò)訓(xùn)練,驗證集1280 張圖像??偣策M行4000 次迭代,學(xué)習(xí)速率最初設(shè)置為10-4,2000 次迭代之后,每過500 次迭代將學(xué)習(xí)速率減半進行微調(diào)。采用β1=0.9,β2=0.999 的Adam[16]優(yōu)化器對模型進行優(yōu)化。在真實噪聲圖像數(shù)據(jù)集SIDD、DND[17]和NC12[18]進行測試。NC12 包括12 幅噪聲圖像,真實干凈的圖像無法獲取,本文只提供其去噪結(jié)果圖進行視覺比較。
該網(wǎng)絡(luò)在Python3.6,Pytorch[19]1.7.1 框架中實現(xiàn),并用英偉達GeForce GTX 1080 Ti進行訓(xùn)練。本文采用峰值信噪比PSNR(Peak Signal to Noise Ratio)和結(jié)構(gòu)相似性SSIM(Structural Similarity)[20]對改進后算法的去噪結(jié)果進行分析。
為了驗證提出算法在真實噪聲圖像上的去噪效果,將其與BM3D[21]、FFDNet[6]、NC[18]、CBDNet[10]和PD[9]和AINDNet[22]卷積神經(jīng)網(wǎng)絡(luò)去噪算法進行對比實驗,本文在SIDD、DND 和NC12 三個真實數(shù)據(jù)集上進行可視化結(jié)果對比,圖5、圖6 和圖7 分別為以上對比算法與本文提出算法的去噪結(jié)果圖。
圖5 在數(shù)據(jù)集DND上的去噪結(jié)果對比
圖6 在數(shù)據(jù)集SIDD上的去噪結(jié)果對比
圖7 在數(shù)據(jù)集NC12上的去噪結(jié)果對比
各個算法在DND 和SIDD 數(shù)據(jù)集上的去噪效果如圖5 和圖6 所示,BM3D、NC、CBDNet 和PD 算法去噪后的圖像中仍有或多或少的噪聲殘留。如圖7 所示,F(xiàn)FDNet 在SIDD 數(shù)據(jù)集上的表現(xiàn)過于平滑,細節(jié)丟失嚴重,AINDNet 在對噪聲進行處理時會腐蝕邊緣,產(chǎn)生偽影。而本文的算法可以有效地去除平滑區(qū)域的噪聲,保留清晰的細節(jié)。圖8 為智能手機拍攝的夜晚圖片,智能手機相比專業(yè)相機來說,在成像時會產(chǎn)生更多的噪聲,可以看出,BM3D與FFDNet 算法的結(jié)果圖中細節(jié)模糊,其他算法都有噪聲殘留,相比較而言,本文算法的去噪效果依舊優(yōu)于對比算法。
圖8 智能手機拍攝的圖像
由于NC12 數(shù)據(jù)集的干凈圖像無法獲得,所以本文只提供在數(shù)據(jù)集DND 和SIDD 上的PSNR 和SSIM值。如表1所示,選取的對比算法既有傳統(tǒng)去噪算法,又有近幾年基于深度學(xué)習(xí)的優(yōu)秀算法,所有對比算法的PSNR 和SSIM 值都從數(shù)據(jù)集的官方網(wǎng)站上獲得,可以看出本文算法的評價指標值均高于對比算法。
表1 各種算法在DND和SIDD數(shù)據(jù)集上的PSNR/dB和SSIM值對比
本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的多尺度特征融合去噪算法,該算法首先對輸入使用池化操作得到分層,經(jīng)過密集連接殘差塊DCR 提取分層特征,再利用具有空洞卷積的U-Net對提取到的分層特征進行處理,空洞卷積在不改變圖像分辨率的前提下新一步擴大感受野,有助于從先前網(wǎng)絡(luò)提取的特征中去除噪聲,再將分層特征進行上采樣后反饋到下一分層中進行漸進訓(xùn)練,靈活的運用圖像的全部特征,保留更多的圖像細節(jié),得到較好的去噪效果。