陳崢, 畢曉君
(1.哈爾濱工程大學 信息與通信工程學院,黑龍江 哈爾濱 150001; 2.中央民族大學 信息工程學院, 北京 100081)
下雨是最為常見的自然現象之一。下雨時不同大小形狀的雨滴往往會附著在玻璃窗或相機鏡頭上,導致一些戶外智能設備所采集到的圖像存在遮擋以及模糊的現象[1]。這些不清晰的圖像將直接影響各種后續的目標檢測,語義分割和場景解析等計算機視覺任務。因此,近年來圖像去雨滴任務受到學者們的廣泛關注,成為研究熱點[1-9]。
目前去雨滴方法可以被大致歸為2類:第1類是基于先驗知識的傳統算法[1-2],第2類是基于神經網絡的深度學習方法[3-9]。第1類方法通常需要手工設計或者估計雨滴的退化模型,并利用主觀的先驗知識進行建模。由于存在泛化能力差和計算時間多等缺點,近年來已逐漸被第2類方法所代替。Fu等[3]提出搭建深度細節網絡(DDN)直接學習有雨圖和干凈背景之間的映射。將殘差網絡作為主要結構,以獲得有雨圖深層的圖像特征。盡管其過于單一的網絡結構導致這種模型的性能有限,無法很好地處理下雨天的各種復雜場景,但是該模型的出現卻引發了深度學習方法在圖像去雨滴領域的研究熱潮。特別是近兩年,更多結構復雜且設計精巧的神經網絡應運而生,去雨滴模型的性能有了很大的提高。具有代表性的有Shao等[6]提出了軟掩碼的新思路,用[-1,1]的值表示雨滴對背景圖像的模糊程度,并構建一種多尺度金字塔網絡來移除雨滴。該方法在模型的精度方面確實取得了非常優異的性能。然而,它的模型尺寸越來越大,推理速度也越來越慢。為了解決這一問題,Guo等[7]又設計了一種快速高效的網絡模型。該模型最重要的思想是把圖像去雨問題看成圖像的逐像素濾波問題。由于濾波操作是高度優化的操作,因此該模型在GPU上的推理速度比較快,性能得到了很大提高。但是,該模型的部署和使用仍然需要較多的計算資源和內存消耗。而對于像無人機、自動駕駛汽車或者AI芯片這些存儲空間十分受限的移動終端或者嵌入式設備而言,該模型的參數量仍無法滿足實際應用的需求。因為一套成熟的圖像處理系統需要配備多個不同任務的圖像處理模型。去雨滴作為一種前端任務,如果能夠在保證性能的前提下盡量地減少內存消耗,就會為其他更復雜的任務節省寶貴的存儲資源,從而使整個系統實現更有效的運轉。
基于以上分析,本文提出一種基于輕量級神經網絡的單幅圖像去雨滴模型。首先,采用一種幻像特征生成殘差塊。通過結合逐點卷積[10]、分組卷積[11]以及通道注意力機制[12],解決現有去雨滴模型存在高相似性和高冗余性特征圖的問題,從根本上減少參數量。然而,隨著參數的大幅減少,去雨滴模型的性能必然會下降。為此,進一步設計了一種復合折疊式重用機制,分別在內部模塊及網絡整體結構對有限數量的特征進行回顧式利用,一定程度上彌補了參數較少帶來的性能下降。最后,又提出一種輕量級門控循環單元。目的在于將輕量級去雨滴模型折疊計算前后的深層特征建立聯系,強化信息的交互,進一步提高輕量級去雨滴模型的性能。
目前,單幅圖像去雨滴已成為近年來圖像處理領域的研究熱點,其目的在于將被雨滴污染的模糊圖像復原為清晰的干凈背景,從而降低對后續計算機視覺任務的不利影響,圖1給出了去雨滴任務的示意圖。雨滴圖像的退化模型可以表示為:

圖1 單幅圖像去雨滴任務Fig.1 The raindrop removal task of single image
I(x)=(1-M(x))⊙B(x)+R(x)
(1)
式中:I(x)表示含雨滴的待恢復圖像;B(x)表示不含雨滴的干凈背景圖像,也就是監督網絡訓練時的正確標簽;M(x)表示一組二進制掩碼。M(x)=1時表示在像素點x的位置上包含雨滴區域,M(x)=0則表示該點位置為清晰背景區域;R(x)表示背景圖像與雨滴所反射光線的復雜混合。
現有的去雨滴深度卷積神經網絡普遍包含大量的常規卷積操作。通常情況下,當網絡中輸入特征圖為X∈Rc×h×w,其中c為輸入通道數,h和w分別為輸入數據的高和寬時,如果希望生成n張輸出特征圖,則任意卷積層的計算可以被表示為:
Y=X*f+b
(2)
式中:b是偏置;Y∈Rh′×w′×n表示n通道的輸出特征圖;f∈Rc×k×k×n表示這一層的卷積核;h′和w′分別為輸出特征圖的高和寬;k表示卷積核的尺寸。經計算,上述卷積操作所需要的參數量為n·c·k·k??梢钥闯?,模型的參數量取決于輸入和輸出特征圖的維度。而目前去雨滴神經網絡每一層的卷積核數量n以及通道數c的值都較大,最常見的為128或者256等[6]。這使得現有的去雨滴模型普遍具有大量的參數量,導致巨大的計算消耗和內存占用。通過分析發現,現有去雨滴模型在卷積操作時會產生大量的特征圖,而這些特征圖的樣式有很多類似之處,存在較高的冗余性。為了減少模型的參數量,可考慮不再使用傳統卷積方式來逐一生成大量相似的特征圖,而是設計輕量級去雨滴網絡,通過對一部分已經生成的特征圖進行特定的通道變換,直接完成一種圖到圖之間的線性映射,由此較好地解決現有去雨滴網絡模型特征圖存在高相似性和冗余性特征的問題,從根本上減少模型的參數量。但是,存在的問題是會導致模型的性能有所下降,為此需要通過進一步的模型改進以保證輕量級模型能夠接近目前深度模型的性能,滿足實際應用的部署需求。
本文設計了一種端到端的輕量級單幅圖像去雨滴模型,整體網絡結構如圖2所示。網絡的核心結構由3部分構成:1)幻像特征生成殘差塊;2)復合折疊式重用機制;3)輕量級門控循環單元。其中,幻像特征生成殘差塊用于減少模型的參數量,而復合折疊式重用機制和輕量級門控循環單元用于提高模型的性能。

圖2 輕量級單幅圖像去雨滴模型Fig.2 The lightweight model for single image raindrop removal
幻像特征生成殘差塊是本文實現輕量級去雨滴網絡的核心輕量級組件,包括3部分結構:1)幻像特征生成模塊;2)SE注意力機制[12];3)殘差支路[13],如圖3所示。其中,幻像特征生成模塊在模塊內部對一部分已經生成的特征圖進行特定的通道變換,以線性操作代替傳統卷積操作。SE注意力機制可以為幻像特征生成模塊中的獨立通道賦予不同的權重因子,很好地擬合通道之間復雜的空間相關性。而殘差支路又能夠改善模塊中信息的流通,一定程度上降低了在反向傳播時模型發生梯度消失的概率。

圖3 幻像特征生成殘差塊Fig.3 The ghost feature generation residual block


圖4 幻像特征生成模塊Fig.4 The ghost feature generation block

作為幻像特征生成模塊的重點和難點,上述3種操作的特征圖通道數的選擇非常重要,將直接影響模塊中組卷積的具體分組機制,進而影響模塊的輕量級效果??紤]到當輸出特征圖Y與最初的輸入特征圖X尺寸不一致時,需要引入額外的逐點卷積來調整不同模塊間的通道數,以保證正確構建模型結構。雖然這更有利于模塊內部實現更好的信息融合,但不可避免地帶來更多的參數量以及更大的計算資源消耗,不利于模型的實際應用。因此,本文選擇輸出特征圖Y與輸入特征圖X尺寸一致的情況,這樣將無需使用額外操作調整不同模塊間的通道數,可以使模塊的參數量達到最優,也更利于模型在實際應用中硬件的部署[15]。由此雖然將缺乏逐點卷積對模塊內部信息的融合,但是可以通過后續對模型整體結構的進一步改進彌補性能的少量損失。
假設幻像特征生成模塊的輸入特征圖X和最終的輸出特征圖Y尺寸一致,均為c個通道。若3種操作中逐點卷積f1×1的卷積核個數設為s,則生成的Y1具有s個通道。又因為Y2是由分離Y1所得到,所以Y2和Y1的尺寸相同。而由于Y1與Y存在部分恒等映射關系,所以Y3的通道數必須為c-s。這里需要討論c和s的關系,存在以下3種情況:1)當s/(c-s)>1,即Y1的通道數大于Y3的通道數時,此情況下需要由f1×1產生的較多數量的特征生成較少數量的幻像特征。這將無法發揮組卷積計算高效的優勢,從而產生更大的計算消耗。同時也無法直接完成圖到圖之間的線性映射,所以此情況不符合設計本模塊的初衷。2)當s/(c-s)<1,即Y1的通道數小于Y3的通道數時,此情況下需要由f1×1產生的較少數量的特征直接生成較多數量的幻像特征。此情況下每一張原始特征圖將生成多張新的幻像特征圖,是一種一對多的映射。但是Y2中的每張特征圖都會因此被分配多個卷積核,從而需要更多的參數量;3)當s/(c-s)=1,即Y1或Y2與Y3的通道數相等時,此情況下Y2中的分組卷積則自動變為逐深度卷積,即每一張原始特征圖將會對應生成一張新的幻像特征圖,是一種一對一的映射。此時Y2中的每張特征圖都只會被分配一個卷積核,從而達到參數量的最優。綜上,幻像特征生成模塊將選擇s為c的一半,即Y1、Y2與Y3的通道數相同,將作為最終組卷積的分組機制,組卷積核的尺寸大小則成為進一步研究的對象,其設置需要通過實驗驗證達到最優。
對于SE注意力機制和殘差支路,它們是構建輕量級模塊的常用結構。其中SE注意力機制對特征圖的寬度和高度進行了全局平均池化,然后使用了2個全連接層和非線性激活函數去建立通道間的連接,從而獲取幻像特征生成模塊通道維度上的相關性。而殘差連接則是將模塊的輸入和輸出直接進行線性相加,使信息的前后傳播更加順暢,最終使網絡的訓練更加穩定。
上述幻像特征生成殘差塊較好解決了去雨滴網絡普遍存在參數量大的問題。然而由于其可學習的參數大幅減少,必然會導致輕量級模型的性能有所下降。這里專門設計了復合折疊式重用機制,可提高輕量級模型的性能,具體操作如圖2中折疊箭頭所示。
復合折疊式重用機制的設計受到了行為分割任務中多階段模型[16]的啟發,本質上是對特征實現回顧式重用,也就是讓輕量級模型對有限數量的特征進行多次學習,能夠使特征以循環的方式重復通過網絡。而將此循環展開,就等效于特征被同一組參數的多個串聯的網絡模塊所提取,因此復合折疊式重用機制相當于將一個普通直筒式深度網絡折疊起來,實現了模型尺寸上的壓縮。而其學習特征的方式和深度模型幾乎一致,所以能夠使輕量級網絡實現接近于深度網絡的性能。主要的差異在于復合折疊式重用機制提取的特征多樣性稍弱,這源于輕量級模型本身的可學習參數較少。但這一不足可通過后續設計輕量級記憶單元很好地彌補。
具體而言,復合折疊式重用機制包括內折疊和外折疊2部分操作。其中,內折疊是網絡在前向傳播時對內部的特征提取模塊進行操作。當模型在訓練或者測試時,內折疊操作將位置最后的特征提取模塊的輸出特征重新傳遞給位置最前的特征提取模塊作為輸入特征。此時特征在特征提取模塊的內部進行循環和重用,是一種局部操作和局部的信息傳遞。外折疊是網絡在前向傳播時對模型的整體結構進行操作。它是將模型位置最后的3×3卷積層的輸出特征重新傳遞給模型最初的3×3卷積層,并對整個網絡重復完成一次完整的前向傳播過程。此時特征在網絡整體結構上進行循環和重用操作,是一種全局操作和全局的信息傳遞。通過內折疊和外折疊的融合操作,可實現模型從局部到整體對特征的多次學習過程,最終能夠提高輕量級模型的性能。
復合折疊式重用機制能夠通過特征重用在一定程度上提高輕量級模型的性能。但通過分析發現,其執行折疊操作時生成的多組特征之間并沒有很好地建立聯系,缺少了模型內部的信息交互過程,從而影響了模型的性能。因此可以在網絡中引入強化信息交互的模塊進一步提高輕量級模型的性能。這就類似于人腦對事物的感知和分析過程。當人腦中的信息越全面,且信息之間的聯系越清晰,則會有更大概率對某件事物做出正確判斷。常用的卷積門控循環單元(ConvGRU)[17]雖然能夠實現上述需求,但仍存在結構復雜,參數量大的缺點。對其直接使用不符合設計輕量級去雨滴模型的原則和初衷。所以需要設計一種新的輕量級門控循環單元??紤]到2.1節幻像特征生成模塊自身的輕量級屬性,本文的輕量級門控循環單元選擇對ConvGRU的輸入Xt和隱藏狀態Ht-1引入幻像特征生成模塊。這既可以實現對門控循環單元的輕量化,同時也能夠使網絡模型保持結構的一致性,更有利于模型的訓練。
整體結構如圖5所示,其更新門Zt、重置門Rt、候選隱藏狀態H′t以及隱藏狀態Ht可以被分別表示為:

圖5 輕量級門控循環單元Fig.5 The lightweight gated recurrent unit
Zt=σ(Wxz*Xt+Whz*Ht-1)
(3)
Rt=σ(Wxr*Xt+Whr*Ht-1)
(4)
H′t=tanh(Wxh*Xt+Rt°(Whh*Ht-1))
(5)
Ht=(1-Zt)°H′t+Zt°Ht-1
(6)
式中:σ表示sigmoid激活函數;W**表示對應的權重張量。
由于復合折疊式重用機制包含了內折疊和外折疊2種操作,所以分別將輕量級門控循環單元嵌入到內、外折疊操作所在位置,如圖2所示。位于內折疊操作所在位置的輕量級門控循環單元的作用在于整合特征提取模塊所產生的多組深層特征,實現了局部的信息交互。位于外折疊操作所在位置的輕量級門控循環單元則致力于對網絡學習到的全局特征進行融合和傳遞,實現了全局的信息交互。這二者的結合對模型學到的特征從局部到整體均建立了聯系,從而提高了輕量級模型最終的性能。
為了驗證本文輕量級去雨滴模型的有效性,將進行以下3方面實驗:1)驗證不同結構下幻像特征生成殘差塊的有效性;2)驗證提出的復合折疊式重用機制的有效性;3)驗證輕量級門控循環單元的有效性。為了驗證本文輕量級去雨滴模型的先進性,將與目前效果較好,具有代表性的5種不同類別的深度神經網絡分別進行定量以及定性對比。
本文所有實驗采用文獻[4]所提出的去雨滴數據集“Deraindrop”,因為該數據集在目前圖像去雨滴任務中最權威且最常用。它的訓練集共有861組圖像對,每組圖像對包含一張雨滴圖像以及對應的干凈背景。測試集分為2部分。測試集a有58張圖像,測試集b有249張圖像。測試集b比測試集a的場景更豐富,雨滴的多樣性更強,恢復的難度更大。
為了保證本文輕量級網絡訓練的穩定性,本文采用平均絕對誤差(MAE)和結構相似度(SSIM)[18]來共同監督模型。MAE是2張圖像像素級別上的L1范數,因此可評價像素間的差距;SSIM則從亮度、對比度以及結構來評價2張圖像的相似性。設計的整體損失函數為:
L=α·MAE(y,ygt)+(1-α)·(1-SSIM(y,ygt))(7)
式中:y表示網絡預測得到的無雨滴圖像;ygt表示真實的無雨滴圖像;α是2種損失之間的權重,經實驗驗證,本文在網絡訓練中將其固定設置為0.4。
本文模型以端到端的方式進行訓練,沒有任何預訓練及微調操作。使用圖像恢復領域中最權威最常用的峰值信噪比(PSNR)[19]和結構相似度(SSIM)[18]作為客觀評價指標。其中,PSNR的值能夠反映恢復的圖像與原圖像二者之間像素值的差異,值越高表示恢復的效果越好。SSIM值的范圍在[-1,1],越接近1表示2幅圖像在亮度,對比度和結構上越相近。
本文所有實驗基于PyTorch1.6框架[20],使用英偉達2080Ti GPU(11 G)進行計算加速。使用Adam優化器更新模型參數。batch size設置為8,epoch設置為80。初始學習率設置為10-3,并在第20、40和60個epoch的時候減小5倍。
3.4.1 幻像特征生成殘差塊
本節實驗對組卷積核的尺寸設置進行討論。為了探索不同尺寸的組卷積核對幻像特征生成殘差塊性能的影響,選擇尺寸為1×1、3×3和5×5的常見卷積核來遍歷模塊中的線性操作φ1j和φ2j。實驗結果如表1所示??梢钥吹?,單獨使用1×1卷積核會產生明顯的性能下降。這是因為1×1卷積核往往只會聚焦于逐個像素之間的聯系,而忽略了特征圖中的有效空間信息。此外,隨著卷積核尺寸的增加,模型的性能逐漸改善。當卷積核尺寸為3×3和5×5的組合時,達到了最優效果。這是因為3×3和5×5的組合會為網絡提供更多不同范圍大小的感受野,從而網絡能夠更好更全面地感知和提取雨滴圖像的有效特征,最終使模型針對不同測試集均具有更優秀的魯棒性和泛化能力。

表1 不同結構幻像特征生成殘差塊的實驗結果Table 1 The experimental results of ghost feature generation residual modules with different structures
3.4.2 復合折疊式重用機制
本節實驗驗證復合折疊式重用機制的有效性,設計了4種實驗作為對比。分別為:無折疊操作、僅內折疊、僅外折疊以及最終的復合折疊。其中,無折疊操作即表示直筒式網絡結構。僅內折疊表示模型只對幻像特征生成殘差塊實現局部的特征重用。僅外折疊表示模型只在全局結構上實現特征重用。而最終的復合折疊則融合了上述內外折疊2種操作。因為折疊操作并不會引入額外的卷積層,所以這4種架構下的參數量始終保持一致。實驗結果如表2所示。可以看到,相比于無折疊操作,不論何種單獨的折疊操作均會帶來明顯的性能增益,而復合折疊式重用機制則取得了最優的定量結果。上述結果表明,在設計輕量級去雨滴網絡時,常見的直筒式網絡并非最佳選擇,因為其具有特征利用弱的固有缺點。在參數量有限的情況下,復合折疊式重用機制可以彌補由參數較少帶來的性能下降,從而提高輕量級模型的表現能力。

表2 不同折疊操作下的實驗結果Table 2 The experimental results of different folding operations
3.4.3 輕量級門控循環單元
本節實驗驗證輕量級門控循環單元的有效性,共有4組對比實驗。分別為:無門控循環單元、門控內循環單元、門控外循環單元以及門控內/外循環單元。其中,無門控循環單元表示網絡中沒有記憶模塊。門控內循環單元表示只對內折疊操作所在位置引入輕量級門控循環單元。門控外循環單元表示只對外折疊操作所在位置引入輕量級門控循環單元。門控內/外循環單元則表示模型對內折疊以及外折疊操作所在位置均引入了輕量級門控循環單元。實驗結果如表3所示。對于本文復合折疊式的輕量級去雨滴網絡而言,即使在內折疊操作或外折疊操作處單獨引入輕量級門控循環單元,也會帶來一定的性能提升。這說明輕量級門控循環單元能夠建立局部或全局特征之間的聯系。而復合折疊循環單元相比于無門控循環單元在測試集a中實現了接近1 dB的性能提高。這說明復合折疊循環單元能夠使輕量級模型在參數量一定的情況下,實現了信息從局部到整體的完整交互過程,最終最大化提高了模型的性能表現。

表3 輕量級門控循環單元的有效性驗證Table 3 Validation of lightweight gated recurrent units
為了驗證本文模型的先進性,選擇了5種最具代表性的先進模型作為對比。對這5種網絡的描述如下:
1)DDN[3](CVPR-17):第1個基于神經網絡的圖像去雨模型;
2)AttGAN[4](CVPR-18):融合了注意力機制的生成對抗網絡;
3)DURN[5](CVPR-19):以對偶殘差連接方式構建的深度卷積神經網絡;
4)UMAN[6](TIP-21):結合軟掩碼編碼的多尺度金字塔網絡;
5)EfDerain[7](AAAI-21):推理速度全面占優的高效去雨模型。
表4展示了6種去雨滴算法的圖像復原結果,最優和次優結果分別以加粗和下劃線表示。從表4可以看出,本文在雨滴較稀疏的測試集a上取得了最好的定量結果。PSNR和SSIM指標分別比第2名的AttGAN和DURN高出0.15 dB和0.012。在場景更為復雜,恢復難度更大的測試集b上,本文取得了最好的PSNR指標以及第2名的SSIM結果。其中SSIM指標與第1名EfDerain只相差0.008 9。然而,本文輕量級模型的總參數量比目前效果較好且時間較新的算法降低了2個量級,即107~105。具體而言,本文模型相比于DURN節省了18倍的參數,相比于UMAN節省了37倍,以及比EfDerain節省了51倍。上述定量結果體現了本文輕量級模型的先進性。此外,圖6、7展示了在公開數據集上不同算法復原圖像的定性對比。可以看到,本文模型雖然減少了大量的參數,卻依然可以保證復原圖像的整體視覺效果。而且圖像的紋理細節也沒有因參數量的大幅減少而變得模糊或者丟失。綜上所述,本文輕量級去雨滴模型很好地實現了性能和參數量的平衡,較好地解決了深度學習去雨滴網絡在移動端或嵌入式設備中難部署的問題,從而充分體現了其潛在的實際應用價值。

表4 不同算法去雨滴結果的定量對比Table 4 Quantitative comparison of raindrop removal results of different algorithms

圖6 背景目標復雜時的定性比較Fig.6 Qualitative comparison when the background target is complicated

圖7 在真實街道場景的去雨滴定性比較Fig.7 Qualitative comparison of raindrop removal in real street scenes
1)本文面向圖像去雨滴任務提出了一種新穎的輕量級神經網絡。解決了現有深度網絡由于特征圖具有高相似性和冗余性所帶來的參數量大,不利于實際應用的問題。
2)本文提出一種幻像特征生成殘差塊,實現了模型參數量的大幅減少;同時提出復合折疊式重用機制以及輕量級門控循環單元,有效改善了輕量級去雨滴模型的性能。
3)在公開的基準數據集上的實驗結果表明,本文模型在性能持平或略高于現有先進方法的前提下,實現了參數量2個量級的壓縮,達到了實際應用部署的模型要求。
4)本文模型的思路為今后設計新的輕量級去雨滴模型具有一定的指導意義。未來將會嘗試結合網絡結構搜索技術進一步實現去雨滴網絡的更輕量化。