林 森, 孫彭輝
(沈陽(yáng)理工大學(xué)自動(dòng)化與電氣工程學(xué)院,沈陽(yáng) 110000)
在霧霾天氣下,空氣中存在大量懸浮顆粒,使得光線被吸收或散射,會(huì)嚴(yán)重影響無(wú)人機(jī)等航拍設(shè)備獲取圖像信息,因此進(jìn)行圖像去霧操作極為重要。
目前去霧算法主要分為圖像增強(qiáng)、圖像復(fù)原和深度學(xué)習(xí)3類?;趫D像增強(qiáng)的方法有直方圖均衡化[1]、Retinex[2]以及小波變換[3]等,此類方法通過(guò)加強(qiáng)圖像中的感興趣特征來(lái)實(shí)現(xiàn)視覺(jué)效果提升,速度快且易于實(shí)現(xiàn),但沒(méi)有實(shí)質(zhì)解決霧化問(wèn)題。
基于圖像復(fù)原的方法把大氣散射模型作為基礎(chǔ),利用改進(jìn)后的模型求解透射率和大氣光來(lái)實(shí)現(xiàn)去霧[4]。TAREL等[5]提出基于中值濾波的去霧算法,該算法時(shí)間復(fù)雜度低,但設(shè)置參數(shù)多,且容易丟失圖像細(xì)節(jié)信息;HE等[6]提出暗通道先驗(yàn)算法,去霧效果良好且易于實(shí)現(xiàn),但當(dāng)圖像中包含景深突變和明亮區(qū)域(天空、水面、大面積白色區(qū)域等)時(shí),去霧后會(huì)出現(xiàn)顏色失真和光暈偽影;ZHU等[7]對(duì)大量有霧圖像進(jìn)行分析發(fā)現(xiàn)霧濃度和景深有關(guān),提出顏色衰減先驗(yàn),該算法簡(jiǎn)單有效,但濃霧環(huán)境下處理效果較差;SABIR等[8]根據(jù)霧濃度求取透射率,并取天空和非天空區(qū)域的大氣光均值作為整體大氣光值,一定程度上抑制了顏色失真,但結(jié)果圖像偏暗。
基于深度學(xué)習(xí)的去霧算法經(jīng)過(guò)訓(xùn)練大量數(shù)據(jù)集恢復(fù)無(wú)霧圖像。REN等[9]通過(guò)學(xué)習(xí)模糊圖像與透射率圖之間的對(duì)應(yīng)關(guān)系,提出用于去霧的多尺度卷積神經(jīng)網(wǎng)絡(luò);CAI等[10]提出一種名為DehazeNet的端到端系統(tǒng)用于圖像去霧,將有霧圖像作為輸入,并輸出對(duì)應(yīng)的透射率圖,之后根據(jù)霧天模型恢復(fù)清晰圖像;LI等[11]利用卷積神經(jīng)網(wǎng)絡(luò)建立去霧模型,提出了一體化去霧網(wǎng)絡(luò)(All-in-One Dehazing Network,AOD-Net)。因?yàn)橛?xùn)練所用的數(shù)據(jù)集都是人工合成的有霧圖像,這些算法在真實(shí)霧天環(huán)境下的去霧效果并不佳。
針對(duì)上述算法的不足,本文提出改進(jìn)暗通道窗口與透射率修正的圖像去霧算法。主要?jiǎng)?chuàng)新性貢獻(xiàn)有:1)利用超像素分割獲得景深一致的局部窗口,獲取更為準(zhǔn)確的暗通道,并結(jié)合大氣光特性求取大氣光值;2)對(duì)于引導(dǎo)濾波細(xì)化后的透射率,提出自適應(yīng)容差機(jī)制進(jìn)行補(bǔ)償,有效抑制明亮區(qū)域的顏色失真。
目前圖像去霧算法采用的普遍為簡(jiǎn)化的大氣散射模型[6],其表達(dá)式為
Ic(x)=Jc(x)·t(x)+Ac·(1-t(x))
(1)
式中:I為有霧圖像;J為無(wú)霧圖像;A為大氣光值;t為透射率;c為RGB圖像3個(gè)顏色通道中的任意一個(gè)通道;x為像素點(diǎn)的位置;空氣中的介質(zhì)粒子均勻時(shí),透射率可表示為
t(x)=e-βd(x)
(2)
式中:β為介質(zhì)散射系數(shù);d(x)為像素點(diǎn)x處景深。
HE等[6]提出了暗通道先驗(yàn)理論(Dark Channel Prior,DCP),通過(guò)對(duì)大量的室外無(wú)霧圖像進(jìn)行統(tǒng)計(jì),發(fā)現(xiàn)在絕大多數(shù)圖像中,存在一個(gè)顏色通道值很低,趨近于零,即
(3)
若Ac已知,對(duì)式(1)兩邊同時(shí)除以Ac且同時(shí)進(jìn)行最小值濾波可得
(4)
將式(3)代入式(4)可得透射率為
(5)
式中,ω為霧氣保留系數(shù),一般取0.95[6]。
本文算法流程如圖1所示。
圖1 算法流程
具體步驟如下:1) 使用超像素分割算法改進(jìn)濾波窗口,以求取更加準(zhǔn)確的暗通道;2) 根據(jù)大氣光所在區(qū)域特性,結(jié)合超像素分割進(jìn)行大氣光值估計(jì);3) 用改進(jìn)后的暗通道求取透射率,再用自適應(yīng)容差機(jī)制來(lái)修正明亮區(qū)域的透射率;4) 反演大氣散射模型恢復(fù)無(wú)霧圖像。
下面詳細(xì)闡述各步驟的相關(guān)原理和方法。
由于DCP選取固定方形濾波窗口,在邊緣處會(huì)包含多個(gè)景深,容易導(dǎo)致去霧后出現(xiàn)光暈偽影。為解決此問(wèn)題,用超像素分割有霧圖像得到景深一致的局部窗口,窗口內(nèi)的像素點(diǎn)有著相似的亮度、顏色和梯度等特征。在改進(jìn)后的每個(gè)窗口內(nèi)計(jì)算獲取更為準(zhǔn)確的暗通道,從而提高透射率估計(jì)精度。
本文使用超像素分割方法為簡(jiǎn)單線性迭代聚類算法(Simple Linear Iterative Clustering,SLIC[12]),其主要優(yōu)勢(shì)是時(shí)間復(fù)雜度低、生成超像素的緊湊度高、邊緣保持性好,且只需設(shè)置一個(gè)參數(shù),即需要分割的超像素?cái)?shù)量s。s決定了超像素分割后窗口的大小,合適的窗口可以獲得較好的暗通道。由于HE等[6]對(duì)600 像素×400 像素大小的圖像使用15 像素×15 像素大小的窗口取得了較好的去霧效果,本文將其作為標(biāo)準(zhǔn)來(lái)調(diào)整窗口大小,若輸入圖像的大小為m×n,則窗口大小為
(6)
式中:wwin為窗口大小值;m,n分別表示輸入有霧圖像I(x)的高度和寬度。從而超像素分割數(shù)量s為
(7)
為驗(yàn)證改進(jìn)窗口的有效性,選取一幅包含邊緣信息較多的霧圖進(jìn)行驗(yàn)證,對(duì)比結(jié)果如圖2所示。
圖2 透射率對(duì)比
圖2(b)的DCP沒(méi)有考慮景深的影響,丟失了較多的邊緣信息。相比之下,圖2(c)的邊緣信息保持較好,近處的樓房清晰可見(jiàn),遠(yuǎn)處的景物也輪廓分明。
大氣光值易受到霧圖中的明亮物體影響,導(dǎo)致估計(jì)不準(zhǔn)確。為克服此問(wèn)題,從大氣光特性出發(fā)并結(jié)合超像素塊來(lái)估計(jì)大氣光值。由式(1)和式(2)可知,當(dāng)拍攝場(chǎng)景中存在濃霧時(shí),目標(biāo)物體無(wú)法透過(guò)濃霧到達(dá)相機(jī)設(shè)備,此時(shí)透射率近似于零,在景深無(wú)窮遠(yuǎn)處亦是如此。此時(shí)霧天成像模型可簡(jiǎn)化為
I(x)≈A
(8)
式中,A為大氣光Ac的3個(gè)通道的均值。這時(shí)成像結(jié)果主要由大氣光造成。因此,大氣光的選取需要考慮兩點(diǎn):1) 大氣光所在處一般為有霧圖像的背景區(qū)域(濃霧區(qū)域和景深無(wú)窮遠(yuǎn)區(qū)域);2) 從式(8)可知,大氣光所在區(qū)域的亮度近似于定值A(chǔ),因此該區(qū)域局部像素值變化很小。本文根據(jù)這兩點(diǎn)提出了一種新的大氣光值求取方法??紤]到在室外霧圖中,背景區(qū)域往往都在圖像上半部分,天空區(qū)域距離拍攝設(shè)備非常遙遠(yuǎn),可認(rèn)為其是景深無(wú)窮遠(yuǎn)處,即背景區(qū)域。因此大氣光值的求取只考慮圖像上半部分。具體實(shí)現(xiàn)方式為:1)將超像素分割后的霧圖上、下等分,取上半部分圖像作為處理對(duì)象;2)對(duì)該部分圖像的每個(gè)超像素塊內(nèi)的像素計(jì)算標(biāo)準(zhǔn)差;3)標(biāo)準(zhǔn)差最小的超像素塊作為大氣光所在區(qū)域,并求其像素平均值作為最終大氣光值。
上述超像素塊內(nèi)像素的標(biāo)準(zhǔn)差算式為
(9)
(10)
圖3為DCP及本文算法估計(jì)的大氣光所在區(qū)域?qū)Ρ葓D。在圖像前景處包含明亮區(qū)域時(shí),DCP將大氣光定位在前景明亮處而非背景區(qū)域,產(chǎn)生了錯(cuò)誤。本文算法估計(jì)的大氣光定位準(zhǔn)確且符合大氣光特性,所得數(shù)值更加精確。
圖3 不同算法估計(jì)的大氣光對(duì)比
在求得暗通道和大氣光值后,通過(guò)式(5)求出透射率,并用引導(dǎo)濾波[13]對(duì)其細(xì)化,得
(11)
對(duì)式(4)進(jìn)行變換,得到實(shí)際的透射率為
(12)
引入容差機(jī)制[14]為
對(duì)于地下室的防滲漏施工一般采用的是堵漏法進(jìn)行防水,堵漏法一般分兩種情況,一種情況是漏水孔大水壓比較高的地方,這種情況采用施工方法是先觀察好地面結(jié)構(gòu)情況,然后進(jìn)行空洞的預(yù)鑿,孔洞大小一定要確定好,然后將碎石平鋪在孔洞的下面,在上面鋪一層防水油氈,引開(kāi)滲漏下去的水,最后要做的是將漏水孔處理好,然后注入水泥膠漿。另一種情況是在漏水孔比較小,水壓比較低的地方,施工方法是將孔洞改成一個(gè)以孔洞中心為圓心的圓槽,深在3~4cm左右,然后清理好圓槽進(jìn)行水泥膠漿的灌注,壓實(shí)后涂上防水材料,為保證施工質(zhì)量施工的每一步都必須進(jìn)行嚴(yán)格的檢查。
(13)
式中:tlast(x)為修正后的透射率;K為容差參數(shù),它是不同區(qū)域劃分的依據(jù),將|I(x)-A| 為了更直觀地表現(xiàn)容差機(jī)制對(duì)透射率的修正,將式(13)寫(xiě)成分段函數(shù)形式,即 (14) 從式(14)中可以明顯看出,K的取值直接決定了透射率的修正結(jié)果,當(dāng)|I(x)-A| 因?yàn)槊髁羺^(qū)域的大小是由K決定的,所以若能確定不同輸入圖像中明亮區(qū)域的大小,便能求出相應(yīng)的K值。均值迭代分割算法可以有效分割出圖像明亮區(qū)域,故應(yīng)用此算法來(lái)處理輸入圖像,并進(jìn)一步求取K值,具體步驟如下。1) 對(duì)輸入的有霧圖像使用均值迭代分割算法,得到二值圖像;2) 將有霧圖像對(duì)應(yīng)于二值圖像中白色區(qū)域的部分作為明亮區(qū)域;3) 在明亮區(qū)域內(nèi)求得最大和最小像素值;4) 用最大像素值和最小像素值分別減去大氣光值A(chǔ),并對(duì)兩個(gè)結(jié)果的絕對(duì)值取平均作為容差參數(shù)K的值,即 (15) 式中:Imax為明亮區(qū)域最大像素值;Imin為明亮區(qū)域最小像素值。 用本文所提算法求得容差參數(shù)K,將其代入式(13)修正透射率,結(jié)果如圖4所示。 圖4 透射率修正前、后對(duì)比 由圖4(b)可見(jiàn),天空處透射率值過(guò)低,圖4(c)修正后的透射率得到明顯改善。 根據(jù)已知透射率、大氣光值和有霧圖像,代入式(1)求得無(wú)霧圖像,并對(duì)其進(jìn)行Gamma校正提升圖像亮度從而獲得最終清晰圖像,即 (16) 在RESIDE[15]數(shù)據(jù)集中選取4幅航拍視角(Image1~I(xiàn)mage4)和其他視角(Image5~I(xiàn)mage7)的有霧圖像以及實(shí)際濃霧天氣下手機(jī)拍攝所得霧圖(Image8)作為實(shí)驗(yàn)對(duì)象。將本文算法與TAREL算法[5]、HE算法[6]、CAI算法[10]和SABIR算法[8]的去霧效果進(jìn)行對(duì)比,對(duì)比結(jié)果如圖5所示。實(shí)驗(yàn)運(yùn)行環(huán)境為64位Windows10系統(tǒng),CPU為AMD Ryzen 5 1600X,內(nèi)存為16 GiB,仿真平臺(tái)為Matlab2018a。 圖5 去霧結(jié)果對(duì)比 從圖5中可以看出:TAREL算法恢復(fù)了較多的邊緣信息,但噪點(diǎn)太多,去霧后圖像仍然模糊;HE算法有著較好的去霧效果,但景深突變處出現(xiàn)光暈偽影,天空處出現(xiàn)嚴(yán)重的顏色失真且整體顏色偏暗;屬于深度學(xué)習(xí)的CAI算法沒(méi)有光暈偽影和顏色失真現(xiàn)象,但有一些色偏并且對(duì)于濃霧圖像(Image7和Image8)去霧后仍留有殘霧;SABIR算法對(duì)DCP算法做出了改進(jìn),消除了景深突變處的光暈偽影,但細(xì)節(jié)恢復(fù)一般且有一定色偏,在暗處場(chǎng)景去霧效果不佳,如Image1和Image2的左下部分。 綜合發(fā)現(xiàn),本文去霧算法恢復(fù)的圖像顏色自然,消除了景深突變處的光暈效應(yīng),同時(shí)抑制了明亮區(qū)域的顏色失真,去霧效果好且細(xì)節(jié)處恢復(fù)更好,在真實(shí)拍攝的霧天場(chǎng)景下依然有較好的去霧效果,對(duì)比其他算法有著顯著優(yōu)勢(shì),且對(duì)于不同的場(chǎng)景都具備良好的去霧能力,魯棒性更好。 為進(jìn)一步驗(yàn)證本文所提算法的有效性,使用峰值信噪比(Peak Signal to Noise Ratio,PSNR),結(jié)構(gòu)相似性(Structural Similarity Index Metric,SSIM)和平均梯度(Average Gradient,AG)這3項(xiàng)常用指標(biāo)對(duì)多種算法的實(shí)驗(yàn)結(jié)果進(jìn)行比較分析。 PSNR的值越大圖像失真越少,其數(shù)學(xué)表達(dá)式為 (17) 式中:Mmax表示輸入圖像的最高像素值;MMSE是均方誤差。 SSIM用來(lái)描述兩幅圖像的相似程度,取值范圍為[0,1],用該指標(biāo)評(píng)價(jià)去霧效果,其值越大越好。SSIM的數(shù)學(xué)表達(dá)式為 (18) AG反映圖像紋理信息的改變,值越大,表明邊緣性越好,數(shù)學(xué)表達(dá)式為 (19) 式中:M′和N′分別為圖像的長(zhǎng)和寬;m′和n′分別為對(duì)應(yīng)像素點(diǎn)的橫、縱坐標(biāo)。 不同算法的各項(xiàng)指標(biāo)值對(duì)比結(jié)果如表1~3所示。對(duì)于每幅圖像不同算法的去霧結(jié)果,每項(xiàng)指標(biāo)的最優(yōu)值都加粗標(biāo)出。為了綜合評(píng)價(jià)整體去霧效果,對(duì)8組圖像結(jié)果取均值??梢钥闯觯疚乃惴ㄔ诜逯敌旁氡?、結(jié)構(gòu)相似性和平均梯度的評(píng)測(cè)結(jié)果中,均優(yōu)于其他算法,說(shuō)明了本文算法的優(yōu)越性。 表1 客觀評(píng)價(jià)指標(biāo)PSNR 表2 客觀評(píng)價(jià)指標(biāo)SSIM 表3 客觀評(píng)價(jià)指標(biāo)AG 不同的光照環(huán)境對(duì)霧天圖像清晰化有著不同的挑戰(zhàn)。為了測(cè)試本文算法對(duì)光照的適應(yīng)范圍,選取3幅不同光照環(huán)境的霧圖進(jìn)行評(píng)估,結(jié)果如圖6所示。圖6中第1行圖為有霧圖像,第2行圖為去霧后圖像。 圖6 不同光照環(huán)境的去霧結(jié)果 白天光照充足,去霧后的樓房邊緣清晰,顏色自然,整體畫(huà)面效果良好。傍晚的光照不足,但仍然有光源,依然能夠?qū)D像進(jìn)行去霧處理,恢復(fù)了場(chǎng)景的真實(shí)顏色,但整體較暗。夜間已經(jīng)沒(méi)有了太陽(yáng)作為光源,光照嚴(yán)重不足,此時(shí)大氣散射模型不再適用,無(wú)法直接使用該模型進(jìn)行去霧處理。若想實(shí)現(xiàn)夜間去霧,則需根據(jù)夜間場(chǎng)景特點(diǎn)修正成像模型,已不屬于本文研究范疇。綜上可見(jiàn),本文算法在有太陽(yáng)作為光源的情況下,無(wú)論光照強(qiáng)度如何,都可以進(jìn)行去霧操作,效果良好,具有實(shí)用價(jià)值。 考慮到各算法應(yīng)用在實(shí)際生活中時(shí),不僅要有良好的去霧效果,還要滿足一定的時(shí)間要求,對(duì)于各算法的時(shí)間對(duì)比如表4所示。 表4 不同算法運(yùn)行時(shí)間 由表4可知,本文算法時(shí)間雖然不是最優(yōu),但仍然比HE算法要低,并且對(duì)于尺寸較小的圖像,本文算法的運(yùn)行時(shí)間在可接受范圍內(nèi)。 本文在暗通道先驗(yàn)算法基礎(chǔ)上做出改進(jìn),提出改進(jìn)暗通道窗口與透射率修正的圖像去霧算法。利用超像素分割算法改進(jìn)暗通道的濾波窗口,獲取更為準(zhǔn)確的暗通道,從而消除光暈偽影;根據(jù)大氣光的特性,結(jié)合超像素分割求取更為準(zhǔn)確的大氣光值;提出自適應(yīng)容差來(lái)修正透射率,解決了DCP存在的先驗(yàn)盲區(qū),抑制了明亮區(qū)域的顏色失真。實(shí)驗(yàn)證明,本文算法有更好的去霧效果,且能夠應(yīng)對(duì)不同類型的霧天圖像,對(duì)于霧天環(huán)境下航拍等設(shè)備準(zhǔn)確獲取場(chǎng)景信息有著極大的幫助。后續(xù)將考慮進(jìn)一步優(yōu)化算法,提升超像素分割的效率。3 實(shí)驗(yàn)結(jié)果分析
3.1 主觀評(píng)價(jià)
3.2 客觀評(píng)價(jià)
4 結(jié)論