黃小芬,林麗群
(1.福建師范大學(xué)協(xié)和學(xué)院 信息技術(shù)系,福建 福州 350117;2.福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350117)
戶(hù)外圖像會(huì)受到諸如霧、煙、霾等不利天氣條件的影響,這些煙霧是由可識(shí)別性減弱的氣溶膠造成的[1],而這些氣溶膠會(huì)導(dǎo)致顏色變化、圖像退化和場(chǎng)景變暗等。因此,圖像去霧受到國(guó)內(nèi)外大批研究者關(guān)注,近幾年已成為多學(xué)科交叉領(lǐng)域的研究熱點(diǎn)[2]。
近年來(lái),各種針對(duì)圖像去霧的研究算法主要集中在透射率和大氣光的計(jì)算復(fù)雜度和準(zhǔn)確度上,主要分為單圖像去霧和多圖像去霧。Shen等[3]和夏璞等[4]提出利用偏振迭代和偏振差異的多幅圖像去霧方法,由于難以獲得特定圖像場(chǎng)景的所有所需數(shù)據(jù),這些算法的實(shí)用性受到限制。而單幅圖像的去霧算法發(fā)展迅速,例如Meng等[5]將傳輸函數(shù)的固有邊界約束與基于L1范數(shù)的加權(quán)上下文正則化相結(jié)合進(jìn)行去霧,獲得了高質(zhì)量的去霧圖像,但該方法處理速度比較慢。Chaudhry等[6]提出混合中值濾波和加速局部拉普拉斯濾波的方法實(shí)現(xiàn)圖像去霧,然而去霧結(jié)果存在光暈效應(yīng)。肖進(jìn)勝等[7]提出了一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)的基于霾層學(xué)習(xí)的單幅圖像去霧算法,獲得較優(yōu)的圖像去霧性能,但處理時(shí)間耗時(shí)較多。梁毓明等[8]和邢小敏等[9]提出了利用生成對(duì)抗網(wǎng)絡(luò)實(shí)現(xiàn)圖像去霧的方法,無(wú)需估計(jì)透射率和大氣光值,能夠直接捕獲霧霾圖像中的有用信息,去霧圖像效果較好,但基于學(xué)習(xí)的方法訓(xùn)練過(guò)程復(fù)雜,參數(shù)過(guò)于依賴(lài)訓(xùn)練數(shù)據(jù)。He等[10]在其暗通道先驗(yàn)(dark channel prior,DCP)理論基礎(chǔ)上,提出用導(dǎo)向?yàn)V波代替軟摳圖方法對(duì)透射率進(jìn)行優(yōu)化,提高了去霧效率,然而處理后依然存在去霧不徹底、處理速度慢等問(wèn)題。針對(duì)He等方法的不足,劉國(guó)等[11]提出在暗原色的獲取過(guò)程中引入自適應(yīng)閾值,提高了透射率的準(zhǔn)確度,但運(yùn)行效率還是比較低。韓昊男等[12]提出基于四叉樹(shù)細(xì)分的改進(jìn)大氣光估計(jì)及加入自適應(yīng)權(quán)重因子的改進(jìn)引導(dǎo)濾波優(yōu)化透射率方法,減少了光暈效應(yīng),但存在顏色矯枉過(guò)正的問(wèn)題。Jackson等[13]提出利用瑞利散射,建立散射系數(shù)模型來(lái)估計(jì)初始透射率圖,并用導(dǎo)向?yàn)V波優(yōu)化透射率圖的去霧方法,提高了運(yùn)算速度,但圖像去霧不夠徹底。
針對(duì)上述問(wèn)題,本文結(jié)合暗通道先驗(yàn)和瑞利散射理論,并用線(xiàn)性高斯濾波器對(duì)透射率進(jìn)行模糊處理,提出一種更直接快速的單一圖像去霧方法。最后,驗(yàn)證了所提算法在去霧性能和計(jì)算速度上的有效性。
在計(jì)算機(jī)視覺(jué)領(lǐng)域,大氣散射模型由兩個(gè)組成部分:①?gòu)膱?chǎng)景反射到相機(jī)的光源的直接衰減;②到達(dá)相機(jī)的散射光量。它的數(shù)學(xué)描述被廣泛使用[14,15]
I(x)=J(x)t(x)+A[1-t(x)]
(1)
式中:I(x)是待處理的原始霧圖強(qiáng)度;A為全球大氣光;J(x)是待恢復(fù)的無(wú)霧圖像;t(x)為透射率,它是0到1之間的值,當(dāng)t(x)=1時(shí),表示一個(gè)非常接近的場(chǎng)景,沒(méi)有任何從場(chǎng)景反射回來(lái)的光被任何大氣粒子散射,因此所有入射光都到達(dá)了相機(jī),入射光不散射,當(dāng)t(x)=0時(shí)代表一個(gè)對(duì)象離我們很遙遠(yuǎn),沒(méi)有入射光到達(dá)相機(jī),而是被物體和相機(jī)之間的大氣粒子全部散射掉。通過(guò)計(jì)算透射率t(x)和大氣光A,就可以恢復(fù)場(chǎng)景圖像。
暗通道先驗(yàn)(DCP)是對(duì)無(wú)霧圖像屬性的一種經(jīng)驗(yàn)觀(guān)察,在絕大多數(shù)非天空的局部區(qū)域總會(huì)有至少一個(gè)顏色通道具有很低的值,并且趨近于0。根據(jù)這些統(tǒng)計(jì)數(shù)據(jù),暗通道用公式表示為
(2)
式中:J(x)為晴天無(wú)霧圖像;Jdark(x)為晴天無(wú)霧圖像的暗通道值;Ω(x)是以像素點(diǎn)x為中心的一塊方形區(qū)域。
暗通道先驗(yàn)去霧方法是圖像去霧領(lǐng)域的一個(gè)重要突破,為圖像去霧的研究人員提供了一個(gè)新思路。
當(dāng)大氣中粒子尺度遠(yuǎn)小于入射光波長(zhǎng)時(shí),就會(huì)發(fā)生瑞利散射。散射主要是由于氧和氮分子[13]的存在,這些分子吸收光并以任意方式將其重新傳輸。不同波長(zhǎng)的光以不同的顏色表示,從光譜的紫色端400納米到紅色端700納米,中間是橙色、黃色、綠色、藍(lán)色和靛藍(lán)色。在光譜中,藍(lán)光比紅光有更高的頻率和更短的波長(zhǎng)。大氣粒子將入射光散射到一個(gè)特定的方向,瑞利散射模型用數(shù)學(xué)方法表示為
I=I0S(λ,θ,d)
(3)
S(λ,θ,d)為光的散射量,表示為
(4)
式中:λ為入射光角度為θ的波長(zhǎng);n和N分別是空氣的折射率和大氣密度。由式(4)可知散射光的強(qiáng)度與光波長(zhǎng)的四次方成反比。因此,當(dāng)可見(jiàn)光譜上的所有顏色光通過(guò)空氣時(shí),藍(lán)光比綠光和紅光更容易散射,這也正是天氣晴朗時(shí),天空呈現(xiàn)藍(lán)色的原因。本文根據(jù)瑞利散射光譜的這個(gè)特點(diǎn)來(lái)估算大氣光A。
為了解決傳統(tǒng)去霧方法去霧速度慢、色彩失真、去霧不徹底等問(wèn)題,本文提出一種結(jié)合暗通道先驗(yàn)和瑞利散射理論的單幅圖像快速去霧的改進(jìn)算法。算法流程如圖1所示。
圖1 去霧方法流程
其步驟可總結(jié)如下:
(1)基于瑞利散射的改進(jìn)大氣光A估算;
(2)求暗通道,計(jì)算初始透射率t1(x)并進(jìn)行高斯濾波模糊處理,快速得到最終的透射率t(x);
(3)由大氣散射模型恢復(fù)無(wú)霧圖像。
大氣光值是圖像去霧的一個(gè)重要參數(shù),計(jì)算量大或誤差大將導(dǎo)致整幅圖像的去霧性能下降。傳統(tǒng)的去霧算法通過(guò)選擇最大的像素來(lái)估計(jì)A。然而,這種方法對(duì)明亮的物體場(chǎng)景(如白色的汽車(chē)和建筑)的大氣光估算不準(zhǔn)確。He等先選取暗通道中亮度最大的0.1%像素,將輸入圖像I對(duì)應(yīng)位置中強(qiáng)度最高的像素作為大氣光A,這種方法在真實(shí)圖像出現(xiàn)白色表面物體時(shí)會(huì)使A的估計(jì)失真。因此,為了準(zhǔn)確估計(jì)像素的亮度表示霾密度,利用瑞利散射理論,藍(lán)光比其它顏色的光更容易散射這個(gè)特點(diǎn),對(duì)霧化圖像的RGB三顏色通道的B(藍(lán)色)通道取最大值,而另外兩個(gè)通道R(紅色)和G(綠色)分別取最小值。由此提出一種改進(jìn)大氣光計(jì)算方法,將最亮的和最暗的像素都納入計(jì)算。主要步驟如下:
(1)根據(jù)瑞利散射,式(4)藍(lán)色光在RGB圖像中散射最多。在該算法中,為了綜合考慮不同景深的圖像部分,從輸入圖像的藍(lán)色通道中按列選取強(qiáng)度最高的像素序列并取序列數(shù)據(jù)的平均值得到A1用以消除光暈效應(yīng),A1表述如下
A1=avg(max(IB列向))
(5)
式中:A1為霧圖藍(lán)色通道的平均最大值,IB是霧圖的藍(lán)色通道值。
(2)計(jì)算紅色和綠色通道中最低像素的平均值得A2,進(jìn)一步消除A1后不必要的紋理信息
A2=avg(min(IG)+min(IR))
(6)
式中:IG為霧圖的綠色通道值,IR為霧圖的紅色通道值,A2為最暗綠色通道和最暗紅色通道的平均值。
(3)計(jì)算A1與A2的和來(lái)估算大氣光A
A=A1+A2
(7)
由上節(jié)已求得的大氣光A,將式(1)變形為
(8)
式中:上標(biāo)c代表R、G、B這3個(gè)顏色通道。假設(shè)在每一個(gè)圖像中透射率t(x)是一個(gè)常數(shù),定義為t1(x)并且大氣光A值已經(jīng)確定,對(duì)式(8)左右兩邊同時(shí)取2次最小值,得
1-t1(x)
(9)
根據(jù)前述的暗通道先驗(yàn)(DCP)理論,可將式(2)轉(zhuǎn)換為
(10)
將式(10)代入式(9),得到透射率的初始估計(jì)值
(11)
在現(xiàn)實(shí)生活中,即使是晴天白云,空氣中也存在著一些顆粒,另外,霧的存在讓人類(lèi)感受到景深的存在,如果整幅圖像都徹底去霧會(huì)使圖像看起來(lái)不真實(shí)。因此,為了使去霧之后的圖像有層次感,視覺(jué)效果更好,根據(jù)經(jīng)驗(yàn),在式(11)中添加一個(gè)系數(shù)ω=0.95,讓圖像在景深處保留有極少量的霧,則式(11)被修正為
(12)
上節(jié)中獲得的透射率是像素級(jí)的,該值受自身灰度影響較大??紤]到透射率在一定范圍內(nèi)變化緩慢,為了使初始透射率圖像整體變化平滑,避免相鄰像素之間的灰度跳變,以提高其視覺(jué)效果,本文采用高斯濾波器對(duì)其進(jìn)行模糊平滑處理,移除最終圖像的假紋理和光暈效應(yīng)。
高斯濾波是以某一像素為中心,在它的周?chē)x擇一個(gè)局部區(qū)域,把鄰域內(nèi)像素的灰度按照高斯正態(tài)分布曲線(xiàn)分配相應(yīng)的權(quán)值系數(shù),然后將鄰域內(nèi)所有點(diǎn)的加權(quán)平均值代替原來(lái)的像素值,其具有各向同性和均勻特性。如二維模板大小為m×n,則模板上的元素(x,y)對(duì)應(yīng)的高斯計(jì)算公式為
(13)
式中:σ是正態(tài)分布的標(biāo)準(zhǔn)差,σ值越大,表示處理后的圖像越模糊。該公式生成的曲面的等高線(xiàn)是從中心開(kāi)始呈正態(tài)分布的同心圓,其權(quán)重分布如圖2所示。
圖2 高斯模糊權(quán)重分布
初始透射率的模糊優(yōu)化處理是將初始透射率t1(x)與高斯濾波器G(x)進(jìn)行卷積運(yùn)算,得到模糊后的透射率t(x),用公式表示為
t(x)=t1(x)*G(x)
(14)
式中:*表示卷積。每個(gè)像素的值都是它周邊鄰域內(nèi)像素的加權(quán)平均,原始像素的值與其關(guān)系最緊密,所以權(quán)重最高,相鄰像素隨著與原始像素距離的疏遠(yuǎn),其權(quán)重也越來(lái)越低。這種高斯權(quán)重的模糊處理方法比其它的均值濾波更好地保留了邊緣。另外,利用高斯函數(shù)運(yùn)算的可分離性,一個(gè)二維高斯濾波卷積可以由兩個(gè)一維高斯濾波卷積來(lái)實(shí)現(xiàn),具體步驟為:①圖像與一維高斯函數(shù)卷積;②將卷積結(jié)果與方向垂直的相同一維高斯函數(shù)卷積。利用2維高斯濾波運(yùn)算的可分離性計(jì)算方法,使其計(jì)算量是一種線(xiàn)性增長(zhǎng)而不是平方增長(zhǎng),大大降低了初始透射率圖的模糊優(yōu)化計(jì)算的計(jì)算量,加快了運(yùn)算速度。
待處理的原始霧圖及其初始透射率圖像如圖3所示,由圖可見(jiàn),初始透射率圖像比較粗糙,存在明顯的塊效應(yīng)和少量光暈。同時(shí)由于在大氣光計(jì)算時(shí)以藍(lán)色通道的最亮均值為主要組成部分,該方法消除了白色物體產(chǎn)生的椒鹽噪聲,提高了透射率t(x)的準(zhǔn)確性。對(duì)初始透射率圖像進(jìn)行高斯濾波模糊處理,處理后的透射率圖像及其恢復(fù)結(jié)果如圖4所示,He等[10]方法的引導(dǎo)濾波優(yōu)化透射圖及其復(fù)原結(jié)果如圖5所示。
圖3 霧圖及其初始透射率
圖4 高斯模糊透射率及其恢復(fù)
圖5 引導(dǎo)濾波優(yōu)化透射率及其恢復(fù)
從圖3~圖5可以看出,經(jīng)過(guò)本文的高斯濾波優(yōu)化后,使得透射率圖像在邊界處灰度值過(guò)渡平緩,整體變得更加平滑、細(xì)膩,同時(shí)消除了塊效應(yīng)。He等[10]的引導(dǎo)濾波優(yōu)化方法在景深處的透射率圖像黯淡不清,平滑度也不及本文高斯濾波優(yōu)化后的透射率圖像,由此去霧后的圖像整體較暗,去霧不徹底且有些許顏色失真。本文方法得到的去霧圖像清晰度和色澤度均更佳。
計(jì)算出大氣光A和透射率t(x),利用式(1)就可以恢復(fù)出圖像J(x)。當(dāng)透射率t(x)很小,接近于零時(shí),直接導(dǎo)致J(x)偏大。因此,設(shè)置一個(gè)透射率下界t0,通常取值0.1,以使最終圖像更接近原圖像。此外,霧天成像受環(huán)境和光照的影響,部分圖像本身亮度偏低,經(jīng)復(fù)原后整體偏暗,本文利用一個(gè)亮度提升因子a,用以提高復(fù)原圖像的亮度。最終復(fù)原函數(shù)J(x)表示為
(15)
經(jīng)大量實(shí)驗(yàn)發(fā)現(xiàn),亮度提升因子a的取值在1.3~2.0之間效果更好。
本節(jié)在同樣的硬件和Matlab軟件環(huán)境下,對(duì)選自去霧領(lǐng)域文獻(xiàn)中使用的經(jīng)典測(cè)試圖進(jìn)行實(shí)驗(yàn),從主觀(guān)和客觀(guān)兩方面評(píng)估本文去霧方法的有效性。
實(shí)驗(yàn)中針對(duì)多幅圖像,與去霧效果較好的其中4種去霧技術(shù),包括文獻(xiàn)[10]He等的暗通道先驗(yàn)引導(dǎo)濾波方法、文獻(xiàn)[5]Meng等的結(jié)合邊界約束和L1范數(shù)的正則化方法、文獻(xiàn)[6]Chaudhry等的混合中值濾波和拉普拉斯濾波方法以及文獻(xiàn)[13]Jackson等的瑞利散射引導(dǎo)濾波方法進(jìn)行對(duì)比分析。對(duì)比結(jié)果如圖6和圖7所示。
從圖6可以看出,幾種方法去霧后,整體的能見(jiàn)度和對(duì)比度都有極大改善。從圖6的上圖可以看出,Meng等方法和Chaudhry等方法的去霧視覺(jué)效果相對(duì)較好,He等方法在草地和樹(shù)干的部分顏色偏暗,紋理有缺失,已經(jīng)分辨不出樹(shù)干上部和下部的差異,左前方的綠草地顏色也產(chǎn)生失真;圖6下圖中,He等方法和Chaudhry等方法在幾種方法里總體視覺(jué)感受上取得最好的效果,Meng等方法去霧后顏色有些許失真。本文方法在上圖的樹(shù)干部分出現(xiàn)了模糊的偽影,下圖的遠(yuǎn)景部分去霧不徹底,但在近景圖像的清晰度和色彩的自然度上效果最好。
圖6 不同去霧方法結(jié)果對(duì)比
為了進(jìn)一步驗(yàn)證本文所提算法性能的優(yōu)勢(shì),圖7將Chaudhry等方法換成Jackson等方法[13]繼續(xù)對(duì)比。He等方法對(duì)薄霧圖像處理效果較好,而對(duì)景深突變區(qū)域的去霧不夠徹底。Meng等方法去霧較徹底,圖像清晰度較好,但該算法好的去霧效果是以犧牲色彩保真度為代價(jià)換取的,如實(shí)例2去霧后圖像色彩產(chǎn)生較大失真,另外兩幅圖像去霧后圖像的色彩不夠飽滿(mǎn)。文獻(xiàn)[13]Jackson方法中3幅圖去霧總體視覺(jué)效果較好,但是顏色偏暗一點(diǎn)。本文方法在圖像天空、河流區(qū)域及實(shí)例1最前方的小土丘部分的去霧效果在色彩上欠佳,其它部分去霧效果相比其它方法,層次感更強(qiáng),景物更清晰。綜上所述,本文方法在局部小區(qū)域產(chǎn)生了去霧色彩失真,但絕大部分去霧圖像區(qū)域的清晰度、紋理及層次感都有極大的改善。
圖7 不同去霧方法結(jié)果對(duì)比
(16)
(17)
(18)
其中,nr和n0分別表示無(wú)霧圖像和有霧圖像中可見(jiàn)邊數(shù)目的集合;ri表示pi處的Sobel梯度與原圖像在此處的Sobel梯度的比值;ψr表示無(wú)霧圖像的可見(jiàn)邊集合;ns為飽和黑色和白色像素點(diǎn)的數(shù)目;dimx和dimy分別為圖像的寬和高。
表1 各種算法客觀(guān)指標(biāo)對(duì)比
為了進(jìn)一步驗(yàn)證本文方法在處理速度上的優(yōu)勢(shì),本節(jié)給出了計(jì)算時(shí)間的比較如表2和圖8所示,對(duì)上節(jié)給出算法與本文方法進(jìn)行運(yùn)行時(shí)間對(duì)比實(shí)驗(yàn)。DCP所采用的窗口大小為7×7。程序代碼從讀入圖像開(kāi)始,到恢復(fù)出無(wú)霧圖像并顯示整個(gè)過(guò)程進(jìn)行計(jì)時(shí),并記錄多次、多幅圖像的運(yùn)行時(shí)間,再求運(yùn)行時(shí)間均值。表2和圖8表明,本文所提方法運(yùn)行時(shí)間遠(yuǎn)低于其它方法,在圖像分辨率為800×600時(shí),本文運(yùn)行時(shí)間為文獻(xiàn)[10]He等方法的11.6%,是文獻(xiàn)[13]Jackson等方法的9.4%。并且本文方法運(yùn)行時(shí)間曲線(xiàn)最平坦,增長(zhǎng)速度最慢,隨著圖像尺寸的增大去霧運(yùn)行效率的優(yōu)勢(shì)越明顯。這主要是因?yàn)楸疚膶低ǖ老闰?yàn)理論與瑞利散射理論融合,準(zhǔn)確估算了大氣光值A(chǔ),且用運(yùn)算量隨圖像寬度線(xiàn)性變化的高斯濾波器代替引導(dǎo)濾波對(duì)初始透射率圖進(jìn)行模糊平滑處理,從而既保證了去霧效果又大幅度提高了計(jì)算速度。綜上所述,本文方法具有很高的運(yùn)行效率。
表2 時(shí)間消耗比較/s
圖8 不同去霧算法運(yùn)行時(shí)間變化曲線(xiàn)對(duì)比
本文在暗通道先驗(yàn)理論的基礎(chǔ)上提出利用瑞利散射理論改進(jìn)大氣光的計(jì)算方法,通過(guò)對(duì)3個(gè)顏色通道的最大、最小平均值求和的方法提高了大氣光的計(jì)算準(zhǔn)確度。并將線(xiàn)性高斯濾波器用于初始透射率的優(yōu)化中,提高了去霧的質(zhì)量并具有良好的計(jì)算速度。最后,通過(guò)與其它傳統(tǒng)算法定性和時(shí)間運(yùn)行復(fù)雜度的比較,表明本文方法具有很高的運(yùn)行效率。然而,本文方法仍然有一些不足:①在去霧圖像中存在少量的偽影;②需要對(duì)透射率圖進(jìn)一步優(yōu)化,以提高去霧圖像的整體質(zhì)量。這些將作為下一階段的努力方向。