劉彥紅,楊秋翔,胡帥
(中北大學軟件學院,山西 太原 030051)
隨著計算機視覺的快速發展,各種圖像處理技術不斷改進和拓展。在視頻監控、自動駕駛等戶外視覺系統中,圖像采集常常受到惡劣天氣尤其是霧霾天氣的影響,這種影響會降低能見度和視覺體驗,同時極大程度地降低后續圖像識別、分割、分類等效果。霧霾是一種普遍存在的天氣現象,由于空氣中懸浮的微小顆粒散射、吸收或反射光線等行為對光線傳播造成干擾和阻礙,導致空氣中物體的對比度、顏色等特征衰減,從而影響人類視覺觀感。因此,需要圖像去霧技術消除霧霾區域,提高圖像的質量。
近年來,基于深度學習的圖像去霧技術成為去霧領域的主要研究方向[1],該類技術因其強大的特征學習和上下文信息提取能力,可以自動學習模型參數,得到霧霾圖像與清晰圖像之間的映射關系。目前,基于深度學習的圖像去霧技術主要分為兩大類:一類是借助物理模型和先驗知識的圖像去霧方式,通過分析圖像中的色彩、亮度、對比度等特征,估計霧霾的程度和分布,進而采用適當的算法進行修復和增強,或通過大氣散射模型等圖像處理技術消除圖像中的噪聲和失真,最終得到清晰自然的圖像;另一類是完全神經網絡的端到端去霧方式[2],該類方法不需要額外的先驗知識就可直接生成清晰的無霧圖像,具有更好的自適應性和魯棒性。
目前,端到端的圖像去霧技術仍然存在很多問題:一是計算成本高,因其涉及較復雜的模型架構和大規模的數據訓練,需要耗費大量的計算資源;二是在真實場景中,圖像去霧效果往往不理想,面臨著質量損失、去霧估計不準確、多尺度處理等問題。
為了使圖像去霧網絡能夠充分捕獲多尺度之間的信息差異,同時融合坐標維度、通道維度等多方面信息,本文在FFA-Net[3]模型的基礎上進行改進,提出一種基于特征差異的多尺度特征融合去霧(FD-CA dehaze)網絡。引入特征差異(FD)模塊用于捕獲不同階段霧霾的差異信息。設計一種有效坐標注意力(ECA)模塊,用于減輕特征融合過程中位置信息丟失的問題。提出一種雙注意力(D-CA)模塊,其將通道注意力(CA)[4]和ECA模塊相結合,CA關注通道之間的相關性,與更加關注位置信息和空間信息的ECA相結合能夠獲得更加全面和準確的特征表達,從而提升模型的性能和泛化能力。在此基礎上,修改損失函數,分別采用L1損失函數和感知損失函數,L1損失函數用于衡量模型預測結果與真實標簽之間的差異,感知損失函數可以使模型更好地學習圖像的內容特征,還原圖像高頻信息。在綜合目標測試集(SOTS)和混合主觀測試集(HSTS)上進行實驗,以驗證本文所提FD-CA dehaze網絡的去霧效果。
大氣散射模型[5]成像原理如圖1所示(彩色效果見《計算機工程》官網HTML版,下同)。空氣中存在很多塵埃、水滴、煙霧、霾、氣溶膠物等顆粒物質,光線與該類物質碰撞之后方向發生一定的偏移,導致光的散射和衰減,人眼或照相機接收到的光強度降低,從而影響物體成像。

圖1 大氣散射模型成像原理Fig.1 Imaging principles of atmospheric scattering model
大氣散射模型公式如下:
I(x)=J(x)t(x) +A(1-t(x))
(1)
t(x)= e-βd(x)
(2)
其中:I(x)表示有霧圖像;J(x)表示原始圖像(無霧圖像);A是全局大氣光強;t(x)是透射率,可由式(2)進行計算;β是全散射系數;d(x)為場景深度。
在式(1)中,I(x)是已知的,其余變量均為未知參數,不太易于求解,通常通過先驗知識求解透射率t(x),然后根據模型或其他方法求解全局大氣光強A和無霧圖像J(x)。
基于先驗知識的去霧算法主要包括暗通道先驗算法[6]、顏色衰減算法[7]等。隨著深度學習的不斷發展,許多學者將其與圖像去霧相結合,提出很多優秀的算法。文獻[8]認為介質傳輸圖估計的好壞在很大程度上影響了去霧效果,其提出基于神經網絡的端到端學習和估計介質傳輸圖系統DehazeNet,從而恢復無霧圖像。文獻[9]改變了以往從粗到細實現去霧的方式,對不同霧度采用不同級別的監督方式進行學習,提出水平感知漸進網絡LAP-Net。文獻[10]改變以往分別估計大氣散射模型中透射率和大氣光強2個參數的方式,首次提出一體式估計參數的端到端圖像去霧網絡AOD-Net。文獻[11]發現僅僅使用基于先驗的去霧方法會產生偽影,因此,將基于學習的方式與該方法相結合,提出基于暗通道先驗去霧(DCP)網絡的兩階段去霧框架RefineDNet,使用不成對的弱監督方式訓練網絡。文獻[12]考慮到去霧領域先驗知識等信息的缺乏,預訓練出一個離散碼本,用于封裝高質量先驗,并通過一對編解碼器來構建去霧網絡RIDCP。
由于物理模型的準確性、先驗知識的表達能力等存在限制,越來越多的學者采用完全神經網絡的圖像去霧方式。文獻[13]為減少擴張卷積造成的網格偽影,提出門控上下文聚合網絡GCANet,通過平滑擴張殘差模塊聚合上下文信息,利用門控融合子網模塊融合不同級別的特征,并將霧度殘差加入到網絡中,得到了較好的復原效果。文獻[14]通過平滑空洞卷積提出基于殘差注意力的去霧網絡,該網絡在編碼器-解碼器的基礎上添加多尺度特征提取和特征融合模塊,以多模塊組合形式實現端到端圖像去霧。文獻[15]在網格網絡的基礎上提出端到端的去霧卷積神經網絡GridDehazeNet,網絡由3個模塊組成,可訓練的預處理模塊提供多樣性的輸入,基于注意力的主干模塊有效地融合不同尺度特征,后處理模塊減少輸出圖像的偽影。文獻[3]提出一種新穎的特征注意力模塊用于去霧網絡FFA-Net,該網絡結合通道注意力和像素注意力,并以自適應學習的方式賦予特征不同的權重參數,在特征融合的基礎上讓網絡更加專注厚霧等重要特征,產生了很好的去霧效果。
生成對抗網絡是一種無監督的機器學習方法,主要包含生成器和鑒別器兩部分。近些年,很多學者將生成對抗網絡用于圖像去霧領域,取得了很好的效果。文獻[16]在生成器和鑒別器中都使用沙漏形網絡,生成器基于U-Net設計含跳層結構的卷積神經網絡,并使用絕對損失函數,所提網絡能夠有效地應用于圖像去霧和加霧任務。隨著ViT(Vision Transformers)[17]這一神經網絡架構的提出,許多學者將其應用于高級視覺任務。文獻[18]提出一種改進Swin的圖像去霧神經網絡DehazeFormer,通過修改歸一化層、激活函數、空間信息聚合方案等,在去霧成本和去霧效果方面相對其他網絡得到提升。
本文提出的FD-CA dehaze網絡如圖2所示,該網絡劃分為2個階段,第一階段將有霧圖像作為網絡的輸入,經過一個用于提取淺層信息的卷積層,將特征圖傳至多尺度特征融合模塊中,多尺度特征融合模塊由殘差卷積注意力(RC)模塊、FD模塊、ECA模塊組成,之后連接每個模塊產生的特征信息,再經過第二階段中的D-CA模塊和2個卷積模塊的處理,最后通過跳躍連接生成去霧圖像。

圖2 FD-CA dehaze網絡結構Fig.2 Network structure of FD-CA dehaze
RC模塊網絡結構如圖3所示,由n個3×3卷積、ReLU、3×3卷積和特征注意力模塊組成。其中,特征注意力模塊由CA模塊和像素注意力(PA)模塊[19]兩部分組成,CA可以使網絡關注不同通道的特征,PA使模型關注圖像中的高頻細節(如厚霧)等像素特征。具體來說,首先使用3×3的卷積層對輸入圖像進行特征提取;然后通過ReLU函數進行非線性變換,進一步提高特征的表達能力;之后再次使用3×3的卷積層進行特征提取,特征注意力模塊對特征圖中的不同區域進行加權處理;最后通過跳躍連接將原始數據與處理后的數據相加,捕獲并保留更多的信息和細節。

圖3 RC模塊結構Fig.3 RC module structure
CA通過全局平均池化將全局空間信息轉化為信道描述符,然后經過卷積、ReLU和Sigmoid操作,將初始輸入與通道CA進行元素乘法運算。與CA類似,PA的輸入為通道CA的輸出結果,首先經過2個具有ReLU和Sigmoid激活函數的卷積層,將其從C×H×W轉換為1×H×W,再將輸入與PA輸出結果進行元素相乘,得到特征注意力模塊的輸出結果。在本文中,n的值設置為19。
CA實現過程可由式(3)~式(6)表示:

(3)
y2=Conv(ReLU(Conv(y1)))
(4)
y3=Sigmoid(y2)
(5)
c=y3?x
(6)
PA實現過程可由式(7)~式(9)表示:
y4=Conv(ReLU(Conv(c)))
(7)
y5=Sigmoid(y4)
(8)
p=c?y5
(9)
其中:Xc(i,j)為坐標(i,j)處第c個通道的值;global_pool為全局池化函數;?為逐像素相乘。
去霧圖像常常存在邊緣界限模糊、噪聲較多等問題,而文獻[20]研究發現,添加了FD模塊的網絡在逐像素點相加的過程中可以有效獲取差異信息,減少霧霾的影響,因此,本文將其引入至本網絡的多尺度特征融合模塊中。FD模塊主要由2個相鄰的殘差卷積注意力塊差值組成,優點是能夠幫助模型學習到更精細的特征表示,從而提高性能。上述過程可由式(10)、式(11)表示:
FFD,1=RRC,2-RRC,1
(10)
FFD,2=RRC,3-RRC,2
(11)
已有研究發現注意力模塊(如SE[21]、CBAM[22]、Coordinate Attention[23]等)能夠有效提升模型性能。本文改進了Coordinate Attention注意力,在Coordinate Attention中,全局池化會造成位置信息丟失,本文提出將通道注意力與位置信息相融合的注意力方式,在捕獲跨通道信息的同時也能獲取方向感知和位置敏感信息。但是,由于該融合方式采用的全局池化常常會忽略局部細節和多尺度信息,為此,本文提出一種有效坐標注意力模塊ECA,將最大池化選擇分支引入到通道注意力中,將全局池化和最大池化并聯,并使用參數α和β確定其比例,其中,α、β總和為1,本文將α、β的值均設置為0.5。ECA模塊如圖4所示。

圖4 ECA模塊結構Fig.4 ECA module structure
在ECA注意力模塊中,主要分為ECA坐標信息嵌入和ECA注意力生成兩部分:前者將全局池化信息和最大池化信息壓縮在通道描述符中的內容分解為水平和垂直2個方向,形成一對方向感知特征圖;后者充分利用獲取到的位置信息,準確突出厚霧或高頻區域。
2.3.1 ECA坐標信息嵌入
全局池化將整個特征圖內的信息壓縮到一個通道描述符中,常常無法準確保留不同的位置信息。最大池化能保留部分位置信息,但仍然存在位置信息丟失和不變性的問題。位置信息對于恢復清晰圖像和準確估計深度圖非常關鍵,因此,將全局池化、最大池化與位置信息相結合可以更好地幫助模型理解圖像空間結構,保留重要的局部特征以及獲取不同層次的特征表達。具體而言,為了更好地了解霧的分布情況,本文將全局池化和最大池化分解為一對一維特征編碼的形式。對于輸入的特征X,本文采用2個空間范圍的池核 (H, 1) 和 (1,W),分別在水平和垂直坐標上對每個通道進行編碼,其中,高度為h的第c個通道的輸出可表示為:

(12)
其中:α和β均為0.5。
同理,寬度為w的第c個通道的輸出如下:

(13)
2.3.2 ECA注意力生成
通過在x軸和y軸方向上的分解,得到了一個方向感知特征圖對。現在需要對2個方向上的信息進行融合,并忽略一些如薄霧和低頻等不重要的特征,同時充分考慮通道間的信息。因此,本文使用Concat和1×1卷積方式進行連接,首先通過歸一化和非線性激活函數處理2個方向融合的特征,歸一化可以避免梯度消失并加快收斂速度,使用Sigmoid激活函數可以提高網絡模型的非線性能力;之后,再次將特征圖劃分成X和Y這2個方向上的一維張量,表示為Ih和Iw;最后,通過卷積和Sigmoid激活函數分別處理一維張量,并將其融合為二維圖像。
上述過程可由式(14)~式(18)表示:
I=act(BN(Conv(cat(Ac,Bc))))
(14)
Ih,Iw=split(I)
(15)
fh=Sigmoid(Conv(Ih))
(16)
fw=Sigmoid(Conv(Iw))
(17)
y(i,j)=x(i,j)*fh(i)*fw(j)
(18)
其中:I是中間特征圖,I∈C×(H+W),其編碼了水平方向和垂直方向的空間信息;Conv表示1×1卷積;fh∈C×H;fw=C×W;y(i,j)即為最終的ECA注意力。
D-CA模塊結構如圖5所示,由CA模塊、ECA模塊及跳躍連接串聯而成,該種組合方式可以更好地利用輸入圖像中的空間信息和通道信息,并且獲取有用的位置信息,從而提升模型的性能和泛化能力。

圖5 D-CA模塊結構Fig.5 D-CA module structure
本文損失函數由L1損失和感知損失組成,總損失函數如式(19)所示:
L=L1+λLP
(19)
其中:L1表示L1損失函數;LP表示感知損失函數;λ表示2個損失函數之間的相對權重,將其設置為0.04。
2.5.1 L1損失函數
L1損失函數是預測值FD-CA(Ih)與真實值Igt之間距離的平均值,如式(20)所示:

(20)
其中:?為FD-CA dehaze網絡中的參數;Igt代表ground truth;Ih代表有霧圖像。
2.5.2 感知損失函數
感知損失函數通過預訓練的神經網絡來計算真實圖像與輸出圖像之間的差距,本文使用VGG16[24]的預訓練模型,從前3個卷積層(Conv1-2、Conv2-2、Conv3)中提取多尺度特征。感知損失函數定義為:

(21)

具體測試環境設置:GPU為GeForce RTX 3090,顯存為24 GB,CUDA版本為11.2,cuDNN版本為8.4.0,PyTorch為1.12.1,編譯語言為Python 3.8,操作系統為Ubuntu 20.04。
在實驗中,設置輸入圖像大小為240×240×3,整個網絡在訓練集中訓練7×105個批次。使用Adam優化器對參數進行調優,設置參數β1和β2分別為0.9和0.999。經圖6的實驗對比,將初始學習率設置為0.000 1,并通過余弦退火策略將學習率從初始值調整到0。

圖6 學習率對比結果Fig.6 Learning rate comparison results
RC模塊中通道注意力、像素注意力參數設置如表1所示。ECA模塊中參數α、β對比實驗結果如表2所示,其中最優數據加粗標注。可以看出,當α、β均為0.5時去霧效果達到最佳。

表1 CA、PA模塊參數設置Table 1 Parameter configuration for CA and PA modules

表2 參數α、β對比實驗結果Table 2 Parameterαandβcomparative experiment results
RESIDE[25]是一個大規模去霧數據集,由真實和合成的有霧圖像組成,包含訓練集和測試集兩部分。在訓練集中,本文選擇室內訓練集(ITS)和戶外訓練集(OTS)。ITS訓練集包含13 990張有霧的室內圖像,由1 399 張清晰圖像生成。OTS訓練集包含296 695張有霧的戶外圖像,由8 477張清晰圖像生成。由于室內、室外光線以及照片清晰程度等的影響,本文手動篩選出8 972張室內訓練的清晰合成圖和3 564張戶外訓練對。
在測試集中,選擇RESIDE中的綜合目標測試集(SOTS),該測試集包括500張室內和戶外的有霧圖像,按照與訓練集相同的處理方式合成有霧圖像。同樣地,為保證本文模型在真實世界中的去霧效果,本文還選擇混合主觀測試集(HSTS),其包含10張真實的有霧圖像和10張合成的戶外有霧圖像。
3.3.1 SOTS測試集上的結果
在SOTS合成數據集上進行測試,將本文方法與經典去霧方法(DCP、AOD-Net、GCANet、DehazeFormer-T、FFA-Net、GridDehazeNet和RefineDNet)進行定量和定性比較。其中,選用峰值信噪比(PSNR)和結構相似度(SSIM)評估去霧效果。PSNR是基于圖像像素灰度值的統計,SSIM代表圖像結構信息的相似程度,這2個數值越高,代表去霧效果越好。峰值信噪比和結構相似度對比結果如表3所示,去霧效果如圖7所示。

表3 SOTS測試集上的定量結果Table 3 Quantitative results on the SOTS test set

圖7 SOTS測試集上的去霧效果Fig.7 The dehazing effect on the SOTS test set
由表3可以看出:DCP室內外的PSNR和SSIM指數均偏低,與原始無霧圖像有較大差距;AOD-Net的PSNR指標基本在20 dB左右,SSIM約為0.85,去霧圖像存在一定的失真和噪聲;與AOD-Net相比,RefineDNet雖然僅在PSNR上提高了3 dB,但在SSIM上有了明顯提升,表明RefineDNet去霧后的圖像與原圖相似度更高;GCANet、FFA-Net、DehazeFormer-T和GridDehazeNet去霧效果明顯優于RefineDNet,PSNR提升了近10 dB,SSIM均約為0.98,表明它們去霧后的圖像質量較高并且更加清晰,與原始圖像相比失真較小;本文方法在PSNR指標上達到了37.93 dB,SSIM指標達到0.99,與其他方法相比具有更好的去霧效果和更小的失真。
由圖7可以看出:盡管DCP能夠有效去霧,但是導致圖像顏色加重;AOD-Net在去霧后仍然存在大量薄霧,去霧效果不理想;GCANet的去霧效果較好,但在天空場景或大片空白場景下出現了明顯的色彩加重和加深現象;在復雜場景或極端天氣條件下,GridDehazeNet的去霧效果不佳;在恢復圖像細節和顏色時,RefineDNet存在不均勻性和模糊問題;與上述方法相比,FFA-Net和DehazeFormer-T的去霧效果得到大幅提升,但是在細節還原、亮度恢復等方面不及本文所提網絡;本文網絡能夠有效消除濃霧,恢復清晰的圖像,并保留紋理和顏色信息。
3.3.2 HSTS測試集上的結果
為確保本文網絡同樣適用于實際場景,采用HSTS數據集進行對比實驗,將本文方法與經典去霧方法(DCP、AOD-Net、GCANet、FFA-Net、GridDehazeNet、RefineDNet和DehazeFormer-T)進行對比,結果如圖8所示。

圖8 HSTS測試集上的去霧效果Fig.8 The dehazing effect on the HSTS test set
由圖8可見:在真實場景中,DCP存在嚴重的失真問題,特別是在處理大片空白區域(如天空、湖面等)時表現不佳,細節信息丟失嚴重;AOD-Net會加重天空的顏色,同時部分圖像存在霧氣現象;與AOD-Net相反,GCANet在部分區域顏色會變淡或變亮,尤其是在圖像中不同物體的交界處會出現光暈現象;雖然FFA-Net在合成數據集中表現出色,但是對于真實場景處理能力較差,存在較多薄霧現象;GridDehazeNet同樣存在大量霧霾現象,并且細節恢復效果較差;RefineDNet存在顏色失真問題,生成的去霧圖像顏色偏深;DehazeFormer-T去霧圖像顏色偏深,且色彩對比度較弱;本文方法的去霧效果更符合真實場景,還原度更好。
鑒于篇幅限制,圖9和圖10展示了剩余部分HSTS數據集的測試結果。從中可以看出:圖9(b)的樹木細節信息恢復完整,圖片邊緣界限清晰且無霧;圖9(d)的云朵紋路明顯,色彩飽滿,立交橋、房屋建筑等細節清晰;圖10(b)去霧效果明顯,圖像對比度增強;圖10(d)去霧效果符合人眼觀感,還原了真實的場景。

圖9 去霧效果1Fig.9 Dehazing effect 1

圖10 去霧效果2Fig.10 Dehazing effect 2
3.3.3 運行時間對比
將本文方法與其他方法在SOTS測試集中處理一張圖片的平均時間進行對比,結果如表4所示。可以看出,DCP的處理速度最慢,DehazeFormer-T的處理速度最快,本文方法的處理速度雖然次于FFA-Net和DehazeFormer-T,但是去霧效果明顯優于其他7種對比方法。

表4 不同方法處理一張圖片的平均時間對比Table 4 Comparison of average time for processing an image using different methods 單位:s
3.4.1 網絡結構
為證明FD-CA dehaze網絡提出的每個組件和模塊的必要性,在SOTS測試集中進行消融實驗。在消融實驗中,本文網絡模型的訓練設定為700 000次迭代,在相同實驗條件的情況下,分別添加FD模塊、ECA模塊和D-CA模塊進行消融研究,實驗結果如表5、圖11所示,訓練過程中的各項指標對比如圖12~圖14所示。

表5 網絡結構消融實驗定量結果Table 5 Quantitative results of network structure ablation experiments

圖11 網絡結構消融實驗對比Fig.11 Comparison of network structure ablation experiments

圖12 網絡結構消融實驗中的PSNR指標Fig.12 PSNR index in network structure ablation experiments

圖13 網絡結構消融實驗中的SSIM指標Fig.13 SSIM index in network structure ablation experiments

圖14 網絡結構消融實驗中的訓練loss Fig.14 Training loss in network structure ablation experiments
從表5可以看出:不使用FD模塊、ECA模塊和D-CA模塊的模型去霧效果最差;添加FD模塊的模型PSNR指標約提升1 dB,SSIM也有小幅提升;添加ECA模塊的大部分模型在PSNR和SSIM指標上有所提升;在添加D-CA模塊的4組對比實驗中有3組去霧效果得到了提升。綜合來看,雖然實驗5中將第一階段中ECA模塊替換成CA和PA的組合形式獲取了SSIM中的最大值,即0.991 0,但是PSNR明顯低于本文網絡。
由圖11可以看出,大部分不含FD模塊的圖像顏色恢復效果偏深,特別是對于湖面和天空區域,細節處理效果不佳,尤其是在模型4中,即在沒有FD模塊、ECA模塊和D-CA模塊的情況下,網絡的去霧能力表現最差,顏色嚴重失真,并伴有大量霧霾現象。在增加ECA模塊和D-CA模塊后,湖面倒影中的樹木細節更完善,同時增強了圖像的對比度,實現了真實自然的還原效果,提高了圖像的清晰度,細節更加明顯。
從圖12~圖14可以看出,本文網絡性能明顯優于其余對比網絡,因此,本文使用的FD模塊、ECA模塊和D-CA模塊均具有實際作用。
3.4.2 損失函數
為進一步驗證本文提出的損失函數的可行性和有效性,對其不同組合方案進行消融實驗,著重研究L1損失和感知損失對網絡性能的影響。本實驗在合成數據集中進行,除損失函數改變外其余實驗細節均不變,最終結果見表6。由表6可以看出,在分別使用L1損失函數和感知損失函數的情況下,網絡去霧效果相差不大,PSNR和SSIM分別約為35 dB和0.98;在將兩者組合的情況下,即本文提出的L1損失和感知損失共同使用時,PSNR和SSIM分別約提升2 dB和0.01,去霧效果達到最高,這表明本文所提損失函數具有有效性。

表6 損失函數消融實驗結果Table 6 Results of loss function ablation experiments
3.4.3 注意力機制
為進一步驗證本文提出的ECA注意力機制的有效性,將多種不同的注意力方式放置于網絡第一階段的ECA位置處,對比實驗結果如表7所示。從表7可以看出,與其余注意力對比,本文提出的ECA注意力模塊去霧效果最佳。

表7 注意力機制消融實驗結果Table 7 Results of attention mechanism ablation experiments
本文提出一種基于特征差異的多尺度特征融合去霧網絡。設計一種ECA模塊,以減輕特征融合時的位置信息丟失問題,同時提出D-CA模塊,更好地利用空間和通道信息。在此基礎上,通過引入特征差異模塊FD,實現霧霾分離同時恢復圖像的細節和清晰度。在RESIDE數據集上進行訓練和測試,將所提網絡與FFA-Net、GridDehazeNet等多種方法進行對比,實驗結果表明,該網絡取得了更加出色的去霧效果,在實際應用中也展現出更好的去霧性能。下一步將融入先驗知識,或將所提網絡與大氣散射模型相結合,進一步降低訓練成本,使得本文網絡能夠更好地適應真實去霧場景。