張家豪,俞 雷,張 娟
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
霧是大氣中懸浮的微粒,如粉塵、水汽和煙塵等吸收物體的反射光后,導(dǎo)致大氣光發(fā)生散射而產(chǎn)生的一種常見(jiàn)自然現(xiàn)象。霧不僅會(huì)降低能見(jiàn)度,還會(huì)讓采集的圖像對(duì)比度下降、顏色失真。在霧天拍攝物體會(huì)丟失大量細(xì)節(jié)特征,圖像嚴(yán)重退化[1-2],從而對(duì)目標(biāo)檢測(cè)、目標(biāo)追蹤、語(yǔ)義分割和自動(dòng)駕駛等各種計(jì)算機(jī)視覺(jué)任務(wù)造成不利影響。因此,圖像去霧已經(jīng)成為近年來(lái)計(jì)算機(jī)視覺(jué)領(lǐng)域的一個(gè)重要研究課題,去霧算法能提高惡劣天氣條件下各類(lèi)計(jì)算機(jī)視覺(jué)辨識(shí)的性能和魯棒性。
目前,圖像去霧算法可分為2 類(lèi)。一類(lèi)是傳統(tǒng)圖像處理方法,該類(lèi)算法以大氣散射模型為基礎(chǔ)通過(guò)各種先驗(yàn)知識(shí)模型恢復(fù)清晰圖像。另一類(lèi)是基于學(xué)習(xí)的方法。
傳統(tǒng)圖像處理方法通過(guò)先驗(yàn)信息對(duì)圖像進(jìn)行增強(qiáng),改善圖像的對(duì)比度、亮度等使圖像變清晰。常用于去霧的圖像增強(qiáng)算法包括直方圖均衡化、Retinex算法[3-5]和小波變換等。由霧氣引起的圖像退化通常用大氣退化模型來(lái)描述:
其中,I(x)和J(x)分別表示有霧圖像和清晰圖像;t(x)是大氣光強(qiáng)度值;A是大氣透射率。由大氣散射模型可知,清晰圖像可以通過(guò)估算大氣光強(qiáng)度和大氣透射率來(lái)得到。He 等人[6]通過(guò)觀察發(fā)現(xiàn)在室外清晰圖像的非天空區(qū)域內(nèi),局部的某些像素至少有一個(gè)通道的強(qiáng)度較小或接近0,因此提出可以用暗通道先驗(yàn)原理得到大氣透射率,進(jìn)而恢復(fù)有霧圖像。該方法在光線(xiàn)均勻的場(chǎng)景下有較好的效果,但仍存在天空及白色物體區(qū)域內(nèi)色彩失真、附近帶有光暈的問(wèn)題。文獻(xiàn)[7]通過(guò)對(duì)大量有霧圖像進(jìn)行分析,發(fā)現(xiàn)在有霧情況下圖像的深度、亮度和飽和度之間存在正相關(guān),基于觀察到的先驗(yàn)知識(shí)提出了顏色衰減先驗(yàn)來(lái)求解大氣透射率,進(jìn)而得到清晰圖像。該算法可以有效去除圖像中近景的霧,但遠(yuǎn)景去霧效果不佳。
近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺(jué)領(lǐng)域獲得了可觀的進(jìn)展?,F(xiàn)已將一些基于學(xué)習(xí)的方法用于單幅圖像去霧算法中。這類(lèi)方法主要可以分為2 類(lèi)。一類(lèi)是基于大氣退化模型利用卷積神經(jīng)網(wǎng)絡(luò)估計(jì)大氣退化模型的參數(shù)來(lái)恢復(fù)圖像。例如DehazeNet[8]使用設(shè)計(jì)好的卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)霧天大氣光的強(qiáng)度參數(shù)t(x),隨后利用大氣退化模型恢復(fù)出無(wú)霧圖像。另一類(lèi)是基于端到端的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)模型直接學(xué)習(xí)輸入的有霧圖像和清晰圖像的映射關(guān)系,克服了傳統(tǒng)算法需要手工提取特征的不足[9]。AODNet[10]使用端到端的CNN 直接提取有霧圖像中的背景特征重構(gòu)清晰圖像,不再依賴(lài)估算大氣退化模型的未知參數(shù)A和t(x)恢復(fù)圖像。GFN[11]通過(guò)提取不同尺度下有霧圖像的特征恢復(fù)清晰圖像。文獻(xiàn)[12]將原始圖像分別使用3 個(gè)不同尺度的卷積核進(jìn)行卷積,經(jīng)過(guò)一系列特征提取,得到場(chǎng)景透射率的近似值,隨后將學(xué)習(xí)到的場(chǎng)景透射率用于清晰圖像的恢復(fù)?;趯W(xué)習(xí)的方法往往需要大量的成對(duì)訓(xùn)練樣本進(jìn)行訓(xùn)練,然而成對(duì)的有霧和清晰圖像獲取十分困難,所以大多數(shù)基于學(xué)習(xí)的單幅圖像去霧算法使用合成數(shù)據(jù)集進(jìn)行訓(xùn)練。這些算法雖然在合成數(shù)據(jù)集上表現(xiàn)優(yōu)異,但在真實(shí)場(chǎng)景中的表現(xiàn)往往不佳。近幾年對(duì)抗生成網(wǎng)絡(luò)(Generated Adversarial Network,GAN)[13]憑借能在目標(biāo)域生成肉眼難以區(qū)別的偽造圖像,被廣泛應(yīng)用于圖像分割、風(fēng)格轉(zhuǎn)換和圖像修復(fù)等領(lǐng)域。Zhu 等人[14]在Cycle-GAN 中提出了周期一致性損失,不但有效提高了無(wú)監(jiān)督圖像轉(zhuǎn)換任務(wù)中的穩(wěn)定性,而且顯著改善了圖像的重建質(zhì)量。Cycle-Dehaze Net[15]使用類(lèi)似的架構(gòu),通過(guò)周期一致性損失和感知損失來(lái)獲得清晰圖像。文獻(xiàn)[16]提出了一種基于對(duì)抗生成網(wǎng)絡(luò)的霧霾場(chǎng)景轉(zhuǎn)換算法,實(shí)現(xiàn)了無(wú)霧圖像和有霧圖像之間的轉(zhuǎn)換。
本文提出了一種只需圖像類(lèi)別信息,無(wú)需成對(duì)訓(xùn)練數(shù)據(jù)集的弱監(jiān)督去霧算法,利用卷積網(wǎng)絡(luò)構(gòu)成的內(nèi)容信息編碼器和霧分布信息編碼器對(duì)有霧圖像進(jìn)行解耦。其中,內(nèi)容信息編碼器能從有霧圖像中分離出內(nèi)容信息,并對(duì)無(wú)霧圖像的內(nèi)容信息進(jìn)行編碼;霧分布信息編碼器從有霧圖像中分離出霧的分布信息,然后再使用有霧圖像生成器和清晰圖像生成器生成有霧圖像和清晰圖像。為了能使用非成對(duì)圖像來(lái)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,本文使用了對(duì)抗一致性損失來(lái)保證去霧圖像更接近目標(biāo)域,通過(guò)相對(duì)熵[17](Kullback-Leibler Divergence)對(duì)霧分布編碼器的潛在分布空間進(jìn)行約束,使霧編碼器提取的信息中盡量不包含內(nèi)容信息。此外,本文還使用了感知損失提高生成器對(duì)圖像細(xì)節(jié)和高頻信息的恢復(fù)。實(shí)驗(yàn)表明本文去霧算法在合成數(shù)據(jù)集和真實(shí)場(chǎng)景下都能有效完成去霧任務(wù)。
近年來(lái),GAN 在風(fēng)格轉(zhuǎn)換、圖像生成等領(lǐng)域引發(fā)各方關(guān)注,由GAN 網(wǎng)絡(luò)生成的圖片達(dá)到了人眼無(wú)法辨識(shí)真假的程度,現(xiàn)已廣泛應(yīng)用于語(yǔ)義分割、風(fēng)格遷移和圖像超分辨率等圖像轉(zhuǎn)換任務(wù)中。對(duì)于不同氣候條件下的同一場(chǎng)景來(lái)說(shuō),可以看成一種風(fēng)格遷移,因此GAN 網(wǎng)絡(luò)也可以用于去霧任務(wù)中。受到風(fēng)格轉(zhuǎn)換算法DRIT[18]的啟發(fā),本文提出了一種基于解耦重構(gòu)的去霧算法模型,由大氣退化模型可知,有霧圖像可以簡(jiǎn)化為如下表示:
由式(2)可知,有霧圖像可以看作由清晰圖像作為內(nèi)容信息和與內(nèi)容信息無(wú)關(guān)的大氣光強(qiáng)度、大氣投射圖所構(gòu)成的環(huán)境信息的組合。因此本文提出利用編碼器網(wǎng)絡(luò)將有霧圖像進(jìn)行解耦,將內(nèi)容信息和霧分布信息分別嵌入到與環(huán)境信息無(wú)關(guān)的內(nèi)容信息域B和與內(nèi)容無(wú)關(guān)的霧分布域H中。具體工作原理如圖1 所示。內(nèi)容信息編碼器從非配對(duì)有霧和無(wú)霧圖像中提取高層次圖像內(nèi)容信息到潛在的內(nèi)容信息域,其中通過(guò)分享內(nèi)容編碼器中最后3 層的權(quán)重信息,保證了從有霧圖像和清晰圖像中提取的內(nèi)容信息嵌入到相同的潛在空間。霧分布信息通過(guò)變分編碼器提取到與內(nèi)容無(wú)關(guān)的霧分布域H,并使用相對(duì)熵?fù)p失把從有霧圖像提取的霧分布信息約束在多元高斯分布空間。霧分布信息編碼器的輸出h{μh,} 和無(wú)霧內(nèi)容編碼器的輸出一起送到有霧圖像生成器GH來(lái)生成有霧圖像。將有霧圖像內(nèi)容編碼器的輸出和霧編碼器的輸出送入清晰圖像生成器GB生成清晰圖像。為了對(duì)生成器的內(nèi)容進(jìn)行約束,本文使用了對(duì)抗損失和循環(huán)一致性損失來(lái)維持生成器的魯棒性,使用判別器不斷提高生成器的生成能力。判別器能判別生成圖像和真實(shí)圖像的相似程度,生成器和判別器的互相對(duì)抗能有效提高生成器生成圖像的能力。下面將對(duì)算法中使用的各個(gè)模塊進(jìn)行介紹。
圖1 網(wǎng)絡(luò)整體架構(gòu)圖Fig. 1 Network architecture
卷積神經(jīng)網(wǎng)絡(luò)能夠通過(guò)卷積核高效提取圖像的高維特征,本文的內(nèi)容信息編碼器和霧分布信息編碼器中分別先使用4 組步長(zhǎng)為1 的卷積層和Relu激活函數(shù)組成的卷積模塊提取圖像的低維特征信息,隨后采用步長(zhǎng)為2 的卷積層加正則下采樣模塊來(lái)進(jìn)行下采樣,減少信息的損失。后續(xù)結(jié)構(gòu)中還加入3 個(gè)卷積殘差塊提取圖像的高維特征,該模塊的使用緩解了網(wǎng)絡(luò)層次過(guò)深而導(dǎo)致的梯度彌散。為了能讓有霧內(nèi)容信息編碼器和清晰圖像內(nèi)容信息編碼器提取的特征嵌入在相同的潛在空間,還在內(nèi)容信息編碼器的最后加入了一個(gè)殘差塊,共享2個(gè)編碼器的權(quán)重。霧分布信息編碼器使用類(lèi)似的結(jié)構(gòu),和內(nèi)容編碼器不同的是去除了最后的權(quán)重分享模塊,將其替換成了全連接層,用全連接層作為編碼部分輸出,輸出霧分布信息編碼器的分布向量z{μh,}。
生成器的作用是將原始圖像中提取的高維特征信息恢復(fù)成目標(biāo)域圖像。本文使用了2 個(gè)生成器分別用來(lái)重構(gòu)無(wú)霧圖像和有霧圖像。因?yàn)椴还苁怯徐F圖像、還是無(wú)霧圖像的內(nèi)容信息都通過(guò)內(nèi)容信息編碼器提取到了相同的潛在空間域B中,所以2 個(gè)生成器先使用相同的4 組步長(zhǎng)為1 的卷積層和Relu激活函數(shù)組成卷積模塊來(lái)共享權(quán)值參數(shù),之后分別使用3 組卷積殘差塊和2 組卷積上采樣殘差塊映射學(xué)習(xí)到的高維特征,并將圖像恢復(fù)到原來(lái)的尺寸。在上采樣模塊中使用了雙線(xiàn)性插值加卷積的操作,降低了直接使用轉(zhuǎn)置卷積帶來(lái)的細(xì)節(jié)和高頻信息丟失的可能,減少了恢復(fù)圖像中產(chǎn)生的棋盤(pán)效應(yīng)和圖像偽影[19]。
判別器的作用是判別生成圖像的真假。生成器要盡可能迷惑判別器,而判別器要盡可能區(qū)分生成圖像和真實(shí)圖像,兩者不斷博弈,最終生成器生成的圖像使得判別器無(wú)法辨別真假。本文一共使用了2個(gè)判別器,用來(lái)判別生成的有霧圖像和真實(shí)的有霧圖像。判別器使用了3 組由卷積層、批歸一化層(Batch Normalization,BN)和Relu激活函數(shù)組成的特征提取模塊對(duì)圖像特征進(jìn)行提取和鑒別,此后采用卷積層加Sigmoid激活函數(shù)輸出判別器對(duì)輸入圖片的分?jǐn)?shù)。若為真實(shí)圖片,判別器會(huì)輸出高分,否則給出一個(gè)接近零的低分。生成器和判別器采取交替訓(xùn)練的模式進(jìn)行學(xué)習(xí),直到判別器無(wú)法判別圖像真實(shí)性為止。
在本文中使用判別器輔助無(wú)霧圖像生成器和有霧圖像生成器生成偽造圖像。無(wú)霧圖像生成器GB的目的是根據(jù)有霧圖像中提取的內(nèi)容信息和霧分布信息生成一張無(wú)霧圖像,而無(wú)霧圖像判別器DB的目標(biāo)是最大化生成的清晰圖像和真實(shí)無(wú)霧圖像的價(jià)值函數(shù)。假設(shè)a表示滿(mǎn)足p(a)分布的真實(shí)清晰圖像樣本,b表示滿(mǎn)足p(b)分布的生成清晰圖像的樣本,則對(duì)抗損失函數(shù)可由如下公式進(jìn)行描述:
對(duì)于判別器來(lái)說(shuō),要盡可能判斷出圖像的真假,當(dāng)樣本服從真實(shí)樣本分布時(shí),準(zhǔn)確預(yù)測(cè)DB(a)=1。當(dāng)樣本為負(fù)樣本時(shí),準(zhǔn)確預(yù)測(cè)DB(GB((b),EH(b)))=0。通過(guò)最大化損失函數(shù)讓判別器的判別能力不斷提高。對(duì)于生成器GB則恰好相反,GB希望生成的圖像能夠騙過(guò)DB,通過(guò)兩者之間的博弈,鑒別能力不斷提高,直到兩者達(dá)到平衡。使用類(lèi)似的方式來(lái)訓(xùn)練有霧圖像判別器DH,DH的目標(biāo)是最大化真實(shí)有霧圖像和生成的有霧圖像之間的損失函數(shù)。DH的損失函數(shù)和DB類(lèi)似,表示為:
當(dāng)卷積神經(jīng)網(wǎng)絡(luò)層數(shù)足夠深、計(jì)算能力足夠強(qiáng)時(shí),網(wǎng)絡(luò)能夠把噪聲作為輸入映射到任意的目標(biāo)域,生成和目標(biāo)域類(lèi)型一致的圖像,但這種方法無(wú)法精確保證生成圖像的具體內(nèi)容。因此對(duì)抗性損失并不能保證學(xué)習(xí)到的映射函數(shù)能夠把輸入穩(wěn)定映射為指定的輸出。受到Cycle-GAN 的啟發(fā),本文使用對(duì)抗一致性損失來(lái)保證清晰圖像生成器的清晰圖像Jb能夠通過(guò)有霧圖像生成器還原成輸入的有霧圖像b,有霧圖像生成器生成的有霧圖像能夠通過(guò)清晰圖像生成器還原成清晰圖像a。和Cycle-GAN 不同的是,本文沒(méi)有對(duì)2 類(lèi)圖像直接使用編碼器進(jìn)行編碼,然后使用生成器對(duì)圖像進(jìn)行還原。本文在其中加入了解耦模塊提取圖像中的環(huán)境信息,實(shí)驗(yàn)結(jié)果表明此方法可以取得更好的去霧效果。還原圖像和輸入圖像之間使用L1距離進(jìn)行約束,其中對(duì)有霧圖像進(jìn)行去霧和對(duì)無(wú)霧圖像進(jìn)行加霧的過(guò)程可以表示為:
將圖像重新還原成有霧和無(wú)霧圖像的過(guò)程可以表示為:
完整的損失函數(shù)可以表示為:
在訓(xùn)練過(guò)程中,本文使用非成對(duì)的訓(xùn)練數(shù)據(jù)作為樣本,因此對(duì)于霧分布信息編碼器來(lái)說(shuō),能夠提取正確的霧分布信息到潛在的分布空間十分重要。對(duì)于內(nèi)容信息編碼器來(lái)說(shuō),通過(guò)共享2 個(gè)內(nèi)容信息編碼器最后3 層的權(quán)重信息,能有效引導(dǎo)不同類(lèi)型的圖像內(nèi)容信息編碼到相同的潛在分布空間。對(duì)于霧分布信息編碼器,同樣希望只是提取霧的分布信息而不包含內(nèi)容信息。為了達(dá)到這一目的,本文使用了2 種方法來(lái)抑制霧分布信息編碼器中的內(nèi)容信息。首先,在使用有霧圖像生成器生成有霧圖像Ia時(shí),輸入的是來(lái)自?xún)?nèi)容編碼器的輸出(a)和霧分布信息編碼器的輸出EH(b),這種結(jié)構(gòu)鼓勵(lì)霧分布信息編碼器中不包含來(lái)自b的內(nèi)容信息。其次,使用的變分編碼器模型能對(duì)霧的分布信息進(jìn)行有效約束,因?yàn)樯赡P退褂玫撵F分布信息編碼器輸出的后驗(yàn)概率滿(mǎn)足各項(xiàng)同性正態(tài)分布,這樣霧編碼器的輸出z{μh,} 應(yīng)該接近于正態(tài)分 布p(z)~N(0,1),霧分布信息編碼器的輸出在潛在空間的均值和方差分別用μ和σ表示。那么該輸出和標(biāo)準(zhǔn)正態(tài)分布之間的差異可以用KL散度計(jì)算,即霧分布信息編碼器的相對(duì)熵?fù)p失可以表示為:
其中,zi表示z的第i維變量。
實(shí)驗(yàn)證明感知損失在圖像轉(zhuǎn)換類(lèi)型[20]任務(wù)中能夠幫助網(wǎng)絡(luò)生成質(zhì)量更高的圖像,預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)中包含著豐富的語(yǔ)義信息,因此可以作為結(jié)構(gòu)相似性的一種評(píng)價(jià)方式。本文使用了VGG19作為特征提取器提取生成器輸出的清晰圖像和重構(gòu)有霧圖像的高層信息,讓彼此在全局結(jié)構(gòu)相互逼近。感知損失的函數(shù)定義如下:
總的損失函數(shù)表達(dá)式如下所示:
其中,λD,λcyc,λKL和λp是網(wǎng)絡(luò)超參數(shù)。
(1)數(shù)據(jù)集。RESIDE[21]是近幾年使用最為廣泛的大型合成去霧數(shù)據(jù)集。由于采集成對(duì)的數(shù)據(jù)集十分具有挑戰(zhàn)性,所以RESIDE 的訓(xùn)練集利用從NYU2[22]和middlebury stereo[23]數(shù)據(jù)集上收集的1 399張清晰的室內(nèi)圖像和對(duì)應(yīng)的深度圖,合成了13 990張有霧圖像。其中,每一張清晰圖片使用不同的大氣光強(qiáng)度值和大氣透射率合成10 張有霧圖像。為了能更好地評(píng)價(jià)本文提出去霧算法的有效性,本算法在RESIDE 數(shù)據(jù)集的測(cè)試集SOTS 上進(jìn)行了測(cè)試,SOTS 包含了500 張不存在于訓(xùn)練集中的清晰圖像和對(duì)應(yīng)的合成有霧圖。此外,本文還在RESIDE 提供的室外數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)過(guò)程中還對(duì)比了其它去霧算法在此數(shù)據(jù)集上的結(jié)果,對(duì)提出算法的有效性進(jìn)行了客觀分析和評(píng)價(jià)。
(2)評(píng)價(jià)指標(biāo)。本文對(duì)去霧效果的評(píng)價(jià)采用了2 個(gè)指標(biāo),分別是結(jié)構(gòu)相似性(Structural Similarity,SSIM)和峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)。其中,SSIM是一種衡量2 張圖像相似程度的指標(biāo),SSIM更符合人眼對(duì)相似度的判斷,取值范圍是[0,1],SSIM的值越大,表示圖像失真越小。PSNR的值是基于2 張圖像之間對(duì)應(yīng)像素間的誤差,值越大表明對(duì)應(yīng)像素之間的均方差越小,2 張圖片越接近。
(3)實(shí)驗(yàn)環(huán)境。本文算法使用Pytorch 進(jìn)行部署,硬件設(shè)備為GPU GTX 2080,處理器為Intel Xeon CPU E5-2603,內(nèi)存為32 G,操作系統(tǒng)為Ubuntu 16.04。實(shí)驗(yàn)中,輸入圖像的分辨率為256*256,使用Adam 優(yōu)化器進(jìn)行梯度下降優(yōu)化,批大小設(shè)置為2,使用高斯分布對(duì)網(wǎng)絡(luò)的權(quán)重進(jìn)行初始化。初始學(xué)習(xí)率設(shè)置為0.000 2,網(wǎng)絡(luò)超參數(shù)設(shè)置為λD =10,λcyc =10,λKL =0.1,λp =0.01,使用余弦退火策略來(lái)控制學(xué)習(xí)率下降,一共對(duì)網(wǎng)絡(luò)進(jìn)行150 輪訓(xùn)練。
本文將提出的去霧算法和幾種先進(jìn)的基于先驗(yàn)信息和學(xué)習(xí)的去霧算法進(jìn)行了比較,其中包括基于先驗(yàn)知識(shí)的傳統(tǒng)去霧算法DCP、基于學(xué)習(xí)的全監(jiān)督去霧算法DehazeNet、AOD-Net、以及EPDN[24],此外還與無(wú)需成對(duì)去霧數(shù)據(jù)集的無(wú)監(jiān)督去霧算法Cycle-Dehaze Net 進(jìn)行了對(duì)比。在對(duì)比過(guò)程中為了保持公平,本文使用了作者提供的源代碼,按照作者給出的設(shè)置在相同的硬件設(shè)備下進(jìn)行訓(xùn)練測(cè)試。在SOTS上的測(cè)試結(jié)果見(jiàn)表1??梢钥闯霰疚乃惴ê鸵恍┤O(jiān)督的學(xué)習(xí)算法相比取得了不錯(cuò)的結(jié)果,在室外和室內(nèi)合成測(cè)試集上都取得了最高的SSIM和PSNR。圖2 展示了本文去霧算法在SOTS 室內(nèi)和室外數(shù)據(jù)集上的一些視覺(jué)結(jié)果以及和其他一些去霧算法的對(duì)比。從圖2 可以看出,在視覺(jué)觀感上本文去霧結(jié)果更接近真實(shí)的無(wú)霧圖像,DCP、DehazeNet和AOD-Net 無(wú)法完全去除場(chǎng)景中的霧,Cycle-Dehaze Net 能夠有效去除圖像中的霧,但會(huì)產(chǎn)生嚴(yán)重的對(duì)比度偏差。EPDN 能夠移除有霧場(chǎng)景中大部分霧,并且細(xì)節(jié)還原較好,但和原始清晰圖像對(duì)比時(shí)會(huì)發(fā)現(xiàn)天空區(qū)域有一定的對(duì)比度偏移。從圖2 中還可以看出,本文算法能夠有效去除室外和室內(nèi)的霧,并且結(jié)果更接近真實(shí)的無(wú)霧場(chǎng)景,圖像還原效果較佳;去除有霧圖像中的霧的同時(shí)還能夠保留更多的紋理和細(xì)節(jié)信息,還原出真實(shí)的清晰圖像。為了進(jìn)一步驗(yàn)證本文算法的有效性,本文還進(jìn)行了消融實(shí)驗(yàn)分析各個(gè)模塊在算法中的作用。消融實(shí)驗(yàn)的數(shù)據(jù)集選擇了RESIDE 室內(nèi)數(shù)據(jù)集部分。在提出的去霧算法中最核心的模塊是解耦模塊,本文與傳統(tǒng)生成網(wǎng)絡(luò)的不同之處是使用了內(nèi)容編碼器和霧分布編碼器對(duì)有霧圖像進(jìn)行了解耦,因此對(duì)移除解耦模塊進(jìn)行消融實(shí)驗(yàn)?zāi)苡行?yàn)證本文算法的有效性,實(shí)驗(yàn)的對(duì)比結(jié)果見(jiàn)圖3 和表2。從圖3 中可以看出,移除了霧編碼分支后,網(wǎng)絡(luò)也能完成去霧任務(wù),但是恢復(fù)的圖像中存在大量的偽影,丟失了大量的紋理和細(xì)節(jié)。這是因?yàn)橛徐F圖像中包含了大量與圖像內(nèi)容無(wú)關(guān)的場(chǎng)景信息,普通的生成對(duì)抗網(wǎng)絡(luò)中的編碼器無(wú)法有效地從有霧圖像中提取圖像的內(nèi)容信息,消融實(shí)驗(yàn)結(jié)果驗(yàn)證了本文提出解耦重構(gòu)模型的有效性。此外,本文還對(duì)實(shí)驗(yàn)使用的損失函數(shù)進(jìn)行了消融實(shí)驗(yàn),驗(yàn)證所使用的loss函數(shù)的有效性。具體結(jié)果參見(jiàn)表2。
圖2 SOTS 數(shù)據(jù)集視覺(jué)結(jié)果Fig. 2 Visual comparisons on SOTS datasets
圖3 消融實(shí)驗(yàn)結(jié)果對(duì)比Fig. 3 Comparison of ablation experiment results
表1 在公共合成測(cè)試集上對(duì)比分析結(jié)果Tab.1 Quantitative comparisons with other state-of-the-art methods on public synthetic testing datasets
表2 消融實(shí)驗(yàn)結(jié)果Tab.2 Results of ablation experiments
基于學(xué)習(xí)的去霧模型通常使用合成數(shù)據(jù)集進(jìn)行訓(xùn)練,但合成數(shù)據(jù)集是利用大氣散射模型進(jìn)行合成的,整幅圖像霧的分布都是均勻的,這并不符合真實(shí)戶(hù)外場(chǎng)景的特性。真實(shí)的有霧圖像在各個(gè)區(qū)域霧的濃度不是均勻分布的,這也隨之增加了去霧的難度。為了驗(yàn)證本文算法在真實(shí)世界的表現(xiàn),本文還在O-HAZE 和 I -HAZE 數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。O-HAZE和I-HAZE 數(shù)據(jù)集是NTIRE 2018 挑戰(zhàn)賽上提出的真實(shí)去霧數(shù)據(jù)集。其中,O-HAZE 數(shù)據(jù)集包含45 幅成對(duì)的高分辨率清晰有霧戶(hù)外圖像,每對(duì)圖像都是在相同的光照條件和角度下拍攝的。I-HAZE數(shù)據(jù)集包含35 對(duì)室內(nèi)場(chǎng)景高分辨率圖像。所有的圖像都是在真實(shí)場(chǎng)景中拍攝,并且使用專(zhuān)業(yè)的煙霧生成機(jī)器來(lái)形成真實(shí)的霧。各算法在真實(shí)世界數(shù)據(jù)集上的表現(xiàn)結(jié)果參見(jiàn)表3。從表3 中可以看出,本文算法的PSNR和SSIM也處于領(lǐng)先地位,在真實(shí)世界的泛化能力優(yōu)于其他算法。
表3 真實(shí)世界去霧數(shù)據(jù)集結(jié)果Tab.3 Results on dehazing dataset in the real scene
在本文實(shí)驗(yàn)中,使用了2 個(gè)生成器分別用于去霧和合成有霧圖像。其中,去霧模塊在測(cè)試的時(shí)候只需經(jīng)過(guò)有霧圖像內(nèi)容編碼器和霧分布信息編碼器提取內(nèi)容信息和霧分布信息,而后送入清晰圖像生成器中就可以生成清晰圖像??梢杂孟铝泄絹?lái)表示這一過(guò)程:
利用網(wǎng)絡(luò)另一分支還能生成更加接近真實(shí)有霧場(chǎng)景的圖像。有霧圖像的生成可用下列公式表示:
其中,z是霧分布信息編碼器輸出的多維正態(tài)分布向量的采樣結(jié)果。合成霧圖像的結(jié)果見(jiàn)圖4。由圖4 可見(jiàn),采用本文方法合成的有霧圖像更接近自然界中真實(shí)有霧場(chǎng)景,滿(mǎn)足真實(shí)世界中霧區(qū)近淡遠(yuǎn)濃的特點(diǎn)。在合成有霧圖像時(shí)不需要獲取清晰圖像的深度信息,大大降低了合成有霧圖像的難度。
圖4 有霧圖像合成對(duì)比Fig. 4 Hazy image synthesis contrast
設(shè)計(jì)了一種基于解耦重構(gòu)的弱監(jiān)督單幅圖像去霧算法,在訓(xùn)練過(guò)程中無(wú)需成對(duì)的有霧和無(wú)霧圖像。使用內(nèi)容信息編碼器和霧分布信息編碼器對(duì)輸入圖像進(jìn)行解耦,使有霧圖像的內(nèi)容和霧特征實(shí)現(xiàn)了分離,同時(shí)還加入了循環(huán)一致性損失,提高了生成器重構(gòu)圖像的魯棒性,相比于現(xiàn)有監(jiān)督學(xué)習(xí)算法和非監(jiān)督學(xué)習(xí)算法,去霧效果在視覺(jué)和客觀指標(biāo)上都有提升。此外,本文算法還可用于基于學(xué)習(xí)的去霧算法的數(shù)據(jù)增強(qiáng),利用本文方法能合成更接近真實(shí)世界的有霧圖像,提高現(xiàn)有去霧算法在真實(shí)世界去霧效果的泛化能力。未來(lái)本文算法將會(huì)繼續(xù)擴(kuò)充使用場(chǎng)景,針對(duì)雨天、雪天等惡劣天氣場(chǎng)景下的圖像恢復(fù)進(jìn)行研究,進(jìn)一步提高本算法實(shí)用價(jià)值和泛化能力。