陳清江, 吳田田
(西安建筑科技大學 理學院, 陜西 西安710055)
圖像去雨與圖像去霧、圖像去噪、圖像去模糊等都屬于圖像恢復問題。在雨天環境中,雨水會使圖像發生形變、模糊、目標遮擋、可視性差等問題,嚴重影響了戶外計算機視覺系統的正常應用。因此,圖像去雨算法是一個重要而有應用價值的研究課題,它包括視頻去雨[1-5]和單幅圖像去雨[5-22]。視頻去雨算法直接利用圖像幀間像素信息識別與去雨,而單幅圖像去雨算法的研究更具挑戰。
目前,單幅圖像去雨算法主要是基于濾波器[6]、字典學習[7,12]、稀疏編碼[9-10]、高斯混合模型[8]以及深度學習網絡[13-14]。2013,Zheng等人[6]提出了一種多引導濾波的單幅圖像雨雪去除方法,通過引導濾波器對雨天圖像的高頻部分和低頻部分進行恢復;2015年,Luo等人[7]提出了一種判別字典學習與稀疏編碼的方法,將雨條紋與圖像背景分開后去除雨條紋,但是去雨后的圖像上仍有雨條紋殘留;2016年,Li等人[8]提出一種基于高斯混合模型的去雨方法,但是存在雨殘留和難以準確估計高斯混合模型的問題。自2017年以來,單幅圖像去雨進入了一個深度學習時代。Fu等人[13]提出了DerainNet網絡,只對圖像的高頻部分進行網絡訓練,造成圖像色澤上的損失,且在背景區域仍然存在雨條紋的殘留痕跡,從而導致去雨效果不理想。隨后,Fu等人[14]基于圖像領域知識和ResNet網絡結構,提出DDN網絡對高頻部分實行去雨操作,實驗效果顯著優于不做這一操作的結果。Yang等人[15]提出基于區域的雨水模型,利用擴張卷積和級聯學習,將去雨任務分解為多階段任務。對于雨滴去除的算法。2018年,Qian等人[16]提出一種基于 GAN 的去雨方法,建立生成網絡和判別網絡,有效地去除圖像中玻璃上的雨滴。Zhang等人[17]提出了一種密度感知多路密集網絡DID-MDN,完成雨滴密度估計和雨滴去除。2019年,Chen等人[21]提出了一種端到端的去霧和去雨網絡GCANet,利用平滑的擴張卷積避免網格偽像,并且應用門控子網絡來融合不同級別的特征,實現霧天圖像和雨天圖像的恢復。而上述去雨算法多數是對雨天圖像分解后再進行去雨,存在去雨圖像細節或紋理信息丟失及雨紋殘留的問題。
為克服去雨圖像細節模糊或紋理信息丟失問題,本文提出一種基于聯結殘差網絡的單幅圖像去雨算法,未對雨天圖像進行雨紋層和背景層分解,使得圖像信息得到較好的保存。首先,利用改進的殘差塊進行殘差學習,提取雨天圖像的特征信息;其次,設計聯結結構,實現多特征提取雨紋信息,提高去雨算法的性能;最后,通過一個單尺度卷積重建圖像,進一步提升去雨圖像的視覺效果。
在圖像去雨算法中,一般的雨模型[7-8]表示為:
X=B+R,
(1)
式中,X表示有雨源圖像,B表示無雨背景,R表示雨條紋層。由此,存在雨模型將有雨圖像X和無雨圖像Y看作是低頻部分(基礎層)和高頻部分(雨紋細節層)的疊加,并通過濾波器分解,其模型[13-14]可表示為:
(2)
AA 中,base表示基礎層,detail表示細節層。此模型只在細節層上進行去雨操作,沒有檢測和去除基礎層上的雨紋,并且在圖像分解過程中容易造成信息丟失。
為此本文采用式(1)直接利用聯結殘差網絡學習有雨圖像和無雨圖像的映射關系f(X),檢測有雨圖像中的雨紋特征,并使用最小化均方誤差損失函數(MSE)作為目標函數,計算無雨圖像與去雨估計圖的期望值,即

(3)
式中,N表示訓練樣本數,w表示網絡參數,f(Xi)表示網絡結構第i個樣本的去雨估計值,Yi表示第i個樣本的無雨圖像。
現有的基于深度學習的圖像去雨算法大多都是對圖像先分解后去雨,且分解的方式不同,較多是高低頻分解、RGB轉YUV通道分解,而在使用分解算法時容易造成圖像信息丟失、色差等問題。因此,本文在不分解圖像的基礎上,直接通過端到端訓練聯結殘差網絡,提出了一個14層的去雨網絡。由于網絡深度較淺,收斂速度快,能較好地保留圖像細節信息,具有良好的去雨效果。
聯結殘差網絡是對殘差網絡的殘差塊進行改進,并利用Concat函數跳躍連接殘差塊與卷積神經網絡,建立聯結結構,提高模型性能。其網絡結構主要是由3個殘差塊、2個聯結結構和1個單尺度卷積組成,如圖1所示。

圖1 聯結殘差網絡結構Fig.1 Structure diagram of the concatenation residual network
ResNet網絡是由殘差塊(Residual block)構建的,殘差塊是一個兩層神經網絡,常見網絡結構為圖2(a)。本文對圖2(a)的殘差塊進行改進,將殘差塊每個卷積層的批量正則化BN(Batch Normlization)去掉,激活函數ReLU換成PReLU,如圖2(b)所示,并滿足以下公式:
(4)
其中,*表示卷積操作,W表示卷積權重,b是偏置值,P(X)代表PReLU激活函數。PReLU是增加了參數修正的ReLU,表達式為:
PReLU(xi)=max(xi,0)+aimin(0,xi),
(5)
式中,xi為第i層的正區間輸入信號,ai為第i層的負區間的權系數,如果ai=0,那么PReLU退化為ReLU;當輸入為負時,梯度為0,會產生梯度消失問題。因此本文給定ai初始值為0.25,并在反向傳播過程中采用帶動量方式更新,防止梯度消失,即:
(6)
式中,系數μ和ε分別是動量和學習率。
運用改進的殘差塊可以簡化網絡模塊,并減少了網絡參數,大大提升了網絡訓練速度,而且激活函數的參數變化是靈活的,不是固定參數,避免神經元單側抑制。聯結殘差網絡使用了3個改進的殘差塊,其卷積核大小都為3×3,但每個殘差塊的通道數因受聯結結構的影響而不同,分別為16,48,80,實現不同通道數特征圖的殘差學習,提高訓練精度。

圖2 (a)殘差塊結構;(b)改進的殘差塊結構;(c)聯結結構。Fig.2 (a) Structure of the residual block; (b) Improved residual block structure; (c) Concatenation structure.
本文提出的聯結結構是利用卷積神經網絡的Concat函數跳躍連接構建的,Concat函數可以使網絡模型變寬,并把多個分支聯結起來作為后續層的輸入,以提高模型性能,其合并方式主要在channel或num維度上。在Caffe中數據通常為4個維度,即num×channel×height×width。本文是在channel維度上建立的聯結結構,在操作過程中需要滿足除channel維度外其余維度必須一致的條件,結合殘差網絡將其3層聯結的結構稱為聯結結構,如圖2(c)所示。若有3個卷積層聯結,則表示為
輸入Xl:N*k1*H*W,
Conv1:N*k2*H*W,
Conv2:N*k3*H*W;
輸出:N*(k1+k2+k3)*H*W,
(7)
式中,N表示批處理數,ki表示通道數,H表示特征圖的高,W表示特征圖的寬。其將網絡通道拓寬為k1+k2+k3,并把N*(k1+k2+k3)*H*W作為下一層的輸入,增加網絡特征圖的輸出。
本文的聯結殘差網絡在第一個殘差塊回歸學習雨特征后,與Conv4、Conv5合并構建第一個聯結結構Concat1,其卷積核參數必須滿足式(7),如表1所示。故Concat1的卷積核為48×3×3,網絡寬度從16變為48,較之前提取更多的特征圖。然后,將Concat1作為下一個殘差塊的輸入,使之卷積核大小設為48×3×3,殘差學習后與Conv8、Conv9合并再次構建第3個聯結結構Concat2,卷積核為80×3×3,進一步擴寬網絡為80。隨之第3個殘差塊的卷積核大小依據Concat2的參數也變為80×3×3,最后通過一個單尺度卷積實現圖像重構。而兩個聯結結構的使用不僅擴寬了網絡,有效減少了網絡參數,增加特征圖的輸出,實現多特征提取,更有利于保留圖像細節信息,提高網絡性能。
根據聯結殘差網絡結構的設計,可將本文算法具體分為5步,如表2所示。

表1 兩個聯結結構的卷積核設置Tab.1 Convolution kernels setting of two concatenation structures

表2 算法步驟Tab.2 Algorithm steps

續 表
其中,N表示訓練樣本數,l表示卷積層數,W表示卷積權重矩陣,b是偏置矩陣,P(·)代表PReLU激活函數;C(·)表示Concat函數聯結操作,k表示聯結層數,θ設置Concat函數參數。
聯結殘差網絡的目標是使LMSE值最小,并利用隨機梯度下降法(SGD)按照負梯度方向來更新網絡訓練參數,其中采用固定的學習率,設置為0.000 1,支持動量參數為0.9,權值衰減值為0,而整個訓練過程在GPU模式、Caffe框架下經過25萬次迭代終止,最終訓練網絡收斂到0.500 5±0.062 4。
實驗采用合成雨天圖像數據集test12[13,15],Rain100L和Rain100H[15],選取102幅合成雨圖及所對應的無雨圖像作為訓練網絡的數據集,其中61幅作為訓練集,41幅作為測試集。真實雨天圖像實驗數據集是從Practical[14]和real[15]選取的。為了驗證本文算法對雨天 圖像的去雨效果,將其與傳統的去雨算法Zheng等人[6]算法以及基于深度學習的DerainNet算法[13]、DDN算法[14]和GCANet算法[21],分別對合成雨天圖像數據集和真實雨天圖像數據集進行對比實驗,并從主觀和客觀方面對去雨結果分析。
為了驗證本文去雨算法對合成雨天圖像的去雨效果,選取了4幅合成雨天圖像進行實驗,并將本文算法與其他算法進行比較,如圖3~6所示。


圖3 不同算法對合成雨天圖像Opera House的去雨結果Fig.3 De-rained results of different algorithms on synthetic rainy image “Opera House”

圖4 不同算法對合成雨天圖像Spinal Building的去雨結果Fig.4 De-rained results of different algorithms on synthetic rainy image “Spinal Building”

圖5 不同算法對合成雨天圖像Horses的去雨結果Fig.5 De-rained results of different algorithms on synthetic rainy image “Horses”

圖6 不同算法對合成雨天圖像Kids的去雨結果Fig.6 De-rained results of different algorithms on synthetic rainy image “Kids”
根據圖3~6給出4幅合成雨天圖像及其部分放大圖在幾種算法上的去雨結果,從主觀上觀察,Zheng等人[6]算法的去雨圖像不僅殘留雨紋,還使物體的紋理過平滑,圖像變模糊,出現了虛影;DerainNet算法[13]去雨后仍有較多的雨紋,其在馬身、衣服及天空附近尤為明顯;DDN算法[14]有明顯的去雨效果,但是也存在少量的雨紋;對于GCANet算法[21]的去雨結果,從部分放大圖像上可以觀察出,去雨圖像產生了色彩失真的現象,且去雨效果不明顯。而本文算法在合成雨天圖像上具有更加明顯的去雨效果,幾乎沒有雨紋殘留,細節和紋理信息也保留完整。

表3 合成雨天圖像去雨結果的SSIM和PSNR評估Tab.3 SSIM and PSNR evaluation of the de-rained results on synthetic rainy images
本文也從客觀方面定量評估幾種算法的去雨效果,主要使用結構相似度(SSIM)和峰值信噪比(PSNR)作為評價指標,對4幅圖像進行對比,如表3所示。傳統的Zheng等人[6]算法和DerainNet算法的評價指標較低,DDN算法和GCANet算法的評價指標相對較高,而本文算法的結構相似度(SSIM)和峰值信噪比(PSNR)的平均值在0.95與33 dB以上,計算結果都高于其他算法,說明了本文去雨算法的有效性。從而在定量和定性評價中,說明了本文基于聯結殘差網絡的去雨算法的去雨結果優于其他算法。
針對真實雨天圖像,將本文算法與其他算法在3幅真實雨天圖像上進行對比實驗,如圖7所示。

圖7 不同算法對真實雨天圖像的去雨結果Fig.7 De-rained results of different algorithms on real-word rainy images
圖7為3幅不同時間段、不同場景的真實雨天圖像的去雨結果。觀察Zheng等人[6]算法的去雨結果,算法在去雨的同時也使圖像細節變得模糊,且有很明顯的雨紋殘留;DerainNet算法的去雨圖像仍有雨紋沒有去除干凈;DDN算法也存在較少的雨紋,在“Couple”的衣服和車窗上尤為明顯。同時,Zheng等人[6]算法和DerainNet算法在夜晚大雨環境下的去雨效果不佳,而DDN算法和本文算法對夜晚雨天圖像的去雨效果明顯,但是都有雨霧存在。相對而言,GCANet算法去除雨霧的效果較好,但是對于雨紋的去除效果不明顯,而本文算法去除雨紋的效果明顯,去雨圖像也具有較好的視覺效果。
由于真實雨天圖像沒有無雨圖像作對比,所以不能使用SSIM和PSNR定量評估。本文采用圖像清晰度(Q)和平均梯度(Average Gradient,AG),以及無參考圖像評價指標-自然圖像質量評估(NIQE)[26]和盲圖像質量評估方法(NBIQA)[27]對真實雨天圖像去雨結果進行對比。平均梯度反映了圖像的清晰程度及圖像中微小細節反差和紋理變換特征,值越大說明圖像越清晰。而無參考圖像評價指標NIQE和NBIQA的值通常在0和100之間,值越小表示圖像質量越好。表4是圖7在這幾種評價指標下的對比結果。

表4 真實雨天圖像去雨結果的定量評估Tab.4 Quantitative evaluation of the de-rained results on real-world rainy images

續 表
從表4可以明顯看出,基于深度學習的去雨算法較傳統算法的去雨效果更優。對于“A Rainy Night”的去雨結果,GCANet算法的去雨圖像清晰度(Q)較高(Q=0.028 5),說明其有去雨霧的作用。計算去雨圖像的平均梯度(AG)、NIQE和NBIQA三個評價指標,本文算法的評估值都優于對比算法的值。分析“Road”和“Couple”的去雨圖像評估值,本文算法的圖像清晰度和平均梯度都相對較高,表明了圖像更清晰。同時,NIQE和NBIQA兩個指標值較低,更說明了本文去雨算法對真實雨天圖像有較好的去雨效果,圖像質量優于其他算法,能更好地應用于真實世界。
本文提出了一種基于聯結殘差網絡的單幅圖像去雨算法,該方法不分解雨天圖像的雨紋層和背景層,直接對殘差塊進行改進,構建聯結結構,建立了一個淺層網絡,減少了網絡參數,實現了不同通道的殘差學習,多特征提取雨紋信息,并通過單尺度卷積來實現圖像重建,進一步提升了去雨圖像的質量。實驗結果表明,本文算法不僅對合成雨天圖像具有良好的去雨效果,結構相似度的平均值高于0.95,峰值信噪比的平均值大于33 dB,也能更好地應用于真實雨天圖像,其盲圖像質量評價值相對較低,且圖像的邊緣細節和紋理信息保留完整。