秦 毅 趙二剛
1(重慶電子工程職業(yè)學院人工智能與大數(shù)據(jù)學院 重慶 401331)
2(南開大學電子信息與光學工程學院 天津 300071)
目前,大多數(shù)情況下的圖像在采集或傳輸過程中存在引入噪聲的情況,降低了圖像的質(zhì)量。由于受到不同傳輸路徑或者傳感器等因素的影響,含噪圖像中的噪聲類型也不同,甚至同一幅圖像中存在多種噪聲類型[1]。常見的圖像噪聲類型包括高斯白噪聲、泊松噪聲及泊松-高斯噪聲等[2]。為了提高圖像視覺效果和后續(xù)圖像處理的準確率,圖像去噪技術(shù)成為廣大科研人員研究的熱點問題。
對于含噪圖像,先檢測噪聲的類型,然后利用不同的針對算法進行噪聲消除?,F(xiàn)有的噪聲消除方法有很多,大致分為基于空間域、基于變換域和基于學習三類。基于空間域去噪算法[3]可以得到較高的峰值信噪比,但在邊緣信息和紋理細節(jié)方面保留較少;基于變換域去噪算法[4]可以很好地保留圖像的幾何信息,但是其計算較為復雜,計算時間較長;基于學習的方法是將深度神經(jīng)網(wǎng)絡用于圖像去噪,從而實現(xiàn)保留邊緣紋理信息的同時提高去噪精度。Remez等[5]提出了一種新的完全卷積深度神經(jīng)網(wǎng)絡結(jié)構(gòu),通過引入網(wǎng)絡類感知來提高高斯或泊松噪聲的去噪能力。Zhang等[6]構(gòu)建了一個20層前饋卷積神經(jīng)網(wǎng)絡,利用殘差學習和批量歸一化來加速訓練過程,提高盲高斯去噪的性能。Tai等[7]設計了一種新的神經(jīng)網(wǎng)絡MemNet,使用特征映射連接和跳過連接模塊來進行圖像超分辨率、高斯去噪。Wang等[8]提出了一種多尺度擴張卷積神經(jīng)網(wǎng)絡,基于多尺度擴張卷積在保存有價值的上下文信息的基礎上提高去噪精度。Tian等[9]提出了一種新的增強卷積神經(jīng)去噪網(wǎng)絡方法,通過使用殘差學習和批量歸一化技術(shù)來解決訓練困難的問題,并加速網(wǎng)絡的收斂。
目前,大多數(shù)現(xiàn)有網(wǎng)絡僅解決單一類型的噪聲而設計。針對這一問題,本文提出了一種基于輕量深度殘差網(wǎng)絡的圖像多類型噪聲去除算法,其中的去噪網(wǎng)絡是由改進的殘差模塊組成,采用級聯(lián)訓練的方式保證了網(wǎng)絡去噪的精確度。為了能夠在去噪過程中提取更多的邊緣細節(jié),還設計了一個邊緣感知損失函數(shù)。而且,在提出的網(wǎng)絡中引入深度可分離模塊,在保證高精度的同時,減少參數(shù)量,提高計算效率。
深度卷積神經(jīng)網(wǎng)絡的提出有效地解決了圖像處理中的一系列難題。從理論上講,提高網(wǎng)絡的性能依賴于增加網(wǎng)絡的寬度和深度,引導網(wǎng)絡學習更多層次的特征信息。但是,深度的增加會導致梯度彌散、梯度爆炸及退化問題,而深度殘差網(wǎng)絡可以在一定程度上解決上述問題。
殘差神經(jīng)網(wǎng)絡ResNet[10]是在2015年被提出的,該網(wǎng)絡由殘差塊構(gòu)成,主要通過跳躍連接將模型中的某一層激活信息迅速反饋給更深層。圖1給出了傳統(tǒng)網(wǎng)絡和殘差網(wǎng)絡的結(jié)構(gòu)示意圖。可以看出,殘差網(wǎng)絡是在傳統(tǒng)網(wǎng)絡的基礎上引入跳躍連接,而且ResNet中存在恒等映射和殘差映射兩種映射關(guān)系。恒等映射是將淺層a(l)的信息x在保持輸出不變的情況下通過跳躍一層或者n層傳遞到更深層a(l+n)的節(jié)點;殘差映射是指目標輸出值H(x)=F(x)+x與輸入值x之間的差值,即中間層輸出值F(x)。ResNet網(wǎng)絡訓練的目標是將殘差結(jié)果逼近于0。殘差網(wǎng)絡的跳躍式結(jié)構(gòu),顛覆了傳統(tǒng)神經(jīng)網(wǎng)絡只能夠以第a(l)層輸出作為第a(l+1)層輸入的慣例,使某一層的輸出可以跳躍n層作為后面某一層的輸入。因此,由于殘差塊的存在使得神經(jīng)網(wǎng)絡的層數(shù)可以超越之前的約束,獲得足夠深的網(wǎng)絡層,為高級語義特征提取和分類提供了可行性,最終提高了網(wǎng)絡的去噪能力。
(a) 傳統(tǒng)網(wǎng)絡 (b) 殘差塊網(wǎng)絡
本文提出的去噪殘差網(wǎng)絡是在ResNet的基礎上,對殘差模塊進行適當?shù)男拚鐖D2所示。本文提出的簡化殘差模塊是將批量歸一化層和ReLU層進行移除,該修正的目的是保證基于特征映射的ResNet網(wǎng)絡性能的同時,降低網(wǎng)絡的復雜度,使殘差模塊更輕量化。
(a) 標準殘差模塊 (b) 簡化殘差模塊
通過圖2(b)中的簡化殘差模塊來構(gòu)建去噪殘差網(wǎng)絡(Simplified ResNet,S-ResNet)??紤]到隨著網(wǎng)絡的深入,訓練和超參數(shù)調(diào)整變得更加困難,本文采用級聯(lián)訓練,將整個訓練分為幾個階段并逐個進行。去噪殘差網(wǎng)絡的訓練從簡單的3層CNN模型開始,第一層由64個9×9濾波器組成,第二層由32個5×5濾波器組成,第三層只有一個5×5過濾器。殘差模塊中的每個卷積層由32個3×3濾波器組成。所有的卷積層都采用同一個步幅,權(quán)重系數(shù)由標準差為σ=0.001的高斯分布中隨機獲得。在訓練3層CNN之后,開始逐步級聯(lián)殘差模塊,如圖3所示。通過設定閾值,只有當前階段的訓練結(jié)束后,才可進入下一階段,從而保證網(wǎng)絡可以級聯(lián)到更深的網(wǎng)絡。在每個階段,插入一個新的殘差模塊,最后一層不再進行插入。因此,去噪殘差網(wǎng)絡的訓練從3層開始,并進行到n層。預先存在層的權(quán)重系數(shù)從前一個階段繼承,新插入的殘差模塊的權(quán)重由高斯分布隨機初始化。在去噪殘差網(wǎng)絡中的每個階段只有幾個權(quán)重系數(shù)是隨機初始化,因此收斂將相對容易。所有層使用固定學習率η=0.000 1。
圖3 去噪殘差網(wǎng)絡的級聯(lián)訓練
由于新的卷積層會減小特征圖的尺寸,因此在每個新的3×3層中填充2個值為0的像素,從而使得級聯(lián)訓練的所有階段都與輸出具有相同的大小,共享訓練樣本。當級聯(lián)5個殘差模塊時,生成的去噪殘差網(wǎng)絡將具有13個卷積層。實驗表明,該網(wǎng)絡可以適應高斯白噪聲、泊松噪聲及泊松-高斯噪聲等類型的噪聲,而且具有優(yōu)越的去噪精度。
為了進一步減少去噪殘差網(wǎng)絡的規(guī)模和計算成本,本文提出了深度可分離的殘差網(wǎng)絡模式。在分類網(wǎng)絡中,標準卷積層被分解為深度卷積和1×1逐點卷積,從而明顯提升網(wǎng)絡的計算效率。如圖4所示,具有M個輸入信道和N個K×K濾波器的標準卷積層可以轉(zhuǎn)換為一個具有M個K×K濾波器的深度卷積層和一個具有N個1×1濾波器和M個輸入信道的逐點卷積層。假設輸入圖像的特征圖尺寸為W×H,則計算量由M×K×K×N×W×H減少為M×W×H×(K×K+N)。受這個想法的啟發(fā),提出了深度可分離的殘差模塊,如圖5所示。在深度可分離的殘差模塊中,模塊中的標準卷積層被深度可分離卷積層和逐點卷積層所取代,然后對深度可分離的殘差模塊中的所有卷積層添加ReLU激活。
圖4 標準卷積(左)由深度卷積(中)和逐點卷積(右)代替
(a) 簡化殘差模塊 (b) 深度可分離殘差模塊
為了訓練深度可分離的去噪殘差網(wǎng)絡(Depthwise Separable Simplified ResNet,DSS-ResNet)[11],直觀的方法是從頭開始應用級聯(lián)訓練。由于已經(jīng)對去噪殘差網(wǎng)絡進行了訓練,所以采用另一種節(jié)省訓練時間的方法,即增量進化。該方法是從現(xiàn)有的已經(jīng)訓練過的去噪殘差網(wǎng)絡中采用深度可分離殘差模塊替換簡化殘差模塊的方式獲取深度可分離的去噪殘差網(wǎng)絡。為了保證網(wǎng)絡可以很好的收斂,在漸進進化過程中,殘差模塊被逐步替換。在每個階段,只有一個殘差模塊被深度可分離殘差模塊替換,然后進行微調(diào),如圖6所示。與級聯(lián)訓練類似,新插入的深度可分離殘差模塊的權(quán)重系數(shù)是隨機初始化的,其他層的權(quán)重則是繼續(xù)選擇繼承的方式。替換操作從尾部開始,以確保結(jié)果對整個網(wǎng)絡的影響較小。在實施過程中,首先訓練出一個13層的去噪殘差網(wǎng)絡,然后將其逐步發(fā)展為深度可分離的去噪殘差網(wǎng)絡。學習率與級聯(lián)訓練相同,每個進化階段的微調(diào)將持續(xù)10個時期。
圖6 深度可分離的去噪殘差網(wǎng)絡的增量進化過程
在增量演化之后,深度可分離的去噪殘差網(wǎng)絡中仍然存在三個標準卷積層,即第一、第二和最后一個。與去噪殘差網(wǎng)絡相比,深度可分離的去噪殘差網(wǎng)絡的總體復雜性大約能夠降低2.5倍,去噪精度卻沒有明顯的損失。
現(xiàn)有的去噪網(wǎng)絡大多是為了減小訓練集上的均方誤差MSE。本文提出了一種邊緣感知損失函數(shù)。在該函數(shù)中,邊緣中的像素比非邊緣像素具有更高的權(quán)重:
(1)
應用這種邊緣感知損失函數(shù)有兩個優(yōu)點,(1) 在損失函數(shù)中添加邊緣約束條件可以在噪聲圖像恢復過程中有效提取到邊緣細節(jié);(2) 邊緣等高頻信息在人眼視覺中非常敏感,提高邊緣像素的去噪精度有助于提高感知質(zhì)量。本文采用Sobel濾波器的梯度幅度方法來構(gòu)造M。
本文所有實驗在一臺配置為Intel(R) Core(TM)i5-3320 CPU @2.60 GHz和4 GB RAM的機器上進行,并在MATLAB 2014a環(huán)境下實現(xiàn)。選取PASCAL VOC 2010[5]數(shù)據(jù)集進行實驗,并且將訓練圖像和測試圖像分開,將1 000幅測試圖像用于測試提出的噪網(wǎng)絡的性能,其余圖像用于訓練。訓練過程中,裁剪33×33的噪聲塊和相應的17×17無噪聲像素塊用于網(wǎng)絡的訓練。
為驗證提出的網(wǎng)絡可以適用于多種噪聲類型的去除性能,本文采用具有不同噪聲水平的隨機高斯、泊松噪聲和泊松-高斯噪聲圖像進行測試。對于高斯噪聲,選擇不同的噪聲方差σ,σ∈{10,25,50}。在使用泊松噪聲破壞圖像之前,將輸入圖像的像素值按設定的峰值δ縮放,δ∈{1,4,8}。對于泊松-高斯噪聲,則選擇方差σ∈{0.5,3,6},峰值δ=10×σ。為了評價算法的去噪性能,采用圖像處理中常用的峰值信噪比(PSNR)和結(jié)構(gòu)相似性指數(shù)(SSIM)兩種指標進行估計。
表1-表2給出了不同的殘差網(wǎng)絡模型在去噪方面的性能對比。可以看出,相對于標準的殘差網(wǎng)絡,提出的去噪殘差網(wǎng)絡在PSNR、SSIM方面的性能均有所提升。同時,觀察到深度可分離的去噪殘差網(wǎng)絡比去噪殘差網(wǎng)絡在圖像去噪方面的性能有所下降,但是在計算成本和網(wǎng)絡規(guī)模方面有著明顯縮小,而使用邊緣感知損失函數(shù)的DSS-ResNet網(wǎng)絡雖然在PSNR指標上不如S-ResNet網(wǎng)絡,但是在SSIM方面卻得到了最優(yōu)值。
表1 不同的殘差網(wǎng)絡模型在PSNR方面的對比 單位:dB
表2 不同的殘差網(wǎng)絡模型在SSIM方面的對比
為了進一步驗證提出算法的優(yōu)越性,本文將在PASCAL VOC 2010數(shù)據(jù)集上的測試結(jié)果與其他去噪算法進行了對比。表3-表5給出了提出的S-ResNet與現(xiàn)有去噪算法的測試結(jié)果。為了公平比較,使用相同的數(shù)據(jù)集重新訓練其他網(wǎng)絡??梢钥闯?,本文網(wǎng)絡在高斯白噪聲、泊松噪聲及泊松-高斯噪聲的去噪性能明顯都要優(yōu)于去噪算法,而且網(wǎng)絡規(guī)模也相對較小。
表3 高斯噪聲下不同去噪算法的PSNR和SSIM對比
表4 泊松噪聲下不同去噪算法的PSNR和SSIM對比
表5 泊松-高斯噪聲下不同去噪算法的PSNR和SSIM對比
圖7給出了不同去噪算法在處理同一幅像素為512×512圖像時所需的計算時間,可以發(fā)現(xiàn),本文算法去噪時間僅需17.92或8.33 ms,而其他算法則需要55.47~353.19 ms。
圖7 不同去噪算法的計算時間
圖8-圖10展示了提出的算法在不同類型噪聲下的性能表現(xiàn)。DenoiseNet、DN-CNN、DuRN、MC2RNet、DLNet等網(wǎng)絡和本文的去噪網(wǎng)絡模型均可以生成保留自然度的增強圖像,但是本文方法在整體性能上要優(yōu)于其他算法,而且在噪聲圖像恢復過程中提取到更多的邊緣細節(jié),使得恢復的圖像在人眼視覺感知中具有更高的質(zhì)量。
(a) 噪聲圖像 (b) 文獻[5] (c) 文獻[6] (d) 文獻[12] (e) 本文算法
(a) 噪聲圖像 (b) 文獻[5] (c) 文獻[13] (d) 本文算法
(a) 噪聲圖像 (b) 文獻[14] (c) 本文算法
本文提出了一種基于輕量深度殘差網(wǎng)絡的圖像多類型噪聲去除算法。該算法采用級聯(lián)的方式訓練高效的深度殘差網(wǎng)絡,利用邊緣感知損失函數(shù)提高圖像的感知質(zhì)量。為了降低計算成本和減少網(wǎng)絡參數(shù)量,提出了可分離的深度殘差網(wǎng)絡模塊。測試結(jié)果表明,與現(xiàn)有的去噪網(wǎng)絡相比,在所有類型的噪聲(包括高斯噪聲、泊松噪聲和泊松-高斯噪聲)下,本文網(wǎng)絡具有更好的精度和效率。