羅仁澤,王瑞杰,張 可,范順利
(1.西南石油大學油氣藏地質(zhì)及開發(fā)工程國家重點實驗室,四川 成都 610500;2.西南石油大學電氣信息學院,四川 成都 610500;3.西南石油大學地球科學與技術(shù)學院,四川 成都 610500)
傳統(tǒng)圖像去噪模型可分為基于空間域、變換域、稀疏表示以及自然統(tǒng)計四大類。其中具有代表性的方法有:基于空間域的中值濾波法[1],此方法忽略了每個像素自身的特點,去噪后圖像將會出現(xiàn)較為嚴重的模糊現(xiàn)象;基于變換域的BLS-GSM[2],此方法在去噪的同時會丟失一部分有用信息;基于稀疏表示法的NLSC[3],此方法去噪計算時間較長、去噪效率低;基于自然統(tǒng)計的BM3D[4],此方法只能濾除某種特定的噪聲。
為了克服傳統(tǒng)去噪模型的局限性,基于深度學習的非線性、深度的圖像去噪模型被大量提出。其中基于自編碼(Auto-encoder,AE)網(wǎng)絡(luò)[5-7]、卷積神經(jīng)網(wǎng)絡(luò)[8-10](Convolutional Neural Network,CNN)、生成對抗網(wǎng)絡(luò)[11-13](Generative Adversarial Networks,GAN)廣泛應(yīng)用于圖像去噪領(lǐng)域?;谧跃幋a網(wǎng)絡(luò)的DCAENN[5],可有效去除胸部X線圖像的噪聲,但只能去除已知的噪聲,不具有泛化能力;基于棧式稀疏去噪自編碼網(wǎng)絡(luò)的SSDAs[6],通過多個SSDAs相組合,將稀疏編碼與去噪自編碼器預訓練的深度神經(jīng)網(wǎng)絡(luò)相結(jié)合進行圖像去噪,但SSDAs較依賴有監(jiān)督的訓練,只能除去訓練集中出現(xiàn)的噪聲;基于棧式去噪自編碼網(wǎng)絡(luò)的SDA[7],由多層的全連接網(wǎng)絡(luò)構(gòu)成,網(wǎng)絡(luò)模型訓練所需時間較長;基于殘差卷積神經(jīng)網(wǎng)絡(luò)的DNCNN[9],利用殘差學習和批量歸一化來加速訓練過程,DNCNN模型能夠處理水平未知的高斯噪聲,但不能去除種類未知的噪聲;基于空洞卷積的IRCNN[14],通過使用空洞卷積增大感受野,進而使背景信息對重構(gòu)受損像素起作用;基于堆疊生成對抗網(wǎng)絡(luò)的SGAN[12],該模型將估計圖像分布分解為多個相對較容易的任務(wù)來處理數(shù)據(jù),有較好的去噪效果,但網(wǎng)絡(luò)不易訓練,資源消耗大,去噪的同時也會生成假象;基于條件生成對抗網(wǎng)絡(luò)的CGAs[13],將訓練過的網(wǎng)絡(luò)和銳度檢測網(wǎng)絡(luò)相結(jié)合來引導訓練過程,CGAs減少了生成對抗網(wǎng)絡(luò)的訓練難度,但去噪同時容易丟失特征信息。
本文提出的多功能去噪殘差卷積自編碼神經(jīng)網(wǎng)絡(luò)(Multi-Functional Denoising Residual Convolution Auto-Encoding Neural Network,DRCAENNm)和去噪殘差卷積自編碼神經(jīng)網(wǎng)絡(luò)(Denoising Residual Convolution Auto-Encoding Neural Network,DRCAENN),均以殘差塊、BN層和自編碼器組成的殘差卷積自編碼 (Residual Convolutional Auto-Encoder, RCAE) 塊為基本網(wǎng)絡(luò)結(jié)構(gòu),將含噪聲的圖像經(jīng)過網(wǎng)絡(luò)模型訓練優(yōu)化,輸出為去噪后的圖像。與DNCNN[9]、DCAENN[5]和IRCNN[14]模型對比,DRCAENN在去噪質(zhì)量和網(wǎng)絡(luò)收斂速度方面表現(xiàn)最好,僅用其它網(wǎng)絡(luò)訓練所需的四分之一時間,就能達到最佳去噪效果;用單一噪聲訓練完成的DRCAENNm,不僅可以去除水平未知的噪聲,還可以去除與訓練數(shù)據(jù)類型不相同的噪聲,泛化能力超越已知的去噪網(wǎng)絡(luò)模型。
殘差學習(Residual Learning)[15]解決了常規(guī)網(wǎng)絡(luò)隨著深度的加深容易出現(xiàn)梯度彌散,而導致深層網(wǎng)絡(luò)去噪效果變差的現(xiàn)象。
以兩層殘差塊為例,見圖1所示,不加恒等映射(Identity Mapping)時,經(jīng)兩層神經(jīng)網(wǎng)絡(luò)后輸出可用式(3)表示:
圖1 ID Block結(jié)構(gòu)
xi經(jīng)線性變換后用hi+1表示,則
hi+1=wi+1*xi+bi+1
(1)
hi+1經(jīng)激活函數(shù)g之后輸出為xi+1
xi+1=g*hi+1
(2)
經(jīng)兩層神經(jīng)網(wǎng)絡(luò)后xi+2可表示為式(3)
xi+2=g*hi+2
(3)
其中,hi+2為xi+1經(jīng)過線性變換后的輸出。
若加上Identity結(jié)構(gòu),網(wǎng)絡(luò)第二層輸出用x(id)i+2表示,見式(4):
x(id)i+2=g*(hi+2+xi)
(4)
將式(3)、(4)展開:
xi+2=g*(wi+2*xi+1+bi+2)
(5)
xi+2=g*(wi+2*xi+1+bi+2+xi)
(6)
假設(shè)wi+2=0、bi+2=0則:
xi+2=g*0=0
(7)
x(id)i+2=g*xi=xi
(8)
由式(7)、(8)可知,不加恒等映射時網(wǎng)絡(luò)輸出為零,即此節(jié)點發(fā)生梯度消失現(xiàn)象,而殘差結(jié)構(gòu)構(gòu)成等函數(shù)后,保證了來自后一層的梯度值完好的傳到前一層,消除了梯度消失現(xiàn)象。
批量歸一化[16](Batch Normalization,BN)保證網(wǎng)絡(luò)正向傳播和反向傳播時的輸出在同一分布區(qū)間,可以解決梯度爆炸現(xiàn)象。同時,批量歸一化還能加快網(wǎng)絡(luò)收斂速度、可代替Dropout[17]層、提高網(wǎng)絡(luò)泛化能力的優(yōu)點。
假設(shè)某層的輸入為x=(x1,x2,…,xn)共n維批樣本集合為B={x1,x2, …,xm},批量歸一化見式(9)-式(12)
(9)
(10)
(11)
(12)
式中x(n)為輸入x的第n維;μB為樣本集合B的期望;σB2為樣本集合B的方差;x(k))為輸入x的正則化結(jié)果;y(n)為x(n)的批量正則化結(jié)果;γ(n)、β(n)為待學習的參數(shù)。
為了高效去除圖像中的噪聲,以提出的RCAE Block為基本網(wǎng)絡(luò)結(jié)構(gòu),搭建了DRCAENN和DRCAENNm兩個去噪網(wǎng)絡(luò)模型。
含噪圖像可表示為
y=f+n
(13)
其中y為含噪圖像;f為無噪聲圖像;n為噪聲。
本文選取均值平方差損失函數(shù)來指導DRCAENN和DRCAENNm 去噪模型的收斂方向,其公式為:
(14)
其中N表示有N對訓練樣本;θ={ω,b}為網(wǎng)絡(luò)參數(shù);ω為權(quán)重;b為偏執(zhí);fp(yi;θ)為模型預測的第i個不含噪的圖像,fi為第i個真實不含噪的圖像,對均值平方誤差越小代表fp(yi;θ)與fi越接近,網(wǎng)絡(luò)去噪效果越好。
本文構(gòu)建的DRCAENN和DRCAENNm 去噪模型,其目的為利用式(14)和自適應(yīng)矩陣估計(Adam)算法[18],通過不斷迭代優(yōu)化參數(shù)θ得到最優(yōu)去噪網(wǎng)絡(luò)模型,輸出不含噪圖像。
3.2.1 DRCAENN和DRCAENNm模型結(jié)構(gòu)
DRCAENN為2*8的神經(jīng)網(wǎng)絡(luò),即有2個8層的RCAE Block組成;DRCAENNm共17層,第一層由一個用來降維的卷積層組成,2、3、4層由一個3層的RCAE Block組成,為了升維5、6、7層由一個C Block組成,接下來的6層由2個3層的RCAE Block組成,然后為了降維14、15、16層由一個C Block組成,最后一層為一個全連接層。
DRCAENN和DRCAENNm網(wǎng)絡(luò)整體結(jié)構(gòu)見圖2、圖3。其中,輸入為100*100的含噪聲圖像,輸出是與輸入對應(yīng)的降噪后的圖像,為了減少有效信息丟失,提高去噪的精確度,DRCAENNm和DRCAENN兩個網(wǎng)絡(luò)均不使用池化層。
圖2 DRCAENN結(jié)構(gòu)
圖3 DRCAENNm結(jié)構(gòu)
3.2.2 殘差卷積自編碼塊
卷積自編碼網(wǎng)絡(luò)有助于提取圖像主要信息,從而得到更準確的潛在特征表達空間,在深度學習中為了讓網(wǎng)絡(luò)得到更好的效果,常用自編碼網(wǎng)絡(luò)處理后的數(shù)據(jù)代替原數(shù)據(jù)。結(jié)合殘差網(wǎng)絡(luò)和卷積自編碼網(wǎng)絡(luò)的優(yōu)點,本文提出由殘差塊、BN層和自編碼結(jié)構(gòu)組成的殘差卷積自編碼塊(RCAE Block)。
圖4為多層RCAE Block結(jié)構(gòu)。
圖4 RCAE Block結(jié)構(gòu)
其中,a表示輸入、輸出特征圖個數(shù);n為卷積核大小為5*5和3*3的雙通道卷積層個數(shù);捷徑部分由兩層編碼器(Encoder)、最大池化、反池化和兩層的解碼器(Decoder)組成。RCAE Block對比ID Block有以下改進:
1)恒等映射改為卷積自編碼結(jié)構(gòu),此時輸出為
xn+2=F(x)+xcae
(15)
xcae為輸入x經(jīng)過卷積自編碼器提取的潛在特征,F(xiàn)(x)為輸入x經(jīng)過n+2個卷積層輸出的結(jié)果;
2)加入雙通道卷積層,并配合網(wǎng)絡(luò)參數(shù),將原來兩層卷積層改為三層或三層以上;
3)僅用Relu函數(shù),改為Relu函數(shù)與BN結(jié)合或單獨使用Swish函數(shù)。
引入非線性的激活函數(shù)可以解決線性模型表達能力不足的缺陷,在神經(jīng)網(wǎng)絡(luò)里面常用的激活函數(shù)有Sigmoid、Tanh和Relu等。其中,Relu激活函數(shù)較為常用,但Relu有一個缺點:后層的某個梯度非常大時,權(quán)重更新后就會變得更大,從而引起該層的輸入小于零,造成輸出結(jié)果為零,因此該神經(jīng)元將不會被激活。
Swish擁有不飽和、光滑、非單調(diào)性的特征,可以克服Relu函數(shù)的缺點,同樣模型參數(shù)下,僅將Relu函數(shù)替換為Swish函數(shù),可以提高模型的準確率。
Swish函數(shù)為
f(x)=x*sigmoid(βx)
(16)
式中β為x的縮放參數(shù),本文β值取1。
圖5為RCAE Block與傳統(tǒng)的ID Block和CONV Block迭代1萬次去噪對比。
圖5 單個殘差塊去噪對比
其中,RCAE-R Block表示激活函數(shù)為Relu的RCAE Block,RCAE-S Block表示激活函數(shù)為Swish的RCAE Block。由圖可知,改進后的RCAE Block在每次迭代僅增加0.01s的情況下,去噪能力明顯優(yōu)于ID Block和C Block,而且選用Swish激活函數(shù)的去噪效果好于Relu激活函數(shù)。
為了驗證DRCAENNm和DRCAENN網(wǎng)絡(luò)模型的有效性和準確性,使用湯姆林森地球物理服務(wù)公司(Tomlinson Geophysical Services Inc,TGS)巖體識別挑戰(zhàn)賽的地震數(shù)據(jù)集,并將其預處理為100*100像素的單通道灰度圖像后進行仿真,其中,20000張圖像作為訓練集,2000張圖像作為測試集。網(wǎng)絡(luò)模型均基于Tensorflow10.1版本編寫,運行環(huán)境CPU為Intel Core i7-8750H,GPU為NVIDIA GTX1060。分別在性能和運算時間兩個方面與先進的DNCNN[9]、DCAENN[5]和IRCNN[14]模型對比,說明本文方法的可行性。
從單一噪聲去噪對比、盲去噪對比、不同類型噪聲去噪對比,三方面做性能對比。
1) 單一噪聲去噪對比
去除單一噪聲表示,訓練好的網(wǎng)絡(luò)模型只去除與訓練數(shù)據(jù)水平相同的噪聲。不同模型去噪平均PSNR如表1所示,最佳結(jié)果已加粗顯示。
表1 不同模型去噪平均PSNR(dB)
表1為不同網(wǎng)絡(luò)模型對含高斯噪聲(標準差σ分別為70、50、30)的圖像去噪效果對比,實驗結(jié)果表明:DRCAENN的峰值信噪比最高,去噪效果最好;DRCAENNm去除σ為70、50的噪聲效果要好于DNCNN,但當σ為30時DRCAENNm去噪效果稍遜于DNCNN;IRCNN 去噪質(zhì)量介于DRCAENNm和DNCNN之間;DCAENN去噪效果最差。
通過主觀評價法對比不同網(wǎng)絡(luò)模型去噪效果,圖6為σ=50的測試集去噪結(jié)果。
圖6 不同模型去噪結(jié)果
圖6中第一幅圖為原始圖像,第二幅為含噪聲圖像,其余四幅圖依次為DRCAENNm、DRCAENN、DNCNN、DCAENN、IRCNN去結(jié)果,從標記框可看出:DRCAENNm和DRCAENN在去除噪聲的同時也可保留局部細節(jié)特征;DNCNN可去除強信號地方的噪聲,但在弱信號的地方容易丟失局部特征;DCAENN在去除去噪的同時,會去除大量原有信息;IRCNN去噪保真度較高,但去噪同時也會產(chǎn)生一些不存在的偽影。
由表1和圖6結(jié)論可知,DRCAENN單一噪聲去噪效果最好,DRCAENNm次之。
2) 盲去噪對比
盲去噪能力表示,此網(wǎng)絡(luò)模型不僅可以去除與訓練數(shù)據(jù)水平相同的噪聲,還可去除其它水平的噪聲。表2為σ=70的高斯噪聲訓練后的DRCAENNm、DRCAENN、DNCNN、DCAENN、IRCNN模型盲去噪對比結(jié)果,最佳結(jié)果已加粗顯示。
表2 測試集盲去噪平均PSNR(dB)
表2用σ大于70的90、80和小于70的60、40測試σ=70訓練好的網(wǎng)絡(luò),由表2可知,本文提出的DRCAENNm模型去噪后效果最為明顯,其中PSNR最高提升8.49dB;因此,DRCAENNm模型去噪效果最好。
圖7為用σ=70的單一高斯噪聲訓練后的不同模型去除σ=80的高斯噪聲的結(jié)果。
圖7 不同模型盲去噪結(jié)果
由圖7標記部分示出,DRCAENNm去噪后圖像細節(jié)保持完整,其它模型均產(chǎn)生較嚴重的模糊現(xiàn)象;IRCNN、DNCNN去噪同時可使原圖純凈的背景產(chǎn)生大量偽影,盲去噪效果較差。
由表2和圖7結(jié)論可知,DRCAENNm盲去噪效果最好,在產(chǎn)生較少偽影的同時,可使去噪后的圖像邊緣光滑,主要細節(jié)保留完整。
3) 不同類型噪聲去噪對比
傳統(tǒng)方法去除高斯噪聲一般采用線性濾波,椒鹽噪聲一般采用中值濾波。然而,用單一的高斯噪聲訓練好的DRCAENNm模型,不僅可去除高斯噪聲,還可去除類型、水平未知的噪聲。
本文分別用PSNR平均為20.12dB的加性噪聲:Localvar;PSNR平均為25.78dB的乘性噪聲:Speckle;PSNR平均為18.49dB的椒鹽噪聲:Salt-pepper(S&P),測試σ=50的高斯噪聲訓練后的DRCAENNm、DRCAENN、DNCNN、DCAENN、IRCNN去噪效果,表3為各模型去除與訓練數(shù)據(jù)類型不同的噪聲測試對比結(jié)果,最佳結(jié)果已加粗顯示:
表3 不同類型噪聲去噪PSNR(dB)
由表3可知,用高斯噪聲訓練好的DRCAENNm對比其它模型,去除三種測試噪聲后的圖像有最高的PSNR,DRCAENN和DCAENN次之,DNCNN和IRCNN不能去除其它種類的噪聲。
圖8為各模型去除S&P噪聲的測試結(jié)果,從圖中標注處可知DRCAENNm和DRCAENN模型去除噪聲的同時也能很好地保留圖像細節(jié)特征;DCAENN模型可以去除S&P噪聲,但去噪保真度較弱;DNCNN和IRCNN不能去除S&P噪聲。
由表3和圖8結(jié)論可知,DRCAENNm模型去除類型、水平未知噪聲的同時,去噪效果和去噪精度最理想,其中PSNR最高可提升10.74dB,提升較為明顯。
圖8 不同類型噪聲去噪結(jié)果
因此,通過單一噪聲去噪對比、盲去噪對比、不同類型噪聲去噪對比,可知DRCAENN模型在去除單一噪聲方面表現(xiàn)最好,DRCAENNm模型次之;DRCAENNm模型盲去噪和不同類型噪聲去噪方面均好于對比的其它網(wǎng)絡(luò)。
圖9為含高斯噪聲σ=50的圖像經(jīng)過不同去噪網(wǎng)絡(luò)模型去噪后的PSNR和Loss隨時間變化結(jié)果。
圖9 不同模型PSNR和Loss隨時間變化
由圖9知,DRCAENN模型僅需500s左右可收斂到最佳去噪效果,其它對比網(wǎng)絡(luò)均在2500s左右才能收斂。因此,DRCAENN網(wǎng)絡(luò)訓練所需時間最短,收斂速度最快,可最大化節(jié)約網(wǎng)絡(luò)訓練時間。
本文提出了DRCAENN和DRCAENNm兩種基于殘差卷積自編碼的去噪網(wǎng)絡(luò)模型,與DNCNN、DCAENN和IRCNN模型相比, DRCAENN模型在去除單一噪方面,去噪質(zhì)量和網(wǎng)絡(luò)收斂速度均表現(xiàn)最好,僅用其它對比模型訓練所需的四分之一時間,就能達到最佳去噪效果,適用于快速準確的去除水平已知的單一噪聲;DRCAENNm模型在盲去噪和去除不同類型噪聲方面優(yōu)于其它四個網(wǎng)絡(luò)模型,在去除噪聲的同時能很好地保留圖像細節(jié)特征,具有較高的去噪質(zhì)量和去噪精度,適用于去除噪聲水平和種類未知的含噪圖像。