楊振艦, 尚佳美, 張眾維, 張艷, 劉樹東
(天津城建大學(xué) 計算機與信息工程學(xué)院, 天津 300384)
在霧霾天氣下,由于大氣中存在渾濁的介質(zhì),導(dǎo)致采集到的圖像具有對比度低、整體顏色偏灰暗,物體特征不明顯、圖像細節(jié)模糊等現(xiàn)象,這嚴重影響了基于圖像的智能信息處理系統(tǒng)的魯棒性和有效性[1]。因此圖像去霧成為諸如圖像分類、檢測、分割等高級視覺任務(wù)的前提,如何提高圖像去霧的效果也成為計算機視覺領(lǐng)域的一個重要問題。
圖像去霧方法包括基于圖像增強的方法、基于圖像復(fù)原的方法和基于深度學(xué)習(xí)的方法?;趫D像增強的方法,如直方圖均衡化[2]、Retinex理論[3]等,直接對低質(zhì)量的圖像做增強處理,可能會造成圖像信息損失和失真;基于圖像復(fù)原的方法,如暗通道先驗(dark channel prior,DCP)[4]、顏色衰減先驗(color attenuation prior,CAP)[5]等,利用先驗知識和假設(shè)并基于物理模型來對圖像進行恢復(fù),恢復(fù)效果自然,其中最具代表性的是He等人提出的暗通道先驗方法,但該方法過高估計霧的濃度,導(dǎo)致去霧后圖像整體亮度偏暗,且天空區(qū)域常出現(xiàn)顏色失真現(xiàn)象。盡管上述算法取得了較大的進步,但它們?nèi)砸蕾囅闰炛R,具有一定的局限性。
基于深度學(xué)習(xí)的方法可分為間接去霧方法和直接去霧方法。間接去霧方法首先需要估計大氣光值、透射率或者其他中間變量,然后根據(jù)大氣散射模型恢復(fù)無霧圖像。Cai等[6]首次使用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)來估計霧圖透射率,提出了DehazeNet網(wǎng)絡(luò)。Ren等[7]提出了多尺度的深層卷積神經(jīng)網(wǎng)絡(luò)(multi-scale convolutional neural networks,MSCNN)來學(xué)習(xí)霧圖到透射率之間的映射關(guān)系,該網(wǎng)絡(luò)分2個階段來訓(xùn)練霧圖粗糙和細化的透射率,并使用跳躍連接進行相連。Li 等[8]對大氣散射模型進行變換,將透射率和大氣光值統(tǒng)一表示為參數(shù)K,并借鑒了文獻[6-7]的多尺度和跳躍連接,提出了一種通過估計參數(shù)K來恢復(fù)無霧圖像的卷積神經(jīng)網(wǎng)絡(luò)(all-in-one dehazing network,AOD-Net)。上述間接去霧方法取得了不錯的去霧效果,但過于依賴大氣散射模型,往往出現(xiàn)對透射率過度估計,且大多數(shù)方法將大氣光值設(shè)置為全局常量,導(dǎo)致去霧后的圖像容易出現(xiàn)顏色失真現(xiàn)象。直接去霧方法不依賴大氣散射模型,端到端地學(xué)習(xí)霧圖到無霧圖像之間的映射關(guān)系。Li 等[9]提出基于條件生成對抗(conditional generative adversarial networks,CGAN)的可訓(xùn)練去霧網(wǎng)絡(luò),并引入VGG特征和L1正則化梯度先驗構(gòu)建損失函數(shù)。Chen等[10]提出門控上下文聚合去霧網(wǎng)絡(luò)(gated context aggregation network,GCANet),引入平滑空洞卷積并設(shè)計了門控融合網(wǎng)絡(luò)。Qu等[11]提出了一個增強的pix2pix去霧網(wǎng)絡(luò)(enhanced pix2pix dehazing network,EPDN),直接學(xué)習(xí)有霧圖像和無霧圖像之間的映射關(guān)系。Shao等[12]提出一種域適應(yīng)(domain adaptation)去霧網(wǎng)絡(luò),采用雙向變換網(wǎng)絡(luò),將圖像從一個域變換到另一個域,以彌補合成域和真實域之間的差距,并使用變換前、后的圖像來訓(xùn)練所提出的去霧網(wǎng)絡(luò)。上述直接去霧方法在一定程度上提高了所恢復(fù)無霧圖像的質(zhì)量,但依然存在部分區(qū)域去霧不徹底或過度去霧的現(xiàn)象。受注意力機制的啟發(fā),Tian等[13]提出一種注意力引導(dǎo)的卷積神經(jīng)網(wǎng)絡(luò)用于圖像去噪,使用注意力模塊來指導(dǎo)卷積神經(jīng)網(wǎng)絡(luò)進行去噪訓(xùn)練,提高了效率并降低了模型的復(fù)雜性。Chen等[14]提出了一種基于特征注意力機制的超分辨率重建網(wǎng)絡(luò),將特征提取模塊與注意力機制相結(jié)合,以便從低分辨率圖像中提取有用的特征,重建的圖像取得了更好的視覺效果。上述算法使用注意力機制,通過快速瀏覽全局信息來選擇對象區(qū)域,并賦予關(guān)注對象區(qū)域較大的權(quán)重,以抑制其他無用信息,能夠有效提高網(wǎng)絡(luò)的性能和效率。因此,為了更加關(guān)注霧圖的有用信息,本文所設(shè)計的去霧網(wǎng)絡(luò)引入了注意力機制。
針對顏色失真和去霧不徹底的問題,本文提出基于殘差注意力機制的圖像去霧算法,端到端地預(yù)測霧霾密度圖像,實現(xiàn)無霧圖像的恢復(fù)。為了在不降低分辨率的情況下獲取多尺度信息,提出了包含殘差平滑空洞卷積的多尺度特征提取模塊;設(shè)計了特征融合模塊實現(xiàn)多尺度特征有效融合,提高了網(wǎng)絡(luò)的效率和性能。實驗結(jié)果表明本文算法無論在定性還是定量上都具有一定的優(yōu)勢,并通過消融實驗驗證了本文所提主要模塊的有效性。本文主要創(chuàng)新點如下:
1) 提出基于殘差注意力機制的圖像去霧算法,不依賴大氣散射模型端到端地預(yù)測霧霾密度圖像,從而實現(xiàn)了無需計算透射率和大氣光值即可恢復(fù)無霧圖像,避免了估計大氣光值帶來的顏色失真現(xiàn)象,同時減少了計算成本。
2) 提出多尺度特征提取模塊。利用平滑空洞卷積,通過設(shè)置不同空洞率來提取特征圖的不同感受野信息,從而提取多尺度特征,并在擴大感受野的同時避免了網(wǎng)格偽影現(xiàn)象;利用高效通道注意力機制(efficient channel attention,ECA),通過加權(quán)篩選不同尺度的顯著特征并替換原來特征向后傳播,提高了網(wǎng)絡(luò)的效率和性能;利用跳躍連接在保證網(wǎng)絡(luò)加深的同時減少梯度消失。
3) 設(shè)計特征融合模塊,堆疊壓縮不同尺度特征后利用高效通道注意力機制,動態(tài)地調(diào)整其通道權(quán)重,學(xué)習(xí)豐富的上下文信息并抑制冗余信息,增強網(wǎng)絡(luò)提取霧霾密度圖像的能力從而使去霧更加徹底。
大多數(shù)圖像去霧方法都采用大氣散射模型來表示退化的圖像,可以簡化表示為:
I(x)=J(x)t(x)+A(1-t(x))
(1)
式中:x表示圖像中的像素;I(x)表示輸入的有霧圖像;J(x)表示恢復(fù)的無霧圖像;t(x)表示透射率;A表示大氣光值。
基于先驗的方法[4-5]和基于深度學(xué)習(xí)的方法[6-7],均通過估計(1)式中的透射率t(x)和大氣光值A(chǔ)來恢復(fù)無霧圖像。但是對于大氣光值A(chǔ)的估計一般采用經(jīng)驗方法,從而容易導(dǎo)致恢復(fù)的無霧圖像顏色失真,因此基于大氣散射模型進行圖像去霧具有一定的局限性。
為解決大氣光值A(chǔ)估計不準(zhǔn)確的問題,HDP-Net[15]根據(jù)霧圖組成原理,將大氣散射模型重新定義為
I(x)=J(x)+Ih(x)
(2)
式中,Ih(x)表示霧霾密度圖像。并提出了霧霾密度圖像預(yù)測模型,該模型表示為
Ih(x)=P(I(x))
(3)
式中,P(·)表霧霾密度圖像預(yù)測網(wǎng)絡(luò)。則恢復(fù)的無霧圖像可以表示為
J(x)=I(x)-P(I(x))=I(x)-Ih(x)
(4)
通過(4)式可知,只需獲得霧霾密度圖像Ih(x),便可從輸入的有霧圖像I(x)中恢復(fù)無霧圖像J(x),因此本文提出基于殘差注意力機制的圖像去霧算法端到端地預(yù)測霧霾密度圖像Ih(x),實現(xiàn)無霧圖像恢復(fù)。
本文借鑒編碼-解碼結(jié)構(gòu)[16]設(shè)計了基于殘差注意力機制的圖像去霧算法,該算法的網(wǎng)絡(luò)模型包括編碼、多尺度特征提取、特征融合和解碼4個模塊。通過該網(wǎng)絡(luò)預(yù)測霧霾密度圖像Ih(x),進而將輸入的霧圖I(x)與其相減獲得最終的無霧圖像J(x),本文提出的整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 基于殘差注意力機制的圖像去霧算法網(wǎng)絡(luò)模型
編碼模塊將輸入的霧圖轉(zhuǎn)化為特征圖像,如圖1所示,由2個卷積塊(Conv1、Conv2)和一個下采樣卷積塊(Conv3) 組成,卷積核大小均為3×3;卷積層的步長為1,填充設(shè)置為1,輸入通道數(shù)為4。下采樣卷積塊的步長為2,輸出通道數(shù)為64。編碼模塊表示為
F0(x)=Conv3(Conv2(Conv1(I(x))))
(5)
式中,F0(x)表示編碼的特征圖像。
為了在不降低分辨率的情況下擴大感受野并提取不同尺度的特征,本文設(shè)計了多尺度特征提取模塊。如圖1所示,該模塊利用3組不同空洞率的特征提取模塊(FEB1~FEB3),通過提取特征圖不同的感受野信息,從而獲得不同尺度的特征圖。多尺度特征提取模塊表示為
(6)
式中,F1(x),F2(x),F3(x)分別表示提取的不同尺度特征。每個特征提取模塊(FEBi,i=1,2,3)均包含1個殘差平滑空洞卷積模塊(SDRBi)、2個結(jié)構(gòu)相同的殘差塊(RB1i,RB2i)和1個高效通道注意力機制(ECAi)。特征提取模塊FEBi(x)表示為
(7)
式中,F(xiàn)i-1(x)表示當(dāng)前輸入的特征。
殘差平滑空洞卷積模塊如圖2所示,包含2個平滑空洞卷積模塊和跳躍連接。首先利用一個卷積核大小為(2r-1)×(2r-1),步長為1,輸出通道為64的分離共享卷積層[17]增強輸入單元之間的依賴關(guān)系,避免產(chǎn)生網(wǎng)格偽影現(xiàn)象;然后利用一個卷積核大小為3×3,步長為1,輸出通道為64的空洞卷積層擴大感受野;最后利用實例歸一化層和ReLU激活函數(shù)層加速模型收斂。同時利用跳躍連接避免梯度消失現(xiàn)象。SDRBi的空洞率r分別為2,3,4。殘差平滑空洞卷積模塊SDRBi(x)表示為
SDRBi(x)=SDC2i(SDC1i(Fi-1(x)))+Fi-1(x)
(8)
式中,SDCni(·),n=1,2表示平滑空洞卷積函數(shù)。
圖2 殘差平滑空洞卷積模塊SDRB結(jié)構(gòu)圖
殘差塊如圖3所示,采用跳躍連接的方式,提高了網(wǎng)絡(luò)的學(xué)習(xí)能力。殘差塊包含2個卷積塊和局部跳躍連接,其中卷積塊包含1個卷積核大小為3×3,步長為1,輸出通道為64的卷積層,1個實例歸一化層和ReLU激活函數(shù)層。為了進一步提取當(dāng)前尺度的特征,殘差平滑空洞卷積(SDRBi)后接兩個殘差塊(RB1i和RB2i)來保證提取當(dāng)前尺度特征的完整性。殘差塊RBi(x)表示為
RBi(x)=CB2i(CB1i(Fi-1(x)))+Fi-1(x)
(9)
式中,CBni(·)表示卷積函數(shù)。
圖3 殘差塊RB結(jié)構(gòu)圖
高效通道注意力機制[18]如圖4所示。首先進行不降維的全局平均池化;其次自適應(yīng)的確定一個卷積核大小為k×k的卷積層,實現(xiàn)跨通道信息交互;接著使用Sigmoid函數(shù)得到特征圖的權(quán)重值;最后使用特征圖權(quán)重值調(diào)整輸入特征圖,輸出帶權(quán)重的特征圖。在每個特征提取模塊(FEBi)中均使用高效通道注意力機制,通過加權(quán)篩選出當(dāng)前尺度的顯著特征代替原來的特征向后傳播,提高了網(wǎng)絡(luò)的效率和性能。高效通道注意力機制ECAi(x)表示為
ECAi(x)=δ(Convki(gi(Fi-1(x))))?Fi-1(x)
(10)
式中:gi(·)表示全局平均池化函數(shù);Convki(·)表示卷積核大小為k×k的卷積函數(shù);δ表示Sigmoid函數(shù)。
圖4 高效通道注意力機制ECA結(jié)構(gòu)圖
為了將多尺度特征進行有效融合。如圖1所示,特征融合模塊首先將不同尺度的特征進行堆疊(Concat),然后通過一個卷積核大小為3×3的卷積層將堆疊后的多尺度特征進行壓縮,其輸入通道數(shù)為192,輸出通道數(shù)為64。堆疊并壓縮后的特征Fcat(x)表示為
Fcat(x)=Convcat(cat(F1(x),F2(x),F3(x)))
(11)
式中:Convcat(·)表示壓縮的卷積函數(shù);cat(·)表示拼接函數(shù)。不同尺度的特征堆疊壓縮后再次使用高效通道注意力機制(ECA4),動態(tài)調(diào)整其通道權(quán)重,學(xué)習(xí)豐富的上下文信息并抑制冗余信息,增強網(wǎng)絡(luò)提取霧霾密度圖像的能力從而使去霧更加徹底。特征融合模塊Fc(x)表示為
Fc(x)=ECA4(Fcat(x))
(12)
解碼模塊與編碼模塊對稱,如圖1所示,解碼模塊包含1個反卷積塊(DeConv)和2個卷積塊(Conv4、Conv5),填充均設(shè)置為1。反卷積塊的卷積核大小為4×4,步長為2,輸入通道數(shù)為64;一個卷積塊的卷積核大小為3×3,步長為1;另一個卷積塊的卷積核大小為1×1輸出通道為3。解碼模塊將融合后的特征進行非線性映射得到霧霾密度圖像,解碼模塊表示為
Ih(x)=Conv5(Conv4(DeConv(Fc(x))))
(13)
最終,恢復(fù)的無霧圖像J(x)表示為
J(x)=I(x)-Ih(x)
(14)
大多數(shù)基于學(xué)習(xí)的圖像去霧方法使用均方差損失(MSE)進行訓(xùn)練,本文采用均方差損失函數(shù)來衡量網(wǎng)絡(luò)預(yù)測的霧霾密度圖像與真正霧霾密度圖像之間的差異。均方差損失Lmse(x)表示為
(15)
式中:h(x)為真正霧霾密度圖像;G(x)為清晰圖像;RA(·)為本文提出的殘差注意力機制網(wǎng)絡(luò)。
實驗環(huán)境為Win10操作系統(tǒng),Intel(R)i7-7700CPU@3.60GHz處理器,內(nèi)存為16.0 GB,顯卡為NVIDIA GeForce GTX 1080。利用pytorch框架實現(xiàn)網(wǎng)絡(luò),使用Adam對網(wǎng)絡(luò)進行優(yōu)化,訓(xùn)練的批量大小為12,初始學(xué)習(xí)率為0.01且每40次迭代學(xué)習(xí)率衰減為原來的0.1倍,迭代次數(shù)為100次。
數(shù)據(jù)集采用公開的圖像去霧RESIDE[19]數(shù)據(jù)集,包括5個子集,其中2個訓(xùn)練集分別為室內(nèi)訓(xùn)練集(indoor training set,ITS)和室外訓(xùn)練集(outdoor training set,OTS);3個測試集分別為綜合客觀測試集(synthetic objective testing set,SOTS)、混合主觀測試集(hybrid subjective testing set,HSTS)和真實有霧圖像測試集(real-world task-driven testing set,RTTS)。實驗選取ITS作為訓(xùn)練集,將本文算法與近些年具有優(yōu)勢的算法進行對比,包括DCP[4]、CAP[5]、AOD-Net[8]、DehazeNet[6]和GCANet[10]。
本實驗對合成數(shù)據(jù)集進行測試,并與經(jīng)典方法進行定量和定性的比較。選用峰值信噪比和結(jié)構(gòu)相似度[19]來評估去霧結(jié)果的好壞,值越高代表去霧的效果越好。
各方法的峰值信噪比和結(jié)構(gòu)相似度如表1所示。
表1 在SOTS室內(nèi)數(shù)據(jù)集上峰值信噪比和結(jié)構(gòu)相似度
對于峰值信噪比,DCP方法、CAP方法和AOD-Net方法都在20.00以下,DehazeNet方法比AOD-Net方法提高了2.08,GCANet方法的峰值信噪比達到30.23,較前4種方法有很大提升,本文方法的峰值信噪比較GCANet方法提高了4.28。對于結(jié)構(gòu)相似度,前4種方法均未達到0.900 0,GCANet方法的結(jié)構(gòu)相似度最高,本文方法的結(jié)構(gòu)相似度較GCANet方法略低0.004 6,但相較于其他算法,仍有較高的提升。
另外,在SOTS室內(nèi)測試集中選擇4張不同濃度的霧圖,進行主觀質(zhì)量的評價。各方法的去霧效果以及對應(yīng)的峰值信噪比如圖5所示。DCP方法恢復(fù)的圖像出現(xiàn)了顏色失真的現(xiàn)象,整體顏色較深,且不適合高亮度區(qū)域的恢復(fù)(見圖5b)中的透光區(qū)域)。CAP方法恢復(fù)的圖像顏色偏深(見圖5c)中的桌面區(qū)域),并且在濃霧的情況下,圖像出現(xiàn)去霧不徹底的現(xiàn)象(見圖5c)中后3幅圖遠景處)。AOD-Net方法恢復(fù)的圖像出現(xiàn)顏色失真(見圖5d)中的桌面區(qū)域顏色偏深)和去霧不徹底的現(xiàn)象(見圖5d)中的濃霧區(qū)域)。DehazeNet方法恢復(fù)的圖像能保持原來的色彩,但是在去除濃霧時容易出現(xiàn)去霧不徹底的現(xiàn)象(見圖5e)中的濃霧區(qū)域)。GCANet方法去霧效果不錯,但在某些區(qū)域仍出現(xiàn)顏色失真(見圖5f)中的窗簾和柜子區(qū)域)。本文的去霧方法,表現(xiàn)出了較好的去霧效果,未出現(xiàn)可見顏色失真現(xiàn)象,對于濃霧圖像去霧較為徹底,并且恢復(fù)的圖像細節(jié)和色彩更接近原始清晰圖像。
圖5 SOTS室內(nèi)合成有霧圖像的實驗結(jié)果
為了進一步驗證本文提出的基于殘差注意力機制的圖像去霧算法的有效性,選取RESIDE中的RTTS真實有霧數(shù)據(jù)集和網(wǎng)絡(luò)上常見的現(xiàn)實世界霧天圖像作為自然霧圖測試集,將本文算法與對比算法在上述自然霧圖測試集上進行比較。去霧結(jié)果如圖6所示。對于前3幅薄霧圖,DCP方法恢復(fù)的圖像顏色失真,如圖6b)中第二、三幅圖中建筑物的顏色偏深;另外,該方法恢復(fù)天空區(qū)域容易出現(xiàn)失真現(xiàn)象,如圖6b)中第一幅圖天空區(qū)域出現(xiàn)黃色,第二幅圖天空區(qū)域出現(xiàn)黑色。CAP方法恢復(fù)的圖像顏色過深,如圖6c)中第二幅圖近景處出現(xiàn)黑色;另外,該方法恢復(fù)的圖像出現(xiàn)了去霧不徹底現(xiàn)象,如圖6c)中第一、三幅圖的遠景處。AOD-Net方法雖然可以去除部分霧,但恢復(fù)的圖像缺少細節(jié),如圖6d)中第二幅圖遠處的建筑物細節(jié)模糊不清,第一、三幅圖均存在去霧不徹底現(xiàn)象;另外,該方法恢復(fù)的圖像容易出現(xiàn)顏色失真現(xiàn)象,如圖6d)中第二幅圖近處的建筑物區(qū)域顏色過深。DehazeNet方法對于遠景處的霧去除效果不佳,如圖6e)中第二幅圖遠處的霧仍有殘余;第一、三幅圖也出現(xiàn)了去霧不徹底的現(xiàn)象。GCANet方法雖然取得了較好的去霧效果,但存在去霧不均勻的現(xiàn)象,如圖6f)中第一幅圖天空區(qū)域出現(xiàn)不均勻色塊,第二幅圖最遠處的高樓區(qū)域比較模糊。本文算法得到的圖像去霧效果優(yōu)于上述算法,既能較為徹底的去霧,又能恢復(fù)視覺效果較好的清晰圖像。對于最后一幅濃霧圖像,所有的方法均未能徹底的去霧,但本文算法能夠恢復(fù)出遠處建筑輪廓,對比其他算法在去除濃霧方面有一定進步,但也出現(xiàn)了部分區(qū)域顏色失真現(xiàn)象。
圖6 真實場景有霧圖像實驗結(jié)果
為了驗證本文所提多尺度特征提取和特征融合模塊的有效性,在SOTS室內(nèi)測試集上進行如下消融實驗:①特征提取模塊使用普通卷積層替換SDRB中的空洞卷積層,僅提取相同尺度的特征,并且特征融合模塊不使用ECA模塊;②特征提取模塊使用普通卷積層,特征融合模塊使用ECA模塊;③特征提取模塊使用空洞卷積,特征融合模塊不使用ECA模塊。上述實驗的峰值信噪比和結(jié)構(gòu)相似度如表2所示。從表2可以看出,僅使用特征融合模塊(實驗2)和僅使用多尺度特征提取模塊(實驗3)比二者均不使用(實驗1)的峰值信噪比分別提升了0.62和0.94;同時利用2個模塊(本文算法)比實驗2和實驗3的峰值信噪比分別提升了1.65和1.33;并且本文算法的結(jié)構(gòu)相似度較其他3組實驗均有提升。因此本文提出的多尺度特征提取模塊和包含ECA的特征融合模塊具有實際的有效性。
表2 在SOTS室內(nèi)數(shù)據(jù)集上峰值信噪比和結(jié)構(gòu)相似度比較
本文提出了基于殘差注意力機制的圖像去霧算法,端到端地預(yù)測霧霾密度圖像進行去霧。網(wǎng)絡(luò)設(shè)計基于編碼-解碼結(jié)構(gòu),方便后續(xù)特征提取并且減少內(nèi)存占用;利用多尺度特征提取和特征融合模塊對不同尺度特征進行有效提取和融合,在其每個模塊末尾均使用了高效通道注意力機制,自適應(yīng)地使顯著特征具有較大權(quán)重,抑制了冗余信息,增強了網(wǎng)絡(luò)恢復(fù)霧霾密度圖像的性能從而令去霧更加徹底。本文方法不依賴大氣散射模型,有效地改善了顏色失真和去霧不徹底的現(xiàn)象,提高了網(wǎng)絡(luò)性能,針對合成圖像和現(xiàn)實場景中的霧圖均表現(xiàn)出了良好的去霧效果。