楊 杰,趙書(shū)斌,王 強(qiáng)
(江蘇自動(dòng)化研究所,江蘇 連云港 222061)
霧是一種常見(jiàn)氣象,大霧天氣時(shí)空氣中存在大量水汽凝結(jié)物,光線在水汽凝結(jié)物表面產(chǎn)生散射使得物體的反射光線發(fā)生衰減,同時(shí)相機(jī)接收到大氣光與物體反射光發(fā)生混合,造成圖像模糊及特征信息損失。當(dāng)前目標(biāo)檢測(cè)、語(yǔ)義分割等視覺(jué)任務(wù)受到霧氣、大雨等環(huán)境干擾時(shí)性能會(huì)急劇下降,例如Yolo v5目標(biāo)檢測(cè)預(yù)訓(xùn)練模型在加霧后的COCO數(shù)據(jù)集上出現(xiàn)了14%的精度損失。如圖1所示,即使在低濃度霧的情況下單幅圖像也出現(xiàn)了兩類(lèi)8個(gè)目標(biāo)的漏檢。圖像去霧旨在從退化的有霧圖像中恢復(fù)清晰的圖像,因此其在實(shí)現(xiàn)惡劣天氣條件下自動(dòng)駕駛環(huán)境感知、能見(jiàn)度估計(jì)等方面具有廣泛的實(shí)際意義。
作為各類(lèi)視覺(jué)任務(wù)的預(yù)處理步驟,學(xué)者們對(duì)去霧已經(jīng)進(jìn)行了廣泛深入的研究,且通常使用大氣散射模型來(lái)表示有霧圖像,表達(dá)式如下:
()=()()+[1-()]
(1)
其中,()和()分別是退化的有霧圖像和目標(biāo)清晰圖像。是全球大氣光,()是介質(zhì)透射率,如
GTHazeLable Bench101 Bicycle323 Chair111 Handbag101 Person131014 Car9710 Backpack111 Total7/295/217/31圖1 Yolo v5模型目標(biāo)檢測(cè)對(duì)比
果全球大氣光均勻,則()表達(dá)公式如下:
()=-()
(2)
其中,()為場(chǎng)景深度,為大氣散射系數(shù)。由于已知信息只有(), 透射率()和大氣光都是未知的,顯然求解清晰圖像()是一個(gè)不適定問(wèn)題,這也是一個(gè)非常具有挑戰(zhàn)性的問(wèn)題。
目前去霧算法主要分為兩類(lèi):基于先驗(yàn)知識(shí)方法和基于深度學(xué)習(xí)方法?;谙闰?yàn)知識(shí)的方法依靠大氣散射模型,利用先驗(yàn)知識(shí)設(shè)計(jì)全球大氣光和透射率()的評(píng)估方法,典型的有暗通道先驗(yàn)和顏色衰減先驗(yàn)。顏色衰減先驗(yàn)利用了霧的濃度與亮度和飽和度之差呈正相關(guān)且退化圖像飽和度急劇降低的先驗(yàn),使目標(biāo)圖像的局部對(duì)比度最大化。暗通道先驗(yàn)則利用無(wú)霧圖像中局部區(qū)域像素中至少有一個(gè)顏色通道的亮度值非常低來(lái)解算透射率(),暗通道先驗(yàn)最經(jīng)典,當(dāng)前應(yīng)用也最廣泛,在其基礎(chǔ)上衍生了很多性能優(yōu)異的改進(jìn)算法。然而先驗(yàn)知識(shí)并非適用所有場(chǎng)景,比如暗通道先驗(yàn)在面對(duì)大面積的天空時(shí)會(huì)因先驗(yàn)不成立而存在嚴(yán)重的顏色失真,因此這類(lèi)算法魯棒性較差難以廣泛適用?;趯W(xué)習(xí)的圖像去霧算法又分為兩類(lèi),早期學(xué)習(xí)的方法仍然基于大氣散射模型恢復(fù)無(wú)霧圖像,區(qū)別于傳統(tǒng)方法依靠先驗(yàn)知識(shí),此類(lèi)方法是數(shù)據(jù)驅(qū)動(dòng)的,通過(guò)深度神經(jīng)網(wǎng)絡(luò)估計(jì)物理散射模型中的透射率()和大氣光。文獻(xiàn)[3] 結(jié)合了四種傳統(tǒng)方法設(shè)計(jì)深度CNN網(wǎng)絡(luò)用于大氣退化模型中透射率()的估計(jì),并提出了一種新的非線性激活函數(shù),提高了恢復(fù)圖像的質(zhì)量。然而,這類(lèi)方法估計(jì)的透射率()和大氣光存在一定的偏差,導(dǎo)致恢復(fù)圖像與清晰圖像之間存在較大的重建誤差,誤差的累積最終會(huì)產(chǎn)生偽影影響恢復(fù)效果。為了解決累計(jì)誤差問(wèn)題,近幾年涌現(xiàn)出多類(lèi)端到端方法,此類(lèi)方法不再依賴大氣散射模型,直接通過(guò)深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)特征,回歸得到霧圖和清晰圖像的殘差或最終圖像。與傳統(tǒng)方法相比,端到端的去霧算法具有卓越的性能和魯棒性,且能夠輕松嵌入其他視覺(jué)任務(wù)深度網(wǎng)絡(luò)模型中。文獻(xiàn)[4] AOD-Net就是通過(guò)輕量級(jí)CNN直接生成干凈圖像,該算法實(shí)現(xiàn)了理想的恢復(fù)效果,且輕量化的設(shè)計(jì)使得AOD-Net易于嵌入其他模型中。文獻(xiàn)[5]提出了端到端門(mén)控上下文聚合網(wǎng)絡(luò)GCANet,該算法采用最新的平滑膨脹技術(shù)在附加少量參數(shù)的情況下去除了廣泛使用的膨脹卷積帶來(lái)的網(wǎng)格偽影,并直接恢復(fù)最終的無(wú)霧圖像。文獻(xiàn)[6]首次將CycleGAN引入圖像去霧領(lǐng)域,該網(wǎng)絡(luò)不需要成對(duì)的霧圖和相應(yīng)的真實(shí)圖片進(jìn)行訓(xùn)練,通過(guò)循環(huán)一致性損失和感知一致性損失提高紋理信息恢復(fù)的質(zhì)量并生成視覺(jué)上更好的無(wú)霧圖像。
本文提出了一種端到端的生成對(duì)抗網(wǎng)絡(luò)用于圖像去霧,不需要成對(duì)的霧圖和真實(shí)圖片進(jìn)行訓(xùn)練,網(wǎng)絡(luò)以模糊圖像為輸入直接生成無(wú)霧圖像。在生成器中,考慮霧在圖像不同區(qū)域分布不均勻以及不同特征通道包含信息的影響不同,將注意力模塊融入編解碼網(wǎng)絡(luò)中,并將通道注意力和像素注意力相結(jié)合,提出了一種新的特征關(guān)注模塊。注意力模塊對(duì)不同的特征通道和像素區(qū)域生成權(quán)重系數(shù),擴(kuò)大了網(wǎng)絡(luò)的表征能力,也為網(wǎng)絡(luò)處理不同類(lèi)型的信息提供了靈活性。在鑒別器中,考慮高低頻信息在霧圖中的不同影響,將高低頻分別處理,提高真圖鑒別以生成更真實(shí)的去霧圖像。最后對(duì)損失進(jìn)行了優(yōu)化,添加結(jié)構(gòu)損失保證循環(huán)一致性,融合鑒別器高低頻損失。實(shí)驗(yàn)結(jié)果表明,網(wǎng)絡(luò)能夠?qū)崿F(xiàn)良好的性能指標(biāo)并有效減少顏色失真和偽影,提高主觀視覺(jué)效果。
本節(jié)詳細(xì)介紹采用的方法,包括整體的循環(huán)生成對(duì)抗網(wǎng)絡(luò)、生成器的編解碼網(wǎng)絡(luò)、鑒別器網(wǎng)絡(luò)以及損失函數(shù)的設(shè)計(jì)。
循環(huán)生成對(duì)抗網(wǎng)絡(luò)如圖2所示,分別由兩個(gè)生成器G1、G2,兩個(gè)鑒別器D1、D2組成。G1利用有霧圖像生成無(wú)霧圖像,G2利用清晰圖片生成有霧圖像,G1、G2形成循環(huán)并最小化循環(huán)損失保證生成一致性,減少網(wǎng)絡(luò)擾動(dòng)。鑒別器D1用于區(qū)分真實(shí)圖片和生成無(wú)霧圖像,鑒別器D2負(fù)責(zé)區(qū)分真實(shí)霧圖和生成霧圖。
圖2 基于CycleGAN的循環(huán)對(duì)抗去霧網(wǎng)絡(luò)結(jié)構(gòu)示意圖
不同于大氣散射模型估計(jì)中間參數(shù),生成網(wǎng)絡(luò)需要利用輸入霧圖直接生成清晰圖像。因此生成去霧網(wǎng)絡(luò)需要獲取足夠多的有效特征信息,在除霧的同時(shí)盡可能地保留圖像內(nèi)容和恢復(fù)細(xì)節(jié)。去霧網(wǎng)絡(luò)結(jié)構(gòu)分為四部分:編碼網(wǎng)絡(luò)、殘差網(wǎng)絡(luò)、特征融合網(wǎng)絡(luò)以及反卷積解碼網(wǎng)絡(luò)。
如圖3所示,輸入圖像首先通過(guò)兩層卷積網(wǎng)絡(luò)提取特征后編碼生成特征圖,然后通過(guò)下采樣進(jìn)入殘差網(wǎng)絡(luò)模塊提取不同級(jí)別特征,殘差網(wǎng)絡(luò)后置特征融合模塊,聚合增強(qiáng)殘差網(wǎng)絡(luò)不同級(jí)別特征,最后通過(guò)反卷積將增強(qiáng)后的特征圖解碼回原始圖像空間,得到霧霾殘差,將殘差輸入原始圖像得到最終的無(wú)霧圖像。Basic塊為基礎(chǔ)的殘差塊,由兩個(gè)卷積層、ReLu激活函數(shù)和注意力模塊組成。特征融合模塊先從不同殘差層中提取特征圖,并將其輸入回歸網(wǎng)絡(luò)生成不同的權(quán)重系數(shù)。最后,將來(lái)自不同層級(jí)的特征圖與回歸權(quán)重系數(shù)線性組合。
圖3 生成器網(wǎng)絡(luò)結(jié)構(gòu)示意圖
由于遠(yuǎn)景物體反射光散射損失嚴(yán)重,霧的濃度與深度、亮度和飽和度之差呈正相關(guān),霧霾的分布不均勻。當(dāng)前多數(shù)基于學(xué)習(xí)的去霧網(wǎng)絡(luò),沒(méi)有區(qū)分提取不同通道和區(qū)域的特征,而是采取統(tǒng)一的操作。文獻(xiàn)[7]中提出的視覺(jué)注意力模塊能夠有效聚合空間信息,聚焦重要通道和重點(diǎn)區(qū)域的信息。本文的注意力模塊由通道注意力和像素注意力兩部分組成,對(duì)不同的特征通道和像素區(qū)域進(jìn)行了不平等的處理,能夠靈活地處理不同類(lèi)型的信息。注意力模塊的核心就是為每個(gè)特征通道和像素特征生成不同的權(quán)重,通過(guò)權(quán)重系數(shù)處理特征信息。如圖4所示,首先對(duì)輸入特征分別進(jìn)行全局平均池化和最大池化,通過(guò)卷積網(wǎng)絡(luò)和激活函數(shù)后再做組合,將通道的全局空間信息轉(zhuǎn)化為通道描述符。
圖4 注意力網(wǎng)絡(luò)結(jié)構(gòu)
(3)
其中,表示特征通道,(,)表示特征通道在(,)位置的值,特征圖從××變?yōu)椤?×1。最大池化編碼了最顯著的特征部分,平均池化編碼了全局的統(tǒng)計(jì)信息。因此,這兩個(gè)特征被同時(shí)使用,提升了通道注意力的有效性。卷積網(wǎng)絡(luò)部分公式如下:
=(((())))
(4)
其中為sigmoid函數(shù),為ReLu函數(shù)。最后,按元素順序?qū)⑤斎?span id="syggg00" class="subscript">和信道的權(quán)值相乘。
(5)
像素注意力部分,輸入特征先通過(guò)一層卷積和ReLu函數(shù)的組合,再通過(guò)一層卷積和sigmoid函數(shù)生成像素特征系數(shù),公式如下:
=(((())))
(6)
最后將權(quán)重系數(shù)與輸入特征卷積,得到特征圖,公式如下:
(7)
如圖5所示,注意力模塊能夠有效捕捉到霧濃度較大的區(qū)域。
圖5 過(guò)程可視化示意圖
與清晰圖像相比,有霧圖像的對(duì)比度顯著下降,尤其在遠(yuǎn)景霧濃的區(qū)域邊緣輪廓信息模糊,文獻(xiàn)[8]將頻率信息作為基本先驗(yàn)和附加約束加入鑒別器中。作者借鑒這一思想,將高低頻信息融入鑒別器中。
高頻和低頻是圖像的基本特征,且有霧圖像和清晰圖像的高低頻分量具有明顯的區(qū)別。高頻信息表示圖像中強(qiáng)度變化迅速的部分,能夠有效表征圖像的邊緣、紋理和細(xì)節(jié)部分,有霧圖像相比原圖會(huì)損失許多紋理和細(xì)節(jié)等高頻信息。低頻信息表示圖像中強(qiáng)度值變化緩慢的區(qū)域,即平滑區(qū)域,相較于高頻信息,低頻更加強(qiáng)調(diào)圖像的亮度、顏色和對(duì)比度信息,這也使得低頻的顏色比較更加容易。因此,高頻和低頻可以幫助鑒別器區(qū)分有霧和無(wú)霧圖像之間的邊緣、紋理和主要顏色的差異。
首先利用高斯濾波器去除高頻細(xì)節(jié)提取低頻信息,再用拉普拉斯算子從圖像中提取邊緣和紋理等高頻信息。再將高頻分量、低頻分量和圖像分別輸入鑒別網(wǎng)絡(luò)中,將三個(gè)輸入的輸出結(jié)果附加權(quán)重信息求和,得到最終鑒別器的輸出。假設(shè)輸入圖像為,公式表達(dá)如下:
=?
=Laplace()
=()+()+()
(8)
假設(shè)輸入有霧圖像為,清晰圖像為,則生成器的輸出分別為()、(())、()、(()),則循環(huán)一致性損失為
(9)
其中‖(())-‖表示1-范數(shù),循環(huán)一致性損失保證了經(jīng)過(guò)兩個(gè)生成器的圖像盡可能逼近輸入圖像,從而保證生成圖像的穩(wěn)定性。
文獻(xiàn)[6]在CycleGAN的基礎(chǔ)上,提出了感知一致性。對(duì)于本文的網(wǎng)絡(luò),我們優(yōu)化了感知一致性損失,保證了特征空間中的感知相似度:
(10)
其中()在=1,2,3時(shí)分別表示第二個(gè)、第六個(gè)殘差塊的特征圖和融合模塊增強(qiáng)后的特征圖。
在利用感知一致性對(duì)圖像特征進(jìn)行監(jiān)督的基礎(chǔ)上,為保證循環(huán)網(wǎng)絡(luò)的結(jié)構(gòu)一致性,進(jìn)一步增強(qiáng)生成穩(wěn)定性,本文加入SSIM(結(jié)構(gòu)相似性)損失:
=(())
=(())
(11)
=1-(,)
(12)
由于傳統(tǒng)的GAN目標(biāo)函數(shù)在模型訓(xùn)練時(shí)不穩(wěn)定且生成圖片質(zhì)量不高,所以本文選用最小二乘GAN中的目標(biāo)函數(shù)設(shè)計(jì)對(duì)抗損失:
=[(())]+[(()-1)]
(13)
最后,作者將循環(huán)損失、感知損失、結(jié)構(gòu)損失和對(duì)抗損失結(jié)合,對(duì)去霧網(wǎng)絡(luò)進(jìn)行正則化:
=?+?+?+?
其中、、、權(quán)重系數(shù)。
由于收集真實(shí)世界有霧圖像以及對(duì)應(yīng)無(wú)霧圖像難以實(shí)現(xiàn),因此去霧算法需要大量的合成霧圖。常用的合成方法基于大氣散射模型,選擇合適的散射系數(shù)和大氣光強(qiáng)生成有霧圖像,作者選擇了文獻(xiàn)[9]提供的RESIDE數(shù)據(jù)集進(jìn)行訓(xùn)練。RESIDE數(shù)據(jù)集包括合成和真實(shí)世界的有霧圖像,其中室內(nèi)訓(xùn)練集(ITS)包含總共13 990張模糊的室內(nèi)圖像,由散射系數(shù)∈[0.6,1.0]和大氣光∈[0.7,1.0]的清晰圖像生成,清晰圖像來(lái)自室內(nèi)深度數(shù)據(jù)集NYU2和米德?tīng)柌锪Ⅲw數(shù)據(jù)庫(kù)。RESIDE的戶外訓(xùn)練集(OTS)共包含296 695張模糊的戶外圖像,由8477張散射系數(shù)∈[0.04,0.2]和大氣光∈[0.04,0.2]的清晰圖像生成。測(cè)試集采用了REISDE測(cè)試集中的綜合目標(biāo)測(cè)試集(SOTS),SOTS由500幅室內(nèi)模糊圖像和500幅室外模糊圖像組成,作者同樣采用在RESIDE中廣泛采用的PSNR和SSIM作為客觀質(zhì)量評(píng)價(jià)指標(biāo)。此外,合成圖像難以完全還原真實(shí)霧圖場(chǎng)景,當(dāng)前大多去霧算法在處理真實(shí)世界有霧的性能明顯低于合成霧圖,本文對(duì)真實(shí)世界的有霧場(chǎng)景也進(jìn)行了測(cè)試。
我們使用PyTorch 框架實(shí)現(xiàn)網(wǎng)絡(luò)搭建,訓(xùn)練使用配有NVIDIA GeForce GTX 3070Ti GPU的PC上進(jìn)行。對(duì)于去霧模塊,我們應(yīng)用了SGD 優(yōu)化器,其學(xué)習(xí)速率為1.2×10,動(dòng)量為0.9,權(quán)重衰減為4.5×10。對(duì)于鑒別器,我們使用Adam優(yōu)化器,學(xué)習(xí)速率為1×10,=0.85,=0.98。
生成對(duì)抗網(wǎng)絡(luò)使用緩存歷史圖像訓(xùn)練生成器能夠有效減小訓(xùn)練時(shí)的震蕩,且無(wú)需成對(duì)匹配的有無(wú)霧圖。為了提升性能、加速訓(xùn)練,我們先用合成霧圖和對(duì)應(yīng)真實(shí)圖片分別對(duì)生成器和鑒別器進(jìn)行預(yù)訓(xùn)練。根據(jù)文獻(xiàn)[10],訓(xùn)練生成對(duì)抗網(wǎng)絡(luò)時(shí)使用BN,會(huì)使圖像間相互影響生成模糊圖片,因此使用IN代替BN。初始學(xué)習(xí)率設(shè)置為1×10,損失函數(shù)分別下降到2×10和5×10訓(xùn)練結(jié)束。
本節(jié)將本文的方法與DCP、GridDehaze、FFANet、GCANet等幾種方法進(jìn)行了比較。 作者使用這些方法的開(kāi)源代碼分別在合成綜合目標(biāo)測(cè)試集(SOTS)和真實(shí)世界圖像上進(jìn)行了評(píng)估,并使用了NTIRE18挑戰(zhàn)賽的評(píng)估工具包,測(cè)試結(jié)果如表1、2所示。
表1 不同方法在SOTS上的性能評(píng)估對(duì)比
如表1所示,文章采用的方法在室內(nèi)和室外都實(shí)現(xiàn)了良好的峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)指標(biāo)。雖然相比GCANet網(wǎng)絡(luò)結(jié)構(gòu)相似性有落后,但是我們具有更高的峰值信噪比和更少的顏色失真。如表2所示,本文模型在NTIRE18上也實(shí)現(xiàn)了良好的性能指標(biāo)。
表2 不同方法在NTIRE18評(píng)估結(jié)果
圖6為不同方法在合成數(shù)據(jù)集上的去霧結(jié)果,其中第一列由左至右為合成霧圖、第二列為真實(shí)無(wú)霧圖像,第三列的DCP算法因?yàn)槔孟闰?yàn)假設(shè),所以各個(gè)子圖都存在嚴(yán)重的顏色失真;第四列GridDehaze算法在第五、六兩行的室內(nèi)場(chǎng)景具有良好的去霧效果,但在第四行室外場(chǎng)景去霧效果有限;第五列FFA算法的去霧結(jié)果較為模糊且存在明顯失真,前三行的子圖同原圖相比部分區(qū)域亮度值明顯兩極分化;第六列GCANet算法傾向于輸出高亮度、高對(duì)比度圖像,第一行子圖存在一定的顏色失真。 最后,文章采用的方法在有效去霧的同時(shí)幾乎沒(méi)有顏色失真,在各個(gè)子圖上都有較好的主觀視覺(jué)質(zhì)量。
圖6 不同方法在合成數(shù)據(jù)集上去霧結(jié)果對(duì)比圖
圖7為不同方法在真實(shí)有霧場(chǎng)景的去霧結(jié)果對(duì)比,第二列DCP算法由于先驗(yàn)條件在天空區(qū)域不成立,所以存在嚴(yán)重失真;第三列FFA算法第一、三、六行子圖去霧效果不明顯,其他圖像則有明顯的黑色斑點(diǎn);第四列GridDehaze算法在第二行子圖中人臉部分存在斑點(diǎn),第三、四、五、六行子圖顏色則與真實(shí)世界不符;第五列MSBD算法還原度較高,但部分子圖去霧效果有限,魯棒性不足;第六列GCANet有效解決了網(wǎng)格偽影,去霧效果明顯,但是第五行子圖失真明顯同樣存在魯棒性問(wèn)題。最后,本文的算法去霧不存在網(wǎng)格偽影,并且更貼近真實(shí)場(chǎng)景,具有較好的魯棒性和主觀視覺(jué)質(zhì)量。
圖7 不同方法在真實(shí)世界有霧場(chǎng)景去霧結(jié)果對(duì)比圖
為了驗(yàn)證本文優(yōu)化的模塊能否有效提升模型性能,我們對(duì)于主要模塊進(jìn)行消融實(shí)驗(yàn)研究。主要考慮以下3個(gè)方面:1)注意力模塊(AB);2)高低頻融合鑒別(FD);3)結(jié)構(gòu)一致性損失(LS)。
如表3所示,每個(gè)優(yōu)化模塊都能夠有效提升網(wǎng)絡(luò)模型的性能。其中,注意力模塊能夠顯著提升峰值信噪比和結(jié)構(gòu)相似性,高低頻融合鑒別同樣能夠有效提升兩個(gè)指標(biāo),最后結(jié)構(gòu)損失則顯著提升了結(jié)構(gòu)相似性。實(shí)驗(yàn)結(jié)果表明:如果充分利用好每一個(gè)模塊,文章采用的方法能夠?qū)崿F(xiàn)較好的指標(biāo),與之前的去霧方法相比具有良好的競(jìng)爭(zhēng)力。
表3 在合成數(shù)據(jù)集上模塊消融對(duì)比結(jié)果
本文提出一種端到端的圖像去霧網(wǎng)絡(luò),引入視覺(jué)注意力機(jī)制、高低頻融合鑒別和結(jié)構(gòu)損失,不僅有效地提升了模型在各類(lèi)測(cè)試集上的峰值信噪比和結(jié)構(gòu)相似性指標(biāo),還能有效提高主觀視覺(jué)效果減少顏色失真和網(wǎng)格偽影。此外,由于我們的網(wǎng)絡(luò)能夠有效恢復(fù)圖像的色彩和紋理細(xì)節(jié),后續(xù)可能在圖像去噪、去雨以及生成超分辨率圖像等其他視覺(jué)任務(wù)中實(shí)現(xiàn)應(yīng)用。