呂東霞, 楊燕, 張金龍, 張雯波
(蘭州交通大學(xué) 電子與信息工程學(xué)院, 甘肅 蘭州 730070)
在霧霾等惡劣天氣條件下,成像設(shè)備獲取的圖像會出現(xiàn)細節(jié)丟失、顏色偏移、局部偏亮、飽和度降低和質(zhì)量退化等問題[1],導(dǎo)致圖片承載的信息價值利用率降低,因此,對霧霾天氣下拍攝的圖像進行清晰化處理有著重大的科學(xué)研究意義。目前,對霧霾圖像清晰化的處理方法有兩大類:傳統(tǒng)方法和基于深度學(xué)習(xí)的方法。傳統(tǒng)方法包括圖像增強和基于物理模型的圖像復(fù)原。圖像增強是通過一定手段對降質(zhì)圖像有選擇性地突出圖像中感興趣的特征或抑制圖像中某些不需要的特征來改善圖像的質(zhì)量。圖像增強類方法[1-3]有直方圖均衡化、Retinex算法、小波變換[4]等,但這類方法不考慮圖像的退化機制,增強結(jié)果存在信息丟失、去霧效果不理想等問題。
圖像復(fù)原類算法利用圖像退化的物理機制反演退化過程,建立數(shù)學(xué)模型,通過先驗知識或假設(shè)估計關(guān)鍵未知參量,實現(xiàn)圖像復(fù)原?;谖锢砟P蛷?fù)原的方法近年來發(fā)展迅速。He等[5]通過對大量清晰圖像的觀察提出暗通道先驗去霧算法,該算法認為清晰圖像的局部非天空區(qū)域存在通道值較低甚至接近于0的像素點,由此直接估計透射率進行去霧。該方法簡單有效并取得了顯著的去霧效果,但復(fù)原結(jié)果在天空區(qū)域出現(xiàn)失真并且在景深變化劇烈區(qū)域存在殘霧。Zhu等[6]通過觀察有霧圖像的HSV顏色通道發(fā)現(xiàn),圖像亮度和飽和度的差值與霧濃度呈正相關(guān)關(guān)系,因此提出顏色衰減先驗去霧算法。該算法通過近似估計景深達到去霧目的,但復(fù)原結(jié)果依然存在去霧不徹底現(xiàn)象。Wang等[7]提出基于線性變換的快速去霧算法,該算法通過構(gòu)造有霧圖像與無霧圖像最小通道的線性關(guān)系估計清晰圖像暗通道,實現(xiàn)去霧。該方法獲得了較好的去霧效果,但復(fù)原結(jié)果整體較暗,顏色失真嚴重。Yang等[8]提出一種以邊緣保持函數(shù)代替最小濾波擬合暗通道的去霧算法,該算法利用冪律壓縮和線性衰減克服了最小濾波的局限性,進而得到了較為準確的透射率,但是一些含有超遠景區(qū)域的圖像會產(chǎn)生一定的失真現(xiàn)象。Tarel等[15]結(jié)合大氣光幕固有約束條件與中值濾波得到大氣光幕,實現(xiàn)快速去霧,但是恢復(fù)的部分圖像會出現(xiàn)視覺模糊的效果。基于物理模型的霧圖復(fù)原盡管需要先驗和假設(shè)進行透射率和相關(guān)參數(shù)的輔助計算,但因其考慮了霧圖的成因,因此,此類方法能夠得到更加真實的去霧圖像。
基于深度學(xué)習(xí)的方法經(jīng)常需要對大量的樣本進行訓(xùn)練來獲取模型參數(shù),搭建網(wǎng)絡(luò)實現(xiàn)圖像去霧。Ren等[9]設(shè)計了一種用于透射率估計的多尺度網(wǎng)絡(luò)(Multi-scale Convolutional Neural Network, MSCNN),其主要思想是對粗級網(wǎng)絡(luò)與精細尺度網(wǎng)絡(luò)得到的透射率進行融合,獲得了較好的復(fù)原結(jié)果。Li等[10]將透射率與大氣光整合為一個參量,設(shè)計了一種輕量化多尺度網(wǎng)絡(luò)結(jié)構(gòu)(All-in-One Dehaze Network, AOD-Net)。該網(wǎng)絡(luò)消除了大氣光與透射率分開訓(xùn)練的誤差,取得了較好的復(fù)原效果,但該算法存在去霧不徹底、復(fù)原結(jié)果整體偏暗的問題。Qin等[11]提出一種端到端的特征融合注意力網(wǎng)絡(luò)(Feature Fusion Attention Network, FFA-Net),可以有效提取圖像特征并直接恢復(fù)無霧圖像,但是網(wǎng)絡(luò)結(jié)構(gòu)存在過擬合問題,對于真實場景有霧圖像復(fù)原效果不理想。此類方法近年來使用較多,但因為模型固有的缺陷和數(shù)據(jù)集因素,導(dǎo)致該類方法對真實環(huán)境下的霧圖處理效果較差。
針對圖像去霧研究中存在的去霧不徹底、顏色偏暗、處理速度較慢等問題,本文提出了一種基于對數(shù)-S型函數(shù)分段估計的快速去霧算法,通過對大氣散射模型的分析和推導(dǎo)得到大氣光幕與有霧圖像最小通道的正相關(guān)關(guān)系,利用分段函數(shù)快速估計遠近景大氣光幕。并利用中值濾波獲取有霧圖像中通道,對其進行形態(tài)學(xué)閉操作,再經(jīng)交叉雙邊濾波處理得到大氣光。最后通過大氣散射模型得到去霧圖像。實驗結(jié)果表明,本文算法的復(fù)原結(jié)果具有顏色鮮艷、細節(jié)信息豐富、去霧效果顯著的優(yōu)點。
在計算機視覺領(lǐng)域中,霧天條件下的圖像退化過程通常用大氣散射模型來描述[12-14]:
式中:I(x)表示有霧圖像;J(x)表示無霧圖像;A為大氣光;t(x)為透射率;A(1-t(x))被定義為大氣光幕,描述了粒子對大氣光的散射作用,具體表述為:
當(dāng)大氣介質(zhì)均勻時,透射率可表示為:
其中:q表示大氣散射系數(shù),d(x)表示場景深度。根據(jù)式(1)可知:大氣光幕V(x)小于退化場景I(x)并且為正值,以上約束關(guān)系可描述為:
式中:min(Ιc(x))表示退化場景的最小通道圖像,c∈(r,g,b)表示退化場景的3個顏色通道。在大氣散射模型中,I(x)是唯一的已知項,因此,實現(xiàn)去霧的關(guān)鍵是對透射率t(x)和大氣光A的精確估計。根據(jù)公式(2)發(fā)現(xiàn),可從大氣光幕的角度進行去霧。Yang等[18]結(jié)合大氣光幕固有約束條件與聯(lián)合雙邊濾波得到大氣光幕,實現(xiàn)了單幅圖像去霧。該算法雖然取得了較好的去霧效果,但邊緣信息的丟失導(dǎo)致在去霧圖像上出現(xiàn)了模糊的視覺效果。
本文算法流程如圖1所示。首先求取有霧圖像的最小通道和最大通道值,將最小通道值通過對數(shù)-S型函數(shù)分區(qū)域處理得到大氣光幕。再將最大通道值進行中值濾波,經(jīng)過形態(tài)學(xué)閉操作得到大氣光。最后通過大氣散射模型恢復(fù)無霧圖像。
圖1 算法流程框圖Fig.1 Algorithm flow block diagram
在使用大氣散射模型去霧時,對透射率的估計較為常見。對式(1)兩端進行最小值操作,經(jīng)過變形推導(dǎo)透射率:
用A進行歸一化處理可得:
由式(2)可得:
當(dāng)A已知時,結(jié)合式(5)、(6)可得:
觀察式(7),可以得到大氣光幕V(x)與最小通道值存在一定的正相關(guān)關(guān)系:
對式(1)兩端進行最小值操作,經(jīng)過變形可得:
在圖像去霧理論中,大氣光幕反映了一定的霧濃度信息,即在有霧圖像遠景區(qū)域,霧濃度[17-19]分布較高,大氣光幕較大;在有霧圖像中近景區(qū)域,霧濃度分布較低,大氣光幕較小?;谏鲜龃髿夤饽辉谶h近景區(qū)域分布的差異,為得到較為準確的大氣光幕,對其進行分區(qū)域估計。由于霧氣的存在影響了圖像亮度,結(jié)合霧氣在遠景區(qū)域的分布特征,本文用有霧圖像像素均值作為閾值將圖像分為近景區(qū)域和遠景區(qū)域。根據(jù)Yang等人[16]提出的基于最小通道與景深雙約束的大氣光幕估計方法可知,濃霧區(qū)域的大氣光幕灰度值較大且相鄰像素之間的差異性很小,而薄霧區(qū)域大氣光幕灰度值較小且差異性明顯。此關(guān)系描述如圖2所示,可以觀察到大氣光幕隨退化圖像最小顏色通道的變化關(guān)系在遠近景具有不同的速率:在中近景區(qū)域,大氣光幕隨最小通道變化較為劇烈,在遠景區(qū)域變化緩慢。在大氣光和大氣散射系數(shù)已知的前提下,根據(jù)式(3)可知,透射率與景深呈負相關(guān)。大氣光幕與景深具有相似性,景深與大氣光幕存在一定的正相關(guān),最小通道與透射率呈現(xiàn)負相關(guān),與景深存在正相關(guān)。最小通道在一定程度上表示景深,因此采用最小通道代替景深估計大氣光幕。式(2)、(3)、(11)的透射率、大氣光幕、最小通道、景深的關(guān)系如圖3所示。
圖2 大氣光幕與最小通道的對應(yīng)關(guān)系Fig.2 Correspondence between atmospheric light veil and minimum channel
圖3 透射率、大氣光幕、最小通道和景深的關(guān)系。Fig.3 Relationship of transmittance, atmospheric light veil, minimum channel, and depth of field.
根據(jù)上述特征,本文提出了一種基于對數(shù)-S型函數(shù)分段估計模型。模型采用的分段函數(shù)包括兩部分,分別為對數(shù)函數(shù)和S型函數(shù)。在圖像空間域增強中,對數(shù)變換可以對高灰度值部分進行壓縮,低灰度值部分進行擴展。S型函數(shù)也可以對高灰度值部分進行壓縮,低灰度值部分進行擴展,但是對數(shù)函數(shù)和S型函數(shù)的壓縮擴展程度不同??紤]到大氣光幕與最小通道變化關(guān)系的特征,選取S型函數(shù)對遠景區(qū)的高亮像素進行壓縮,對數(shù)函數(shù)對中近景區(qū)域進行處理,通過以上一組分段函數(shù)對大氣光幕進行估計。具體函數(shù)表達式為:
式中:x表示有霧圖像的最小通道值;f(x)表示估計大氣光幕;a、b表示去霧參數(shù);m表示有霧圖像的像素均值,用于區(qū)分遠近景區(qū)域。具體實驗結(jié)果如圖4所示。經(jīng)過對數(shù)復(fù)原的圖像在遠景區(qū)域去霧不徹底,在近景區(qū)域去霧效果較好,保留了豐富的紋理細節(jié);經(jīng)過S型函數(shù)復(fù)原的圖像在遠景區(qū)域去霧徹底,顏色自然,在近景區(qū)域出現(xiàn)了偏色以及失真等問題。利用對數(shù)-S型函數(shù)分區(qū)域處理后的圖像綜合了對數(shù)、S型函數(shù)的優(yōu)點,從視覺效果來看,具體表現(xiàn)為在遠近景處去霧徹底,顏色自然,亮度適宜,保留了豐富的紋理細節(jié)。
圖4 不同函數(shù)對圖像的復(fù)原Fig.4 Recovery of images by different functions
圖5中,a、b為去霧參數(shù),目的是控制去霧程度。為了直觀地說明a、b對去霧程度的影響,選取具有遠近景的有霧圖像進行仿真。實驗結(jié)果如圖5所示,當(dāng)a、b的值不同時,去霧程度也是不同的。當(dāng)a、b的值較小時,去霧不徹底;當(dāng)a、b的值較大時,去霧徹底但出現(xiàn)了失真。因此,對一副圖像取不同的a、b會產(chǎn)生不同的復(fù)原結(jié)果。首先設(shè)置a為定值,b隨一定規(guī)律變化,同樣設(shè)置b為定值,a隨一定規(guī)律變化,根據(jù)視覺效果對比選取去霧效果最佳的參數(shù)。為了提高普適性,進行了大量圖像的仿真測試。結(jié)合新增可見邊e和信息熵s對圖5不同參數(shù)下的恢復(fù)圖像進行評價,當(dāng)a=0.90,b=0.85時,圖5(e)獲得了很好的視覺效果,指標值達到了最大(表1)。所以當(dāng)a=0.90,b=0.85可以獲得最佳的去霧效果。
表1 不同參數(shù)下的圖像恢復(fù)指標Tab.1 Image recovery indicators with different parameters
用Yang算法[18]獲得的大氣光幕恢復(fù)的圖像取得了較好的去霧效果,但整體偏暗,并且遠景去霧不徹底。本文大氣光幕恢復(fù)的圖像色彩自然,亮度適中,去霧徹底。實驗結(jié)果如圖6所示。
圖6 Yang 與本文的大氣光幕以及復(fù)原圖對比Fig.6 Comparison of the atmospheric light veil and the recovery in Yang and ours
在圖像去霧中,大氣光值[5,8,16-20]是關(guān)鍵參數(shù)之一。大氣光的估計會影響去霧圖像的亮度,若估計過高,則恢復(fù)的圖像偏暗;若估計過低,則恢復(fù)的圖像偏亮。He[5]等人算法選取暗通道中排名前0.1%的最亮像素點對應(yīng)的像素均值作為全局大氣光值。該方法易受白色等高亮物體的影響,導(dǎo)致大氣光值估計不準確,去霧效果不理想。為了避免全局大氣光估計誤差帶來的問題,Sun[21]等人提出了一種在場景中局部光源與局部大氣光相同的前提下,從有霧圖像的局部定義大氣光的方案,該方法對有霧圖像最大值通道進行形態(tài)學(xué)操作和濾波處理得到局部大氣光函數(shù),獲得了較好的去霧效果。局部大氣光相較于全局大氣光在低亮度區(qū)域處理更加準確,因此,本文提出了中通道局部大氣光估計方法。提取有霧圖像的最大值通道,如式(13)所示:
其中:MF(·)是中值濾波函數(shù),mid(x)為獲取的中通道。對中通道進行形態(tài)學(xué)閉操作得到A1(x):
其中:imclose(·)表示形態(tài)學(xué)閉操作。為了解決形態(tài)學(xué)閉操作處理后局部過亮問題,對A1(x)進行交叉雙邊濾波處理得到局部大氣光A(x)。本文局部大氣光與Sun局部大氣光對比如圖7所示。對于近景地區(qū)和超遠景天空的退化圖像,本文大氣光估計更加準確。在獲取圖像的大氣光后,結(jié)合大氣光幕,根據(jù)式(1)、(2),清晰圖像的表達式為:
圖7 大氣光對比Fig.7 Atmospheric light comparison
為了驗證本文算法的可行性和有效性,從主觀和客觀兩方面對各算法復(fù)原結(jié)果進行對比。對比算法分別選取He等人[5]提出的暗通道先驗算法、Wang等人[7]提出的線性傳輸算法、Yang等人[8]提出的Haze Removal算法、Qin等人[11]提出的特征融合注意力網(wǎng)絡(luò)算法(Feature Fusion Attention Network,F(xiàn)FA-Net)(訓(xùn)練條件:選擇SOTS數(shù)據(jù)集,運行環(huán)境為Windows 10, PyTorch, NVIDIA GPU+CUDA)和Wu等人[16]提出的自適應(yīng)gamma矯正估計的圖像去霧算法。
主觀分析可以最直觀地反映出恢復(fù)圖像的效果。本文從真實有霧圖像到測試集有霧圖像各方面進行實驗分析。對于真實有霧圖像,選取含天空區(qū)域和不含天空區(qū)域兩類有霧圖像。對于測試集圖像,從RESIDE數(shù)據(jù)集中選取5張室內(nèi)室外有霧圖像。第一類圖像復(fù)原結(jié)果如圖8所示,第二類含有天空區(qū)域的復(fù)原結(jié)果如圖9所示,測試集復(fù)原結(jié)果如圖10所示。從He等人[5]算法可以看到,霧氣基本去除干凈,但在景深突變區(qū)域存在嚴重的光暈效應(yīng)且去霧不夠徹底,天空區(qū)域出現(xiàn)偏色現(xiàn)象且顏色偏暗。Wang等人[7]算法的邊緣保持較好,在很大程度上消除了光暈和偽影,但出現(xiàn)了明顯的去霧不徹底現(xiàn)象和顏色偏暗問題。Wu等人[16]算法的效果較好,但存在去霧不徹底現(xiàn)象且復(fù)原結(jié)果偏亮,因而視覺效果一般。Qin等人[11]的特征融合注意力網(wǎng)絡(luò)算法恢復(fù)的圖像霧氣殘留過多,細節(jié)紋理信息不明顯。Yang等人[8]算法解決了暗通道先驗算法中最小值濾波引入的光暈和偽影問題,利用一種冪律壓縮函數(shù)求取有霧圖像的暗通道圖,較好地消除了光暈偽影,但存在輕微的去霧不徹底現(xiàn)象,去霧效果相對較好。本文算法能夠徹底去霧,恢復(fù)的圖像亮度清晰,色彩自然。與其他幾種算法相比,本文算法抑制了光暈效應(yīng)及塊狀偽影的產(chǎn)生,同時能恢復(fù)出較多細節(jié)紋理信息,天空區(qū)域保持相對較好,沒有出現(xiàn)顏色失真現(xiàn)象。如圖10所示,在測試集的對比圖中,很明顯可以看出本文算法同樣具有很好的復(fù)原效果。其中He等人[5]算法、Wang等人[7]算法、Qin等人[11]算法在天空區(qū)域出現(xiàn)了不同程度的失真、光暈、顏色偏暗和過飽和現(xiàn)象。Yang等人[8]算法有輕微的去霧不徹底現(xiàn)象。Wu等人[16]算法具有相對較好的效果,但也存在去霧不徹底現(xiàn)象,明顯不及本文算法。本文算法在細節(jié)、顏色、亮度上取得了很好的效果。
圖8 不含天空區(qū)域霧圖復(fù)原效果對比Fig.8 Comparison of haze images restoration without sky area
圖9 含天空區(qū)域霧圖復(fù)原效果對比Fig.9 Comparison of haze images restoration with sky area
圖10 合成霧圖復(fù)原效果對比Fig.10 Comparison of composite haze images restoration
為了進一步驗證算法的可行性和有效性,本文從定量指標的角度對各算法進行對比。對于真實環(huán)境下的有霧圖像采用無參考圖像質(zhì)量評價指標[22-24],選擇新增可見邊e、平均梯度r、信息熵s和運行時間t作為評價指標。對于指標e、r、s;值越大越好;對于t,值越小越好。對于測試集復(fù)原的圖像采用峰值信噪比(Peak Signal to Noise Ratio, PSNR)和結(jié)構(gòu)相似性(Structural Similarity, SSIM)作為評價指標,PSNR和SSIM的值越大越好。這些指標的數(shù)學(xué)表達式分別如式(12)~(21)所示:
其中:n0為有霧圖像的可見邊數(shù);nr為復(fù)原圖像的可見邊數(shù);ri表示pi處復(fù)原圖像與原有霧圖像的平均梯度比;φr為復(fù)原圖像的可見邊集合。
其中:M和N分別表示圖像的寬和高,L表示圖像的最高灰度級,Hw表示灰度級為w的像素的個數(shù)。
式中:fmax為最大像素值,通常取255;MSE為原有霧圖像與復(fù)原圖像的均方誤差;SSSIM為結(jié)構(gòu)相似性;PPSNR為峰值信噪比;μi和μ0分別為有霧圖像和清晰圖像的均值;σ1和σ2分別為有霧圖像和清晰圖像的協(xié)方差;w1和w2分別為避免分母為0的常數(shù)。本文對圖8、圖9的10幅真實有霧圖像和圖10測試集下的5幅有霧圖像進行客觀指標的計算對比,如表2、表3所示??梢钥闯霰疚乃惴ㄔ谛略隹梢娺叀⑵骄荻?、信息熵和運行時間幾個方面都取得了較好的效果,尤其在平均梯度和信息熵指標上優(yōu)勢明顯,并且運行時間優(yōu)于其他算法。在表4中,測試集下本文復(fù)原的圖像的峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)均有一定的優(yōu)勢,指標不及Qin算法,是因為Qin算法的去霧網(wǎng)絡(luò)過擬合,在真實有霧圖像上基本不去霧,這也是該網(wǎng)絡(luò)需要優(yōu)化的問題。所以無論是真實有霧圖像的復(fù)原還是測試集下圖像的復(fù)原,本文算法都取得了很好的去霧效果。
表2 客觀評價指標e和rTab.2 Objective evaluation on index e and r
表3 客觀評價指標s和tTab.3 Objective evaluation on index s and t
表4 數(shù)據(jù)集評測指標Tab.4 Indictors of dataset
針對現(xiàn)有霧天圖像清晰化方法存在的光暈、偽影、去霧不徹底等問題,本文提出一種基于對數(shù)-S型函數(shù)分段估計的快速去霧算法。利用像素均值區(qū)分遠近景區(qū)域,將最小通道值通過對數(shù)-S型函數(shù)擬合大氣光幕,然后結(jié)合本文提出的的中通道局部大氣光的估計方法,利用大氣散射模型恢復(fù)無霧圖像。通過實驗發(fā)現(xiàn),本文算法對真實有霧圖像和測試集下的圖像均有很好的去霧效果,復(fù)原圖像的新增可見邊、平均梯度、信息熵分別提升了17.4%、50.5%、30%,運行時間比傳統(tǒng)快速去霧算法降低了17.5%,解決了存在的光暈、偽影、去霧不徹底問題且快速有效。