雷 戈,周冬明,楊 浩,周聯(lián)敏
(云南大學信息學院,云南 昆明 650504)
圖像去噪是一項重要的計算機視覺任務。在圖像采集過程中,由于成像環(huán)境和設(shè)備的限制,噪聲往往是不可避免的。因此,對于視覺質(zhì)量以及其他計算機視覺任務中噪聲去除都是必不可少的步驟。許多早期基于模型的方法一般先找到自然圖像的先驗,然后運用優(yōu)化算法迭代求解模型[1-2]。然而從一方面來說,這些方法不僅耗時且不能有效去除噪聲。隨著深度學習[3-6]的興起,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)被廣泛應用于圖像去噪任務,并取得了高質(zhì)量的結(jié)果。另一方面,早期的工作常常假設(shè)噪聲是獨立且同分布的,并用加性高斯白噪聲來創(chuàng)建合成噪聲圖像。近年來,噪聲以更復雜的形式[7-11]出現(xiàn),這些形式與空間變化以及信道有關(guān)。
而傳統(tǒng)的圖像去噪方法[12-17]無法適應圖像紋理和邊緣的變化,去噪效果較差。譚茹等[12]為實現(xiàn)自適應調(diào)節(jié)濾波參數(shù),提出一種自適應非局部均值濾波算法,其引入最小二乘擬合法自適應為待濾波圖像選取合適的濾波參數(shù)。但該方法在噪聲像素個數(shù)大于窗口像素總數(shù)的一半時,由于灰度排序的中間值仍為噪聲像素灰度值,因此濾波效果會很差。Chang 等[14]提出了一種基于上下文建模的空間自適應小波閾值方法,上下文建模用于估計每個系數(shù)的參數(shù),然后用于調(diào)整閾值策略。此類方法濾波后的圖像,邊緣細節(jié)信息和圖像紋理特征會變得模糊,無法獲得好的去噪效果。Buades 提出的非局部均值濾波[16](Non-Local Means,NLM)對于每個目標塊,在整幅圖像或較大鄰域范圍內(nèi)搜索對比塊并計算出一個自適應的權(quán)值,但該方法在濾波過程中對原圖像的結(jié)構(gòu)信息存在丟失。
隨著深度神經(jīng)網(wǎng)絡(luò)的普及,部分研究人員將自然先驗與深度神經(jīng)網(wǎng)絡(luò)結(jié)合起來。NLNet[18]將非局部自相似先驗與CNN 相結(jié)合,受限于自然先驗方法的設(shè)計,與端到端的CNN 方法相比,它們的性能往往會較差。DnCNN[19]引入殘差學習和批量歸一化來實現(xiàn)端到端去噪,但模型的泛化性能較差,只能處理特定類型的噪聲。FFDNet[20]引入噪聲電平圖作為輸入,增強了網(wǎng)絡(luò)對非均勻噪聲的靈活性以及模型的泛化能力。
最近,研究人員將焦點從加性高斯白噪聲轉(zhuǎn)移到真實噪聲圖像上,同時,通過捕捉真實的噪聲場景建立了幾個真實的噪聲數(shù)據(jù)集[21],這促進了對真實噪聲圖像去噪的研究。SADNet[22]提出一種空間自適應去噪網(wǎng)絡(luò),從復雜的圖像內(nèi)容中捕捉相關(guān)特征,同時引入可形變卷積加權(quán)空間特征,從而提升模型對真實噪聲的去噪性能。VDNet[23]提出一種基于貝葉斯框架的模型,實現(xiàn)噪聲估計和盲圖像去噪任務。DeamNet[24]提出了一種新的圖像先驗自適應一致性先驗ACP(Adaptive Consistency Prior)和雙元注意機制(DEAM)模塊,結(jié)合ACP 約束和DEAM 模塊,使得模型在真實噪聲圖像上獲得突出效果。然而,這些方法缺乏對圖像內(nèi)容的擬合能力,并會形成過度平滑的偽像導致信息缺失。
本文提出了結(jié)合殘差塊和MLP(Multi-Layer Perceptron)卷積[25]的真實圖像去噪網(wǎng)絡(luò)來解決上述問題。為適應空間紋理本文提出去噪特征學習模塊(Denoising Feature Learning Module,DFM),該模塊由一個殘差網(wǎng)絡(luò)塊和MLP 卷積組成。殘差塊由兩個3×3 的卷積網(wǎng)絡(luò)串接在一起可將輸入信息繞道傳到輸出,保護信息的完整性,簡化學習目標和難度。同時,使用MLP 卷積減少參數(shù)量,增加模型的泛化能力。此外,本文將特征提取模塊(Feature Extraction Module,F(xiàn)EM)和去噪特征學習模塊合并到一個編碼器-解碼器結(jié)構(gòu)中,以從粗到細去除噪聲。最后,文中添加多路徑擴張模塊(Multipath Expansion Module,MEM)來進一步擴大感受野和捕捉上下文信息。與最先進的方法相比,本文網(wǎng)絡(luò)結(jié)構(gòu)在定量和視覺上均具有先進的去噪性能。
本文提出的去噪網(wǎng)絡(luò),能提升對真實噪聲圖像的去噪能力,其結(jié)構(gòu)框圖如圖1 所示。
圖1 本文方法總體結(jié)構(gòu)圖
文中首先使用一個卷積層從原始噪聲圖片提取初始特征,然后將這些特征輸入到編碼器-解碼器架構(gòu)中。在編碼器組件中,文中使用密集殘差塊來提取不同尺度的特征。與原始的殘差塊不同,本文移除了歸一化批處理,并在殘差塊中添加注意力模塊(Convolutional Block Attention Module,CBAM)模塊[26],通過使用注意機制來提升網(wǎng)絡(luò)模型的特征表達能力。為了避免破壞圖像結(jié)構(gòu),本文限制了下采樣操作的數(shù)量,并通過一個多路徑擴張模塊進一步擴大感受野以及捕獲局部上下文信息。在解碼器組件中,本文設(shè)計了去噪特征學習模塊,用于提取和學習真實噪聲圖像中像素分布的結(jié)構(gòu)特征以及關(guān)鍵信息,并進行特征融合。
為了在模型訓練過程中對輸入圖像進行優(yōu)化和約束,損失函數(shù)的選擇至關(guān)重要。常用的損失函數(shù)有以下幾種,如和不對稱損失[9]。L1和L2是圖像去噪任務中最常用的兩個損失函數(shù),L2對高斯噪聲具有良好的置信度,而L1對異常值具有更好的容忍度。因此,文中模型架構(gòu)使用L1在真實圖像噪聲數(shù)據(jù)集上進行訓練。
特征提取模塊增加了模型提取特征的能力,其由3 個卷積層和一個CBAM 結(jié)構(gòu)構(gòu)成,其中卷積層使用LReLU(Leaky ReLU)函數(shù)作為激活函數(shù),該模塊結(jié)構(gòu)如圖2 所示。
圖2 特征提取模塊結(jié)構(gòu)
圖3 去噪特征學習模塊結(jié)構(gòu)
第一個卷積層使用1×1 的卷積實現(xiàn)跨通道的交互和信息整合,同時細化特征。接著引入兩個卷積核為3×3 的卷積層,在引入少量參數(shù)的同時,實現(xiàn)局部信息的交互,增加感受野獲得全局信息。然后將特征信息傳輸入CBAM 結(jié)構(gòu)中,在通道和空間兩個維度上引入注意力機制,提升網(wǎng)絡(luò)模型的特征提取能力以及對輸入特征進行約束增強處理。結(jié)合上述可得,特征提取模塊的計算方法如下:
式中:F表示輸入特征,L代表LReLU 激活函數(shù),f3×3和f1×1分別代表尺寸為3×3 的卷積層和1×1 卷積層表示經(jīng)過三層卷積和激活函數(shù)后的輸出特征,MC是通道注意模塊的權(quán)重系數(shù)代表通過通道注意力模塊后的輸出特征。MS是空間注意模塊的權(quán)重系數(shù),×表示加權(quán)相乘代表輸入特征經(jīng)過特征提取模塊后對應的輸出特征。
1.1.1 通道注意模塊
通道注意模塊的輸入是大小為H×W×C的特征F,首先進行空間維度的全局平均池化和最大池化得到兩個1×1×C的通道描述。接著將它們分別送入一個兩層的神經(jīng)網(wǎng)絡(luò),第一層神經(jīng)元個數(shù)為C/r,第二層神經(jīng)元個數(shù)為C,使用ReLU 為激活函數(shù),這個兩層的神經(jīng)網(wǎng)絡(luò)是共享的。然后將輸出的兩個特征相加后經(jīng)過一個Sigmoid 激活函數(shù)得到權(quán)重系數(shù)MC。最后,將權(quán)重系數(shù)和初始特征F相乘即可得到縮放后的新特征。綜上可得,通道注意力機制的計算方法如下:
1.1.2 空間注意模塊
空間注意模塊的輸入是大小為H×W×C的特征F',首先進行通道維度的平均池化和最大池化得到兩個大小為H×W×1 的通道描述,并將這兩個描述按照通道拼接在一起。然后,經(jīng)過一個尺寸大小為7×7 的卷積層,使用的激活函數(shù)為Sigmoid,得到權(quán)重系數(shù)MS。最后,將權(quán)重系數(shù)和特征F'相乘即可得到縮放后的新特征F″。因此可知,空間注意力機制的計算方法如下:
在解碼器組件中,為適應空間紋理的變化本文提出去噪特征學習模塊,該模塊由一個殘差網(wǎng)絡(luò)塊和MLP 卷積組成,為提高網(wǎng)絡(luò)的學習效率,選擇ReLU和LReLU 函數(shù)作為激活函數(shù)。殘差網(wǎng)絡(luò)塊由兩個3×3 的卷積網(wǎng)絡(luò)串接在一起可將輸入信息繞道傳到輸出,保護信息的完整性,簡化學習目標和難度。
傳統(tǒng)卷積運算在計算輸出特征時,著重于卷積核附近的特征,因此一些不需要的或不相關(guān)的特征會干擾輸出的計算。在當前位置靠近邊緣時,引入位于對象外部的不同特征進行加權(quán),這可能會平滑邊緣并破壞紋理。MLP 卷積是一個輕量級、具備卷積層和MLP 的設(shè)計,為實現(xiàn)跨通道的交互和信息整合。MLP 卷積首先在第一個全連接(Fully Connected)層FC1引入1×1 的卷積來細化特征,接著在第二個全連接層FC2使用3×3 的卷積,從而增加MLP 階段的空間連接和局部信息交互,增強了信息流,提高了網(wǎng)絡(luò)的表示能力,最后引入1×1 的卷積,不僅使卷積層的輸入和輸出的通道數(shù)減小,還讓參數(shù)數(shù)量進一步減少。同時,可將從殘差網(wǎng)絡(luò)塊、MLP 卷積和多路徑擴張模塊中提取的特征進行融合,從而來估計輸出。綜上所述,去噪特征學習模塊的計算方法如下:
式中:F表示輸入特征,L代表LReLU 激活函數(shù),f3×3代表尺寸為3×3 的卷積層,F(xiàn)C1、FC2表示二個全連接層,A″(F)對應輸入特征經(jīng)過去噪特征學習模塊后對應的輸出特征。
為了在不降低空間分辨率的條件下,獲得更多上下文信息以及增加感受野。本文采用多路徑擴張模塊,其結(jié)構(gòu)如圖4 所示,該模塊包含四種不同擴張率的擴張卷積,其擴張率α 分別是1、2、4 和8。
圖4 多路徑擴張模塊結(jié)構(gòu)
在實驗中,本文未添加批量標準化層。同時為了簡化操作以及減少運行時長,當α=1 時,卷積核的大小設(shè)置為1×1,其余卷積核的大小設(shè)置為3×3。而且,在實驗中,將壓縮比設(shè)置為4。同理在去噪特征學習模塊中,文中使用1×1 的卷積來輸出原始特征對應的通道的融合特征。文中所提出的模型,其編碼器-解碼器體系結(jié)構(gòu)共設(shè)置了四個標度,每個標度對應的通道數(shù)分別為32、64、128 和256。此外,該模塊中每個卷積都對應使用LReLU 函數(shù)作為激活函數(shù)。
本章節(jié)在真實噪聲數(shù)據(jù)集上驗證了模型的有效性,文中使用Smartphone Image Denoising Dataset(SIDD[21])數(shù)據(jù)集,其訓練集是Medium_sRGB 空間的160 個包含干凈圖片和真實噪聲圖像的圖像對,驗證集則從訓練集中隨機抽取40 張圖片并裁剪成1 280 張尺寸為256×256 大小的塊。此外,測試集選取使用廣泛的標準真實數(shù)據(jù)集PolyU[27]。PloyU數(shù)據(jù)集包括Canon 5D Mark II、Canon 80D、Canon 600D、Nikon D800 和Sony A7 II 相機拍攝的40 個靜態(tài)場景的噪聲圖像,包括室內(nèi)正常光照場景和暗光場景。同時裁剪了100 個大小為512×512 的區(qū)域來評估不同的去噪方法。
本文算法是基于PyTorch 框架實現(xiàn),使用的硬件平臺為NVIDIA GTX 1080Ti。在每個訓練批次中,文中使用大小為128×128 的圖像塊作為輸入。本文使用ADAM 優(yōu)化器和L1損失函數(shù)優(yōu)化訓練模型,批次大小設(shè)置為64,初始學習速率設(shè)置為1×10-4,然后在3×105次迭代后減半。
此外,本文使用主觀評價和客觀評價兩個方面作為實驗的評價標準,主觀評價即從人眼視覺正面觀測來評估模型的去噪效果??陀^評價引入峰值信噪比(Peak Signal to Noise Ratio,PSNR/dB)和結(jié)構(gòu)相似性(Structural Similarity Index Method,SSIM)來評估去噪性能。峰值信噪比是用于衡量圖像有效信息與噪聲之間的比率,能夠反映圖像是否失真,在實驗過程中,PSNR 的值越大,表示圖像的保真度越高,越接近真實圖像,模型的去噪性能越好。結(jié)構(gòu)相似性是評價兩幅圖像相似度的指標,結(jié)合亮度、對比度和結(jié)構(gòu)三個方面來經(jīng)行評估,其為0 到1 之間的數(shù),數(shù)值越接近于1 表示輸出圖像和無失真圖像的差距越小,即圖像質(zhì)量越好。
為了對真實的噪聲圖像進行比較,本文使用SIDD 中型數(shù)據(jù)集來訓練模型,以便在SIDD 和PolyU 驗證數(shù)據(jù)集上進行評估。此外,文中選擇了有效性已經(jīng)在真實的噪聲圖像上得到驗證的方法進行對比,包括 BM3D[17]、DnCNN[19]、FFDNet[20]、CBDNet[9]、DeamNet[24]、VDNet[23]、RIDNet[8]和AINDNet[28],對比結(jié)果如表1 中所示。
表1 不同方法在SIDD 數(shù)據(jù)集上去噪指標對比
表1 中包含各類算法針對SIDD 數(shù)據(jù)集去噪后的PSNR 值和SSIM 值,其中本文去噪方法對應的PSNR和SSIM 均值分別為39.43 dB 和0.968。相對于其他算法PSNR 提升了0.14 dB~10.64 dB,SSIM 相對提升了0.012~0.355。本文方法去噪后的圖像PSNR 均值對于傳統(tǒng)去噪算法BM3D 提升了10.64 dB,對于基于深度學習的去噪算法VDNet 算法提升了0.14 dB。同時,由圖5 可以看出,BM3D 算法、DnCNN 算法和CBDNet 等算法對真實噪聲圖像無較好的去噪效果。本文方法與上述算法對比,去噪后的圖像不僅視覺效果清晰更接近真實圖像的紋理和結(jié)構(gòu),還有效地保留了圖像的邊緣結(jié)構(gòu)信息。如圖5 中字母“i”,本文方法去噪后的圖像更接近真實圖像,而使用別的算法恢復出的字母“i”在顏色上有失真,且存在偽影,不夠清晰。
圖5 不同方法在SIDD 數(shù)據(jù)集中視覺效果對比
圖6 展示不同算法對PloyU 數(shù)據(jù)集中Canon 5D和Nikon D800 圖像的去噪效果。由觀察可得,通過AINDNet 算法和DeamNet 算法去噪后的圖像中仍存在部分噪聲,無法充分移除噪聲。而使用DnCNN算法和CBDNet 算法去噪后的圖像中明顯缺失圖像細節(jié)信息且視覺感知效果較差,同時,DnCNN 算法去噪后的圖像中部分由于丟失了邊緣結(jié)構(gòu)信息,視覺效果較模糊。通過FFDNet 算法、DeamNet 算法和VDNet 算法去噪后的圖像邊緣紋理信息缺失,與真實圖像之間還有一定差距。
圖6 不同方法在PolyU 測試集Canon 5D 和Nikon D800 中視覺效果對比
本文方法通過特征提取模塊、多路徑擴張模塊和去噪特征學習模塊分別獲得更具有判別性的底層像素特征[3]、兼顧全局信息和局部細節(jié)信息的空間特征以及復雜場景下的細節(jié)信息,從而有效地提升噪聲去除的效果,同時很好地保留了圖像細節(jié)信息和邊緣紋理信息,因此獲得更清晰的視覺感知效果。此外,根據(jù)表2 可知,本文去噪方法在PloyU 數(shù)據(jù)集上對應的PSNR 和SSIM 均值分別為38.38 dB 和0.980。對比其他算法PSNR 相對提升了0.8 dB~4.08 dB,SSIM 相對提高了0.019~0.067。綜上所述,本文方法在定量和視覺上均具有先進的去噪性能。
表2 不同方法在PloyU 數(shù)據(jù)集上去噪指標對比
表3 為文中去噪模型各模塊之間針對SIDD 數(shù)據(jù)集的消融實驗結(jié)果,包括特征提取模塊、多路徑擴張模塊以及去噪特征學習模塊。根據(jù)表3 可知在該結(jié)構(gòu)中添加以上三個模塊,可提升模型的去噪性能,且將三個模塊合理結(jié)合時能達到最優(yōu)去噪效果。
表3 不同模塊針對SIDD 數(shù)據(jù)集的消融實驗
本文為解決現(xiàn)有的基于深度學習的圖像去噪方法缺乏對圖像內(nèi)容的適應性以及會產(chǎn)生過度平滑的偽像的問題,提出了一種結(jié)合殘差塊和MLP 卷積的真實圖像去噪網(wǎng)絡(luò)來有效去除噪聲。首先,本文引入了特征提取模塊,基于圖像的內(nèi)容和紋理對相關(guān)特征進行采樣加權(quán),使模型能學習到更具判別性的像素特征。同時添加多路徑擴張模塊來捕獲上下文信息,從而更精確地估計采樣位置,提高模型的精度。通過實驗可發(fā)現(xiàn)去噪特征學習模塊的引入可以在強噪聲下恢復復雜場景中更豐富的細節(jié),并在公開的真實噪聲數(shù)據(jù)集上有較強的去噪性能以及良好的視覺效果。實驗結(jié)果表明,在真實噪聲圖像數(shù)據(jù)集上,本文提出的網(wǎng)絡(luò)在客觀評價指標和視覺效果上均具有先進的去噪性能。