李岸然,方陽陽,程慧杰,張申申,閻金強,于 騰,楊國為
(1.齊魯工業(yè)大學(xué)(山東省科學(xué)院)山東省科學(xué)院激光研究所,山東 濟(jì)寧 272000;2.濟(jì)寧科力光電產(chǎn)業(yè)有限責(zé)任公司,山東 濟(jì)寧 272000;3.青島大學(xué)電子信息學(xué)院,山東 青島 260000)
早期的圖像去霧研究主要依賴于對模糊圖像的物理特征進(jìn)行分析,以確定先驗信息,例如暗通道先驗[1]、顏色衰減先驗[2]等。然而,使用這些先驗估計參數(shù)的準(zhǔn)確性較低,也不能在各種真實模糊場景中始終有效,因為這些先驗是基于人類觀察得出的,無法完全適應(yīng)不同的模糊情況。
隨著卷積神經(jīng)網(wǎng)絡(luò)(CNN)在視覺任務(wù)中的應(yīng)用,相關(guān)研究已經(jīng)提出了幾種方法來估計透射率和大氣光,以提高圖像去霧的準(zhǔn)確性[3-5]。然而,這些參數(shù)的不準(zhǔn)確估計可能導(dǎo)致輸入圖像的過度去霧或不足去霧。基于CNN[6]的其他方法則跳過了估計透射率的步驟,通過使用有霧圖像和無霧圖像對的端到端學(xué)習(xí),將去霧問題轉(zhuǎn)化為直接預(yù)測無霧圖像[7-8]。這些方法在去霧結(jié)果上取得了顯著的改進(jìn),尤其是在合成數(shù)據(jù)集上。然而,由于訓(xùn)練數(shù)據(jù)中的圖像對多數(shù)是合成的,因此在處理真實模糊圖像時,去霧性能通常會下降。此外,傳統(tǒng)的CNN 以局部方式處理圖像,通常使用具有小感受野的卷積濾波器,因此它們對長程依賴的建模能力有限。
Transformers[9]最初應(yīng)用于自然語言處理(NLP)任務(wù)[10-11]。最近,已經(jīng)有一些新的嘗試將Transformers 擴展到計算機視覺任務(wù),并取得了更好的表現(xiàn)。例如Liu 等人[12]提出了將Shifted Windows 應(yīng)用于Transformer 的Swin-Transformer,并在減少計算量的同時,在基于視覺的物體檢測中取得了改進(jìn)的效果。最近,Chen 等人[13]將圖像處理Transformer(IPT)應(yīng)用于去噪、超分辨率和去雨等任務(wù),并展示了Transformer在低級計算機視覺任務(wù)中的優(yōu)勢。
首先,霧霾圖像是由于大氣中的霧霾的衰減和散射效應(yīng)而形成的,這意味著帶有霧霾的圖像隱含著一系列共同的物理特性。然而,由于缺乏來自物理方面的先驗知識,有霧圖像和無霧圖像對的端到端學(xué)習(xí)無法捕捉到所有必要的特征,因此將傳統(tǒng)的基于先驗的方法整合到廣泛使用的深度學(xué)習(xí)框架中具有較強的必要性。其次,由于霧霾密度與圖像深度成比例,圖像去霧在圖像濾波方面需要適應(yīng)圖像內(nèi)容變化的濾波器尺寸。相比之下,Transformer 利用自注意機制[14]能夠捕捉圖像中像素之間的長距離依賴關(guān)系。在圖像去霧任務(wù)中,這種注意機制可以幫助模型聚焦于圖像中與霧霾更加明顯或集中的相關(guān)區(qū)域,從而更好地理解和處理復(fù)雜的圖像結(jié)構(gòu),這種全局上下文理解可以帶來更好的去霧結(jié)果。鑒于以上分析,本文提出一種雙流Transformer 去霧網(wǎng)絡(luò),它在傳統(tǒng)的編碼器-解碼器結(jié)構(gòu)中添加了一個基于先驗的子網(wǎng)絡(luò),用于特征增強模塊的開發(fā),以整合原始霧霾圖像網(wǎng)絡(luò)和基于先驗的去霧結(jié)果網(wǎng)絡(luò)的各自優(yōu)勢,實現(xiàn)對去霧方法的改進(jìn)。方法的總體概述如圖1所示。
圖1 本文的網(wǎng)絡(luò)結(jié)構(gòu)
如圖1 所示,本文提出的去霧網(wǎng)絡(luò)架構(gòu)包括一個雙編碼器的多尺度Transformer U 型網(wǎng)絡(luò)和一個特征增強模塊,該網(wǎng)絡(luò)將物理先驗知識融合到基于學(xué)習(xí)的去霧框架中,以突顯物理和正向貢獻(xiàn)特征對于無霧圖像恢復(fù)的重要性,同時開發(fā)了一種新穎的多尺度特征增強模塊,能夠從2個子網(wǎng)絡(luò)流中分別融合和增強紋理和結(jié)構(gòu)特征,從而有助于解碼器實現(xiàn)無霧圖像的恢復(fù)。
眾所周知,隨著網(wǎng)絡(luò)層級加深,高級特征不斷累積,而低級特征逐漸消失。在圖像去霧任務(wù)中,低級特征對于恢復(fù)無霧圖像的細(xì)節(jié)非常重要,因此充分利用來自不同層級的特征非常必要。因此,在本文的網(wǎng)絡(luò)中,選擇采用U 型網(wǎng)絡(luò)[15-16]的形式,并引入一個雙解碼器結(jié)構(gòu),分別從霧化圖像和先前結(jié)果中提取不同層次的特征。為了方便起見,本文用IH和IP來代表霧化圖像、先驗結(jié)果和清晰圖像。編碼器的提取過程總結(jié)如下:
式中,GEnc-u表示u 型編碼器的特征提取過程,GEnc表示先驗編碼器的特征提取過程。i表示從有霧圖像中提取的特征,j表示從先驗結(jié)果中提取的特征。is、js分別表示從有霧圖像和先驗結(jié)果的中提取的淺層特征,id、jd分別表示從有霧圖像和先驗結(jié)果的中提取的深層特征。2 個編碼器不同層級的特征經(jīng)過特征增強模塊進(jìn)行融合。該模塊可表示如下:
式中,Genh表示特征增強模塊的函數(shù)。Fl和Fh是特征增強模塊的輸出,分別包含輸入圖像的結(jié)構(gòu)和紋理信息。傳統(tǒng)的單圖像生成過程可以表示為式(5)。通過跳躍連接,增強特征用于補充解碼器特征進(jìn)行圖像去霧。使用增強特征的圖像生成可以表示式(6)。
式中,J表示生成圖像,in表示傳統(tǒng)網(wǎng)絡(luò)提取的特征,GDcc表示通過解碼器生成圖像的過程,C是附加條件。
眾所周知,不同層級的CNN 在對輸入圖像進(jìn)行編碼時強調(diào)的信息不同[17]。自注意機制已在低級視覺任務(wù)中被證明是有效的[13,18-19]。因此,本文采用了U 型網(wǎng)絡(luò)[18-19]中CNN 的替代方案,即基于自注意力的Transformer模塊,作為本文的主干網(wǎng)絡(luò)來構(gòu)建編碼器-解碼器框架。
如圖1 所示,首先應(yīng)用卷積層從有霧圖像中提取淺層特征,然后將這些特征編碼,輸入到dehazeformer[19]的Transformer 模塊中。自注意力計算公式如下:
解碼器的結(jié)構(gòu)與編碼器相對稱。上采樣結(jié)果、編碼器結(jié)果和通過跳躍連接增強的特征都被送入解碼器階段。通過融合更多的結(jié)構(gòu)和紋理信息,增強了網(wǎng)絡(luò)的轉(zhuǎn)換能力。此外,網(wǎng)絡(luò)的末端包括2 個分支,分別用于估計透射圖和生成去霧結(jié)果。這2 個分支由不同的卷積層組成。
傳統(tǒng)去霧方法依賴于物理先驗知識[22],當(dāng)透射圖的估計不準(zhǔn)確時,可能導(dǎo)致去霧圖像的某些區(qū)域(如天空區(qū)域)出現(xiàn)顏色失真或光暈偽影。相比之下,基于學(xué)習(xí)的方法[23]通常在這些區(qū)域表現(xiàn)更出色?;趯W(xué)習(xí)的模型通常在合成數(shù)據(jù)集上訓(xùn)練,這可能引發(fā)域偏移問題,從而使模型在真實世界場景中無法很好地泛化。同時,基于先驗的方法可以更有效地增強物體的物理特征,這與物理世界的實際情況密切相關(guān)。因此,本文利用先驗結(jié)果的潛在信息幫助在合成數(shù)據(jù)集上訓(xùn)練的模型來更好地泛化到真實的霧霾數(shù)據(jù)集,進(jìn)而實現(xiàn)更好的去霧效果。通過將傳統(tǒng)方法和基于學(xué)習(xí)的方法的優(yōu)勢相結(jié)合,可以實現(xiàn)更出色的去霧效果。
模型從先驗結(jié)果中提取特征,采用卷積層和具有殘差結(jié)構(gòu)的密集卷積[24-25]進(jìn)行卷積。先驗編碼器的結(jié)構(gòu)與主干編碼器對應(yīng)。先驗編碼器首先使用卷積核從基于暗通道方法去霧后的先驗結(jié)果中提取淺層特征,然后使用密集卷積進(jìn)一步提取特征。每個密集卷積包含3個殘差塊,殘差塊如下所示:
式中,α設(shè)置為0.1。
淺層特征通常關(guān)注圖像細(xì)節(jié),而深層特征則更強調(diào)圖像的結(jié)構(gòu)特征。本文還使用單獨的編碼器從暗通道先驗結(jié)果中提取多尺度特征。編碼器包括多個卷積層、分組歸一化、ReLU激活和密集卷積。最后從這些層中選擇特征作為解碼器的額外引導(dǎo),用以提供物理信息。
由于霧霾圖像中的不同區(qū)域?qū)F霾去除任務(wù)的需求明顯不同,不準(zhǔn)確的霧霾估計通常會導(dǎo)致過度或不足的去霧結(jié)果。因此,本文希望網(wǎng)絡(luò)能夠更有效地利用編碼器特征,以避免信息丟失。首先,將相同尺寸的特征進(jìn)行拼接,并使用1×1 卷積層進(jìn)行特征壓縮。然后,將得到的特征饋入多尺度特征精化模塊的分支中,過程如下:
由于圖像的對象分布引起的區(qū)域差異是影響去霧模型性能的主要因素,本文提出多尺度特征增強模塊,以進(jìn)一步優(yōu)化對象邊緣級別并明確圖像紋理細(xì)節(jié),重新組織的特征被輸入到該模塊中。該模塊由3個并行分支組成,每個分支都包含多個具有相同核大小的空洞卷積,3 個分支的空洞率設(shè)置為[r1,r2,r3]=[1,2,3],每個分支的卷積核大小分別為3×3、5×5 和7×7,不同核大小的卷積核用于細(xì)化多尺度特征。然后,使用不同大小的卷積核細(xì)化的特征被拼接在一起。本文使用2 個分支分別處理紋理和結(jié)構(gòu)特征,過程如下:
為了提高模型在真實數(shù)據(jù)集中的性能,在重構(gòu)損失的基礎(chǔ)上,本文引入2 個基于先驗物理知識的額外損失函數(shù)。
1)重構(gòu)損失:采用簡單的L1 損失作為框架的主要部分。
2)暗通道先驗損失:暗通道先驗是通過對霧圖像進(jìn)行統(tǒng)計得到的,它表示無霧圖像的暗通道特征。暗通道先驗損失定義為能量函數(shù):
式中,t和t?分別指代從暗通道先驗和本文的網(wǎng)絡(luò)結(jié)果估計的透射率。L表示類似拉普拉斯矩陣,λ是一個超參數(shù)。LDCP極大地改善了模型在真實數(shù)據(jù)集上的去霧效果,但也傾向于使生成圖像的整體亮度變暗。
3)整體損失函數(shù):整體損失函數(shù)定義如下:
式中,λL1和λd是權(quán)衡權(quán)重。
首先,本章展示網(wǎng)絡(luò)的實現(xiàn)配置細(xì)節(jié)。然后,在基準(zhǔn)數(shù)據(jù)集上與較先進(jìn)方法進(jìn)行比較,并驗證了本文的網(wǎng)絡(luò)在去霧效果上取得了顯著改進(jìn)。最后,進(jìn)行消融實驗,以驗證網(wǎng)絡(luò)組件的有效性。
1)數(shù)據(jù)集。
目前,常用的合成霧數(shù)據(jù)集是RESIDE[26]。在先前的研究工作中,室內(nèi)訓(xùn)練集(ITS)、室外訓(xùn)練集(OTS)和合成對象測試集(SOTS)通常被用于實驗。為了便于比較,本文采用相同的配置。在本文中,從RESIDE 數(shù)據(jù)集中選取了ITS 和OTS,用于模型的訓(xùn)練,并在SOTS 上測試了訓(xùn)練完成的模型。ITS 包含13990 個室內(nèi)圖像,這些圖像是合成的霧圖像,并帶有深度信息。OTS 包含313950 個室外場景中的圖像對。SOTS是RESIDE的合成對象測試集,包含室內(nèi)場景(500 個圖像對)和室外場景(500 個圖像對)。在訓(xùn)練過程中,將圖像裁剪成一組256×256大小的補丁,并進(jìn)行隨機翻轉(zhuǎn)。在ITS上進(jìn)行300個epochs的訓(xùn)練,在OTS上進(jìn)行30個epochs的訓(xùn)練。
2)實施細(xì)節(jié)。
本文首先使用基于DCP[1]方法的去霧算法對霧圖像進(jìn)行處理,作為先驗引導(dǎo)輸入。在實驗中,本文使用PyTorch 框架和2 個NVIDIA GeForce GTX 2080Ti GPU來實現(xiàn)模型,并選擇Adam[27]算法作為優(yōu)化器,批大小為8,β1和β2的默認(rèn)值為0.9 和0.999,初始學(xué)習(xí)率設(shè)置為0.0002,并采用余弦退火策略來調(diào)整學(xué)習(xí)率,最小值ηimin設(shè)置為初始學(xué)習(xí)率的0.01 倍。網(wǎng)絡(luò)使用的損失函數(shù)的權(quán)重設(shè)置為λL1= 1,λd= 0.002。
本文對提出的模型進(jìn)行性能評估,并將其與基于手工制作的先驗知識DCP[1],以及幾個端到端的網(wǎng)絡(luò) AOD-Net[5]、DehazeNet[4]、MSCNN[28]、GFN[29]、GCANet[30]、PFFNet[31]、GDN[32]、DuRN[33]、MSBDN[7]、FFA-Net[8]、Dehazeformer[20]、AECR-Net[34]、D4[35]、MAXIM-2S[36]、UDN[37]、MSAFF-Net[38]進(jìn)行比較。本文使用峰值信噪比(PSNR)和結(jié)構(gòu)相似性指標(biāo)(SSIM)作為評估恢復(fù)圖像質(zhì)量的標(biāo)準(zhǔn)。
1)合成數(shù)據(jù)集上的結(jié)果。
在表1 中比較了本文提出的網(wǎng)絡(luò)與現(xiàn)有方法在合成數(shù)據(jù)集(SOTS 室內(nèi)[27])上的表現(xiàn)。在表2 中比較了本文提出的網(wǎng)絡(luò)與現(xiàn)有方法在合成數(shù)據(jù)集(SOTS室外[27])上的表現(xiàn)。通過PSNR 和SSIM 的數(shù)值可以看出,本文提出的網(wǎng)絡(luò)模型表現(xiàn)出了最佳性能,在圖2和圖3中提供了視覺比較結(jié)果。
表1 不同方法在SOTS室內(nèi)合成數(shù)據(jù)集上的定量結(jié)果
表2 不同方法在SOTS室外合成數(shù)據(jù)集上的定量結(jié)果
圖2 在SOTS室內(nèi)去霧數(shù)據(jù)集上不同方法的可視化對比
圖3 在SOTS室外去霧數(shù)據(jù)集上不同方法的可視化對比
根據(jù)表1 和圖2 的觀察,先驗方法DCP[1]在去霧過程中常常導(dǎo)致色彩失真。DehazeNet[4]的去霧結(jié)果也存在色彩偏移問題。同時,DehazeNet[4]和AODNet[5]的結(jié)果中仍可看到殘留的霧霾。相比之下,基于端到端學(xué)習(xí)的方法[4-5,20]表現(xiàn)更佳,但在某些小區(qū)域仍會產(chǎn)生黑色偽影。與這些方法相比,本文模型結(jié)果中色彩失真較少,整體外觀更好,更接近真實的無霧圖像。
2)實際數(shù)據(jù)集上的結(jié)果。
為了驗證本文的模型在真實的朦朧場景中的表現(xiàn),本文根據(jù)NTIRE2018 圖像去霧挑戰(zhàn)的設(shè)定[39]來訓(xùn)練和測試本文方法,并使用I-Haze[40]和O-Haze[41]數(shù)據(jù)集。在表3 中展示了本文的訓(xùn)練結(jié)果并與其他現(xiàn)有方法進(jìn)行了比較。結(jié)果顯示,本文方法在真實的朦朧數(shù)據(jù)集上取得了改進(jìn)的效果。圖4 展示了去霧結(jié)果的視覺比較,可以看到本文方法在結(jié)構(gòu)和細(xì)節(jié)方面產(chǎn)生了良好的視覺效果。
表3 不同方法在真實數(shù)據(jù)集上的定量比較
圖4 O-Haze數(shù)據(jù)集上的視覺結(jié)果
本節(jié)進(jìn)行消融分析以進(jìn)一步驗證本文提出的方法的有效性。為了公平比較,本文采用與原始網(wǎng)絡(luò)相同的設(shè)置來訓(xùn)練以下網(wǎng)絡(luò),并使用文獻(xiàn)[39]中數(shù)據(jù)集進(jìn)行訓(xùn)練和測試。
本文的消融研究重點放在2 個模塊上,即先驗引導(dǎo)模塊和MFE 模塊。此外,本文還探索了MFE 模塊不同的連接方式對結(jié)果的影響,并繼續(xù)使用SSIM 和PSNR作為評估指標(biāo)。
為了驗證本文所提出的網(wǎng)絡(luò)模塊的有效性,本文使用了不同的網(wǎng)絡(luò)配置。所有網(wǎng)絡(luò)配置都在RESIDE數(shù)據(jù)集的ITS(室內(nèi)訓(xùn)練集)上進(jìn)行測試。表4 展示了實驗結(jié)果。本文的Baseline 模型采用Transformer 骨干網(wǎng)絡(luò),此外還進(jìn)行了2 個改進(jìn):Baseline-Prior 和Baseline-Enhance。Baseline-Prior 通過先驗引導(dǎo)模塊提取特征,并將這些特征直接傳遞給解碼器進(jìn)行補充;而Baseline-Enhance 則使用模塊來增強骨干網(wǎng)絡(luò)編碼器的特征,并將增強后的特征傳遞給解碼器進(jìn)行補充。從表4可以看出,這4種網(wǎng)絡(luò)中,本文提出的模塊進(jìn)一步提高了網(wǎng)絡(luò)的去霧能力。
表4 網(wǎng)絡(luò)模塊消融研究結(jié)果
本文的多尺度特征增強模塊分別處理包含結(jié)構(gòu)和紋理信息的不同層特征,這2 個分支會被連接到功能增強模塊上。本文嘗試2 種不同的連接方式:一種是默認(rèn)配置,即在功能增強模塊之后連接這2 個分支,如圖5(a)所示;另一種是在功能增強模塊之前連接這2 個分支,如圖5(b)所示。本文在RESIDE 數(shù)據(jù)集的ITS(室內(nèi)訓(xùn)練集)上訓(xùn)練了這2 種配置的模型,并將結(jié)果列示在表5 中。從結(jié)果來看,使用默認(rèn)配置方式的模型在PSNR 和SSIM 上都取得了稍微優(yōu)于在功能增強模塊之前連接分支的模型的結(jié)果。這表示著在功能增強模塊之后連接分支能夠更好地整合和利用不同層特征的結(jié)構(gòu)和紋理信息,從而提高了重建圖像的質(zhì)量。
表5 2種特征增強方式的消融研究結(jié)果
圖5 特征增強的2種不同方式
本文提出了一種全新的端到端去霧方法。本文采用了廣泛使用的基于Transformer 的編碼器-解碼器結(jié)構(gòu)作為基線模型,但存在一個主要限制,即缺乏霧物理先驗的指導(dǎo),這可能限制了其在準(zhǔn)確估計真實有霧場景中的霧密度方面的性能。為了解決這一問題,本文提出了雙流編碼器架構(gòu),該架構(gòu)能夠?qū)碜杂徐F輸入和基于先驗的去霧結(jié)果的編碼器特征集成在一起,從而使網(wǎng)絡(luò)更加適應(yīng)現(xiàn)實世界中的情況。此外,本文還提出了多尺度特征增強模塊,該模塊能夠?qū)y理和結(jié)構(gòu)層的特征進(jìn)行單獨的特征級融合,以提高模型在處理圖像細(xì)節(jié)和邊緣輪廓以補充去霧圖像恢復(fù)方面的能力。最后,通過在真實和合成數(shù)據(jù)集上進(jìn)行了大量的定量和定性實驗分析,結(jié)果驗證了本文方法的有效性和先進(jìn)性。