譚 龍 江
(華僑大學(xué) 經(jīng)濟(jì)與金融學(xué)院,福建 泉州 362021)
霧霾是由懸浮在大氣中的水滴、氣溶膠、塵埃等顆粒對入射光散射和吸收產(chǎn)生的現(xiàn)象.近年來隨著環(huán)境污染的加重,霧霾現(xiàn)象更加頻繁,在霧霾天氣拍攝圖像會出現(xiàn)對比度低,飽和度下降,顏色失真等降質(zhì)問題,嚴(yán)重影響了室外機(jī)器視覺監(jiān)控系統(tǒng)效用的發(fā)揮[1].因此,快速有效的去霧算法具有重要意義.
早期的去霧算法主要依賴場景的深度信息或多角度的觀察信息.如Zhao等人[2]利用場景的3D模型及深度信息來實(shí)現(xiàn)去霧,具有較好的去霧結(jié)果.Qu等人[3]發(fā)現(xiàn)大氣顆粒對光的散射具有部分偏振的特性,采用偏振器采集不同角度的圖像用于去霧.然而這些算法均需要大量附加信息,極大地限制了去霧算法的應(yīng)用.
相比而言,單幅圖像去霧算法具有更廣泛的應(yīng)用,然而隨著霧,霾,煙現(xiàn)象的加重,較少的場景信息能夠被獲得,使得高精度的單幅圖像去霧算法極具挑戰(zhàn)性.如Fattal等人[4]利用數(shù)學(xué)模型來描述目標(biāo)的表面陰影和場景的透射率實(shí)現(xiàn)去霧,該模型僅考慮了圖像的顏色和局部信息,無法應(yīng)用于濃霧情況.Berman等人[5]通過大量統(tǒng)計(jì)發(fā)現(xiàn),清晰無霧的戶外圖像中一般僅含幾百種不同的顏色,且同種顏色的像素點(diǎn)無論距離鏡頭遠(yuǎn)近,其像素值在RGB空間均呈簇狀分布.相反,在霧天降質(zhì)圖像中,因受霧氣散射影響,相同像素點(diǎn)的灰度則呈線狀分布.利用該非局部先驗(yàn),算法能快速對顏色相近的像素進(jìn)行聚類,有效實(shí)現(xiàn)去霧.然而算法僅利用顏色信息來獲取非局部先驗(yàn),對于濃霧和天空區(qū)域不能有效處理.另一方面,Tan等人[6]發(fā)現(xiàn)霧天降質(zhì)圖像的對比度要低于清晰圖像對比度,可通過將霧天圖像的局部對比度最大化來進(jìn)行去霧,但導(dǎo)致圖像色調(diào)過于飽和而結(jié)果失真.
He等人[7]利用暗通道先驗(yàn)理論估計(jì)場景透射圖,再用軟摳圖技術(shù)處理邊緣細(xì)節(jié),能獲得較好的去霧結(jié)果,但運(yùn)行時(shí)間較長,且算法不適應(yīng)用于天空區(qū)域.
受上述算法的啟發(fā),我們發(fā)現(xiàn)天空區(qū)域?qū)ν干鋱D和大氣光的準(zhǔn)確估計(jì)影響很大,考慮天空區(qū)域的信息影響,將有效改進(jìn)去霧結(jié)果.為此,本算法針對暗通道先驗(yàn)算法無法有效處理天空區(qū)域的問題,提出了識別天空區(qū)域的去霧算法.首先采用通過分析大氣光在RGB顏色空間的分布特性,利用差分函數(shù)和暗通道信息相結(jié)合的方式來估計(jì)大氣光,避免了天空區(qū)域中高亮像素引起大氣光值較大的問題;隨后,針對暗通道先驗(yàn)無法正確估計(jì)天空區(qū)域的缺陷,改進(jìn)暗通道先驗(yàn)算法,使其能針對天空及非天空區(qū)域分別準(zhǔn)確估計(jì)透射圖,并在此基礎(chǔ)上采用自適應(yīng)中值濾波和雙邊濾波來聯(lián)合優(yōu)化透射圖;最后,利用大氣散射模型估計(jì)無霧的清晰圖像.
在He等人[7]的工作基礎(chǔ)上,提出了一種天空識別的改進(jìn)暗通道先驗(yàn)單幅圖像去霧算法.該算法首先通過變差函數(shù),對大氣光圖值進(jìn)行合理的估計(jì),避免圖像中高亮像素的影響;其次改進(jìn)暗通道先驗(yàn)無法適用于天空區(qū)域的局限性,對天空區(qū)域和非天空區(qū)域分別估計(jì)透射率,并用自適應(yīng)中值濾波和雙邊濾波對其進(jìn)行快速優(yōu)化,使去霧結(jié)果更加精確.
圖1為算法流程圖.以單幅有霧圖像為輸入,主要包含大氣光圖估計(jì)、透射率估計(jì)、去霧圖像恢復(fù)三個(gè)部分.
圖1 算法流程圖Fig.1 Algorithm flow chart
各步驟的概要說明如下:
1)變差函數(shù)的大氣光圖估計(jì).在大氣光圖估計(jì)階段,考慮到使用天空或白色景物中高亮像素估計(jì)大氣光,會使大氣光的強(qiáng)度值偏大,故利用變差函數(shù)對暗通道先驗(yàn)算法選取的候選像素進(jìn)行逐一的判斷,識別出天空區(qū)域的非高亮像素來精確估計(jì)大氣光.
2)透射率的估計(jì)和優(yōu)化.充分考慮暗通道先驗(yàn)理論不適用于天空區(qū)域的特性,提出了識別天空區(qū)域的改進(jìn)暗通道先驗(yàn)原理,使其能對天空及非天空區(qū)域分別估計(jì)透射率.最后,為了快速的消除透射光率的區(qū)塊效應(yīng),利用自適應(yīng)中值濾波和雙邊濾波來聯(lián)合優(yōu)化透射率,提高去霧質(zhì)量.
3)去霧圖像恢復(fù).利用本算法估計(jì)的大氣光和透射率進(jìn)行圖像去霧.
根據(jù)大氣散射規(guī)律和光學(xué)反射成像,一幅有霧圖像的大氣散射模型為:
I(x)=J(x)t(x)+A(1-t(x))
(1)
其中,I(x)是觀測圖像,J(x)是待估計(jì)的清晰圖像,A是整幅圖像的大氣光強(qiáng)度,t(x)是光線通過介質(zhì)的透射率.圖像去霧的最終目的就是利用該模型在已知I(x)的基礎(chǔ)上,恢復(fù)出J(x),A和t(x),由于未知量個(gè)數(shù)大于方程個(gè)數(shù),該問題為病態(tài)問題,需要利用已有的先驗(yàn)知識來解決.
統(tǒng)計(jì)分析表明,大氣光圖A的值與天空中濃霧區(qū)域的像素值最為接近,準(zhǔn)確識別該區(qū)域是估計(jì)大氣光的重要前提.目前存在的單幅圖像去霧算法大多利用圖像中高亮像素點(diǎn)作為天空區(qū)域的近似值,估計(jì)大氣光圖.例如,Tan等人[6]使用霧天圖像中最亮的像素點(diǎn)值來估計(jì)大氣光圖.He等人[7]根據(jù)暗通道先驗(yàn),選取暗通道圖像中亮度最大的前0.1%像素來估計(jì)大氣光圖.然而在實(shí)際應(yīng)用中,最亮的像素點(diǎn)可能存在于白色景物中,即便存在于天空區(qū)域,僅利用天空區(qū)域中最亮點(diǎn)來估計(jì),也會使得大氣光圖RGB值偏大,導(dǎo)致失真.為了減少高亮像素對大氣光估計(jì)的影響,本文在He等人[7]方法的基礎(chǔ)上,提出了一種基于變差方程的大氣光圖估計(jì)算法.
實(shí)驗(yàn)表明,降質(zhì)圖像中濃霧天空區(qū)域的像素值主要分布在RGB立方體的對角線上,如圖2中黑色實(shí)心像素點(diǎn)所示.因此對于初始的霧天降質(zhì)圖像I(x),我們可提出一個(gè)變差函數(shù)f(x)來搜索分布在對角線上的點(diǎn):
(2)
圖2 RGB彩色空間(黑色實(shí)心像素位于天空區(qū)域, 白色空心像素為白色景物)Fig.2 RGB color space.(Black solid pixels are located in sky areas,and white hollw pixels are located deep within the scene)
由公式(2)可知,f(x)的值在天空中的高亮區(qū)域最小,在非天空區(qū)域較大,利用該特性可以摒棄高亮像素.此外,白色景物隨著景深的增加,顏色會變得暗淡模糊,且在濃霧的影響下該現(xiàn)象更加明顯,正如圖2中白色空心像素點(diǎn)所示,白色物體隨深度增加,不穩(wěn)定的灰度值在對角線上下方波動(dòng).為了去除這類高亮像素信息的干擾,強(qiáng)化f(x)的對比度,我們在公式f(x)添加比例系數(shù)k,如公式(3)所示:
(3)
式中,比例系數(shù)k默認(rèn)設(shè)置17.同時(shí),我們選取一個(gè)合適的閾值來選擇合適的區(qū)域?qū)Υ髿夤鈭D估計(jì).假設(shè)閾值Δ,如果f(x)≤Δ,就認(rèn)為該像素點(diǎn)來自于天空或白色物體中的高亮區(qū)域,進(jìn)而舍棄該點(diǎn).如果f(x)>Δ,則保留該點(diǎn)來估算大氣光圖的值,本文默認(rèn)Δ=36.隨后求取篩選像素點(diǎn)的暗通道值,用暗通道中亮度最大的前0.1%的像素點(diǎn)來搜索圖像亮度最大點(diǎn),用它來估計(jì)大氣光圖的值.
上述方法不但有效的避免了天空和白色物體中高亮像素信息的干擾,即便對于f(x)較小的灰色物體或天空區(qū)域,也會因?yàn)榻Y(jié)合了暗通道信息,而擯棄了這類亮度較小的干擾像素,確保了大氣光圖值估計(jì)的合理性.
3.3.1 天空識別的暗通道先驗(yàn)透射率估計(jì)
根據(jù)3.2小節(jié)估計(jì)出的大氣光圖A的全局常量值,可將公式(1)的大氣散射模型變換為:
(4)
式中,c∈{r,g,b}.
假設(shè)在以x為中心的一個(gè)局部鄰域Ω(x)內(nèi)透射率是常量,并將其表示為T(x),則公式(4)兩邊都取兩次最小操作,得到公式(5):
1-T(x)
(5)
He等人[6]通過對戶外大量無霧圖像觀察和統(tǒng)計(jì)特性研究發(fā)現(xiàn)了暗通道統(tǒng)計(jì)規(guī)律,即無霧圖像的大部分非天空局部區(qū)域中,至少存在一個(gè)顏色通道有著較低的像素灰度值,且該值趨近于零.相關(guān)的暗通道定義為:
(6)
結(jié)合暗通道先驗(yàn)理論,透射率T(x)的估計(jì)表達(dá)式為:
(7)
為了保留保留一部分殘霧,使圖像具有景深感,引入了常量參數(shù)w(0 (8) 式中,默認(rèn)w=0.95. 然而在無霧圖像的天空區(qū)域中,公式(6)并不趨近于零,因此用公式(6)估計(jì)的透射率T(x)并不準(zhǔn)確,為此提出了識別天空區(qū)域的暗通道先驗(yàn)透射光率T(x)方法,由公式(5)可知,T(x)估計(jì)可表示為: (9) 假設(shè)圖像中的坐標(biāo)點(diǎn)(u,v)對應(yīng)著有霧圖像I(x)中暗通道像素的最亮點(diǎn),可用Imax來表示: (10) 再假設(shè)坐標(biāo)(b,d)對應(yīng)有霧圖像I(x)中暗通道的最暗點(diǎn),用Imin來表示: (11) (12) 3.3.2 透射率的快速優(yōu)化 如果使用本文估計(jì)出的大氣光圖A的值和改進(jìn)暗通道先驗(yàn)估計(jì)的透射率T(x),直接在大氣散射模型下恢復(fù)去霧圖像,會在處理梯度較大的景深邊緣時(shí),出現(xiàn)明顯的塊效應(yīng),這是由于透射光率的估計(jì)是在假設(shè)其在局部區(qū)域Ω(x)內(nèi)為常量而造成的.Levin[8]和He[7]分別使用軟摳圖及引導(dǎo)濾波算法對估計(jì)透射率進(jìn)一步優(yōu)化,在一定程度上改善了這一現(xiàn)象.雖然軟摳圖效果較好,但時(shí)間和計(jì)算復(fù)雜度都較高,且占用了大量內(nèi)存.相比較而言,引導(dǎo)濾波算法處理速度更快,但細(xì)化效果又略差,尤其是在梯度較大的景深邊緣還會殘留霧化效果.同時(shí)考慮到公式(12)中,利用鄰域中的極值來估計(jì)透射率,其結(jié)果易受局部高亮或低亮像素值的影響.為此,這里選用自適應(yīng)中值濾波及雙邊濾波聯(lián)合的方式優(yōu)化透射率T. 為了使優(yōu)化后的透射率T在局部區(qū)域的取值更合理,設(shè)計(jì)了一種能保留圖像邊界中部分亮度值的自適應(yīng)中值濾波.其工作原理如圖3所示. 圖3 自適應(yīng)中值濾波流程Fig.3 Process of adaptive median filter 其中,初始鄰域窗口尺寸S為3,并以奇數(shù)增大;Smax是設(shè)定的最大窗口尺寸,默認(rèn)取初始圖像大小的1%;Tx是透射率圖T中x點(diǎn)的像素值,Tmin,Tmed,Tmax分別為以x為中心的鄰域中灰度最小值、中值、最大值.通過對透射率T的自適應(yīng)中值濾波處理后,它能去除亮度均勻區(qū)域中突現(xiàn)的局部極亮點(diǎn)和局部極暗點(diǎn),同時(shí)較傳統(tǒng)中值濾波具有更好的保邊性.處理后所得透射率T1可以看做是初始T的局部均值,這樣初始T的細(xì)節(jié)高頻部分不可避免地就被模糊化了,盡管較傳統(tǒng)的中值濾波所產(chǎn)生的細(xì)節(jié)模糊化更輕[9],但是這種輕微的模糊也同樣需要進(jìn)行處理,否則會導(dǎo)致細(xì)節(jié)部分在去霧后會更加模糊.雙邊濾波正好能夠有效地處理自適應(yīng)中值濾波產(chǎn)生的細(xì)節(jié)模糊化,從而使估計(jì)得到的透射率更準(zhǔn)確.雙邊濾波處理的公式為: (13) 其中,T2為雙邊濾波優(yōu)化T1后的結(jié)果.T1(x)和T1(y)代表示自適應(yīng)中值濾波處理后T1中像素點(diǎn)x的灰度值,及以x為中心的鄰域窗口中像素y的灰度值,其中,Wx是歸一化系數(shù),定義為: (14) Gσd和Gσr分別是靜態(tài)空域D和動(dòng)態(tài)值域R上以σd和σr為標(biāo)準(zhǔn)差的高斯核.‖·‖表示歐式距離.因此,雙邊濾波考慮灰度信息的同時(shí)還兼顧了像素點(diǎn)的空間關(guān)系,即平滑了透射率,又確保了邊緣清晰[10].為了提高運(yùn)算速度,雙邊濾波還可采用文獻(xiàn)[11,12]中的快速雙邊濾波方法.該策略與軟摳圖方法相比,獲得的傳輸率結(jié)果更精細(xì).大量實(shí)驗(yàn)表明,公式(13)中的窗口大小取自適應(yīng)中值濾波大小S的兩倍,σd取10,σr取0.1. 在得到全局大氣光圖A的值和透射率T2后,可以估計(jì)出清晰的無霧圖像J(x): (15) 由于天空區(qū)域的像素值與大氣光圖值A(chǔ)接近,當(dāng)恢復(fù)天空區(qū)域時(shí)透射率T(x)趨近于0,這會導(dǎo)致恢復(fù)的去霧結(jié)果中包含一定的噪聲.因此,我們設(shè)置一個(gè)限制t0來優(yōu)化透射率T(x),在本文中默認(rèn)設(shè)t0=0.1. 本文所提算法在2.2GHz CPU,8G內(nèi)存的計(jì)算機(jī),Matlab 2015b的環(huán)境下運(yùn)行.并從網(wǎng)上公共的圖像數(shù)據(jù)庫及項(xiàng)目組拍攝的城市霧天圖像中選擇了300幅圖像的圖像集進(jìn)行測試,其中包含大量天空背景,少量天空背景及不含天空背景的圖像.對比算法選取了Tan[6]提出的單幅圖像去霧算法,Berman[5]提出的非局部先驗(yàn)去霧算法,及He[7]提出的暗通道先驗(yàn)算法.實(shí)驗(yàn)表明對于含有大量天空背景的圖像,本文算法中,閾值Δ為36,w值為0.9.而對于少量及不含天空區(qū)域的圖像,閾值Δ變?yōu)?00,w值設(shè)為0.8. 圖4為各算法對圖4(a)的三幅測試圖去霧后的結(jié)果,從圖4(b)中可見,本文算法因考慮天空區(qū)域?qū)ν干渎屎痛髿夤獾挠绊?去霧的結(jié)果最優(yōu),復(fù)原結(jié)果中景物的顏色最接近真實(shí)圖像,且天空及濃霧區(qū)域也能較好處理.圖4(c)He算法的復(fù)原結(jié)果對于前景物體處理效果較好,但無法有效處理遠(yuǎn)處濃霧區(qū)域,如第一幅圖中遠(yuǎn)處草垛仍受霧氣干擾,清晰度不高,玩偶圖像無法恢復(fù)背景的濃霧區(qū)域,城區(qū)圖像中同樣可發(fā)覺,He算法的結(jié)果天空區(qū)域出現(xiàn)光暈,明顯失真.圖4(d)Tan算法因利用局部信息估計(jì)透射率導(dǎo)致透射率不連續(xù),去霧結(jié)果過飽和,存在白色噪聲,如第一幅圖中草垛上箭頭所示的白色干擾,玩偶圖像背景中白色的濃霧區(qū)域.圖4(e)Berman算法因采用顏色信息來獲得非局部先驗(yàn),去霧后的結(jié)果對比度較強(qiáng),但對于遠(yuǎn)處天空及濃霧區(qū)域效果仍有偏差,如城區(qū)圖像去霧后天空區(qū)域出現(xiàn)明顯的陰影和光暈. 圖4 不同算法的去霧結(jié)果Fig.4 Dehazing results of different algorithms 為了客觀地評價(jià)各算法的去霧質(zhì)量,采用信噪比PSNR和平均梯度AG指標(biāo)進(jìn)行量化評估.PSNR測量了霧天圖像與去霧圖像間的差異,其值越大,則失真越少,去霧質(zhì)量越高.PSNR的定義如下: (16) 式中,d為圖像的深度,本文默認(rèn)為8. (17) AG指標(biāo)反映了細(xì)節(jié)對比度,它被用來評估圖像的清晰度.高的AG值對應(yīng)了更清晰的圖像.圖像的AG定義如下: (18) 為了測試算法的魯棒性,對300幅霧天圖像的圖像集進(jìn)行去霧處理,分別測得各算法的量化指標(biāo)值.從表1可見,本文算法在三張測試圖和圖像集中的AG和PSNR值都最高.例如在表1測試圖1中分別為0.048和48.1,而He的算法次之.去霧準(zhǔn)確度至少分別提高了5.1%和4.7%. 表1 不同算法的AG,PSNR值對比 圖像本文算法He算法Tan算法Berman算法AGPSNRAGPSNRAGPSNRAGPSNR測試圖10.04848.10.04646.90.04244.20.03642.8測試圖20.03436.80.02932.60.02834.80.02728.7測試圖30.03928.80.03322.40.03426.40.02820.2圖像集 0.04138.10.03936.40.03634.20.03431.7 此外,本文算法平均運(yùn)行時(shí)間由大氣光值估計(jì),透射光率估計(jì)及物理散射模型去霧組成,每個(gè)步驟僅涉及簡單鄰域最大,最小或平滑操作,故運(yùn)行時(shí)間較短,300幅圖像測試表明平均運(yùn)行時(shí)間為1.7秒,而He算法在透射圖的軟摳圖操作,耗時(shí)較多,運(yùn)行時(shí)間約為42秒,Berman采用k-d樹對顏色線進(jìn)行分類再提取非局部先驗(yàn)信息,耗時(shí)較長,運(yùn)行時(shí)間約為23秒.Tan算法運(yùn)行時(shí)間約為2.4秒.故本文算法較存在算法其運(yùn)行時(shí)間至少提高了29%,能有效用于室外視覺監(jiān)控系統(tǒng). 常用的單幅圖像去霧算法沒有考慮天空區(qū)域?qū)Υ髿夤夂屯干鋱D的影響,去霧并不準(zhǔn)確.本文提出了識別天空區(qū)域的改進(jìn)暗通道先驗(yàn)的去霧算法.算法首先利用差分函數(shù)區(qū)分天空區(qū)域,再結(jié)合暗通道信息估計(jì)大氣光.隨后使用改進(jìn)后的暗通道先驗(yàn)算法分別估計(jì)天空區(qū)域及非天空區(qū)域的透射率,快速恢復(fù)去霧圖像.通過對300幅霧天圖像集測試表明,本算法不但能保留場景的細(xì)節(jié)信息,對天空區(qū)域及非天空區(qū)域均能準(zhǔn)確去霧,運(yùn)行時(shí)間僅為1.7秒,同等條件下較其他常用算法提高了至少29%,能用于戶外視覺監(jiān)控系統(tǒng)中.3.4 無霧圖像的恢復(fù)
4 實(shí)驗(yàn)結(jié)果與分析
4.1 實(shí)驗(yàn)結(jié)果
4.2 不同算法去霧質(zhì)量的量化評估
Table 1 Comparison ofAG,PSNRof different algorithms5 結(jié) 論