楊德明,吳青娥,謝 添,陳 虎,安紫明
(1.鄭州工業(yè)技師學院,河南 新鄭 451150;2.鄭州輕工業(yè)大學 電氣信息工程學院,河南 鄭州 450002)
大氣污染造成的霧霾惡劣天氣大大降低了能見度,嚴重影響著機器視覺正常工作,如目標檢測和識別。當今社會迫切需要有效的去霧算法[1-4]消除霧霾對機器光學視覺系統(tǒng)的影響。單幅圖像去霧是一個病態(tài)問題,去霧研究面臨著諸多嚴峻的挑戰(zhàn)。近年來,科研人員提出了許多有效去霧方法用于消除霧霾對機器視覺的影響,當今流行的去霧方法大致可以分為基于先驗的方法和基于機器學習的方法。這兩種方法之間最明顯的區(qū)別在于,前一種是手工制作的,后一種是自動學習的。在傳統(tǒng)的基于先驗的方法中,許多圖像統(tǒng)計先驗被用作額外的約束條件去霧,如Narasimhan等人[5-6]提出的大氣散射模型,以補償破壞過程中的信息丟失。He等人[7]提出的暗通道先驗(DCP)算法,是基于先驗算法去霧效果較為突出的成熟算法。He等人對大量室外無霧圖像研究后,提出室外無霧圖像塊通常在至少一個顏色通道中具有低強度值的假設,即暗通道先驗。但是,由于室外環(huán)境復雜,基于先驗的方法會導致傳輸圖的估計不準確,缺乏暗原色的大面積白色物體及天空區(qū)域的圖像去霧時,去霧圖像存在顏色失真現(xiàn)象。近期其他基于暗通道先驗的改進算法[8-10]在先驗估計的基礎上做了大量改進工作,取得不錯的去霧結果。
伴隨著神經網絡技術的日臻成熟,采用機器學習中的深度學習去霧算法不斷涌現(xiàn)。具有開創(chuàng)性神經網絡去霧工作的是Cai等人[11]提出用于介質透射率估計的可訓練端到端去霧系統(tǒng)(DehazeNet),該算法非真正的端對端去霧,因此去霧圖像存在比較大的失真現(xiàn)象。Ren等人[12]提出了一種用于單圖像去霧的多尺度深度卷積神經網絡(MCNN),由粗尺度網絡和局部細化結果的細尺度網絡用于預測有霧圖像透射圖。Li等人[13]提出端到端一體化去霧網絡算法(AOD-Net),該輕量級算法首次提出端到端的神經網絡去霧算法,并取得不錯的去霧效果。然而由于去霧網絡模型過小,該算法同樣存在去霧失真現(xiàn)象。Chen等人[14]提出了一個端到端的門控上下文聚合網絡(GCANet)直接恢復最終的無霧圖像,并采用可以去除網格偽影的平滑擴張技術[15],用來獲得上下文信息。Zhang等人[16]提出了一種密集連接金字塔去霧網絡(DCPDN)的單幅圖像去霧端到端系統(tǒng),采用具有多級金字塔池化模塊[17]進行金字塔視野擴張[18],及邊緣保留密集連接的編碼器-解碼器結構估計傳輸圖,同時采用U-net[19]結構還原出圖像的全局大氣光矩陣,然后依據大氣散射模型還原出無霧圖。
針對上述問題,本文提出一種端到端具有條件約束的金字塔視野擴張網絡(CCPVEN)去霧算法。本文算法采用金字塔視野擴張模塊可以有效提取圖像的上下文信息,采用大氣散射模型為約束條件的去霧網絡,并對去霧網絡添加非線性組件,強化網絡對非線性去霧任務的學習能力,有效解決單幅圖像去霧的諸多病態(tài)問題,較精確估計出無霧圖。
為了去除霧霾天氣對計算機光學視覺采集圖像的影響,研究霧霾天氣下的大氣散射模型有助于圖像精確去除霧霾。 McCartney作為去霧研究的先驅,最先提出大氣散射模型構想,而Narasimhan等人[5-6]在不同天氣條件下研究大氣粒子特性,通過大量實驗結果提出并完成了大氣散射模型,其模型如式(1)所示。依據式(1)可知,有霧圖像中隱含景物圖像透射圖t(x)和全局大氣光值A:
I(x)=J(x)t(x)+A(1-t(x))。
(1)
該模型包含物體反射光衰減模型以及環(huán)境大氣光模型兩部分,其中x為二維圖像像素值,有霧圖像用I(x)表示,無霧圖像用J(x)表示,大氣光值用A表示,大氣透射率t(x)定義如式(2)所示。
t(x)=e-βd(x),
(2)
式中,β代表大氣散射系數(shù),d(x)代表景深。景深越深,大氣透射率越小,前景物體反射的光線被散射越嚴重。為了實現(xiàn)利用大氣散射模型單幅有霧圖像有效去霧,式(1)變形為式(3)。
J(x)=I(x)/t(x)+A(1-1/t(x))。
(3)
依據式(3)可知,若能夠利用單幅有霧圖像信息估計出大氣透射圖t(x)和全局大氣光值A,可以利用式(3)實現(xiàn)有霧圖像有效去霧。傳統(tǒng)去霧算法難以解決單幅有霧圖像準確去霧問題,面臨著諸多病態(tài)問題。
借助深度學習算法能夠較好地還原圖像隱含有t(x)和A的特征圖數(shù)據,有效解決單幅圖像去霧諸多病態(tài)問題。Li等人[13]提出AOD-Net算法,其提出算法如式(4)所示。由于該算法屬于輕量級去霧網絡,面對單幅圖像去霧任務這一病態(tài)問題,該去霧算法得到的去霧圖像J(x)仍存在一定的去霧圖像失真問題。為了進一步提高去霧圖像品質,有效克服單幅圖像去霧面臨的諸多病態(tài)問題,本文提出CCPVEN去霧算法對J(x)進一步精細處理,將有霧圖I(x)和J(x)相減,得到差值D(x),如式(5)所示。然后對D(x) 進行非線性處理得到差值特征圖(D(x))′。最后將I(x)和(D(x))′相減得到比較精確無霧圖(J(x))′,如式(6)所示。
J(x)=K(x)I(x)-K(x)+b,
(4)
D(x)=I(x)-J(x),
(5)
(J(x))′=I(x)-(D(x))′。
(6)
采用深度學習算法估計出無霧圖是近年來去霧算法研究的熱點。單幅圖像去霧任務面臨諸多病態(tài)問題,當今諸多神經網絡去霧算法缺乏去霧模型條件約束,較難解決單幅圖像去霧出現(xiàn)的諸多病態(tài)問題,導致去霧圖像常常出現(xiàn)去霧斑塊、色彩畸變等失真現(xiàn)象。同時視野尺寸較小的卷積核難以提取圖像的上下文信息,而圖像的上下文信息是解決單幅圖像去霧所面臨的諸多病態(tài)問題的關鍵因素。為此本文提出一種端到端的具有大氣散射模型條件約束的金字塔視野擴張網絡去霧算法,在去霧模型的約束的基礎上,增加非線性去霧模塊,能夠準確去霧。本文算法整體結構如圖1所示。

圖1 CCPVEN算法整體結構圖
根據大氣散射模型可知,有霧圖像隱含圖像透射率和全局大氣光值。傳統(tǒng)去霧方法難以準確估計圖像透射圖及全局大氣光值,去霧效果存在瑕疵。近年來隨著科技的發(fā)展,神經網絡去霧算法成為當前圖像去霧的研究熱點。本文提出算法是從單幅有霧圖像中還原出其隱含有圖像透射率和全局大氣光值的數(shù)據,并以大氣散射模型為條件約束,增加非線性去霧模塊,估計出無霧圖像,較好地克服單幅圖像去霧的諸多病態(tài)問題。本節(jié)詳細解釋CCPVEN算法結構和多分量損失函數(shù)。本文提出算法網絡結構如表1所示,其中卷積層設置欄(Layer setting)中3×3,32,1,1,Relu依次表示為卷積核尺寸為3×3,神經元個數(shù)為32,stride為1,padding為1,采用Relu激活函數(shù)。其他卷積層設置同理。
2.1.1 CNN1網絡模塊結構
本文算法中的CNN1網絡模塊,輸入有霧圖像,提取多維圖像特征圖,為還原出有霧圖像中隱含有透射率和全局大氣光值的特征圖數(shù)據做準備。CNN1網絡結構如表1所示。

表1 CCPVEN算法結構
CNN1網絡中的卷積神經網絡M1_conv1和M1_conv2對有霧圖像初步提取特征圖,將該提取特征圖送入由M1_Block1、M1_Block2和M1_Block3組成的三級堆疊網絡提取多維特征圖,后經M1_conv3卷積層提取出多維特征圖Coarse_map1。為下一步從有霧圖像中還原出隱含有前景圖像透射率和全局大氣光值的特征圖提供數(shù)據。
2.1.2 PVEM模塊
利用去霧模型還原無霧圖像,準確獲取隱含有圖像的透射圖和全局大氣光值數(shù)據,需要獲得圖像上下文信息。由于一般卷積核比較小,造成神經網絡感受視野范圍比較小,無法獲取相鄰事物圖像的上下文信息。為增大神經網絡感受視野,獲取圖像的上下文語義信息,本文提出金字塔視野擴張模塊(PVEM),其模塊結構如圖2所示,PVEM網絡結構如表1所示。PVEM模塊接收來自CNN1輸出的Coarse_map1多維特征圖,首先經P1_conv1卷積層進行特征提取。PVEM模塊中視野擴張部分由二級池化kernel 2×2的P1_ pooling1、kernel 4×4的P1_ pooling1以及二級多尺度卷積kernel 5×5的P1_ conv2、 kernel 7×7的P1_ conv3形成空間金字塔結構。每級池化模塊組成包含最大池化層、上采樣層和卷積層。P1_ conv1卷積層輸出的特征圖經空間金字塔網絡進行視野擴張?zhí)崛√卣魈幚砗螅玫紹×C×H×W維度的4組特征圖,并按C維度組合特征圖Concat_map1,后經Fusion1模塊的P1_conv4 和P1_conv5二級卷積網絡融合處理得到Fusion_map1特征圖。特征圖Fusion_map1和CNN1模塊輸出的特征圖Coarse_map1按C維度組合特征圖Concat_map2,特征圖Concat_map2經Fusion2模塊的P1_conv6一級卷積網絡融合處理得到Fusion_map2特征圖。Fusion_map2特征圖數(shù)據為下一步還原出隱含有圖像透射率和全局大氣光值的特征數(shù)據提供數(shù)據支持。

圖2 PVEM結構圖
2.1.3 CNN2網絡還原K(x)及去霧模塊
為還原出隱含有霧圖像中的透射圖和全局大氣光值的特征數(shù)據,本文提出CNN2網絡算法。CNN2網絡結構如表1所示。PVEM模塊輸出的Fusion_map2融合特征圖送入CNN2網絡模塊,經兩級卷積神經網絡M2_conv1和M2_conv2進一步提取特征圖。將P1_conv6卷積網絡輸出的特征圖和M2_conv2卷積網絡輸出的特征圖按C維度上拼接組成特征圖Concat_map3。組合特征圖Concat_map3經M2_conv3、M2_conv4、M2_conv5三級卷積神經網絡進行特征提取、特征圖正則化和維度變換后得到隱含有t(x)和A的K(x)。將K(x)代入式(4)得到去霧圖J(x)。
2.1.4 CNN3網絡非線性處理和無霧圖像還原模塊
單幅圖像去霧面臨諸多病態(tài)問題,利用去霧模型還原無霧圖是遠遠不夠的。為增加神經網絡對非線性去霧任務學習能力,產生較好的去霧效果,本文提出CNN3網絡算法。初步得到的去霧圖J(x)送入CNN3網絡進行非線性處理,以期得到較好的去霧效果。CNN3結構如圖3所示,CNN3網絡結構如表1所示。有霧圖I(x)和去霧圖J(x)相減,得到差值D(x)。D(x) 送入CNN3網絡中的三級卷積網絡M3_conv1、M3_conv2和M3_conv3進行提取差值特征圖,然后將M3_conv2輸出的特征圖和M3_conv3輸出的特征圖按C維度拼接組成組合特征圖Concat_map4,然后將Concat_map4送入M3_conv4、M3_conv5和M3_conv6進行提取特征圖和調整維度,得到差值特征圖(D(x))′。最后將I(x)和(D(x))′相減最終得到精確去霧圖(J(x))′。

圖3 CNN3模塊結構圖
通常神經網絡去霧算法采用單一均方誤差(MSE)[20]損失函數(shù)訓練網絡。為了使本文提出的去霧網絡能夠更多還原出無霧圖像的細節(jié),本文定義多分量損失函數(shù),用于訓練所提出的CCPVEN網絡。一分量是用MSE損失衡量預測去霧圖像和真實無霧圖像間的像素相似性;二分量是用小波[21]感知損失衡量預測去霧圖像和真實無霧圖像間的結構相似性;三分量是采用HSV[22]類似人眼感知損失衡量預測去霧圖像和真實無霧圖像間的色彩相似性。本文提出的多分量損失函數(shù)如式(7)所示。式(7)中LMSE(Θ)代表含義為從像素層面角度預測無霧圖像。

(7)
式中,LMSE(Θ)、LWP(Θ)和LHSV(Θ)分別表示為:
(8)
WAVELET(Ji(x))=2,
(9)
HSV(Ji(x))=2。
(10)
為驗證本文提出去霧算法的有效性和魯棒性,采用RESIDE[23]合成霧霾數(shù)據集訓練本文提出的去霧網絡,并進行去霧對比實驗。實驗平臺采用 CPU i5-7500 處理器、顯卡采用 GTX 1080Ti、內存為16 G、操作系統(tǒng)為ubuntu16.04的臺式計算機,并運用Python3.5及Pytorh0.4.1對本文所提去霧算法進行編程實驗。訓練網絡采用的多分量損失函數(shù)系數(shù)α、β及神經網絡權值約束懲罰系數(shù)λ分別采用0.5、0.5及0.001。
為了驗證本文CCPVEN去霧算法的有效性和魯棒性,與當今流行去霧算法進行對比去霧實驗。對比實驗評價數(shù)據采用戶外真實場景數(shù)據集(O-HAZE)[24],主觀評價去霧圖像是否存在色彩及圖像結構失真現(xiàn)象,客觀評價利用PSNR 和 SSIM 圖像相似性評價指標[25]進行對比實驗,從主觀和客觀角度評估各去霧算法的優(yōu)劣。
3.1.1 本文算法與其他流行去霧算法主觀評價對比去霧試驗
本文算法和DCP[7]、AOD-Net[13]、GCANet[14]近年來流行的去霧算法進行主觀評價對比實驗,主觀評估本文算法的可行性與有效性。主觀評價對比去霧試驗如圖4所示。
其中圖4(a)、圖4(g)、圖4(m)為3張有霧圖像,圖4(b)、圖4(h)、圖4(n)采用DCP[7]算法的3張去霧圖像,圖4(c)、圖4(i)、圖4(o)為采用AOD[13]算法的3張去霧圖像,圖4(d)、圖4(j)、圖4(p)為采用GCA[14]算法的3張去霧圖像,圖4(e)、圖4(k)、圖4(q)為本文去霧算法的3張去霧圖像,圖4(f)、圖4(l)、圖4(r)為3張真實無霧圖像。
首先,對比圖4(f)、圖4(l)、圖4(r) 3張真實無霧圖像,觀察圖4(b)、圖4(h)、圖4(n)3張DCP算法去霧圖像,紅色圓標記部分均存在天空和前景物體圖像交界處圖像顏色失真現(xiàn)象,這是因為該算法存在先天不足,由于天空區(qū)域缺乏暗原色,該算法過低估計圖像天空及其交界過渡區(qū)域透射率,造成天空及過渡區(qū)域圖像過度去霧,致使圖像顏色及圖像結構較大失真。通過主觀評價對比實驗可知,DCP算法去霧圖像存在較大失真現(xiàn)象。
其次,對比圖4(f)、圖4 (l)、圖4 (r)3張真實無霧圖像,觀察圖4(c)、圖4(i)、圖4 (o)3張AOD算法去霧圖像,紅色圓標記部分的前景物體圖像均出現(xiàn)色飽和度較大失真現(xiàn)象。這是由于該算法用一變量K(x)代替圖像全局大氣光值和透射率函數(shù)關系,無法準確利用去霧模型去霧,致使去霧圖像存在色飽和度較大失真現(xiàn)象。通過主觀評價對比實驗可知,AODnet算法去霧圖像存在圖像色飽和度較大失真現(xiàn)象。
再次,對比圖4(f)、圖4 (l)、圖4 (r) 3張真實無霧圖像,觀察圖4(d)、圖4 (j)、圖4 (p)3張GCA算法的去霧圖像,紅色圓標記部分前景物體圖像均出現(xiàn)嚴重圖像色調失真現(xiàn)象。由于該算法沒有采用去霧模型條件約束,該算法網絡難以勝任存在諸多病態(tài)問題的去霧任務。通過主觀評價對比實驗可知,GCA算法去霧圖像存在色調較大失真現(xiàn)象。
最后,對比圖4(f)、圖4(l)、圖4(r) 3張真實無霧圖像,觀察圖4(e)、圖4 (k)、圖4 (q) 3張本文去霧算法的去霧圖像,紅色圓標記部分均未出現(xiàn)較大圖像色調和色飽和度以及結構失真現(xiàn)象,去霧圖像接近于真實無霧圖像。這是由于本文算法采用大氣衰減模型作為約束條件,增加非線性去霧模塊及采用多分量代價函數(shù)訓練本文去霧網絡,去霧圖像還原較好,接近真實無霧圖像。與其他流行算法的去霧圖像主觀對比觀察,本文算法去霧效果優(yōu)于對比算法。

圖4 主觀和客觀評價對比去霧試驗
3.1.2 本文算法與其他流行去霧算法客觀評價對比去霧試驗
為了驗證本文去霧算法的有效性和魯棒性,本節(jié)進行客觀評價對比去霧試驗。本文采用PSNR和SSIM相似性評價指標[25]客觀評價對比去霧實驗結果。客觀評價對比去霧試驗如圖4和圖5所示,其中圖片下面括號中,第一個數(shù)據為對比圖片和相應真實無霧圖之間的PSNR值(單位為dB)。第二個數(shù)據為對比圖片和相應真實無霧圖之間的SSIM值,值域在閉區(qū)間[0,1]。將圖4、圖5對比算法去霧圖像的客觀評價指標實驗數(shù)據按圖中次序填入客觀對比實驗數(shù)據表,如表2所示。表2中DCP minus CCP表示算法DCP算法去霧圖客觀評價數(shù)據減去本文CCPVEN算法去霧圖客觀評價數(shù)據,AOD minus CCP及GCA minus CCP含義同理。
結合圖4、圖5中去霧圖像及其相對應客觀評價指標數(shù)據,分析表2中客觀評價對比實驗數(shù)據。依照表2客觀數(shù)據可知,DCP算法去霧圖的客觀評價數(shù)據和本文CCPVEN算法去霧圖客觀評價數(shù)據相比較可知,DCP minus CCP一列欄數(shù)據中兩算法間PSNR差值在-8.1~-5.2 dB區(qū)間分布,二者間SSIM差值在區(qū)間在-0.01~0.01分布,說明本文算法去霧圖像在像素級圖像質量方面優(yōu)于DCP算法,在圖像結構評價指標上兩算法不分伯仲。通過對比數(shù)據可知,本文去霧算法優(yōu)于DCP去霧算法。由表2客觀數(shù)據可知,AOD算法去霧圖的客觀評價數(shù)據和本文CCPVEN算法去霧圖客觀評價數(shù)據相比較可知,AOD minus CCP一列欄數(shù)據中兩算法間PSNR差值在-7.0~-3.0 dB區(qū)間分布,兩算法間SSIM值差值在-0.29~-0.23區(qū)間分布,說明本文算法去霧圖像在像素級圖像質量方面優(yōu)于AOD算法,在圖像結構方面上同樣優(yōu)于AOD算法。通過對比數(shù)據可知,本文去霧算法優(yōu)于AOD去霧算法。

圖5 客觀評價對比去霧試驗
依表2客觀數(shù)據可知,GCA算法去霧圖的客觀評價數(shù)據和本文CCPVEN算法去霧圖客觀評價數(shù)據相比較可知,GCA minus CCP一列欄數(shù)據中兩算法間PSNR差值在-5.3~-1.2 dB區(qū)間分布,兩算法間SSIM值差值在-0.05~0.01區(qū)間分布,說明本文算法去霧圖像在像素級圖像質量方面優(yōu)于GCA算法,在圖像結構層面上略勝于GCA算法。通過對比數(shù)據可知,本文去霧算法優(yōu)于GCA去霧算法。

表2 本文算法與流行對比算法客觀評價數(shù)據表
以上客觀評價對比實驗數(shù)據表明,證明了本文CCPVEN去霧算法的可行性與有效性。
為了驗證本文CCPVEN去霧算法的去霧的魯棒性,實驗采用戶外真實場景數(shù)據集(O-HAZE)[24]作為測試數(shù)據集,與當今流行去霧算法在整個數(shù)據集進行去霧實驗。根據對比實驗結果,各對比算法去霧圖像取PPSR和SSIM圖像相似性評價指標[25]的均值,客觀評價本文算法的去霧魯棒性。評價本文算法去霧魯棒性實驗數(shù)據如表3所示。
由表3可知,本文提出CCPVEN算法在整個RESIDE數(shù)據集上去霧圖像平均PPSR指標為18.1 dB,去霧圖像平均SSIM指標為0.73,相較DCP算法去霧結果平均PPSR指標高6.6 dB,平均SSIM不分伯仲。相較AOD算法去霧結果平均PPSR指標高4.3 dB,平均SSIM高0.28。相較GCA算法去霧結果平均PPSR指標高2.4 dB,平均SSIM不分伯仲。表3魯棒性去霧實驗數(shù)據表明,本文算法去霧魯棒性強,去霧結果優(yōu)于對比算法。

表3 本文算法去霧魯棒性實驗數(shù)據表
為了證明本文CCPVEN去霧網絡的優(yōu)越性,進行CCPVEN網絡的各模塊消融去霧實驗。本文主要關注這些因素:一是金字塔視野擴張模塊(PVEM);二是CNN3中對差值D(x)的非線性處理模塊CNN3_NL,包括M3_conv1- M3_conv6六級卷積層。采用RESIDE[23]合成霧霾數(shù)據集訓練本文網絡,采用戶外真實場景數(shù)據集(O-HAZE)作為去霧實驗測試數(shù)據集,測評不同模塊組合去霧效果,CCPVEN網絡結構評估實驗數(shù)據如表4所示。

表4 本文算法CCPVEN網絡結構評估實驗數(shù)據
如表4所示,CCPVEN對PVEM消融去霧實驗,其他結構保留,測試集去霧結果平均PPSR指標為16.9 dB。CCPVEN對CNN3中的對差值D(x)的非線性處理模塊CNN3_NL消融去霧實驗,其他結構保留,測試集去霧結果平均PPSR指標為14.1 dB。而保留CCPVEN網絡全部模塊,則測試集去霧結果平均PPSR指標為18.1 dB。由此可見,在CCPVEN網絡基本框架下,PVEM以及CNN3中對差值D(x)的非線性處理模塊都是本文提出網絡算法不可或缺的重要組成部分,實驗結果驗證了本文去霧算法的優(yōu)越性。
本文提出了端到端具有條件約束的金字塔視野擴張網絡算法,并和其他流行去霧算法進行了對比實驗。實驗結果表明,本文提出算法能夠有效克服對比算法去霧圖像色彩失真及圖像結構失真等問題,去霧效果優(yōu)于其他對比算法,具有去霧有效性和魯棒性。由于本文算法采用的訓練數(shù)據集是虛擬合成的,訓練出的去霧模型仍存在不足,今后仍致力于去霧算法的研究,滿足霧天生產生活的安全需求。