傅妍芳,尹詩白,鄧 箴,王一斌,胡殊豪
(1.西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,陜西 西安 710021;2.西南財(cái)經(jīng)大學(xué) 經(jīng)濟(jì)信息工程學(xué)院,四川 成都 611130;3.寧夏大學(xué) 信息工程學(xué)院,寧夏 銀川 750021;4.四川師范大學(xué) 工學(xué)院,四川 成都 610101)
受大氣中懸浮顆粒吸收和散射光線的影響,在霧天情況下拍攝的圖像會(huì)出現(xiàn)顏色偏移,對比度低,邊緣模糊等降質(zhì)現(xiàn)象,這為后續(xù)的機(jī)器視覺任務(wù),如目標(biāo)的檢測、跟蹤及識(shí)別帶來了挑戰(zhàn)。因此,圖像去霧算法作為一種圖像預(yù)處理步驟,具有重要的應(yīng)用價(jià)值和現(xiàn)實(shí)意義[1]。
目前,圖像去霧算法可分為兩類:基于先驗(yàn)的去霧算法[2]和基于神經(jīng)網(wǎng)絡(luò)的去霧算法[3]?;谙闰?yàn)的去霧算法,依據(jù)大氣成像模型和統(tǒng)計(jì)先驗(yàn)信息來估計(jì)模型中的物理變量,從而計(jì)算出清晰的無霧圖像。Berman 等提出了非局部先驗(yàn)[4],它假設(shè)無霧圖像中約有幾百種不同顏色,每種顏色在RGB 顏色空間中可聚成一個(gè)顏色簇。He 等提出了經(jīng)典的暗通道先驗(yàn)算法,它發(fā)現(xiàn)在清晰無霧圖像的局部鄰域內(nèi)至少有一個(gè)像素在一個(gè)顏色通道上有非常低的灰度值[2]。與此類似,Panagopoulos 等人提出了亮通道先驗(yàn),它表明無霧圖像的局部鄰域內(nèi)總有像素在一個(gè)顏色通道內(nèi)有非常高的灰度值[5]。為進(jìn)一步提高去霧精度,Galdren 等提出了alpha 融合算法,它通過融合暗通道及亮通道的去霧結(jié)果來獲得最終的去霧圖像[6]。然而,先驗(yàn)信息往往來源于觀察和統(tǒng)計(jì),并不能泛化到所有場景,因此基于先驗(yàn)的去霧算法魯棒性較差。
近年來,隨著深度學(xué)習(xí)的快速發(fā)展,基于神經(jīng)網(wǎng)絡(luò)的圖像去霧算法引起了廣泛的關(guān)注。Yin等設(shè)計(jì)了并行的空間及通道注意模塊(Spatial/Channel-wise Attention Block,SCAB),將該模塊嵌入到編碼解碼網(wǎng)絡(luò)中,有效地實(shí)施去霧[7]。隨后,他們構(gòu)建了基于殘差稠密金字塔的去霧網(wǎng)絡(luò)(Residual Dense Pyramid Network,RDPN),通過融合多尺度的金字塔特征,充分挖掘網(wǎng)絡(luò)的去霧能力[8]。另一方面,研究人員將傳統(tǒng)去霧算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合,也取得了較好的去霧效果。Shao 等將域適應(yīng)知識(shí)融入去霧網(wǎng)絡(luò)中,提出了域適應(yīng)去霧網(wǎng)絡(luò)(Domain Adaptation Dehazing Network,DADN)[9]。Qu 等將傳統(tǒng)算法中后期處理的思想融入去霧網(wǎng)絡(luò)中,提出了包含生成器、分辨器以及增強(qiáng)器的像素到像素去霧網(wǎng)絡(luò)(Enhanced Pix2pix Dehazing Network,EPDN)[10]。其中,增強(qiáng)器作為后期處理模塊,將強(qiáng)化生成器生成的清晰圖像質(zhì)量。Wang 等提出了邊緣輔助注意網(wǎng)絡(luò)(Edge Assisted Attention Network,EAA-Net),它利用特征融合模塊融合去霧分支及邊緣分支的信息,來實(shí)現(xiàn)圖像邊緣的銳化[11]。雖然上述網(wǎng)絡(luò)模型能通過引入傳統(tǒng)去霧算法的優(yōu)勢,高效實(shí)現(xiàn)去霧,但網(wǎng)絡(luò)的整體結(jié)構(gòu)設(shè)計(jì)缺乏理論支持,網(wǎng)絡(luò)性能有提升空間。
研究人員將殘差網(wǎng)絡(luò)看成是常微分方程(Ordinary Differential Equation,ODE)的一步一階歐拉求解方法,將堆疊的殘差模塊可看成是歐拉方法的離散逼近求解過程,將歐拉方法的穩(wěn)定性和參數(shù)收斂性引入到網(wǎng)絡(luò)性能中[12]。Feng 等將殘差模塊嵌入到編碼解碼網(wǎng)絡(luò)當(dāng)中,提出的(UNet based Residual Network,URN)取得了較好的去霧效果[3]。受此啟發(fā),本文提出了ODE 啟發(fā)的多級特征逐步細(xì)化及邊緣增強(qiáng)的去霧網(wǎng)絡(luò),它將二階微分算子邊緣增強(qiáng)策略與多步高階的ODE 求解方法相結(jié)合,融入網(wǎng)絡(luò)的構(gòu)建中,取得了較高的去霧精度。網(wǎng)絡(luò)主要包括多級特征提取子網(wǎng)絡(luò)、ODE 啟發(fā)的逐步細(xì)化去霧子網(wǎng)絡(luò)和邊緣增強(qiáng)子網(wǎng)絡(luò)三部分。其中,多級特征提取子網(wǎng)絡(luò)從輸入霧圖中,提取出包含細(xì)節(jié)信息的低級特征和包含語義信息的高級特征。ODE 啟發(fā)的逐步細(xì)化去霧子網(wǎng)絡(luò)串聯(lián)多個(gè)依據(jù)蛙跳方法(Leapfrog)設(shè)計(jì)的Leapfrog 模塊,模擬ODE 的離散逼近求解過程[13]。每個(gè)Leapfrog 模塊在交替輸入的低/高級特征引導(dǎo)下,不斷細(xì)化前一個(gè)Leapfrog 模塊估計(jì)的去霧結(jié)果。最后,受二階微分算子增強(qiáng)邊緣策略的啟發(fā),邊緣增強(qiáng)子網(wǎng)絡(luò)利用預(yù)訓(xùn)練的Unet 來估計(jì)去霧結(jié)果的邊緣信息,并疊加到去霧結(jié)果上,以實(shí)施邊緣增強(qiáng)。該算法的去霧效果在視覺評價(jià)和客觀評價(jià)方面均優(yōu)于已有的去霧算法。
多級特征逐步細(xì)化及邊緣增強(qiáng)的去霧算法流程如圖1 所示。首先,初始霧圖進(jìn)入多級特征提取子網(wǎng)絡(luò),并提取一系列不同尺度的低級特征和高級特征。具體來說,提取此子網(wǎng)絡(luò)的淺層特征,整合為包含細(xì)節(jié)信息的低級特征Fl,提取子網(wǎng)絡(luò)的深層特征,并整合為包含語義信息的高級特征Fh;隨后,受多步高階的ODE 求解策略啟發(fā),提出了Leapfrog 模塊,并串聯(lián)此模塊,以構(gòu)建多級特征逐步細(xì)化去霧子網(wǎng)絡(luò),使它在交替輸入的Fh和Fl引導(dǎo)下,逐步細(xì)化去霧結(jié)果;最后,依據(jù)傳統(tǒng)算法中二階微分算子實(shí)施邊緣增強(qiáng)的原理,在邊緣增強(qiáng)子網(wǎng)絡(luò)設(shè)計(jì)過程中,利用預(yù)訓(xùn)練的UNet 輸出去霧結(jié)果的邊緣,并疊加到去霧結(jié)果上,以實(shí)現(xiàn)邊緣增強(qiáng)。
圖1 去霧算法流程Fig.1 Flowchart of proposed dehazing algorithm
多級特征逐步細(xì)化及邊緣增強(qiáng)的去霧網(wǎng)絡(luò)模型如圖2 所示,從左到右依次為多級特征提取子網(wǎng)絡(luò)、ODE 啟發(fā)的逐步細(xì)化去霧子網(wǎng)絡(luò)、邊緣增強(qiáng)子網(wǎng)絡(luò)。
如圖2 所示,這里使用殘差網(wǎng)絡(luò)(Residual Net,ResNet)作為多級特征提取子網(wǎng)絡(luò),并從輸入霧圖I中提取一系列不同尺度的特征??紤]到淺層特征具有較小的尺度和豐富的圖像結(jié)構(gòu)信息,深層特征具有較大的尺度及高級的語義信息,可將提取的淺層特征整合為低級特征,提取的深層特征整合為高級特征。具體來說,首先串聯(lián)ResNet 前三層的淺層特征,并應(yīng)用整合模塊將其整合為低級特征Fl:
圖2 多級特征細(xì)化及邊緣增強(qiáng)的去霧網(wǎng)絡(luò)Fig.2 Multi-level features progressive refinement and edge enhancement network for image dehazing
式中:F1,F(xiàn)2,F(xiàn)3分別為ResNet 第一、二、三層特征;[·]為串聯(lián)操作;↑為上采樣操作,分別將特征F2和F3上采樣為F1相同尺寸,即初始霧圖I尺寸的1/4;fin為組合模塊函數(shù),它由1 個(gè)反卷積和1個(gè)卷積層構(gòu)成。其中,反卷積層將串聯(lián)特征的尺度擴(kuò)大至輸入圖像尺寸。
同理,將ResNet 第四和第五層的特征整合為高級特征Fh:
式中:F4,F(xiàn)5分別為ResNet 第四、五層特征,且分別被上采樣至與F1相同的尺度。
由于ODE 的前向歐拉求解策略與殘差模塊結(jié)構(gòu)具有相關(guān)性,利用殘差模塊來設(shè)計(jì)基于歐拉逼近的網(wǎng)絡(luò)結(jié)構(gòu),能將歐拉求解策略的穩(wěn)定性及參數(shù)的收斂性引入到神經(jīng)網(wǎng)絡(luò)中,獲得準(zhǔn)確度更高的預(yù)測結(jié)果。具體來說,一階ODE 問題可用一階微分及其初始條件求解:
式中:y(t)∈Rd,且t≥t0,y(t0)=v為初始條件。
歐拉方法作為一步一階的ODE 求解策略,可通過式(4)來逼近求解,即:
故:
式中hn為時(shí)間步長間隔。
將式(5)的hn f(tn,y(tn))看作網(wǎng)絡(luò)中第n層的映射函數(shù)G(y(tn)),+看作殘差學(xué)習(xí),tn為第n層的參數(shù),y(tn)和y(tn+1)分別為第n層的輸入特征和輸出特征,則式(5)在數(shù)學(xué)上等價(jià)于殘差網(wǎng)絡(luò)中的殘差模塊。當(dāng)hn的值固定為h時(shí),堆疊的殘差模塊可看成離散的歐拉逼近求解過程。
3.2.1 Leapfrog 模塊設(shè)計(jì)
由上述討論可知,歐拉方法為一步一階ODE 求解策略??紤]到多步高階的ODE 求解方法具有更高的穩(wěn)定性,能為神經(jīng)網(wǎng)絡(luò)帶來更高精度的解,本文提出兩步兩階蛙跳方法Leapfrog 構(gòu)建模塊。
蛙跳方法作為一步一階歐拉算法的細(xì)化實(shí)現(xiàn),利用前兩步的值y(tn) 及y(tn-1) 來計(jì)算y(tn+1)具有更高的精度和穩(wěn)定性,即:
依據(jù)式(5)的映射關(guān)系G(y(tn))=hf(tn,y(tn)),可將式(6)設(shè)計(jì)為相應(yīng)的Leapfrog模塊,展開得到:
這里將式(7)設(shè)計(jì)到Leapfrog 模塊中,如圖3所示。G對應(yīng)一個(gè)卷積層和一個(gè)ReLu 函數(shù)組合。
圖3 Leapfrog 模塊結(jié)構(gòu)Fig.3 Architecture of leapfrog module
3.2.2 逐步細(xì)化去霧子網(wǎng)絡(luò)構(gòu)建
利用提出的Leapfrog 模塊,可設(shè)計(jì)逐步細(xì)化的去霧子網(wǎng)絡(luò)框架。由圖2 所示,堆疊多個(gè)Leapfrog 模塊模擬ODE 的離散逼近求解過程,且每個(gè)Leapfrog 模塊在交替輸入的Fh和Fl特征以及前一步Leapfrog 模塊預(yù)測的清晰圖像引導(dǎo)下,預(yù)測當(dāng)前Leapfrog 模塊的清晰圖像。此操作能互補(bǔ)利用Fh中的語義信息及Fl中的細(xì)節(jié)信息逐步細(xì)化去霧結(jié)果。第k個(gè)Leapfrog 模塊函數(shù)定義如下:
式 中:flf為Leapfrog 模塊的函數(shù),Jk-1和Jk為第k-1 個(gè)和第k個(gè)Leapfrog 模塊預(yù)測的清晰圖像,F(xiàn)為交替輸入的Fl和Fh特征,[·]為串聯(lián)操作。
以圖4(a)為初始霧圖I,由Fh串聯(lián)霧圖I后進(jìn)入第1 個(gè)Leapfrog 模塊,得到初始J0,即用Fh代替式(8)中的F,霧圖I代替式(8)中的Jk-1,得到J0(見圖4(b))。此時(shí)J0包含去霧后的粗略場景信息,但結(jié)果仍有明顯的霧殘余,圖4(b)中橘子的邊緣細(xì)節(jié)信息并未復(fù)原。然后,以J0為起點(diǎn),構(gòu)建一系列Leapfrog 模塊來逐步細(xì)化去霧結(jié)果。第2 個(gè)Leapfrog 模塊利用包含細(xì)節(jié)信息的Fl特征替換式(8)中的F,來細(xì)化J0,得到包含更多場景細(xì)節(jié)的J1,如圖4(c)所示,霧殘余減少,橘子和草坪的邊緣細(xì)節(jié)更明顯。在第3 個(gè)Leapfrog 模塊,利用包含語義信息的Fh特征替換式(8)中的F,來細(xì)化J1得到J2,圖4(d)中前景和背景的色彩對比度更鮮明,去霧效果更好??梢姡诮换ポ斎氲腇h和Fl互補(bǔ)信息引導(dǎo)下實(shí)現(xiàn)了逐步細(xì)化去霧。
圖4 算法各階段的去霧結(jié)果Fig.4 Intermediate results of proposed method
為使訓(xùn)練更容易,在每個(gè)Leapfrog 模塊后均添加Llf損失函數(shù),使得每個(gè)Leapfrog 模塊能學(xué)習(xí)去霧結(jié)果與真實(shí)結(jié)果間的差異,加快網(wǎng)絡(luò)收斂。損失函數(shù)為:
式中:Lmse為均方誤差函數(shù),Jk為第k個(gè)模塊估計(jì)的去霧結(jié)果,Jt為真實(shí)的去霧結(jié)果,λk為第k個(gè)Jk的權(quán)重,k=1,…,m。其中m為Leapfrog 模塊的總數(shù),這里經(jīng)驗(yàn)性地設(shè)置為3。
逐步細(xì)化去霧子網(wǎng)絡(luò)估計(jì)的清晰圖像,在濃霧處仍可能出現(xiàn)霧殘余,使得目標(biāo)場景邊緣模糊,如圖4(d)所示,J2圖像的草坪仍有明顯的霧殘余。為提高視覺效果,可進(jìn)一步銳化邊緣,增強(qiáng)圖像。在傳統(tǒng)圖像增強(qiáng)方法中,常用拉普拉斯算子、高斯拉普拉斯算子等二階微分算子來提取圖像中灰度的突變信息,并將此信息疊加到原圖像上,以達(dá)到保持復(fù)原背景特性并銳化邊緣的處理效果。由于二階微分算子關(guān)注的是圖像灰度突變而不是灰度緩慢變化的區(qū)域,對邊緣定位能力較強(qiáng),故利用二階微分算子處理后,可獲得包含豐富邊緣信息的增強(qiáng)結(jié)果[14]。受此啟發(fā),本文利用預(yù)先訓(xùn)練的Unet 提取去霧結(jié)果的邊緣信息,并添加到去霧結(jié)果上,以實(shí)現(xiàn)圖像增強(qiáng)和邊緣銳化。如圖4(e)所示,J圖像再實(shí)施邊緣增強(qiáng)后較J2圖像具有更豐富的邊緣細(xì)節(jié)信息,更佳的視覺效果。相關(guān)函數(shù)如下:
式中:Jm為逐步細(xì)化去霧子網(wǎng)絡(luò)中最后一個(gè)模塊,即第m個(gè)Leapfrog 模塊估計(jì)的去霧結(jié)果;funet為預(yù)訓(xùn)練的Unet 模型函數(shù),Unet 將產(chǎn)生邊緣圖;fr為重構(gòu)層,它由一個(gè)卷積層和一個(gè)ReLu 函數(shù)組成,主要實(shí)現(xiàn)邊緣增強(qiáng)圖像的標(biāo)定,獲取最終圖像J。
由于Unet 輸入清晰圖像,輸出邊緣圖像,故訓(xùn)練Unet 需要一系列清晰圖及對應(yīng)的真實(shí)邊緣圖,i=1,…,q。已知訓(xùn)練集中霧圖對應(yīng)的真實(shí)清晰圖像,則的計(jì)算方式下:
式中:fnormalize為歸一化函數(shù),將邊緣圖像的結(jié)果歸一化到[0,1]范圍;?x,?y分別為計(jì)算圖像在水平和垂直方向梯度的算子,這里采用3×3 的拉普拉斯算子。由此可知,訓(xùn)練Unet 的損失函數(shù)為:
式中:Lmse為均方誤差函數(shù),Gi,Gti分別為Unet 估計(jì)的邊緣圖和式(11)計(jì)算的邊緣圖。
邊緣增強(qiáng)子網(wǎng)絡(luò)的損失函數(shù)為:
式中:Lmse為均方誤差函數(shù),Jj,為所提網(wǎng)絡(luò)估計(jì)的最終結(jié)果和對應(yīng)的真實(shí)去霧圖像,j=1,…,z。
本網(wǎng)絡(luò)模型采用階段性訓(xùn)練模式。第一階段,利用式(12)對Unet 進(jìn)行訓(xùn)練,獲得訓(xùn)練好的模型后,將模型嵌入到所提網(wǎng)絡(luò)的邊緣增強(qiáng)子網(wǎng)絡(luò)中,利用式(9)和式(13)的組合損失函數(shù)進(jìn)行訓(xùn)練,相關(guān)函數(shù)表達(dá)如下:
為了公平比較,這里依據(jù)RESIDE[15]和data-DCPDN 數(shù)據(jù)集[16]提供的圖像來構(gòu)建訓(xùn)練和測試集。具體來說,選取data-DCPDN 中4 000 對合成室內(nèi)霧圖及清晰圖像,其中霧圖依據(jù)大氣物理成像模型合成,且合成參數(shù)設(shè)置為[15]:A∈{0.5,1.0},β∈{0.4,1.6}。從RESIDE 中隨機(jī)選擇4 000 對室外霧圖及清晰圖像,合成參數(shù)為[16]:A∈{0.8,0.85,0.9,1.0},β∈{0.04,0.06,0.08,0.1,0.12,0.16,0.2}。故訓(xùn)練集共包含8 000對室內(nèi)室外霧圖。值得一提的是,邊緣增強(qiáng)子網(wǎng)絡(luò)中預(yù)訓(xùn)練Unet 的訓(xùn)練集還需包含,上述訓(xùn)練集中清晰圖像由式(11)計(jì)算的邊緣圖像。同理,測試集Test A 也包含800 張室內(nèi)室外霧圖,其中400 張室內(nèi)霧圖來自于data-DCPDN 數(shù)據(jù)集,400 張室外霧圖來自于RESIDE 數(shù)據(jù)集。公共測試集SOTS 包含500 張室內(nèi)合成霧圖及500 張室外合成霧圖,進(jìn)一步用來測試算法的魯棒性。
算法在NVIDIA RTX 2080 Ti GPU 上搭建的PyTorch 深度學(xué)習(xí)框架實(shí)現(xiàn)。優(yōu)化函數(shù)為改進(jìn)的梯度下降法(Adaptive Moment Estimation,Adam)算法,且優(yōu)化參數(shù)同Adam 算法默認(rèn)設(shè)置β1=0.9,β2=0.999,ε=10-8。Leapfrog模塊個(gè)數(shù)m=3,模型訓(xùn)練迭代次數(shù)為1 600 000。
本文算法的特點(diǎn)主要為:高級和低級特征在細(xì)化過程的交替輸入;基于Leapfrog 模塊的逐步細(xì)化去霧子網(wǎng)絡(luò)設(shè)計(jì);邊緣增強(qiáng)的后期處理。因此,設(shè)計(jì)了6 個(gè)變異的模型驗(yàn)證上述結(jié)構(gòu)的有效性:Net-HL,Net-Res,Net-w/o-e,Net-m2,Netm4,Net-m5。Net-HL 在保持所提網(wǎng)絡(luò)結(jié)構(gòu)不變的基礎(chǔ)上,將特征提取子網(wǎng)絡(luò)提取的H和L串聯(lián),作為后續(xù)逐步細(xì)化去霧子網(wǎng)絡(luò)中每個(gè)Leapfrog 模塊的輸入,以驗(yàn)證H和L交替輸入實(shí)施細(xì)化去霧的有效性。Net-Res 僅將所提網(wǎng)絡(luò)中的Leapfrog 模塊改為來源于歐拉算法的Residual 殘差模塊,以驗(yàn)證Leapfrog 模塊的有效性。Net-w/o-e 將邊緣增強(qiáng)子網(wǎng)絡(luò)及其相關(guān)的Lunet損失函數(shù)去除,將逐步細(xì)化去霧子網(wǎng)絡(luò)估計(jì)的去霧結(jié)果作為最終的去霧結(jié)果。Net-m2,Net-m4,Net-m5 將逐步細(xì)化去霧子網(wǎng)絡(luò)中的Leapfrog 模塊個(gè)數(shù)分別設(shè)計(jì)為2,4,5,以測試最優(yōu)的模塊個(gè)數(shù)m選取的合理性。各模型在Test A 上測得的結(jié)果見表1。
表1 不同網(wǎng)絡(luò)結(jié)構(gòu)及參數(shù)設(shè)置的SSIM 和PSNR 值對比Tab. 1 Comparison of different network architecture and parameters setting in terms of SSIM and PSNR
從表1可見,變異模型Net-HL,Net-Res,Net-w/o-e 較本文所提模型的PSRN 和SSIM 更低,網(wǎng)絡(luò)性能下降。這表明,H和L的交替輸入,Leapfrog 模塊的設(shè)計(jì)以及邊緣增強(qiáng)的后期處理,均對清晰圖像的估計(jì)做出了貢獻(xiàn)。進(jìn)一步,測試Leapfrog 模塊的個(gè)數(shù)m時(shí)發(fā)現(xiàn),當(dāng)m≤3 時(shí),網(wǎng)絡(luò)性能逐漸增加;但當(dāng)m>3 時(shí),網(wǎng)絡(luò)性能趨于穩(wěn)定,增幅較小。為平衡模型的計(jì)算效率及參數(shù)量,參數(shù)設(shè)置為m=3。
本文選取6 種去霧算 法:DCP[2],DADN[9],EPDN[10],URN[3],RDPN[8]及EAAN[11]來進(jìn)行合成圖像的去霧對比。其中,DCP 算法為經(jīng)典的去霧算法;DADN 算法及EAAN 算法分別將傳統(tǒng)算法的鄰域自適應(yīng)知識(shí)和邊緣紋理信息融入去霧網(wǎng)絡(luò);URN 及RDPN 分別利用殘差連接及稠密連接來捕捉有效的去霧信息。EPDN 在網(wǎng)絡(luò)中添加了后期處理的增強(qiáng)模塊,以提高去霧精度。各算法的視覺去霧結(jié)果如圖5 所示(彩圖見期刊電子版),其中圖5 的第二、四行分別為第一、三行中紅色矩形區(qū)域的放大細(xì)節(jié)圖。DADN 算法、EPDN 算法和URN 算法的結(jié)果存在明顯的霧殘余,如圖5(c),圖5(e)和圖5(g)中的第二行和第四行的紅色巴士和黑色椅座上均有明顯的霧殘余。DCP 算法及RDPN 算法結(jié)果存在顏色偏移,如圖5(b)第一行及第三行天空和桌面變?yōu)樽仙?,圖5(d)第四行的座椅變?yōu)榍嗌?,與真實(shí)場景圖5(i)不符。EAAN 算法雖然引入了邊緣注意機(jī)制,強(qiáng)化了圖像的邊緣信息,較其他比較算法能獲得更好的去霧效果,但仍有少量霧殘余,如圖5(f)的第二行及第四行細(xì)節(jié)處仍有少量薄霧存在。相比之下,本文算法不但能有效去霧,邊緣細(xì)節(jié)也保留完整,去霧結(jié)果圖5(h)與圖5(i)接近。各圖像下方標(biāo)出的量化PSNR/SSIM 和表2 中測試集TestA 和SOTS 上的平均量化結(jié)果表明,本文算法的PSNR 和SSIM 值最高,較EAAN 的PSNR 至少提高近5%。
表2 不同算法的合成圖像去霧結(jié)果對比Tab. 2 Comparison of dehazing results by different algorithms processed on synthetic images
圖5 不同算法的合成圖去霧結(jié)果對比Fig.5 Comparison of dehazing results on synthetic image by different algorithms
在真實(shí)圖像上驗(yàn)證所提算法與DCP[2],DADN[9],EPDN[10],URN[3],RDPN[8]及EAAN[11]的去霧效果,圖6 展示了各算法對不同霧濃度的3 幅真實(shí)圖像實(shí)施去霧的結(jié)果。其中,圖6(a)第一行為真實(shí)薄霧圖,第三行為真實(shí)濃霧圖,第二、四行為第一、三行圖像的局部細(xì)節(jié)放大圖。從中可見,DADN 算法,RDPN 算法和URN 算法的結(jié)果均存在不同程度的霧殘余,見圖6(c),6(d),6(g)的第二行樓房處。此外,DCP 算法和DADN 算法的結(jié)果仍存在顏色偏移,如圖6(b)和6(c)所示,第三行的天空背景區(qū)域分別變?yōu)槭д娴陌祷疑偷S色。EPDN 算法的去霧結(jié)果過暗,如圖6(e)第一行的公交車玻璃變?yōu)楹谏?,第三行的天空區(qū)域變?yōu)榘岛谏AAN 算法則出現(xiàn)了明顯的過增強(qiáng)效果,如圖6(f)第四行的天空顏色過暗。相比而言,本文算法不但能有效去霧,且去霧結(jié)果還具有較高的顏色保真度及完整的邊緣細(xì)節(jié),如圖6(h)第二行的樓房細(xì)節(jié),第四行的路燈和旗幟。
圖6 不同算法的真實(shí)圖去霧結(jié)果對比Fig.6 Comparison of dehazing results on synthetic image by different algorithms
為進(jìn)一步客觀驗(yàn)證所提算法的去霧性能,選用灰度平均梯度(AG)和信息熵(ENT)兩個(gè)量化指標(biāo)來評價(jià)各算法在真實(shí)圖像上去霧結(jié)果的清晰度?;叶绕骄荻戎笀D像邊緣處像素灰度值的變化率,它體現(xiàn)了細(xì)節(jié)反差的變化率。信息熵指圖像信息含量。上述指標(biāo)越高,算法越有效,去霧效果越好。表3 列出了各算法[9]在提供的30 幅真實(shí)霧圖上去霧的質(zhì)量評價(jià)值。從中可見,本文算法的灰度平均梯度及信息熵最高,去霧視覺效果最好。
表3 不同算法的真實(shí)圖像去霧結(jié)果對比Tab. 3 Comparison of dehazing results by different algorithms processed on real images
在包含1 000 張霧圖的SOTS 測試集上,測試所提算法與其他神經(jīng)網(wǎng)絡(luò)去霧算法的單張圖像平均運(yùn)行時(shí)間,結(jié)果如表4 所示。所有算法的運(yùn)行平臺(tái)均為Pycharm,其中DCP 算法使用python 語言編寫。從表4 可見,本文算法的運(yùn)行時(shí)間位于第二,明顯優(yōu)于DCP,DADN,EPDN,EAAN 及URN 方法。RDPN 有較強(qiáng)的競爭力是由于RDPN 僅利用編碼解碼網(wǎng)絡(luò)來實(shí)施去霧,故網(wǎng)絡(luò)結(jié)構(gòu)較輕,參數(shù)較少,處理單張霧圖的時(shí)間僅為0.021 s。相比而言,本文算法包含多級特征提取子網(wǎng)絡(luò)、ODE 啟發(fā)的逐步細(xì)化去霧子網(wǎng)絡(luò)和邊緣增強(qiáng)子網(wǎng)絡(luò),但運(yùn)行時(shí)間僅落后RDPN 0.011 s,在確保最優(yōu)去霧精度的前提下(見表2),具有較高的去霧效率。
表4 不同算法的單張圖像平均運(yùn)行時(shí)間Tab. 4 Average running time of different methods processing on single image
由以上分析可知,本文算法的去霧精度較已有算法至少提高了5%,運(yùn)行時(shí)間僅為0.003 2 s,可應(yīng)用于去霧的工程實(shí)踐中。
為提高去霧精度,本文提出了多級特征逐步細(xì)化及邊緣增強(qiáng)的去霧網(wǎng)絡(luò)。首先,利用多級特征提取子網(wǎng)絡(luò),提取出包含細(xì)節(jié)信息的低級特征和包含語義信息的高級特征。隨后,依據(jù)兩步兩階的蛙跳方法設(shè)計(jì)出Leapfrog 模塊,并串聯(lián)多個(gè)Leapfrog 模塊,模擬ODE 離散的逼近求解過程,構(gòu)造逐步細(xì)化去霧子網(wǎng)絡(luò)。該操作能將ODE 求解策略Leapfrog 方法的優(yōu)勢引入到神經(jīng)網(wǎng)絡(luò)的構(gòu)建中,為網(wǎng)絡(luò)帶來更高精度的解。此外,利用信息互補(bǔ)的/高級特征交替作為Leapfrog 模塊的輸入,以逐步細(xì)化去霧結(jié)果。最后,利用預(yù)訓(xùn)練的Unet 估計(jì)最后一個(gè)Leapfrog 模塊預(yù)測去霧結(jié)果的邊緣信息,并將邊緣信息添加到去霧結(jié)果上,進(jìn)一步實(shí)現(xiàn)了去霧圖像的邊緣增強(qiáng)。實(shí)驗(yàn)結(jié)果表明,本文算法的去霧精度較EAAN 算法提高了5%,且運(yùn)行時(shí)間僅為0.032 s。
未來將進(jìn)一步合成真實(shí)霧天圖像來訓(xùn)練網(wǎng)絡(luò)模型,以提高模型的泛化能力??蓞⒖嘉墨I(xiàn)[17]提出的云圖像合成范式方法,它依據(jù)真實(shí)衛(wèi)星云圖中云與海和陸地之間的灰度級差異實(shí)施減法,來提取云成分,隨后將此云成分添加到無云的背景圖中,獲得真實(shí)云圖。此方法不但解決了真實(shí)云圖無清晰圖像與之匹配的問題,還能獲得滿足真實(shí)場景需求的逼真云圖。由此獲得的訓(xùn)練集能有效提高去云模型的泛化能力和精度??紤]到霧和云類似,被霧遮擋的場景很多,如被霧遮擋的遙感圖像、海上圖像和農(nóng)田圖像。參照此方法,針對特定的場景,探索霧成分提取的減法操作,合成真實(shí)場景霧圖用以訓(xùn)練網(wǎng)絡(luò),能更好地將本算法用于工程實(shí)踐中。