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