傅繼彬,李春輝
(河南財經政法大學 計算機與信息工程學院,河南 鄭州 450046)
雨是自然界中的一種常見氣候,但是雨滴在圖片上造成的雨痕不僅會劣化人對圖像的視覺感受,而且由于大量計算機圖像處理算法都假定輸入圖像清晰且可見度高,因此圖片上的雨痕會對諸如目標檢測、目標跟蹤、圖像分割等圖像處理工作造成不良影響。綜上,圖像去雨模型研究具有重要現實意義。
對于帶有雨痕的圖像,即雨圖像,使用最為廣泛的模型[1-2]為:
其中,O為雨圖像,B為所期望獲得的無雨背景圖像,R為在背景圖像上層的雨痕。圖像去雨的目標即為從O中分離B和R,以獲得無雨背景圖像。由于需要求解的未知項是已知項的2 倍,故求解本身并不容易。因此,實現徹底完善的圖像去雨是計算機圖像處理中一項具有挑戰的工作。
從現有文獻看,雨痕層R主要分為3 類,分別是線性形雨痕、離散雨滴[3]和聚積雨霧[4]。在方法分類上,之前提出的圖像去雨方法大致可劃分為視頻圖像去雨和單幅圖像去雨2 類,其中視頻去雨所需的連續幀圖像與圖像中物體相對穩定的要求在現實拍攝條件下并不容易滿足。而單幅圖像去雨不僅應用靈活,且可用于增強視頻去雨的單幀圖像處理性能。因此,自出現起單幅圖像去雨就是視頻去雨領域的重要研究方向。隨著以視覺Transformer(Vision Transformer,ViT)[5]為代表以Transformer 為基礎的圖像處理方法的出現,以及擺動Transformer(Swin Transformer,ST)[6]的提出,以ST 為基礎構建而成的圖像處理方法Swin 圖像恢復(Swin Image Restoration,SwinIR)[7]能以更優的效能提取圖像內的特征,將其與單幅圖像去雨方法結合可以有效提升其效能。
本文提供一種基于DSRCNN 的單幅圖像去雨模型,利用增強型SwinIR 圖像特征提取模塊優化去雨方法效果,加深DSRCNN 網絡結構,使用更為合理的損失函數,該方法創新點如下:①利用增強型SwinIR 圖像特征提取模塊(Enhanced SwinIR Image Feature Extraction Module,ESIFEM)取代深度去雨卷積神經網絡(Deep Rain Streaks Removal Convolutional Neural Network,DSRCNN)[8]中的殘差塊,提取圖像中的淺層與深層特征,建立Swin DSRCNN 的每級網絡,通過更為高效的特征提取優化去雨方法效果,進而通過若干級網絡的順序結合構成殘差Swin DSRCNN(Residual Swin DSRCNN,RDSRCNN)網絡;②加深DSRCNN 網絡結構并在除最后一級外的每級網絡的輸出上應用殘差連接,串聯本級網絡與上一級網絡的輸出(或原圖像),以此增強DSRCNN 的去雨能力以及保證輸出圖像的無雨背景強度,并降低提取特征所需的模型復雜度,以此構成單幅圖像DSRCNN 去雨模塊(Single Image DSRCNN Derain Model,SIDDM);③在損失函數上,l1范數[9]與MS-SSIM損失函數組成復合損失函數而非單一的l2范數損失函數,這種復合損失函數對圖像亮度、顏色和對比度的保留能力優于l2范數損失函數,可增強網絡本身的學習效率。
圖像去雨可分為視頻去雨和單幅圖像去雨兩種,其中視頻去雨問題最早在文獻[10]中被提出。歷經十幾年發展,視頻去雨領域既有傳統的無網絡方法[11-12],也有基于卷積神經網絡(Convolutional Neural Network,CNN)的端到端深度學習去雨方法[12-13]。近期,Jayaraman 等[8]提出一種基于高效視頻編碼器(High-Efficiency Video Coder,HEVC)后處理優化算法DSRCNN,在此方法中,通過合理利用激活函數等方法避免了CNN 在去雨任務下的過擬合問題并加快了網絡收斂速度。
單幅圖像去雨工作由于其較高的復雜度,研究起步晚于視頻去雨。在傳統方法中,Kang 等[14]提出通過將去雨問題轉換成形態分量分析(Morphological Component Analysis,MCA)問題實現單幅圖像去雨痕。該方法利用基于MCA 的字典學習和稀疏編碼將圖像分為有雨和無雨兩部分,進而完成去雨。Chen 等[15]提出并建立一種在二維圖像上將矩陣變換為張量的低秩雨貌模型以捕獲時空相關的雨痕,而后將這種模型泛化到高階的圖像結構(例如圖像)上。
2017 年后,單幅圖像去雨方法中引入了深度學習方法。DerainNet[16]通過學習無雨圖像和雨圖像之間的非線性映射關系進行去雨,深度細節網絡(Deep Detail Network,DDN)[17]通過學習負殘差細節實現去雨。Yang 等[18]提出聯合雨水探測和清除(Joint Rain Detection and Removal,JORDER)的方法,首先利用膨脹網絡學習主要特征,然后逐步去雨。隨著循環擠壓—激勵上下文聚合網(Recurrent Squeeze-and-Excitation Context Aggregation Net,RESCAN)[19]、漸進循環網絡(Progressive Recurrent Network,PReNet)[20]、密度感知的 多流密 集連接 網絡(Densityaware Multi-stream Densely Connected Network,DIDMDN)[21]與空間關注網絡(Spatial Attentive Network,SPANet)[22]等模型提出,深度神經網絡已經成為去雨模型的主流算法。
Vaswani 等[23]首次提出Transformer 的概念,其在自然語言處理[24-25]上取得最先進的技術(State of the Art,SOTA)表現。在圖像處理方面,Transformer 的自注意力機制沒有CNN 卷積核處理不同的圖像區域效果不佳這一問題,而是能捕獲全局圖像內容間的互動。由此其最初被應用于圖像處理[26]和高級視覺問題處理[27-28]中。雖然全局自注意力機制能高效捕捉長距離上的像素互動,但其計算復雜度會隨著圖像分辨率的上升而呈平方級提高。舉例而言,一幅大小為h×w,其圖像的全局自注意力處理的計算復雜度Ω(MSA)為(C為常數):
因此,全局自注意力機制不適用于高分辨率圖片。針對這一問題,文獻[6-7,29]給出了大致2 種解決方案:文獻[6-7]指出只對一個像素四周區域,即一個窗口的區域進行窗口自注意力處理;文獻[29]指出將輸入圖像分解為多個互不重疊的塊,而后分別對各塊內進行自注意力處理。以上文獻指向限制自注意力處理的擴展范圍,以求在捕捉盡可能長距離像素之間關系的前提下實現高效圖像處理。
本文端到端單幅圖像去雨方法RDSRCNN 的去雨網絡為N級網絡,如圖1 所示。整體網絡的輸入為由單幅雨圖像與無雨真值圖像所構成的圖像對,將圖像對中的雨圖像輸入特征提取模塊進行特征提取并去雨,真值圖像用于每一級網絡。每級網絡的輸入∈Rc×h×w在經過歸一化及特征提取后,取得第n個特征張量特征張量的大小cE×hE×wE根據方法中人為設置的投影維度(本文為90×16×16)確定。而后將特征輸入DSRCNN去雨模塊進行處理,處理結果為第n個中間結果圖像,然后將中間結果圖像與圖像對中的真值圖像輸入混合損失函數LMix并進行反向傳播。如此,整個網絡中的一級處理結束,若網絡級數低于設置數量(本文中為4),則下一級網絡的輸入為即對本級網絡輸入與上一級輸出連接1×1 卷積,使用卷積是為了統一輸入尺寸。對于沒有上一級的第一級網絡,為圖像對中的單幅雨圖像。輸出結果則為網絡的最終輸出結果,即無雨圖像Iderain∈Rc×h×w。

Fig.1 Structure of the network圖1 網絡結構
由于文獻[8]中DSRCNN 的原網絡主要處理對象是視頻圖像,如上文所述,視頻雨圖像的幀間圖像具有時空上的連續性,故視頻去雨方法可以利用這種連續性以較低的計算代價捕捉雨痕的特征,或者利用背景相對雨痕靜止以提取背景特征。對于單幅圖像去雨,由于其數據集中的圖像之間并不具有時空上的連續性,故若以DSRCNN 這類視頻去雨網絡直接處理單幅圖像結果會十分不理想,最終通常無法完成去雨任務。為了避免這一問題在RDSRCNN 中出現,在特征提取方面,本文利用基于SwinIR 設計的Swin-IR 特征提取模塊以提取雨圖像中的特征。
增強型SwinIR 特征提取模塊基于SwinIR 方法設計,其大體結構如圖2(a)所示,包含淺層特征提取與圖2(b)中的增強型深層特征提取模塊(Enhanced Deep Feature Extraction Module,EDFEM)。淺層特征提取模塊與文獻[7]中方法相同,使用3×3 卷積層HSF(·) 從輸入圖像中提取出淺層特征F0∈RH×W×C,即:

Fig.2 Structure of ESIFEM and its internal models圖2 ESIFEM 及其各內部模組結構
H、W、Cin、C分別是輸入圖像的長、寬、通道數和特征張量的通道數。EDFEM 以增強型RSTB(Enhanced Residual Swin Transformer Block,ERSTB)層(圖2(c))為基礎構建,每個ERSTB 都由受到文獻[6]的啟發而構建的增強型STL(Enhanced Swin Transformer Layer,ESTL)(圖2(d))和全局Transformer 層(Global Transformer Layer,GTL)構成(圖2(e))。ESTL 內部包含2組自注意力處理,其中一組以窗口多頭自注意力(Window Multi-head Self Attention,WMSA)處理特征張量以提取窗口內特征,另一組以Swin 窗口自注意力(Swin Window Multi-head Self Attention,SWMSA)處理第一組的輸出以保證窗口自注意力處理不會忽略窗口周圍的像素對窗口內圖像的影響。在每個殘差Swin Transformer 塊(Residual Swin Transformer Block,RSTB)的末尾包含以整個輸入張量而非張量窗口為處理對象的全局多頭自注意力(Global Multi-head Self Attention,G-MSA)的GTL 而非ESTL 作為尾端處理模塊以較低代價避免W-MSA 和SW-MSA 造成的全局像素關系信息缺失。
式(4)—式(8)表述的是EDFEM、ERSTB、GTL 和ESTL處理其輸入特征張量的過程。因此得知,利用SwinIR 在特征提取階段對于去雨任務的泛化能力,不僅保留了ESIFEM 對圖像特征的高效提取能力,而且通過改進SwinIR 中的模塊而設計的ESTL 與GTL 使ESIFEM 在維持ST 類圖像特征提取方法的低復雜度前提下,還獲得了利用窗口外像素輔助進行特征以及一定的全局像素間關系特征的提取能力。FESIFEM的上述特征,給予了RDSRCNN 處理單幅雨圖像的數據基礎。
為使視頻去雨方法DSRCNN 能夠有效處理單幅雨圖像,SIDDM 對原始DSRCNN[8](以下稱為原始去雨網絡)做了3 項改進,即增強網絡學習能力、輸出迭代和殘差連接處理。
在增強網絡學習能力方面,以卷積—激活—池化的方式構建復合卷積層代替原始去雨網絡中單純的所有卷積層處理。其目的首先是增強初始化模塊對于不同方向、密度和粗細雨痕的探測能力,其次是增加原始去雨網絡中負責增強學習能力的批歸一化層的深度,利用復合卷積層與池化層使其變為一個3 層并聯深度網絡模塊,以多種卷積核大小(這里使用的是([hprev/2]+1,[wprev/2+1]))處理多尺度雨痕問題。
對于原始去雨網絡而言,由于輸入的幀間圖像為多個區分度較低的相同背景雨圖像,若對結果進行迭代處理可能會由于對某些特征的過度學習,加重原始去雨網絡的過擬合傾向,故不對去雨結果進行迭代處理。由于RDSRCNN 的輸入為除雨痕特征外互不相關的圖片,對于輸出的迭代不會引起與原始去雨網絡一樣的嚴重過擬合情況。相反,由于每個SIDDM 輸出的都是相對其輸入圖像的雨痕弱化圖像,通過殘差連接對雨痕進行增強后輸入下一個SIDDM 中進行處理即可在維持本SIDDM 的雨痕提取效果的前提下通過增強不易被捕捉雨痕的方法提升SIDDM 最終的雨痕捕捉比例與效果,也即通過逐級增強SIDDM 的去雨效果最終達成RDSRCNN 相對于原始去雨網絡在單幅圖像去雨上的性能優勢。
最后,通過池化層統一輸入特征張量,初始化模塊處理張量以及改進歸一化模塊輸出張量的大小,并將整合特征張量輸入3 個串聯線性層。由于無論是ESIFEM 或是SIDDM 都更傾向于提取圖像中的高頻特征,即雨痕,故線性層輸出的是雨痕圖像,用輸入的雨圖像與雨痕圖像作差即可輸出本SIDDM 的雨弱化圖像(或最終去雨圖像),SIDDM 的結構如圖3所示。

Fig.3 Structure of SIDDM圖3 SIDDM 結構
RDSRCNN 方法采用Zhao 等[30]提出的混合損失函數LMix。結構相似性(Structural Similarity Index Measure,SSIM)提出自文獻[31],SSIM 及以其為基礎的損失函數是針對視覺感受的感知驅動函數。為了克服SSIM 作為損失函數對于高斯濾波器標準差的敏感,文獻[32]提出SSIM的多尺度版本MS-SSIM(Multi-Scale SSIM,MS-SSIM),若將尺度設置為M級,某一像素位置的MS-SSIM 為:
式(9)中,μx、μy分別為2 張圖片在該位置的均值,σx、σy分別為2 張圖片在該位置的方差,σxy為聯合方差,C1、C2為常數,α和βj統一設定為1。由式(9)可得,以MS-SSIM為基礎的損失函數在以像素為中心的圖像塊P上的損失為:
不同于l2范數,l1范數作為損失函數時不會過度懲罰大誤差而容忍小誤差。l1范數的損失函數為:
式(11)中,p為圖像塊P上像素的索引。x(p) 與y(p)是2個輸入圖像塊像素p的值。
根據文獻[33]所述,a=0.84 時效果最佳。相較于l2范數損失函數,文獻[33]中證明混合損失函數LMix在多種圖像處理任務上的效能更優。
為驗證本文所提方法的效能,在Rain100H 數據集上利用DerainNet、DID-MDN 與RDSRCNN 分別進行訓練與測試,給出實驗結果并進行效能對比。參與對比的所有方法都統一在1 800 張圖像的訓練集上訓練300 輪后,再根據訓練模型進行單幅圖像去雨以測試各方法效率。
實驗在Google Colab 上進行。實驗軟件環境為:Python 3.6,Pytorch 1.12.1,CUDA 11.2;實驗硬件環境為:內存52 GB,CPU 主頻2.30 GHz,GPU Tesla P100 。
對比實驗評估分為兩部分:①量化評估,通過峰值信噪比(Peak Signal to Noise Ratio,PSNR)與SSIM 兩個數值,統計所有方法的去雨表現;②主觀視覺評估,通過肉眼觀察處理圖像是否有明顯的模糊、偽影、斑紋等缺陷。通過在數值上與視覺上對各方法進行分析以獲得較為全面的評價。
3.2.1 量化評估
在量化評估方面,各對比方法的PSNR 和SSIM 值如表1所示。

Table 1 PSNRs and SSIMs of comparation methods表1 各對比方法的PSNR與SSIM值
表1 中的前3 行展示了Derain、DID-MDN 和Restormer[33]在Rain100H 上訓練300 輪后結果的PSNR 及SSIM 值。可以看到,除Restormer 外的方法在規定訓練輪數下的量化結果,即PSNR 與SSIM 均不如最后一行的RDSRCNN,Restormer 方法雖然在量化結果上具有完全優勢,但是在訓練期間其內存占用遠超RDSRCNN(內存占用平均比例:Restormer70%,RDSRCNN 50%)且RDSRCNN 的結構較為簡單,更為輕量級,更易于實現。
為了評估本方法中ERSTB 的網絡塊數量對于網絡去雨性能的影響,在實驗中通過分別削減EDFEM 中ERSTB數量為默認值的50%(每個EDFEM 中包含2 個ERSTB 模塊)與削減整個網絡中網絡級數為默認值的50%(總級數為2)進行訓練與去雨測試。測試結果見表1 中4-5 行,可以看到相對于不進行任何模塊與級數削減的完整方法,對ERSTB 與總網絡級數的削減都會導致網絡性能下降,也從側面證明ERSTB 與適當網絡深度對本文網絡整體性能的重要性。為評估混合損失函數LMix對于網絡性能的影響,實驗中在保留完整網絡的網絡結構的前提下,將LMix換為均方誤差損失函數(MSE)進行訓練與去雨測試。結果如表1 第6 行所示,可以看到在規定條件下,其性能仍不及使用LMix的完整網絡,證明本文使用的混合損失函數相較于一般的損失函數MSE 具有更高的性能。
3.2.2 可視化評估
在可視化評估方面,由圖4 可以看出Derain、DIDMDN 中的前景仍有未去除的雨痕(0-12 處),除RDSRCNN和Restormer 外沒有一個對照方法完成了背景雨痕消除工作。RDSRCNN 的去雨結果顯示,圖像前景幾乎無雨痕(0-1 處),背景雨痕去除率高于90%,但存在亮度過高的問題。Restormer 雖然去雨效果較為完美,但空間復雜度性能不如RDSRCNN。
由量化評估與可視化評估結果可以看出,RDSRCNN作為單張圖像去雨方法對系統資源要求較低的同時保證了一定性能,在系統資源有限的場景中有其應用價值。
RDSRCNN 方法在網絡結構上結合了基于SwinIR 特征提取模塊設計的ESIFEM 和基于DSRCNN 設計的SIDDM,利用ESIFEM 基于ST 的特征提取能力彌補了單幅圖像相對于視頻圖像缺乏幀間圖像關系的缺陷,利用增強網絡學習能力、處理結果迭代和殘差連接等方法保證了單幅圖像在SIDDM 上的去雨效果。通過應用更為有效的混合損失函數LMix,提升了去雨網絡量化評價。并且,通過實驗證明了本文提出的增強型方法及其中模塊的有效性與當前先進方法相比具有更強的經濟性。近年來,隨著社會智能化的演進,圖像去雨的應用范圍也將越來越廣泛,將具有重大理論研究與應用價值,本文方法對于同類研究也頗具借鑒意義。