火元蓮,張喬森,張金石,范宏棟
(1.西北師范大學(xué)物理與電子工程學(xué)院,甘肅 蘭州 730070;2.甘肅省智能信息技術(shù)與應(yīng)用工程研究中心,甘肅 蘭州 730070)
近年來,由于第二產(chǎn)業(yè)的穩(wěn)步發(fā)展,污染物的排放量逐年增多,空氣中的水蒸氣與污染物結(jié)合所形成的霧霾[1,2]影響了人們的正常生活,造成了巨大的社會經(jīng)濟(jì)損失。霧霾也會使戶外環(huán)境中圖像采集設(shè)備的成像質(zhì)量下降,所以圖像去霧算法研究成為了人臉識別、目標(biāo)跟蹤[3]以及視頻監(jiān)控等應(yīng)用的熱點(diǎn)問題之一,具有重要的現(xiàn)實(shí)意義和應(yīng)用價值。
目前圖像去霧方法主要分為基于圖像增強(qiáng)、基于圖像復(fù)原和基于深度學(xué)習(xí)的方法?;谏疃葘W(xué)習(xí)的方法大都以卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)構(gòu)造去霧模型[4,5],這類方法去霧效果較好,但數(shù)據(jù)量龐大,成本較高。基于圖像增強(qiáng)的去霧方法,主要目的是對圖像對比度進(jìn)行拉伸,對圖像像素灰度值進(jìn)行改變,從而改善視覺效果,主要有直方圖均衡[6]、同態(tài)濾波[7]、小波變換[8]以及Retinex[9,10]等。直方圖均衡是把圖像直方圖中灰度級分布較窄的區(qū)域拉伸到全局范圍內(nèi)來改善視覺效果。同態(tài)濾波是對霧圖進(jìn)行對數(shù)變換和高通濾波處理,以獲取圖像的高頻分量,達(dá)到抑制低頻分量、增強(qiáng)圖像細(xì)節(jié)的目的。小波變換是利用小波分解形成不同尺度圖像的分布特征,實(shí)現(xiàn)圖像的細(xì)節(jié)增強(qiáng)。Retinex主要是分離出圖像的反射分量,實(shí)現(xiàn)對比度拉伸,從而使圖像質(zhì)量恢復(fù)。但是,此類傳統(tǒng)方法由于沒有考慮霧圖的形成原因,處理后的圖像中容易產(chǎn)生色彩過飽和、細(xì)節(jié)丟失以及引入了更多噪聲的問題。而基于圖像復(fù)原的方法從霧圖形成的原因出發(fā),結(jié)合大氣散射模型,從輸入霧圖中反推導(dǎo)出無霧的圖像[11],針對性更強(qiáng)。由于大氣散射模型涉及到透射率以及大氣光的求解,使得基于概率統(tǒng)計獲取無霧圖像先驗(yàn)信息的方法成為了該類方法處理圖像去霧問題的主要手段。He等人[12]在統(tǒng)計大量清晰圖像后發(fā)現(xiàn)暗通道的統(tǒng)計規(guī)律,直接對單幅圖像進(jìn)行透射率的求解,簡化了大氣散射模型,對部分霧圖有著較好的去霧效果,但在景深突變區(qū)域容易產(chǎn)生光暈現(xiàn)象并且在天空區(qū)域不滿足暗通道規(guī)律。Zhu等人[13]統(tǒng)計大量霧圖發(fā)現(xiàn),隨著場景深度的增加,圖像的亮度和飽和度之間的差值與場景深度成正比,因此對深度信息建模,用監(jiān)督學(xué)習(xí)方法學(xué)習(xí)模型中參數(shù),求得深度圖,再通過大氣散射模型估計得到透射圖,恢復(fù)出清晰圖像。融合亮度和暗通道先驗(yàn)的圖像去霧算法[14]考慮到暗通道先驗(yàn)對天空區(qū)域不適應(yīng),通過觀察霧圖發(fā)現(xiàn)隨著場景深度的增加,亮度與場景深度成正比,所以用亮度來代替景深,基于亮度模型來估計天空區(qū)域透射率,對前景區(qū)域透射率用暗通道來估計,再將2種透射率進(jìn)行加權(quán)融合,最后恢復(fù)出清晰圖像。融合暗通道先驗(yàn)和顏色衰減先驗(yàn)的圖像去霧算法[15]是用顏色衰減先驗(yàn)估計天空透射率,用暗通道先驗(yàn)估計前景透射率,用均值濾波方法對分割邊緣處的透射率做平滑處理,并以分段函數(shù)的形式表示最終的透射率。但是,使用均值濾波法的平滑處理效果不佳而且融合后的透射率不精確,使得最終恢復(fù)出的圖像色彩不自然,尤其是邊緣處易出現(xiàn)色彩失真。
針對上述融合算法存在過渡區(qū)域平滑不佳以及透射率估計不精確等問題,本文提出了一種用Sigmoid函數(shù)進(jìn)行加權(quán)融合的圖像去霧算法。首先用Canny算子來檢測邊緣,并根據(jù)邊緣密度進(jìn)行天空區(qū)域的分割;然后在天空區(qū)域采用顏色衰減先驗(yàn)來估計透射率,而在前景區(qū)域使用暗通道先驗(yàn)估計透射率;接著將Sigmoid函數(shù)作為透射率權(quán)重,對估計出的2個區(qū)域的透射率進(jìn)行加權(quán)融合,以使邊緣過渡更加平滑;同時考慮到不同的波長對應(yīng)的衰減常數(shù)不同,在R、G、B共3個通道上分別選取不同的衰減數(shù)值,以進(jìn)一步提高圖像恢復(fù)的質(zhì)量;在大氣光估計上,本文將亮度值排在天空部分前0.1%的中值對應(yīng)像素點(diǎn)作為大氣光值的估計值,中值對噪聲的魯棒性較強(qiáng),可使恢復(fù)的圖像更加自然。最后用大氣散射模型恢復(fù)出清晰圖像。理論分析以及實(shí)驗(yàn)結(jié)果表明,本文算法很好地解決了恢復(fù)圖像色彩不自然以及邊緣處的色彩失真等問題,有更好的去霧效果,同時保證了算法的實(shí)效性。
目前,廣泛采用的大氣散射模型[16]的定義如式(1)所示:
I(x)=J(x)t(x)+A·[1-t(x)]
(1)
其中,I(x)表示含霧降質(zhì)圖像中像素x的像素值,J(x)表示原始無霧圖像中像素x的像素值,t(x)表示透射率,A表示估計的大氣光值。公式右邊第1項(xiàng)代表場景輻射光的直接衰減,第2項(xiàng)代表背景光的疊加,二者導(dǎo)致了清晰圖像質(zhì)量的退化。透射率t(x)的定義如式(2)所示:
t(x)=e-β(x)d(x)
(2)
其中,β(x)表示大氣散射系數(shù),d(x)表示場景深度。
暗通道先驗(yàn)[12]表明在清晰圖像的很多局部區(qū)域,至少在一個顏色通道上某些像素處具有非常低的強(qiáng)度值,即清晰圖像的暗通道值接近零。其定義如式(3)所示:
(3)
其中,Jdark是J的暗通道圖像,c∈{r,g,b}是3顏色通道,Ω(x)是以像素x為中心的局部區(qū)域,Jc(y)表示在Ω(x)區(qū)域中的某個像素通道上的值。對式(1)兩邊進(jìn)行三顏色通道上的最小值濾波,可得式(4):
(4)
把式(3)代入式(4)可得:
(5)
該方法對于不含天空區(qū)域的霧圖有較好的去霧效果,但大部分質(zhì)量退化的戶外圖像都是含有天空區(qū)域的,由于天空區(qū)域以及高亮度區(qū)域不滿足暗通道先驗(yàn),對這些區(qū)域估計得到的透射率誤差比較大,所以恢復(fù)出來的圖像很容易產(chǎn)生失真,恢復(fù)效果不佳。
顏色衰減先驗(yàn)[13]表明:圖像的場景深度和亮度、飽和度之間存在線性關(guān)系。通過觀察霧圖發(fā)現(xiàn),近景中亮度與飽和度之間幾乎無差值,隨著場景深度的增大,霧濃度越來越高,亮度與飽和度的差值也越來越大,也就是說,亮度和飽和度的差值與場景深度是呈正相關(guān)的。其表達(dá)式如式(6)所示:
d(x)=θ0+θ1V(x)+θ2S(x)+ε(x)
(6)
其中,V(x)為像素x處的亮度,S(x)為像素x處的飽和度,θ0、θ1、θ2為系數(shù),ε(x)是隨機(jī)誤差系數(shù),取值分別為θ0=0.121779,θ1=0.959710,θ2=-0.780245,ε(x)=0.041337。顯然,獲得有霧圖像的亮度值和飽和度值之后,即可求得景深值。
本文算法的流程如圖1所示。首先進(jìn)行天空區(qū)域的分割;然后分別估計出天空區(qū)域和非天空區(qū)域的透射率,并用Sigmoid函數(shù)進(jìn)行加權(quán)融合,同時將亮度值在天空部分前0.1%的中值對應(yīng)像素點(diǎn)的像素值作為大氣光值的估計;最后通過大氣散射模型恢復(fù)出清晰圖像。
Figure 1 Flow chart of the algorithm in this paper
大部分戶外圖像都是含有天空區(qū)域的,由于暗通道先驗(yàn)對天空區(qū)域估計的透射率不準(zhǔn)確,導(dǎo)致在天空區(qū)域容易產(chǎn)生失真,恢復(fù)效果不佳,本文通過顏色衰減先驗(yàn)來彌補(bǔ)暗通道先驗(yàn)在天空區(qū)域表現(xiàn)出來的不足。首先用Canny算子檢測出霧圖的邊緣,然后通過判斷邊緣密度的大小來區(qū)分天空與非天空區(qū)域。根據(jù)天空區(qū)域邊緣較少、邊緣密度小且相對均勻,又位于圖像的上方等這些特點(diǎn),采用一個47×47的小窗口卷積圖像的整個邊緣并通過自適應(yīng)閾值來區(qū)分該區(qū)域是否為天空,最后選擇邊緣密度小的最大連通區(qū)域作為天空區(qū)域。天空區(qū)域分割效果如圖2所示。
Figure 2 Segmentation map of sky area
由式(2)可知,大氣散射模型中透射率的求解不僅與場景深度有關(guān)系,而且與大氣散射系數(shù)β也有密切的關(guān)系,β取值一般默認(rèn)為1。但事實(shí)上由于圖像中每個像素都是由R、G、B共3個通道組成,大氣粒子會對不同的光發(fā)生不同的散射(此處主要是米氏散射)效果,直接將β默認(rèn)為1,顯然對透射率的估計不準(zhǔn)確,進(jìn)而導(dǎo)致恢復(fù)的圖像質(zhì)量不好??紤]到散射系數(shù)主要由霧濃度、目標(biāo)離攝像頭距離和相機(jī)角度決定,而60°的相機(jī)角度足以拍攝含天空區(qū)域的圖像,所以為了使得透射率的估計更準(zhǔn)確,本文使用米氏散射模型[17]中60°角相機(jī)對應(yīng)的散射系數(shù),其定義如式(7)所示:
(7)
其中λ為波長。
圖3所示為β=1以及β按式(7)取值時獲得的透射圖和恢復(fù)圖的對比結(jié)果。從圖3中可以看出,β=1時,透射圖的天空區(qū)域非常暗,而恢復(fù)圖像也是整體顏色偏暗,不自然。當(dāng)β按式(7)取值時,明顯緩解了去霧后圖像整體顏色偏暗的現(xiàn)象。
Figure 3 Comparison of experiment results with different β values
3.3.1 Sigmoid函數(shù)應(yīng)用
由于突變區(qū)域的場景深度跨度較大,在此處不能實(shí)現(xiàn)透射率的準(zhǔn)確估計,導(dǎo)致圖像在突變區(qū)域過渡不平滑。若將Sigmoid函數(shù)作為透射率權(quán)重,既能節(jié)省算法運(yùn)行時間又能使天空區(qū)域和前景區(qū)域的邊緣過渡更加平滑。這是因?yàn)镾igmoid是一種平滑函數(shù),能夠?qū)⑺袛?shù)據(jù)映射在0~1。將其作為透射率權(quán)重時,場景突變處的所有像素就被拉伸至0~1,從而避免了數(shù)據(jù)跨度過大的問題,實(shí)現(xiàn)突變區(qū)域平滑過渡的目的。Sigmoid函數(shù)的表達(dá)式如式(8)所示,其函數(shù)曲線如圖4所示。
Figure 4 Sigmoid function curve
(8)
其中,td表示前景透射率,θ3=20/(max(td)-min(td))表示影響曲線傾斜度的參數(shù),θ4=-10-θ3×min(td)表示水平坐標(biāo)的中心。
3.3.2 透射率的融合
天空區(qū)域的分割完成之后,用顏色衰減先驗(yàn)和暗通道先驗(yàn)分別估計天空區(qū)域和前景區(qū)域的透射率,再通過快速引導(dǎo)濾波進(jìn)行透射率的細(xì)化,然后將Sigmoid函數(shù)作為透射率權(quán)重,對2個區(qū)域的細(xì)化透射率進(jìn)行加權(quán)融合,融合表示如式(9)所示:
t(x)=α×td+(1-α)×ts
(9)
其中,t(x)是融合后的透射率,α為透射率權(quán)重且α∈(0,1),ts是天空區(qū)域透射率。如果圖像中的某個像素x∈Ω屬于前景區(qū)域,則α趨近于1;反之,α趨近于0。
Narasimhan等人[16]推導(dǎo)出當(dāng)場景深度趨近于無窮時,根據(jù)物理現(xiàn)象,大氣光值應(yīng)該從無窮遠(yuǎn)處的天空區(qū)域選擇。而暗通道先驗(yàn)算法表現(xiàn)出來的效果不佳和大氣光值的選取有很大的關(guān)系,該算法選擇暗通道中0.1%的最亮像素作為大氣光值,對含有天空區(qū)域的圖像并不適合,如果在前景區(qū)域有大片白色區(qū)域,此時求得的大氣光值明顯偏大。文獻(xiàn)[15]雖在天空區(qū)域采用了顏色衰減先驗(yàn),但文中將亮度值排在天空部分前0.1%的最大值對應(yīng)像素點(diǎn)作為大氣光值的估計,而最大值容易受極端變量的影響,同樣會導(dǎo)致因大氣光值的估計不準(zhǔn)確而影響到恢復(fù)圖像的質(zhì)量。本文算法將亮度值排在天空部分前0.1%的中值對應(yīng)像素點(diǎn)作為大氣光值的估計值,選擇中值而不是最大值的原因是它對噪聲的魯棒性強(qiáng),可使得恢復(fù)的圖像更加自然。其對比實(shí)驗(yàn)結(jié)果如圖5所示。
Figure 5 Comparison of dehazing images when atmospheric light value selecting the maximum brightness value and the median brightness value of the sky
綜上所述,獲得大氣光值和融合的透射率之后,通過式(10)即可恢復(fù)出清晰的圖像:
(10)
其中,t(x)表示融合后的透射率,為了保留少量的霧,設(shè)置透射率下限t0,使得恢復(fù)出來的圖像更加真實(shí)。
為了證明本文算法的去霧效果,用幾組包含天空區(qū)域的有霧圖像對本文算法和文獻(xiàn)[12]基于暗通道先驗(yàn)的圖像去霧算法、文獻(xiàn)[13]基于顏色衰減先驗(yàn)的圖像去霧算法、文獻(xiàn)[14]融合亮度模型和暗通道先驗(yàn)的圖像去霧算法、文獻(xiàn)[15]融合暗通道和顏色衰減先驗(yàn)的圖像去霧算法以及文獻(xiàn)[4]一種端到端的圖像去霧算法進(jìn)行比較,并從主觀和客觀2方面進(jìn)行評價。實(shí)驗(yàn)環(huán)境為Matlab R2020a,運(yùn)行環(huán)境為Windows 10,計算機(jī)配置為Intel Core i5-7300 HQCPU@2.50 GHz。
主觀評價能夠很直觀地看出恢復(fù)后圖像質(zhì)量的好壞。圖6是6種算法的對比效果??梢娢墨I(xiàn)[12]的算法,在處理含有天空的霧圖時效果不佳,表現(xiàn)為圖像整體色彩偏暗,天空區(qū)域出現(xiàn)嚴(yán)重色彩失真,部分圖在景深突變區(qū)域明顯產(chǎn)生光暈現(xiàn)象,如第3幅圖和第6幅圖。文獻(xiàn)[13]的算法,雖補(bǔ)償了暗通道在天空區(qū)域以及景深突變區(qū)域表現(xiàn)出來的不足,在顏色保真的情況下取得了一定的去霧效果,但是整體成色效果還是偏暗,視覺效果不佳。文獻(xiàn)[14]的算法,整體較好地去除了霧氣干擾,在近景區(qū)域恢復(fù)了細(xì)節(jié)信息,但在天空區(qū)域明顯顏色過飽和,不自然。文獻(xiàn)[15]的算法,由于在天空區(qū)域用顏色衰減先驗(yàn)來估計透射率,補(bǔ)償了暗通道在天空區(qū)域的不足,但大氣光值和衰減常數(shù)值選取不夠精確,在場景突變處過渡不平滑,導(dǎo)致恢復(fù)后的圖像在天空區(qū)域顏色偏重(如第1幅圖和第2幅圖),或出現(xiàn)色彩失真(如第4幅圖山面和第6幅圖遠(yuǎn)處高樓處),細(xì)節(jié)不突出。文獻(xiàn)[4]的算法在天空部分有一定的保真效果,近景區(qū)域恢復(fù)了細(xì)節(jié)信息但在近景區(qū)域成色偏暗。而本文算法去霧效果優(yōu)于其它5種算法,恢復(fù)的圖像在天空和近景區(qū)域顏色層次清晰,更加自然,在過渡區(qū)域有效抑制了光暈現(xiàn)象,明亮適宜并且在遠(yuǎn)景處保留了少許的霧,細(xì)節(jié)突出,使視覺效果更佳。
Figure 6 Dehazing results of six foggy images with different dehazing algorithms
為了客觀體現(xiàn)本文算法的優(yōu)越性,本節(jié)將采用圖像質(zhì)量客觀評價指標(biāo)中常用的峰值信噪比PSNR(Peak Signal to Noise Ratio)[18]、結(jié)構(gòu)相似性SSIM(Structural SIMilarity)[19]和運(yùn)行效率(Time)進(jìn)行評價。PSNR是用于評估霧圖處理前后在像素上的差異,值越大,說明恢復(fù)出的圖像質(zhì)量越好,失真越小。SSIM反映的是圖像恢復(fù)前后景物結(jié)構(gòu)的相似性,結(jié)果越接近1,說明復(fù)原的程度越好。而時間的快慢體現(xiàn)出對霧圖處理的效率,自然是越快越好。峰值信噪比和結(jié)構(gòu)相似性的計算公式分別如式(11)和式(12)所示:
(11)
(12)
其中,X和Y分別表示清晰圖像和去霧圖像,M和N分別表示圖像的寬和高,μX和μY分別表示圖像X和Y的灰度均值,σX和σY分別表示圖像X和Y的方差,σXY表示圖像X和Y的協(xié)方差,C1和C2表示常數(shù),以避免分母為0的情況發(fā)生。
圖6中6幅圖像的PSNR和SSIM如表1所示。從表1中可以看出,本文算法在多數(shù)情況下都能夠得到很好的去霧效果,對于圖像6,文獻(xiàn)[14]的PSNR顯示出了最好的結(jié)果,但本文算法的結(jié)果與其非常接近,且其SSIM優(yōu)于文獻(xiàn)[14]算法的;同時從圖6中第6幅圖也可以看到,文獻(xiàn)[14]算法恢復(fù)出來的圖像亮度不夠,色彩偏暗,而本文算法避免了這種情況的發(fā)生。
Table 1 PSNR/SSIM comparison of the above six images
為了進(jìn)一步說明本文算法的有效性,本文在SOTS(Synthetic Objective Testing Set)數(shù)據(jù)集[20]上進(jìn)行了各算法去霧對比實(shí)驗(yàn),表2是各算法進(jìn)行去霧的平均PSNR和SSIM,其平均運(yùn)行時間的統(tǒng)計結(jié)果如圖7所示。
Table 2 Average PSNR/SSIM of each algorithm on SOTS dataset
Figure 7 Run time
由表2可以看出,本文算法在峰值信噪比和結(jié)構(gòu)相似性方面相比較于其他5種算法取得了一定的進(jìn)步。文獻(xiàn)[12]算法和文獻(xiàn)[13]算法的2種指標(biāo)較差,是由于這2種算法存在去霧不徹底的現(xiàn)象,沒有復(fù)原出色彩,剩余噪聲比較多。文獻(xiàn)[15]算法和文獻(xiàn)[14]算法在結(jié)構(gòu)相似性上與本文算法基本持平,但由于文獻(xiàn)[15]算法在場景突變處過渡不平滑以及透射率估計不準(zhǔn)確導(dǎo)致噪聲略高,使其峰值信噪比略低。文獻(xiàn)[4]算法將大氣光值A(chǔ)視為一個全局常數(shù),導(dǎo)致估計到的像素點(diǎn)值不準(zhǔn)確,去霧不徹底,其結(jié)構(gòu)相似性與峰值信噪比偏低。由圖7從運(yùn)行速度方面進(jìn)行分析,本文所提算法需要的運(yùn)行時間比文獻(xiàn)[12,13]算法的短,與文獻(xiàn)[15]算法基本持平,雖比文獻(xiàn)[4,14]算法的略長,但是綜合考慮,本文算法在犧牲較少時間的情況下取得了更好的復(fù)原效果。綜上所述,本文所提算法無論在主觀評價還是客觀評價中都取得了一定的優(yōu)勢。
本文針對現(xiàn)有的融合的圖像去霧算法透射率估計不精確和場景突變處過渡不平滑的問題,提出了如下的改進(jìn)思路:在R、G、B這3個通道上分別使用不同的大氣散射系數(shù),并將Sigmoid函數(shù)作為透射率權(quán)重,對基于顏色衰減先驗(yàn)得到的天空區(qū)域的估計透射率和基于暗通道先驗(yàn)得到的前景區(qū)域的估計透射率進(jìn)行加權(quán)融合;同時選用魯棒性較強(qiáng)的天空區(qū)域像素強(qiáng)度前0.1%的中值作為大氣光值;最后通過大氣散射模型恢復(fù)出清晰圖像。實(shí)驗(yàn)結(jié)果表明,無論是主觀評價還是客觀評價,本文算法對包含有天空區(qū)域的有霧圖像的處理都有著很好的效果,有效地解決了恢復(fù)圖像色彩不自然以及邊緣處的色彩失真問題,使得恢復(fù)出的圖像細(xì)節(jié)更加豐富,場景突變區(qū)域的過渡更加平滑,圖像色彩鮮明,而且具有較強(qiáng)的實(shí)效性。但是,本文算法在處理不包含天空圖像的原始霧圖時,達(dá)不到很好的效果,這將是下一步研究的重點(diǎn)。