強贊霞,鮑先富
(中原工學(xué)院計算機學(xué)院,鄭州 450007)
雨天是常見的自然天氣,雨天采集的圖片通常會出現(xiàn)圖像失真和背景遮擋問題。無人駕駛系統(tǒng)(Unmanned Driving System,UDS)常因雨紋和雨霧影響導(dǎo)致無法對周圍行車環(huán)境進(jìn)行有效感知。去除雨紋和提升圖像質(zhì)量是高效運用計算機視覺(Computer Vision,CV)算法的關(guān)鍵。為解決無人駕駛車輛在雨天條件下產(chǎn)生的圖像質(zhì)量下降問題,本文采用生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)[1]結(jié)合長短期記憶(Long Short-Term Memory,LSTM)單元去除圖片中的雨紋,提升無人駕駛系統(tǒng)的環(huán)境感知能力。
傳統(tǒng)去雨任務(wù)根據(jù)物理成像原理進(jìn)行建模,取得一定的去雨效果。Reynolds 等[2]將雨圖進(jìn)行分層,結(jié)合高斯混合模型作為先驗知識進(jìn)行建模,使用半二次方分裂技術(shù)解決非凸問題。通過使用高斯混合模型對去雨模塊進(jìn)行評估,但雨紋補丁位置的嚴(yán)重偽影問題仍有待解決。Kang 等[3]使用傳統(tǒng)形態(tài)學(xué)方法結(jié)合雙邊濾波將圖片的高低頻成分進(jìn)行分解,對高頻分量中的雨紋噪聲進(jìn)行處理,再與低頻分量中的背景信息融合得到去雨的圖像。該方法雖能有效定位雨紋位置,但損失了背景圖像的高頻細(xì)節(jié)信息,恢復(fù)的圖像仍存在模糊和偽影問題。Luo 等[4]將雨紋矩陣轉(zhuǎn)化為張量,將雨圖分解為背景和雨紋噪聲兩部分進(jìn)行處理部分。Li 等[5]將雨紋圖分層,對反向傳遞的梯度進(jìn)行正則化,使兩層梯度信息符合長尾分布和短尾分布,通過迭代解決正則化問題。綜合所述,傳統(tǒng)方法僅利用雨紋先驗知識進(jìn)行簡單有限的線性映射,難以處理大雨中產(chǎn)生的密集雨紋,在細(xì)節(jié)恢復(fù)方面難以取得令人滿意的去雨效果。
單幅圖像去雨僅憑借物理模型和圖片像素的先驗信息,以往算法雖能取得不錯的雨霧去除效果,但很難在雨紋噪聲去除和細(xì)節(jié)恢復(fù)上保持良好的平衡。Qian 等[6]借助專注循環(huán)網(wǎng)絡(luò)生成注意力分布圖,將注意力權(quán)重送入生成對抗網(wǎng)絡(luò)進(jìn)行訓(xùn)練,取得較好的去雨效果,但該網(wǎng)絡(luò)僅能對附著在鏡頭的雨滴進(jìn)行處理。Chen 等[7]借助遷移學(xué)習(xí)對背景和雨紋進(jìn)行分離,再使用稀疏泛型卷積和低秩濾波器將雨紋去除問題轉(zhuǎn)化為雨紋分離優(yōu)化問題。該方法僅使用濾波操作,未考慮不同尺度的特征融合,難以對不同程度的降雨進(jìn)行適應(yīng)。Fu 等[8]使用低頻濾波將雨圖分解,將高頻分量送入DerainNet 學(xué)習(xí)雨圖與背景之間的高頻分量的對應(yīng)關(guān)系,背景的恢復(fù)效果差強人意。Barzegar 等[9]通過使用深度殘差單元設(shè)計DetailNet,縮小網(wǎng)絡(luò)中變量的映射空間,驗證了網(wǎng)絡(luò)映射空間大小對去雨效果的影響。Zhang 等[10]提出了基于條件生成對抗網(wǎng)絡(luò)(Conditional Generative Adversarial Network,CGAN)的去雨網(wǎng)絡(luò),利用生成對抗網(wǎng)絡(luò)的數(shù)據(jù)生成能力對雨圖進(jìn)行修補,這樣做基于一個強制約束,即雨圖必須與背景圖像不可區(qū)分。生成對抗網(wǎng)絡(luò)(GAN)為訓(xùn)練提供額外的正則化和細(xì)化損失函數(shù),結(jié)合多尺度判別器和改進(jìn)的感知損失函數(shù),對偽影的去除效果較好;但由于強制約束的加入,未對雨紋進(jìn)行定位,部分雨紋沒有去除。Jiang 等[11]通過建立多尺度金字塔結(jié)構(gòu),配合通道殘差結(jié)構(gòu)和注意力機制,得到優(yōu)秀的去雨效果;但網(wǎng)絡(luò)采用完全監(jiān)督的方法進(jìn)行訓(xùn)練,難以對不同大小的雨紋進(jìn)行適應(yīng),容易產(chǎn)生過擬合[12]。Lai 等[13]通過高斯混合模型作為背景和雨紋先驗信息,通過預(yù)處理除霧方法解決降雨累積問題,除霧方法會增強雨紋;但導(dǎo)致雨紋的對比度和強度遠(yuǎn)高于真實分布,后續(xù)操作不能有效去除增強后的雨紋。Zhang 等[14]使用迭代除霧方法對雨霧累積問題進(jìn)行處理,增加大量噪聲并導(dǎo)致去雨的性能降低,通過感知密度和遞歸網(wǎng)絡(luò)處理大雨場景中雨層疊加;但無法修復(fù)降雨累積產(chǎn)生的色彩失真問題。
傳統(tǒng)去雨和多數(shù)基于深度學(xué)習(xí)的去雨方法均采用分解雨圖的方法,將去雨轉(zhuǎn)化為矩陣分解,未對雨紋位置進(jìn)行定位,存在色彩失真和雨紋殘留的問題。針對上述算法存在的問題,本文提出一種基于卷積長短期記憶的殘差注意力去雨網(wǎng)絡(luò)算法。在對雨紋進(jìn)行去除前,本文算法先使用卷積長短期記憶(Convolutional Long Short-Term Memory,CLSTM)網(wǎng)絡(luò)[15]生成雨紋注意力圖,對雨線進(jìn)行初始定位;然后迭代使用殘差通道注意力單元(Residual Channel Attention Block,RCAB)[16]對色彩信息進(jìn)行修復(fù),以此提升網(wǎng)絡(luò)的去雨性能。
目前大多數(shù)去雨算法采用如式(1)所示的物理模型處理單幅圖像去雨任務(wù):
其中:I表示拍攝得到的雨圖;J表示雨圖的背景信息;Si表示雨紋;n表示雨紋數(shù)量。去雨主要為了從相機采集的雨圖I中恢復(fù)清晰的背景圖像J,由于背景圖像J和雨紋信息Si分布未知,雨紋的大小姿態(tài)未知,導(dǎo)致去雨任務(wù)變得復(fù)雜。本文整合CLSTM 和RCAB 結(jié)構(gòu),設(shè)計新的雨紋去除網(wǎng)絡(luò)——生成對抗去雨網(wǎng)絡(luò)(Generative Adversarial Deraining Network,GADN)。
GADN 的生成網(wǎng)絡(luò)(Generative Network,GN)主要由CLSTM 和RCAB 單元組成。GADN 除了GN 還包含判別器網(wǎng)絡(luò)(Discriminative Network,DN)和VGG-16 網(wǎng)絡(luò),網(wǎng)絡(luò)主體結(jié)構(gòu)如圖1 所示。GN 主要借助CLSTM 結(jié)構(gòu)對雨紋進(jìn)行定位,并產(chǎn)生雨紋MASK,然后利用RCAB 對雨紋信息進(jìn)行學(xué)習(xí)。本文在GN 中引入多尺度特征融合思想,通過對雨圖進(jìn)行2倍、4 倍下采樣得到尺度金字塔結(jié)構(gòu),同時在GN 的后半部分中增加RCAB 結(jié)構(gòu)[17],配合殘差組(Residual Group,RG)進(jìn)行雨紋特征融合,最終將各尺度層擬合得到的雨紋特征進(jìn)行反卷積上采樣融合。DN 由7 個卷積模塊組成,在網(wǎng)絡(luò)末尾使用全連接結(jié)構(gòu)判斷去雨圖與真實背景圖片之間的相似性;另外,加入一個VGG-16 網(wǎng)絡(luò),并載入網(wǎng)絡(luò)的預(yù)訓(xùn)練權(quán)重,計算去雨圖和真實背景圖之間的概念感知損失(conceptual Perception Loss,PL),加速GN 的網(wǎng)絡(luò)收斂。
圖1 GADN模型的主體結(jié)構(gòu)Fig.1 Main structure of GADN model
表1 GN結(jié)構(gòu)設(shè)計Tab.1 GN structure design
為探求不同雨紋之間的尺度大小關(guān)聯(lián),同時為增加GN對不同尺度的雨紋的學(xué)習(xí)能力,研究引入CLSTM 單元學(xué)習(xí)不同雨圖中雨紋的關(guān)聯(lián)性,增加網(wǎng)絡(luò)對不同尺度雨紋的定位能力。傳統(tǒng)LSTM 結(jié)構(gòu)僅適用于序列任務(wù),無法對空間特征進(jìn)行學(xué)習(xí)。結(jié)合雨紋空間特征分布的相似性,本文采用CLSTM 單元對雨線長度等空間信息進(jìn)行學(xué)習(xí)。通過將LSTM中的全連接權(quán)重改為卷積權(quán)重,得到如圖2 所示CLSTM 結(jié)構(gòu),表達(dá)如式(2)所示:
圖2 CLSTM結(jié)構(gòu)Fig.2 CLSTM structure
其中:*代表卷積操作;·代表逐元素相乘操作;σ代表Sigmoid 函數(shù);tanh 代表Tanh 激活函數(shù);xt表示輸入特征;W為各個卷積的權(quán)重矩陣;bi、bf、bc是偏置向量。CLSTM 通過記憶門限權(quán)重對雨紋的特征進(jìn)行記憶,Ht代表處理第t張圖片時的隱藏層向量,CLSTM 將傳統(tǒng)LSTM 的全連接權(quán)重改為卷積權(quán)重以更好適應(yīng)計算機視覺任務(wù),對雨紋的學(xué)習(xí)狀態(tài)由X和Ht-1決定。
雨圖的高頻分量中包含大量雨紋分布信息,不適合在通道之中被平等對待。平等處理會阻礙GN 對雨紋信息的擬合能力,造成許多可直接傳輸?shù)骄W(wǎng)絡(luò)末端的低頻分量被GN 主干網(wǎng)絡(luò)學(xué)習(xí),使得GN 對雨紋的學(xué)習(xí)能力下降。為了使GN專注學(xué)習(xí)高頻成分中的雨紋信息,本文在GN 引入RCAB,并使用殘差嵌套結(jié)構(gòu)(Residual In Residual,RIR)構(gòu)造殘差組(RG)。每個RG 結(jié)構(gòu)由多個RCAB 和長跳躍連接(Long Skip Connection,LSC)組成。RCAB 的殘差結(jié)構(gòu)和RCAB 的LSC結(jié)構(gòu)允許背景信息的低頻分量通過跳躍連接進(jìn)行直接前向傳播,這樣的設(shè)計使RIR 主體權(quán)重能夠?qū)WW(xué)習(xí)雨圖高頻成分的雨紋信息;同時GN 使用RCAB 中的通道注意力機制(Channel Attention,CA)對雨圖高頻成分中的背景細(xì)節(jié)信息賦予較小的權(quán)重,以此過濾高頻分量中的背景細(xì)節(jié)信息,借助通道之間的相互依賴,自適應(yīng)地進(jìn)行注意力權(quán)重調(diào)整。
對于輸入CA 的特征向量X∈RH×W×C,首先進(jìn)行全局池化處理(Global Pooling,GP)得到特征圖M∈RC,其中X的第k個通道的特征向量通過GP 得到mk,GP 操作使用φgp表示,計算如式(3)所示:
其中:k∈{0,1,…,C-1};H和W分別代表卷積核的高度和寬度;i和j代表特征圖中的像素坐標(biāo)??蓪A 模塊處理方法表示如式(4)所示:
其中:δ代表Leaky ReLU 激活函數(shù);Convi×i代表核為i×i的卷積操作;r表示卷積后通道減少倍數(shù)。GN 首先對特征圖X的每個通道Xk進(jìn)行GP 處理得到尺寸為1 × 1 ×C的特征向量Xk;然后使用兩次1 × 1 的卷積核進(jìn)行處理,得到尺寸變化先后為1 × 1 ×、1 × 1 ×C的特征向量X2;最后將X2進(jìn)行Leaky ReLU 函數(shù)激活,并與輸入CA 模塊的特征向量X進(jìn)行點乘得到X′∈RH×W×C。對于輸入RCAB 的特征向 量X0∈RH×W×C的計算方式,如式(5)所示:
其中:X1、X2、Xout∈RH×W×C代表RCAB 中的特征向量;φCA代表CA 模塊的處理函數(shù)。RCAB 對輸入的特征向量X0分別進(jìn)行卷積、ReLU 函數(shù)激活、卷積操作后得到X1,然后將X1送入CA 模塊進(jìn)行縮放得到X2,將X0和X1相加得到輸出特征Xout,其中RCAB 中的卷積核大小均為3 × 3。
在RG 模塊中存在B個RCAB 模塊,一個卷積和LSC 組成,結(jié)構(gòu)如圖3(b)所 示。對于送入RG 的特征圖X0∈RH×W×C,其特征圖的計算如式(6)所示:
圖3 殘差通道注意力網(wǎng)絡(luò)Fig.3 Residual channel attention network
GADN 的網(wǎng)絡(luò)生成器損失LG包括3 項,分別為PL 損失Lps、正則損失項L2和邊緣信息損失Ledge,如式(7)所示:
其中:λ1和λ2表示Ledge、Lps損失函數(shù)的權(quán)重參數(shù),本文λ1和λ2設(shè)置為0.05 和0.001 以平衡Ledge損失項。三項損失計算如式(8)~(10)所示:
其中ε 代表接近于0 的參數(shù)。
本文中將去雨圖與真實背景圖片的結(jié)構(gòu)相似性(Structural SIMilarity,SSIM)和峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)加入GN 損失中,如式(8)~(10)所示,其中:fssim和fpsnr分別代表計算Io與IR的SSIM 和PSNR 函數(shù),VGG 表示提取VGG-16 網(wǎng)絡(luò)的2、4、6 卷積層的特征向量的操作函數(shù),Lap 表示使用拉普拉斯算子提取邊緣的函數(shù)。DN 損失表示判別器判斷GN 生成圖片是否為原圖所產(chǎn)生的判別損失。根據(jù)GAN 定義,該項損失訓(xùn)練趨向0.5 為宜,LD如式(11)所示:
其中:IR代表雨圖,Io代表GN 生成的去雨圖,Igt代表雨圖對應(yīng)的真實背景圖;D(Io)代表Io經(jīng)過DN 處理得到的概率向量,D(IR)代表IR經(jīng)過DN 處理得到的概率向量,根據(jù)交叉熵值判斷Io與IR之間向量的判別誤差。
本文實驗基于64 位Ubuntu 21.04 系統(tǒng),其中CUDA 版本為11.2、CUDNN 版本為8.2、Python 版本為3.7,GPU 為NVIDIA RTX-5000,主機內(nèi)存為128 GB,GPU 為16 GB。實驗基于Tensorlfow-GPU 1.6.0 進(jìn)行訓(xùn)練,圖片尺寸大小為256×376,批處理大小設(shè)置3,采用Adam 優(yōu)化器,初始學(xué)習(xí)率設(shè)為0.2,采用Momentum 優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.02,二者學(xué)習(xí)率采用指數(shù)衰減,學(xué)習(xí)率衰減率設(shè)為0.95,且每1 000 輪更新一次。
本文實驗使用合成的數(shù)據(jù)集進(jìn)行測試,驗證GADN 的去雨性能,并使用消融實驗對GN 各模塊性能進(jìn)行測試,同時使用SOTA(State-Of-The-Art)網(wǎng)絡(luò)模型進(jìn)行對比。模型使用的合成數(shù)據(jù)集共18 200 對雨圖,每對包含雨圖和相對應(yīng)的真實背景圖。本文在公開的Rain100L、Rain100H 等數(shù)據(jù)集上與SOTA 模型進(jìn)行對比,具體訓(xùn)練集及測試集圖片組成如表2 所示。
表2 去雨數(shù)據(jù)集組成Tab.2 Composition of deraining datasets
為驗證各模塊對模型總體去雨的效果影響,對模型各模塊進(jìn)行消融測試。對CLSTM 的使用次數(shù)t、RCAB 模塊的迭代次數(shù)B、RG 迭代次數(shù)C的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行測試,同時采用公開數(shù)據(jù)集Real200 進(jìn)行評估。實驗分別測試CLSTM 存在與否、不同RG 模塊數(shù)量、不同RCAB 模塊數(shù)量情況下,GADN的去雨性能。實驗結(jié)果如表3 所示,Model3、Model4、Model5、Model6 模型增加RG 迭代次數(shù)的同時,造成網(wǎng)絡(luò)模型推理時間增加。為了達(dá)到模型推理速度和性能的平衡,研究模型將RG 模塊的迭代次數(shù)設(shè)置為10。對比實驗Model1、Model2、Model5,CLSTM 對雨紋去除效果,比未加該模塊的Model2 測試得到的PSNR 和SSIM 指標(biāo)增加明顯,同時Model5 比Model2、Model1 的效果更好,如表3 和圖4 所示,說明CLSTM模塊生成的雨紋MASK 對雨紋去除效果有優(yōu)化作用。
圖4 熱力圖生成對比示意圖Fig.4 Heatmap generation and comparison diagram
表3 消融實驗結(jié)果Tab.3 Experimental results of ablation
模型通過使用不同數(shù)量CLSTM 模塊、RCAB 模塊、RG 模塊進(jìn)行消融測試。對比Model3、Model4、Model5,去雨效果隨著RG 數(shù)量增加而逐步上升,展現(xiàn)了殘差通道注意力機制在圖像修復(fù)方面的優(yōu)勢,但過多的RG 不利于雨紋的去除,如Model6,較深的網(wǎng)絡(luò)對于梯度傳遞效率較差,使得梯度難以有效傳遞到CLSTM 中,造成CLSTM 中大量參數(shù)難以修正。對比Model5、Model7、Model8 中RCAB 的迭代次數(shù)B,將B設(shè)置為4,由于CLSTM 無法進(jìn)行并行計算,會大幅增加網(wǎng)絡(luò)推理時間,所以將t設(shè)置為1。綜合結(jié)果,將GN 結(jié)構(gòu)設(shè)置為表現(xiàn)最優(yōu)Model5 的結(jié)構(gòu)。
為客觀評價模型性能,本文在6 個公開數(shù)據(jù)集上進(jìn)行測試,同時使用現(xiàn)實世界拍攝的降雨數(shù)據(jù)集Real200 模擬真實場景。本文采用的對比模型為DerainNet(Derain Network)[8]、RESCAN(REcurrent Squeeze-and-Excitation Context Aggregation Net)[20]、PreNet(Progressive Image Deraining Network)[21]、MSPFN(Multi-Scale Progressive Fusion Network)[11]。通 過對比上述算法,對GADN 的去雨性能從PSNR、SSIM 指標(biāo)和視覺效果方面進(jìn)行評估。通過對比各模型在各數(shù)據(jù)集上的測試結(jié)果,如表4 和圖5 所示。
圖5 不同模型的效果對比Fig.5 Effect comparison of different models
表4 去雨效果對比Tab.4 Comparison of rain removal effect
實驗結(jié)果表明GADN 可取得比其他模型更優(yōu)的去雨效果。在各測試集上,PSNR 和SSIM 數(shù)值與去雨最好的MSPFN模型相比,PSNR 分別提升0.7、2.4、2.2,評價指標(biāo)SSIM 分別提升0.1、0.1、0.3。GADN 通過使用CLSTM 結(jié)構(gòu)對雨紋位置進(jìn)行感知,生成的MASK 指導(dǎo)雨紋去除。RCAB 配合殘差結(jié)構(gòu)和CLSTM 生成的MASK 對網(wǎng)絡(luò)進(jìn)行指導(dǎo),修正雨線位置上的像素。雨線的色彩修正需要逐步進(jìn)行,網(wǎng)絡(luò)使用逐步殘差結(jié)構(gòu)逐步進(jìn)行學(xué)習(xí)。過多地使用RCAB 和殘差結(jié)構(gòu)會造成網(wǎng)絡(luò)難以訓(xùn)練,梯度難以反向傳遞回CLSTM 結(jié)構(gòu),所以使用消融實驗探求最佳的RCAB 迭代次數(shù),并將網(wǎng)絡(luò)逐步優(yōu)化。
為驗證GADN 在現(xiàn)實場景下的實用性,本文通過對比去雨前后目標(biāo)檢測算法的檢測效果,以此說明雨天條件下,圖像去雨對無人駕駛車輛的環(huán)境感知能力得提升。通過使用相同權(quán)重的YOLOv4(You Only Look Once v4)目標(biāo)檢測模型[22]測試,以此驗證無人駕駛系統(tǒng)的環(huán)境感知能力的提升。本文使用Rain100H 級別的雨圖,進(jìn)行目標(biāo)檢測測試,并進(jìn)行可視化對比,如圖6 所示。對比發(fā)現(xiàn),經(jīng)過去雨處理后的圖片再進(jìn)行目標(biāo)檢測,解決了如圖6(b)中出現(xiàn)的車輛誤檢和漏檢問題,說明GADN 對無人駕駛系統(tǒng)的環(huán)境感知有明顯的提升效果,說明了模型有很強的實用性,可適用于無人駕駛系統(tǒng)在雨天場景下的目標(biāo)檢測任務(wù)。
圖6 去雨前后車輛檢測效果對比Fig.6 Comparison of vehicle detection effect before and after deraining
對于無人駕駛汽車在雨天行車條件下,車載相機拍攝的圖片受雨紋干擾而質(zhì)量下降的問題,本文提出一種單幅圖像去雨算法。本文算法使用卷積長短期記憶單元和殘差通道注意力模塊,分兩步對雨紋進(jìn)行消除。實驗結(jié)果表明,該算法解決了人工偽影和雨紋殘留問題,展示了通道殘差注意力機制在圖像修復(fù)方面的優(yōu)勢,同時也反映了不同雨紋之間存在序列信息相關(guān),使用循環(huán)網(wǎng)絡(luò)結(jié)構(gòu)有利于對雨線位置進(jìn)行感知;但本文算法在對不同姿態(tài)的雨紋和不同強度的雨線的處理上,魯棒性還有待加強。接下來將進(jìn)一步探究多類型天氣條件下圖像修復(fù)問題,并將其運用至無人駕駛、小樣本學(xué)習(xí)任務(wù)中。