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