黃 鶴,李昕芮,宋 京,王會(huì)峰,茹 鋒,盛廣峰
(1.長(zhǎng)安大學(xué) 電子與控制工程學(xué)院,陜西 西安 710064;2.陜西省道路交通智能檢測(cè)與裝備工程研究中心,陜西 西安 710064)
霧霾天氣下,受大氣中懸浮微粒對(duì)光線散射折射作用的影響,獲取的圖像信息有一定衰減,嚴(yán)重影響了交通監(jiān)控設(shè)備的可靠性[1-2]。因此,對(duì)于圖像去霧算法的研究是一項(xiàng)非常有意義且具有挑戰(zhàn)性的工作。
目前,主流的圖像去霧方法是基于物理模型的圖像復(fù)原算法[3]。其中,Oakley和Tan[4]提出的方法都是建立在已知圖像場(chǎng)景深度的基礎(chǔ)上,含霧圖像的詳細(xì)深度信息都要依靠高精度測(cè)距設(shè)備獲得,因此應(yīng)用環(huán)境受到限制。Nayar和Narasimhan等人利用同一場(chǎng)景在不同天氣下拍攝的圖像來作為輔助信息獲得復(fù)原圖像[5],具有局限性。近年來,很多學(xué)者提出了依托先驗(yàn)知識(shí)或者單幅圖像的去霧方法[6]。其中,He提出了暗原色先驗(yàn)理論,并結(jié)合軟摳圖算法,成功復(fù)原出清晰圖像[7],但仍有不足:(1)由于圖像中湖面、白色物體等明亮區(qū)域不滿足暗原色先驗(yàn)條件,得到的大氣光可能會(huì)存在誤差,透射率偏小,復(fù)原圖像中相應(yīng)區(qū)域存在明顯的光暈效應(yīng),即“halo”效應(yīng),導(dǎo)致目標(biāo)和場(chǎng)景色彩失真;(2)使用軟摳圖算法修復(fù)透射圖,時(shí)間復(fù)雜度和空間復(fù)雜度大幅提高,實(shí)時(shí)性較差。此后,諸多學(xué)者在此基礎(chǔ)上提出了一些改進(jìn)的去霧算法,如黃大榮等人[8]在求取暗原色圖時(shí)將每個(gè)“塊區(qū)域”的RGB 3個(gè)通道最小值替換為每個(gè)像素點(diǎn)3個(gè)通道的最小值,去除了最小值濾波,能有效消除光暈效應(yīng)、降低時(shí)間復(fù)雜度,但復(fù)原圖像清晰度較低。石文軒等人通過插值摳圖法[9]對(duì)透射率進(jìn)行優(yōu)化,但計(jì)算稀疏矩陣導(dǎo)致運(yùn)算量大大增加,比較耗時(shí)。此外,還有學(xué)者提出基于雙閾值的明亮區(qū)域識(shí)別方法和透射率修正機(jī)制,然而明亮區(qū)域的判定條件需要人為設(shè)定參數(shù),對(duì)于不同的圖像魯棒性較差。
針對(duì)上述問題,本文對(duì)暗原色先驗(yàn)去霧方法進(jìn)行改進(jìn),提出了一種基于多尺度窗口的透射率自適應(yīng)的圖像去霧算法。該算法可以保證計(jì)算時(shí)間和復(fù)原圖像的質(zhì)量,較好地解決了暗原色先驗(yàn)原理在明亮區(qū)域失效的問題,適用于處理各類不同場(chǎng)景的霧化圖像。
建立霧天圖像降質(zhì)模型,如圖1所示[10],包括:(1)由大氣微粒對(duì)散射和吸收作用導(dǎo)致的衰減的場(chǎng)景目標(biāo)反射光;(2)由懸浮微粒散射作用而參與成像的環(huán)境光。分析該模型可知霧霾顆粒對(duì)光線的作用以及對(duì)成像的影響。含霧圖像的模型如下所示:
L(x,y)=L0(x,y)e-kd(x,y)+Ls(1-e-kd(x,y)) ,
(1)
圖1 霧霾顆粒對(duì)成像影響示意圖 Fig.1 Schematic diagram of effects of haze particles on imaging
公式(1)包含入射光衰減模型和大氣光成像模型,其中,可見光鏡頭采集得到的圖像為L(zhǎng)(x,y),即霧天降質(zhì)圖像,L0(x,y)e-kd(x,y)為入射光衰減模型,Ls為環(huán)境光亮度,e-kd(x,y)為透射分步率,Ls(1-e-kd(x,y))為大氣光成像模型。
大氣微粒的散射致使一部分入射光不能到達(dá)鏡頭,造成了入射光衰減,L0(x,y)代表該點(diǎn)的場(chǎng)景反射光強(qiáng)度,入射光衰減率與場(chǎng)景點(diǎn)到接受裝置的距離有關(guān),式中d(x,y)表示場(chǎng)景深度,k為大氣散射系數(shù),其與波長(zhǎng)λ及大氣中微粒大小γ關(guān)系如公式(2)所示:
(2)
分析模型可知圖像降質(zhì)原因如下:由于霧霾顆粒尺寸(1~10 μm)遠(yuǎn)大于純空氣中的微粒尺寸(10-4μm左右),而公式(2)中的大氣散射系數(shù)又由微粒大小決定,又由于大氣與不同顏色可見光的散射系數(shù)近似,導(dǎo)致可見光等量散射使霧霾呈灰白色,含霧圖像也變得灰白不清。此外,由于霧霾微粒對(duì)光線散射影響較大,從入射光衰減模型L0(x,y)e-kd(x,y)可知,固有亮度受景深影響成指數(shù)衰減,導(dǎo)致圖像亮度降低,同時(shí)霧霾微粒的散射和折射還會(huì)造成成像離焦模糊,故圖像質(zhì)量較差。
霧天圖像成像物理模型如下所示:
I(x)=J(x)t(x)+A[x-t(x)] ,
(3)
式中,I(x)表示含霧圖像,J(x)表示場(chǎng)景反射光強(qiáng)度,t(x)為透射率,J(x)t(x)表示入射光衰減,A(1-t(x))表示大氣光成像。其中t(x)與A均是未知項(xiàng),故該方程求解是病態(tài)的,需給出先驗(yàn)條件才可求解。
霧天圖像復(fù)原即由霧化的降質(zhì)圖像反演得到清晰圖像,式(3)經(jīng)過變形可得到:
(4)
(5)
根據(jù)不含霧圖像的暗原色統(tǒng)計(jì)規(guī)律可知[7],即:
(6)
而大氣光的值A(chǔ)c相對(duì)大很多,即
(7)
(8)
(9)
根據(jù)經(jīng)驗(yàn)取w=0.8。
公式(9)僅完成了對(duì)透射率的粗估計(jì),此時(shí)估計(jì)值存在塊狀效應(yīng),不夠精確,需進(jìn)行精細(xì)化處理,得到透射率的精確估計(jì)值:
(10)
式中,I(x,y)為含霧圖像像素點(diǎn),A為大氣光值,J(x,y)為去霧后的像素點(diǎn),t_d為精準(zhǔn)透射率。圖像中某些像素對(duì)應(yīng)的透射率t(x)非常小,幾乎為零,其衰減項(xiàng)J(x)t(x)也趨于零。這種情況下,若仍根據(jù)式(10)直接計(jì)算,透射率過小時(shí),噪聲信息將會(huì)被過度增強(qiáng),且圖像局部區(qū)域?qū)Ρ榷葧?huì)下降,導(dǎo)致圖像偏白,故設(shè)透射率下限為t0,得到最終復(fù)原圖像為
(11)
根據(jù)經(jīng)驗(yàn)取t0=0.1。
利用公式(9)進(jìn)行透射率粗估計(jì)計(jì)算,圖像斑塊比較明顯,即出現(xiàn)halo效應(yīng),復(fù)原圖像目標(biāo)和場(chǎng)景出現(xiàn)色彩失真,如圖2所示,圖2(b)天空與樹木相交的邊緣區(qū)域透射率(景深)變化大時(shí)產(chǎn)生光暈,導(dǎo)致失真。
圖2 傳統(tǒng)暗原色估計(jì)去霧前后圖像 Fig.2 Images before and after defogging by traditional dark priori image defogging algorithm
傳統(tǒng)圖像邊緣檢測(cè)算子采用的模板大都為兩方向,其只能檢測(cè)特定方向的邊緣,當(dāng)圖像紋理較復(fù)雜時(shí),邊緣檢測(cè)效果欠佳[11-13],因此本文設(shè)計(jì)了一種新的8方向邊緣檢測(cè)算子,以獲取含霧圖像的邊緣。
建立極坐標(biāo)系,定義極軸方向?yàn)?方向,逆時(shí)針旋轉(zhuǎn)45°為1方向,逆時(shí)針旋轉(zhuǎn)90°為2方向,逆時(shí)針旋轉(zhuǎn)135°為3方向,逆時(shí)針旋轉(zhuǎn)180°為4方向,逆時(shí)針旋轉(zhuǎn)225°為5方向,逆時(shí)針旋轉(zhuǎn)270°為6方向,逆時(shí)針旋轉(zhuǎn)315°為7方向。8方向邊緣算子圖如圖3所示。
圖3 新的8方向邊緣檢測(cè)算子圖 Fig.3 Diagram of new 8-direction edge detection operator
針對(duì)圖2(a)進(jìn)行邊緣檢測(cè),比較Roberts算子、Sobel算子、Prewitt算子和本文邊緣檢測(cè)算子得到的含霧圖像邊緣,如圖4所示。
圖4 4種邊緣算子的檢測(cè)結(jié)果 Fig.4 Detection results of 4 kinds of edge operators
實(shí)驗(yàn)結(jié)果表明,相對(duì)于傳統(tǒng)算子,8方向邊緣檢測(cè)算子能夠提取更多的含霧圖像邊緣細(xì)節(jié),獲得比較細(xì)的圖像邊緣信息,區(qū)分度更好,邊緣定位更準(zhǔn)。
若采用15×15固定模板求取暗通道時(shí),當(dāng)局部塊區(qū)域內(nèi)透射率值差異較大時(shí),會(huì)形成明顯斑塊,導(dǎo)致復(fù)原圖像中的目標(biāo)和場(chǎng)景色彩失真。若采用5×5的固定模板求取暗通道時(shí),因其模板小使得窗口時(shí)間復(fù)雜度更高,實(shí)時(shí)性較差。針對(duì)這一問題,本文提出了一種新的多尺度窗口,可以提高透射率估計(jì)的準(zhǔn)確性,同時(shí)減少計(jì)算量。首先用8方向算子檢測(cè)含霧圖像的邊緣細(xì)節(jié),根據(jù)所在區(qū)域是否為景深突變區(qū)域來判斷采用較大還是較小的窗口,然后對(duì)景深突變較大的區(qū)域采用較小的窗口計(jì)算其暗原色,對(duì)變換較小的區(qū)域采用較大的窗口計(jì)算其暗原色。本文根據(jù)大量的實(shí)驗(yàn)測(cè)試結(jié)果,取較小窗口為5×5,較大窗口為15×15。
本文提出的基于多尺度窗口的自適應(yīng)暗原色估計(jì)算法能夠克服暗原色圖在透射率突變區(qū)域的halo現(xiàn)象,且實(shí)時(shí)性較好,綜合效果優(yōu)于單獨(dú)使用5×5模板或15×15模板的暗原色估計(jì)算法。
圖5 基于多尺度窗口的自適應(yīng)暗原色估計(jì)算法的實(shí)驗(yàn)結(jié)果 Fig.5 Experimental results of adaptive dark estimation algorithm with multi-scale window
從圖5(b)可以看出,基于多尺度窗口的自適應(yīng)暗原色估計(jì)算法能夠有效消除halo效應(yīng),去霧效果優(yōu)于傳統(tǒng)暗原色估計(jì)方法。從表1可知,該算法相對(duì)于插值摳圖算法[9],效率提升了35倍。
表1 兩種算法的時(shí)間復(fù)雜度
經(jīng)過大量實(shí)驗(yàn)發(fā)現(xiàn),在某些特殊情況下,基于暗通道先驗(yàn)去霧算法失效,主要表現(xiàn)為顏色過飽和或者某個(gè)顏色通道溢出[14-18]。通過統(tǒng)計(jì)觀察可以發(fā)現(xiàn)失真區(qū)域常常包含一些明亮的近景區(qū)域,這些區(qū)域的透射率估計(jì)有一定偏差?;诎翟闰?yàn)去霧算法在這些區(qū)域失效,無論如何調(diào)整參數(shù)(濾波窗口大小等),得到的去霧圖像失真均較為嚴(yán)重。根據(jù)透射率的估計(jì)方法將方程(9)變形為:
(12)
圖像去霧算法的關(guān)鍵是估計(jì)透射率。估計(jì)方法通常是將歸一化后的暗通道圖像作為景深信息,將其進(jìn)一步處理后用作透射率。但是如果近景場(chǎng)景中包含白色物體等明亮區(qū)域時(shí),使用上述方法對(duì)這些區(qū)域進(jìn)行透射率估計(jì),則會(huì)發(fā)生偏差,從而導(dǎo)致復(fù)原圖像失真。
為此,本文提出了自適應(yīng)透射率修復(fù)的圖像去霧算法,即構(gòu)造一個(gè)大氣耗散函數(shù),其能夠自適應(yīng)估計(jì)和修改透射率,從而有效解決了暗原色先驗(yàn)原理在圖像明亮區(qū)域失效的問題,擴(kuò)大了暗原色先驗(yàn)原理的適用范圍,可以處理不同場(chǎng)景的霧化圖像。
首先,定義大氣耗散函數(shù):
V=A[1-t(x)] ,
(13)
對(duì)上式變形可得到透射率為:
(14)
由暗通道先驗(yàn)原理可知,暗原色圖像中含有霧的濃度信息,即霧濃度較大的圖像區(qū)域,所對(duì)應(yīng)的暗原色圖較亮;而霧的濃度與光線耗散程度相關(guān),故可以認(rèn)為暗原色圖像中的明暗亮度與大氣耗散程度相關(guān)。分別以含霧圖像I的灰度圖和暗原色圖Jdark作為引導(dǎo)圖像及待濾波圖像,理論上就可以得到邊緣增強(qiáng)后的暗原色圖像V′:
V′=guide(ragb2gray(I),Jdark) .
(15)
假設(shè)原始圖像近景區(qū)域較明亮,則其在暗原色圖中得到的像素點(diǎn)也較明亮,相應(yīng)地具有較大的散射函數(shù)值,因此會(huì)誤以為該近景是有濃霧且景深較大的遠(yuǎn)景區(qū)域。因此要對(duì)式(15)進(jìn)行修正,定義:
Δc=|V′-dark| ,
(16)
其中,Δc代表原暗原色圖Jdark與邊緣增強(qiáng)后的暗原色圖像V′相差的紋理信息。由于近景區(qū)域紋理信息明顯,所以相應(yīng)的Δc值較大。定義修正后的大氣散射函數(shù)為:
V″=V′(1-ω*Δc) .
(17)
由公式(17)可以看出,修正后的大氣散射函數(shù)對(duì)近景區(qū)域的散射函數(shù)值進(jìn)行了一定程度的削弱,得到的散射函數(shù)值更為準(zhǔn)確,更加符合實(shí)際情況。故可以通過公式(14)自適應(yīng)估計(jì)和修改透射率。
本文算法流程如圖6所示。
多尺度窗口的自適應(yīng)透射率修復(fù)交通圖像去霧方法的具體步驟如下:首先,利用8方向邊緣檢測(cè)算子檢測(cè)輸入含霧圖像邊緣;根據(jù)檢測(cè)的邊緣信息,判斷圖像中的景深突變區(qū)域。對(duì)景深突變區(qū)域使用5×5的窗口進(jìn)行暗原色估計(jì),對(duì)非景深突變區(qū)域使用15×15的窗口進(jìn)行暗原色估計(jì);其次,使用引導(dǎo)濾波器,將含霧圖像I的灰度圖作為引導(dǎo)圖像;將暗原色圖Jdark作為待濾波圖像,根據(jù)公式(15)得到邊緣增強(qiáng)的暗原色圖像V′;利用式(16)、式(17)對(duì)得到的V′進(jìn)行修正,得到修正后的大氣散射函數(shù)V″;最后,將修正后的大氣散射函數(shù)V″及大氣光值A(chǔ)帶入公式(14)中,得到透射率t(x),并將其帶入公式(11)得到最終去霧圖像。
圖6 本文算法流程圖 Fig.6 Flowchart of proposed algorithm
實(shí)驗(yàn)硬件采用GPU硬件平臺(tái)—NVIDIA GeForce GTX1080TI,對(duì)含霧圖像依次采用雙邊濾波算法、梯度雙邊濾波算法及引導(dǎo)濾波去霧算法及本文算法進(jìn)行去霧處理,實(shí)驗(yàn)結(jié)果如圖7(彩圖見期刊電子版)和圖8(彩圖見期刊電子版)所示。
圖7 4種方法對(duì)第一組圖像處理結(jié)果 Fig.7 Defogging results of the first set of image by 4 kinds of algorithms
引入了客觀評(píng)價(jià)指標(biāo)(平均梯度、信息熵、邊緣強(qiáng)度因子、PSNR、模糊系數(shù))對(duì)去霧效果進(jìn)行客觀評(píng)價(jià)(表2和表3)。
表2 第一組實(shí)驗(yàn)結(jié)果的定量評(píng)價(jià)結(jié)果
表3 第二組實(shí)驗(yàn)結(jié)果的定量評(píng)價(jià)結(jié)果
從主觀上來看,圖7(c)和7(d)雖對(duì)含霧圖像有一定的復(fù)原效果,但在明亮區(qū)域處發(fā)生了較為嚴(yán)重的色彩失真;相比之下,圖7(e)和7(f)在明亮區(qū)域則沒有發(fā)生色彩失真,且圖7(f)色彩更為明亮,去霧效果更好。從圖8實(shí)驗(yàn)結(jié)果中也可以得到上述結(jié)論,相較于雙邊濾波去霧、梯度雙邊濾波去霧、引導(dǎo)濾波去霧,本文算法的去霧效果最好。
從表2和表3的客觀評(píng)價(jià)指標(biāo)來看,本文算法優(yōu)于引導(dǎo)濾波算法,雖然在一些指標(biāo)上,雙邊濾波算法和梯度雙邊濾波算法優(yōu)于本文算法,這可能是由于圖7和圖8中包含白色物體的明亮區(qū)域色彩失真嚴(yán)重,導(dǎo)致雙邊濾波算法和梯度雙邊濾波算法的客觀評(píng)價(jià)指標(biāo)失效。綜上所述,本文算法能夠較好地解決halo效應(yīng),而且在景深邊緣處提取了更多的邊緣細(xì)節(jié),去霧效果最優(yōu)。
圖8 4種方法對(duì)第二組圖像的處理結(jié)果 Fig.8 Defogging effects of the second set of image by 4 kinds of algorithms
本文設(shè)計(jì)了基于多尺度窗口和透射率自適應(yīng)修復(fù)的圖像去霧算法,有效消除了halo效應(yīng),同時(shí)解決了暗原色原理在近景區(qū)域存在白色物體時(shí)失效的問題,擴(kuò)大了暗原色先驗(yàn)原理的適用范圍,使其能夠處理不同場(chǎng)景的霧化圖像。實(shí)驗(yàn)結(jié)果表明,本文去霧算法的各項(xiàng)指標(biāo)均優(yōu)于引導(dǎo)濾波去霧算法,其中平均梯度平均提高了8.305%,PSNR平均提高了12.455%,邊緣強(qiáng)度因子平均提高了7.77%,且可以克服雙邊濾波和梯度雙邊濾波算法的halo效應(yīng)以及明亮區(qū)域色彩失真嚴(yán)重的問題,應(yīng)用價(jià)值明顯。