張莉莉
(安徽糧食工程職業(yè)學(xué)院,安徽省合肥市 230011)
霧是一種自然的大氣現(xiàn)象,會(huì)阻礙室外場景的清晰度,導(dǎo)致圖像對比度差和細(xì)節(jié)的丟失.此外,它引入了一個(gè)額外的環(huán)境光組件,稱為空氣燈,這導(dǎo)致了清晰圖像上的“面紗效應(yīng)”.模糊圖像的形成通常被描述為清晰場景輻射和空中光線的像素級別線性組合,每個(gè)組件的效果由透射圖控制.為了解決約束不足的霧生成模型,許多研究人員提出了手工設(shè)計(jì)的圖像先驗(yàn),為模糊與清晰圖像的轉(zhuǎn)換[1-9]提供了更多的信息.這些基于先驗(yàn)的方法通常將去霧問題轉(zhuǎn)換為能量最小化任務(wù),其中獲得每個(gè)圖像的解被稱為“推理”,需要特殊的優(yōu)化方案.隨著圖像去霧作為許多計(jì)算機(jī)視覺任務(wù)的基礎(chǔ)操作(例如,目標(biāo)檢測、自動(dòng)駕駛導(dǎo)航),大規(guī)模的基于學(xué)習(xí)的技術(shù)已經(jīng)被用來解決這個(gè)問題[10-14].然而,這些方法需要成千上萬的輸入和輸出示例.由于很難獲得完全相同場景和照明條件的清晰和模糊圖像對,基于學(xué)習(xí)的方法通常采用創(chuàng)建的合成數(shù)據(jù)集進(jìn)行訓(xùn)練.給定干凈的圖像和相應(yīng)的深度圖,可以計(jì)算透射圖并使用霧生成模型來獲得具有不同霧量和空氣光分量的模糊圖像.這些模糊而清晰的圖像對隨后在深度神經(jīng)網(wǎng)絡(luò)的監(jiān)督訓(xùn)練中作為輸入.然而,室外的深度信息非常不精確.當(dāng)處理真實(shí)世界的室外圖像時(shí),不可避免的還會(huì)產(chǎn)生域偏移.本文借助神經(jīng)網(wǎng)絡(luò)的表征學(xué)習(xí)能力,只使用真實(shí)世界的模糊圖像以無監(jiān)督的方式進(jìn)行訓(xùn)練.通過最小化無監(jiān)督損失函數(shù)來優(yōu)化網(wǎng)絡(luò)的權(quán)重,即暗通道先驗(yàn)?zāi)芰亢瘮?shù).通過早期停止優(yōu)化,在結(jié)果上有了顯著的提升,意味著從網(wǎng)絡(luò)結(jié)構(gòu)和學(xué)習(xí)過程中產(chǎn)生了額外的正則化.該方法基于上下文聚合的網(wǎng)絡(luò)結(jié)構(gòu)[15,16],可以實(shí)現(xiàn)從頭開始進(jìn)行端到端訓(xùn)練,除了原始模糊圖像之外,不依賴任何外部數(shù)據(jù).且把預(yù)測的透射圖作為輸出,從該輸出可以容易地重建去模糊后的圖像.實(shí)驗(yàn)結(jié)果表明,由網(wǎng)絡(luò)提供的附加正則化減少了基于先驗(yàn)的方法的常見偽影,例如過飽和以及高對比度等現(xiàn)象.
本節(jié)將描述所提出的圖像去霧方法,包括用于網(wǎng)絡(luò)訓(xùn)練的無監(jiān)督能量函數(shù),即暗通道先驗(yàn)損失.框架結(jié)構(gòu)示意圖如圖1所示.
圖1 框架結(jié)構(gòu)示意圖Fig.1 Overview of framework
常見的霧生成模型[17]如下:
I(x)=t(x)J(x)+(1-t(x))A,t(x)=e-βd(x)
(1)
觀測到的模糊圖像I(x)∈N×3,是清晰無霧場景的輻亮度J(x)和大氣光分量A的凸線性組合,稱為空氣光;在RGB空間中通常表示為一個(gè)恒定的三維矢量,A=(Ar,Ag,Ab).透射圖系數(shù)t(x)∈N是關(guān)于觀察者的場景深度d(x)的函數(shù),控制圖像中每個(gè)像素中每個(gè)分量的相對力x∈N.圖像去霧的目的是獲得清晰無霧的場景亮度J(x).然而,首先需要解一組包含3N個(gè)方程的方程組(只給定I(x)),包含4N+3個(gè)未知數(shù)(J(x),t(x),A).因此,需要額外的先驗(yàn)知識來提供監(jiān)督信號.
暗通道先驗(yàn)是一種圖像的統(tǒng)計(jì)特性,表明在無霧室外圖像中的小塊區(qū)域,所有顏色通道中最暗的像素接近于零.圖像的“暗通道”定義為:
(2)
其中,Ω(x)是圖像的一個(gè)小塊,以x為中心.這種觀察是由出現(xiàn)在室外圖像中的三個(gè)因素造成的:(1)由汽車、建筑物和樹木引起的陰影;(2)彩色物體.其中一個(gè)顏色通道占主導(dǎo)地位,而其他顏色通道接近于零,例如,紅色的花,綠色的葉等;(3)黑暗的物體.例如樹干和巖石等.
(3)
(4)
其中第一項(xiàng)用來提升圖像摳圖的質(zhì)量,第二項(xiàng)則用來提升對暗通道方案的保真度.λ用來權(quán)衡兩者的權(quán)重,設(shè)置為0.000 1[3].矩陣L類似拉普拉斯矩陣,多用于圖像摳圖[18]:
(5)
其中i,j是像素n周圍的小圖像塊pn內(nèi)的兩個(gè)像素;|pn|表示圖像塊的大小,為3x3=9;μn∈3和∑n∈3×3為圖像塊的均值和協(xié)方差;U3是單位矩陣;∈是一個(gè)平滑系數(shù),設(shè)置為0.000 001.
通過公式(5)中給出的權(quán)重,使用已知的拉普拉斯矩陣的分解,重寫了公式4中的能量函數(shù):
(6)
其中,對得到的透射圖t中N個(gè)像素周圍的所有重疊的圖像塊以及給定3×3圖像塊中像素i,j的所有可能組合進(jìn)行求和.最大組合數(shù)為3^2x3^2=81.可以將該項(xiàng)和數(shù)據(jù)保真度一起進(jìn)行矢量化:
(7)
圖2 損失函數(shù)模塊Fig.2 Loss function module
其中⊙表示元素乘法;k∈[1..81]對3×3圖像塊中所有可能的像素對進(jìn)行索引,W∈N×81是權(quán)重的矢量化形式.TI,TJ∈N×81是對輸出透射圖的重復(fù).
以上是該方法用來訓(xùn)練網(wǎng)絡(luò)的損失函數(shù),其預(yù)測的透射圖由tθ進(jìn)行參數(shù)化.通過在模糊圖像的訓(xùn)練集上最小化公式7中的損失函數(shù)來優(yōu)化調(diào)整參數(shù)θ:
(8)
其中M是圖像的數(shù)量.損失函數(shù)的輸入和輸出示意圖如圖2所示.
網(wǎng)絡(luò)完成訓(xùn)練之后,模糊圖像的透射圖tθ(x)可以通過前向傳遞操作獲得.這用于通過公式(1)中的霧生成模型來恢復(fù)場景輻射J:
(9)
其中t0用于防止除以接近0的數(shù)字,被設(shè)為0.1.為了恢復(fù)丟失的空氣光組件,首先在模糊圖像的暗通道中選擇0.1%最亮的像素.然后,從這些位置中,選擇模糊圖像中最亮的像素I,作為最終的大氣光A.
如圖1所示,為本文采用的全卷積“膨脹殘差網(wǎng)絡(luò)”.受上下文聚合網(wǎng)絡(luò)[15]的啟發(fā),它在密集預(yù)測任務(wù)中展現(xiàn)出了不錯(cuò)的結(jié)果.與CAN類似,保持所有層的分辨率不變,即輸入和輸出的分辨率相同.為了獲得準(zhǔn)確的預(yù)測,該方法避免了池化和上采樣層,而是通過膨脹卷積以指數(shù)增長的膨脹因子來增加感受野.與[15]相反,在每個(gè)膨脹卷積之間,額外添加兩個(gè)常規(guī)的卷積層,以生成更豐富的非線性表示.
因此,該網(wǎng)絡(luò)是由6個(gè)膨脹殘差塊級聯(lián)而成;每一個(gè)塊分別由兩個(gè)常規(guī)的卷積組成,接著是一個(gè)單獨(dú)的膨脹卷積.每一個(gè)塊之間,膨脹因子增加2的冪次倍.所有卷積層(除輸出層之外)的濾波器大小和寬度為3×3×32.所有常規(guī)卷積之后是批處理歸一化[19]和ReLU激活函數(shù),所有膨脹卷積之后接著批處理歸一化.最后一層是到輸出維度為1×1×1透射圖的線性變換.為了改善梯度流并將更精細(xì)的細(xì)節(jié)傳播到輸出,在每個(gè)塊的輸入和輸出之間加入了額外的跳躍連接.跳躍連接是每個(gè)塊的輸入到輸出的簡單加法.
為了訓(xùn)練和評估該網(wǎng)絡(luò)的性能,本文使用了大規(guī)模RESIDE數(shù)據(jù)集[16].RESIDE的訓(xùn)練集稱為“ITS”,包括13990幅合成的室內(nèi)圖像,由NYU2和Middlebury立體數(shù)據(jù)集創(chuàng)建.測試集包括室內(nèi)和室外兩部分,分別稱為“SOTS室內(nèi)”和“SOTS室外”,每個(gè)部分分別包含500幅合成圖像.此外,還有一個(gè)由20幅室外圖像組成的小測試集,叫做“HSTS”.
HSTS混合了10幅合成圖像和10幅真實(shí)世界的圖像.所有合成的模糊圖像都是通過收集標(biāo)注的真實(shí)干凈圖像及其相應(yīng)的深度圖,并應(yīng)用公式1中不同α,β參數(shù)配置的霧生成模型來創(chuàng)建.RESIDE還提供了一個(gè)額外的由4 322幅真實(shí)世界圖像組成的集合,這些圖像是從網(wǎng)絡(luò)上爬取下來的,稱為“RTTS”.根據(jù)這些真實(shí)世界圖像來訓(xùn)練該方法提出的網(wǎng)絡(luò).為了在訓(xùn)練過程中評估PSNR(峰值信噪比)和SSIM(結(jié)構(gòu)相似性)標(biāo)準(zhǔn),本文使用了來自RESIDE的“OTS”第一部分隨機(jī)選取的合成室外訓(xùn)練集中的500幅圖像作為驗(yàn)證子集.
為了豐富RTTS訓(xùn)練集,本文進(jìn)行了數(shù)據(jù)擴(kuò)充.第一個(gè)數(shù)據(jù)增強(qiáng)操作是簡單地使用雙線性插值將原始模糊圖像的大小調(diào)整到128×128.并隨機(jī)對每個(gè)圖像分別進(jìn)行水平翻轉(zhuǎn)或保持原樣;隨機(jī)裁剪為256×256或512×512;并以0、45、90或135度進(jìn)行旋轉(zhuǎn).然后,所有增強(qiáng)的圖像都被調(diào)整到128×128的尺寸.因此,最終的訓(xùn)練圖像數(shù)量是:4 322×4=17 288幅.
損失函數(shù)的參數(shù)λ=104,ω=0.95,t0=0.1,ε=106,DCP的圖像塊大小為:15×15,軟摳圖圖像塊大小為:3×3.并使用批量大小為24的Adam優(yōu)化器.學(xué)習(xí)率大小為0.000 3,每3個(gè)迭代周期進(jìn)行0.96倍的指數(shù)衰減.使用均值為零、方差為0.1來隨機(jī)初始化網(wǎng)絡(luò)的權(quán)重.在GTX Titan-X Nvidia GPU上進(jìn)行模型的訓(xùn)練和測試.30個(gè)迭代周期共花費(fèi)了8 h.對于SOTS室外數(shù)據(jù)集,訓(xùn)練了27個(gè)迭代周期,而對于SOTS室內(nèi)數(shù)據(jù)集,訓(xùn)練了30個(gè)迭代周期.
分別在SOTS室內(nèi)、SOTS室外和HSTS測試集上評估了本文方法的性能.這些測試集是合成創(chuàng)建的,因此既有清晰的圖像,也有對應(yīng)的模糊圖像.本文根據(jù)PSNR和SSIM指標(biāo)來衡量解決方案的質(zhì)量.本文主要與以下基于先驗(yàn)的方法分別進(jìn)行比較,例如:DCP[3],BCCR[8]和NLD[7],以及以下數(shù)據(jù)驅(qū)動(dòng)方法:CAP[6],MSCNN[12],DehazeNet[11],AOD-Net[10]和GFN[13]等.
實(shí)驗(yàn)結(jié)果見表1所示.在較大的SOTS室外測試集中,該方法的PSNR和SSIM得分最高,在較小的HSTS測試集上,該方法的SSIM得分最高.該方法利用神經(jīng)網(wǎng)絡(luò)來提取豐富的表示,并經(jīng)過訓(xùn)練以適應(yīng)大量圖像,與基于先驗(yàn)的方法相比,獲得了更好的結(jié)果.具體來說,與DCP相比,該方法盡可能去近似相同能量函數(shù)的解,且在達(dá)到絕對最小值之前停止它,以便獲得進(jìn)一步的正則化.這一點(diǎn)在SOTS室外圖像中尤為明顯,DCP方法在這類圖像上經(jīng)常使天空過度飽和.圖3、圖4分別為PSNR指標(biāo)和SSIM指標(biāo)上不同方法在多個(gè)數(shù)據(jù)集上的結(jié)果對比曲線,可以直觀看出該方法與其他方法的性能差異.
圖3 與其他方法在三個(gè)數(shù)據(jù)集上的PSNR指標(biāo)對比Fig.3 Comparison of PSNR indicators with other methods on three data sets圖4 與其他方法在三個(gè)數(shù)據(jù)集上的SSIM指標(biāo)對比Fig.4 Comparison of SSIM indicators with other methods on three data sets
關(guān)于數(shù)據(jù)驅(qū)動(dòng)的方法,該方法取得高分歸因于本文是在真實(shí)的室外圖像上進(jìn)行訓(xùn)練的事實(shí),而方法[10,12-13]集中在合成的室內(nèi)圖像上,并且在處理室外數(shù)據(jù)時(shí)遭受一定的域偏移.此外,合成的模糊和清晰圖像對是從粗略的深度數(shù)據(jù)中創(chuàng)建的,對這些數(shù)據(jù)的訓(xùn)練產(chǎn)生了對數(shù)據(jù)驅(qū)動(dòng)方法的負(fù)面偏見.“ITS”中的室內(nèi)訓(xùn)練圖像示例如圖7所示.透射圖中粗糙的錯(cuò)位邊緣,這些邊緣后來轉(zhuǎn)化為不準(zhǔn)確的模糊圖像.事實(shí)上,就室外數(shù)據(jù)的表現(xiàn)結(jié)果而言,本文方法的結(jié)果與DehazeNet[11]方法最為接近.這種方法是在室外場景的大量干凈圖像塊上訓(xùn)練的,與在“ITS”上訓(xùn)練的方法相比,它更加魯棒.
圖5 合成圖像及預(yù)測的透射圖結(jié)果Fig.5 Composite image and predicted transmission diagram results
該方法同樣測試了在SOTS室內(nèi)測試集上的結(jié)果,與其他數(shù)據(jù)驅(qū)動(dòng)的方法甚至DCP相比,得分較低.這主要是因?yàn)楸疚姆椒ㄊ窃谑彝鈭D像上進(jìn)行訓(xùn)練的,在室內(nèi)和室外場景之間的性能表現(xiàn)上做了一個(gè)折衷.至于DCP方法,它在室內(nèi)圖像上表現(xiàn)得更好,因?yàn)槭覂?nèi)圖像更符合霧生成模型的結(jié)果,并且不包括天空區(qū)域.
如圖6所示,展示了在HSTS測試集上的定性結(jié)果.在圖6的頂部,可以看到該方法保持了原始圖像的真實(shí)顏色,而DCP[3]、BCCR[8]和NLD[7]傾向于產(chǎn)生夸張的天空區(qū)域.該方法的結(jié)果與CAP[6]產(chǎn)生的結(jié)果相似,更接近于圖像標(biāo)注中的真實(shí)顏色.在圖6的下半部分,提供了基于深度學(xué)習(xí)的方法的比較.在大多數(shù)圖像中,本文保持了真實(shí)的對比度和顏色,而MSCNN[12]和GFN[13]提供了更多的對比度增強(qiáng)圖像.在某些圖像上,會(huì)稍微改變天空的顏色,這是因?yàn)樵摲椒ㄊ菬o監(jiān)督進(jìn)行訓(xùn)練的,在任何階段都無法看到清晰的圖像.如圖7所示,可以看到與基于先驗(yàn)和數(shù)據(jù)驅(qū)動(dòng)的方法的真實(shí)圖像比較.在27個(gè)迭代周期和30個(gè)迭代周期之后可視化該網(wǎng)絡(luò)的輸出,輸出的結(jié)果圖像更類似于DCP方法的結(jié)果.可以看到,在27個(gè)迭代周期之后,并沒有消除所有的霧,這可能表明RESIDE中的室外圖像沒有現(xiàn)實(shí)世界中的模糊圖像那么模糊.在30個(gè)迭代周期之后,該方法的結(jié)果更加飽和,對比度更高.
圖6 在HSTS測試集上去霧結(jié)果的定性對比Fig.6 Qualitative comparison of fog results in HSTS test set圖7 在真實(shí)世界圖像上的去霧定性結(jié)果Fig.7 De-fogging qualitative results on real-world images
推理過程主要由兩部分組成:在訓(xùn)練好的網(wǎng)絡(luò)上向前傳遞以獲得預(yù)測的透射圖,以及使用公式(9)進(jìn)行圖像的重構(gòu),將本文方法與軟摳圖DCP[3]的Matlab實(shí)現(xiàn)進(jìn)行對比,表示為“Slow-DCP”,和引導(dǎo)圖像濾波器DCP,表示為“Fast-DCP”.“Fast-DCP”是“Slow-DCP”的近似,雖然非常有效,但效果較差.為了公平比較,該解決方案分別測試了使用GPU和英特爾i7-5930k 3.5 GHz CPU的運(yùn)行時(shí)間.在表2中,記錄了在SOTS室外500幅圖像的平均運(yùn)行時(shí)間,這些圖像的寬度均為500像素.與顯式優(yōu)化過的“Slow-DCP”所花費(fèi)的時(shí)間相比,該方法的前饋推理要快得多(×30 GPU和×12 CPU).該方法的性能與“Fast-DCP”不相上下(GPU更快,CPU更慢).但該方法提供了更好的可視化質(zhì)量,在PSNR指標(biāo)上增加了9.5 dB.本文方法還可以通過在訓(xùn)練期間對t,A的聯(lián)合估計(jì)來進(jìn)一步加速.總之,盡管DCP顯式方案可能已經(jīng)很有效,但它缺乏本文方法所能帶來的額外正則化.
在模型訓(xùn)練期間,該網(wǎng)絡(luò)努力逼近DCP的能量函數(shù).因?yàn)樗鼘φ麄€(gè)圖像的語義損失進(jìn)行優(yōu)化,所以它可以輸出與DCP不同的結(jié)果[3].然而DCP一次只對一個(gè)圖像運(yùn)行,但該網(wǎng)絡(luò)學(xué)習(xí)到了一個(gè)更“通用”的解決方案,適用于多個(gè)圖像.此外,隨著訓(xùn)練過程的進(jìn)行和損失值的降低,該方法的結(jié)果越來越接近DCP的結(jié)果,如圖7中最右邊的三列所示.在訓(xùn)練初期,輸出圖像仍然包含大量的霧,而在訓(xùn)練后期,大部分霧被去除,但是顏色看起來更加飽和,甚至不真實(shí).本文尋找一個(gè)折衷,使得大部分薄霧被去除,以至于人們可以看到細(xì)節(jié),但是顏色和對比度仍然是現(xiàn)實(shí)的或者是物理上有效的.在到達(dá)更深的最優(yōu)值之前停止的好處在天空區(qū)域尤為明顯,此時(shí)DCP會(huì)輸出一個(gè)夸張的天空版本,而本文方法則會(huì)產(chǎn)生一個(gè)更自然的顏色.在圖7的例子中,這個(gè)“最佳點(diǎn)”是在訓(xùn)練數(shù)據(jù)經(jīng)過27個(gè)迭代周期之后達(dá)到的.盡管如此,該方法可以繼續(xù)訓(xùn)練幾個(gè)迭代周期,以獲得更生動(dòng)的結(jié)果.
雖然本文的訓(xùn)練過程是完全無監(jiān)督進(jìn)行的,但該方法仍然需要一個(gè)停止標(biāo)準(zhǔn),因?yàn)檫_(dá)到損失函數(shù)的最小值在視覺和定量結(jié)果方面并不總是最優(yōu)的.為此,本文通過評估平均損失值,以及在OTS的500幅圖像組成的一個(gè)小監(jiān)督集合上分別計(jì)算PSNR和SSIM的值.結(jié)果表現(xiàn)是平均損失逐漸減少,PSNR和SSIM的指標(biāo)逐漸增長,達(dá)到最大值后開始降低.該方法選取了在OTS驗(yàn)證集上表現(xiàn)最佳的模型.類似的技術(shù)同樣被用于進(jìn)行學(xué)習(xí)參數(shù)的選擇.
本文提出了一種用于圖像去霧的深度神經(jīng)網(wǎng)絡(luò)無監(jiān)督訓(xùn)練方法.該方法依賴于眾所周知的暗通道先驗(yàn)(DCP)[3]進(jìn)行改進(jìn).除了在室外場景中表現(xiàn)出最好的性能,該方法還消除了對合成訓(xùn)練集的依賴.雖然本文主要以DCP為主展開對比實(shí)驗(yàn),該方法同樣可以結(jié)合任何其他驗(yàn)證有效的能量函數(shù),使用它作為本文的無監(jiān)督損失.