張振華 陸金桂
(南京工業(yè)大學(xué)機(jī)械動(dòng)力與工程學(xué)院 江蘇 南京 211816)
計(jì)算機(jī)視覺科學(xué)技術(shù)在日常生活中的重要性與日俱增,而戶外采集圖像系統(tǒng)(例如攝像機(jī)、公共安全監(jiān)控、道路監(jiān)控等)極易受霧霾惡劣天氣影響,導(dǎo)致采集的圖像對(duì)比度低、可讀性差,無法滿足要求。近年來,由于尾氣過量排放、森林砍伐、環(huán)境污染等原因,霧霾天等惡劣天氣越來越頻繁發(fā)生,戶外采集系統(tǒng)所采集圖像的視覺效果難以令人滿意,因此對(duì)霧天圖像增強(qiáng)的研究有著重要意義[1-2]。
圖像增強(qiáng)最常用的方法有線性拉伸[3-4]、HE法[5]、同態(tài)濾波[6]和反銳化掩膜法[7]等。以上方法在增強(qiáng)圖像時(shí),都存在著過度增強(qiáng)噪聲的缺點(diǎn)。小波分析因具有多分辨率分析能力[8-9],可以將噪聲與信號(hào)進(jìn)行初步分離,許多學(xué)者將其應(yīng)用于霧天圖像的增強(qiáng)。文獻(xiàn)[10]提出了一種小波變換和CLAHE結(jié)合的霧天圖像增強(qiáng)算法。文獻(xiàn)[11]提出了一種結(jié)合小波變換和HE法的霧天圖像增強(qiáng)算法。文獻(xiàn)[12]提出了一種基于小波變換和非線性變換的霧天圖像增強(qiáng)算法。文獻(xiàn)[13]提出了一種結(jié)合小波變換和閾值函數(shù)的霧天圖像增強(qiáng)方法。Kim等[14]提出了一種小波變換結(jié)合暗通道先驗(yàn)的霧天圖像增強(qiáng)算法。Yang等[15]提出了一種小波變換結(jié)合軟閾值去噪的圖像增強(qiáng)方法。Kansal等[16]提出了一種小波變換結(jié)合閾值分割技術(shù)的霧天圖像增強(qiáng)算法。He等[17]提出了一種基于小波變換和正則化優(yōu)化的霧天圖像增強(qiáng)算法。上述基于小波變換的霧天圖像增強(qiáng)方法都難以在增強(qiáng)圖像細(xì)節(jié)和抑制霧霾噪聲之間取得平衡,會(huì)出現(xiàn)過度放大噪聲或者損失圖像細(xì)節(jié)的問題。
Retinex理論[18-19]是在20世紀(jì)70年代被提出的,其假設(shè)一幅圖像可以用目標(biāo)反射函數(shù)和環(huán)境亮度函數(shù)的乘積表示,改變兩者在原圖中的比重,就可以抑制噪聲增強(qiáng)圖像細(xì)節(jié)[20]。文獻(xiàn)[21-22]將其應(yīng)用于圖像增強(qiáng)中。
本文提出了一種基于小波變換和改進(jìn)的Retniex的霧天圖像增強(qiáng)算法,可以有效地增強(qiáng)霧天圖像并且消除霧霾噪聲。首先,它利用小波變換良好的多分辨率分析能力,將原始圖像分解為低頻子帶圖和高頻子帶圖;其次,使用雙邊濾波改進(jìn)傳統(tǒng)的單尺度Retinex算法,解決其局部細(xì)節(jié)丟失的缺點(diǎn),使用改進(jìn)的Retinex算法處理低頻子帶圖,去除霧霾噪聲;然后,使用模糊規(guī)則增強(qiáng)算法,結(jié)合高頻子帶圖局部特性設(shè)計(jì)不同的增強(qiáng)系數(shù)對(duì)其進(jìn)行增強(qiáng);最后,進(jìn)行小波逆變換,得到最終結(jié)果。
在天氣良好條件下,空氣中粒子成分主要是大氣組成分子(氧氣、氮?dú)?、二氧化碳?和微粒(懸浮固體顆粒、小水滴等)。這種條件下,大氣中分子和微粒反射、散射、吸收太陽光的能力較弱,戶外圖像采集系統(tǒng)可以獲得充足光亮,捕捉到的像質(zhì)清晰,視覺效果較好。而在霧霾惡劣天氣下,空氣中微粒半徑較大,半徑較大的微粒對(duì)太陽光的反射、散射吸收能力較強(qiáng),戶外圖像采集系統(tǒng)無法獲得充足光亮,最終導(dǎo)致圖像細(xì)節(jié)模糊不清,成像較差。所以霧霾天氣條件下,大氣混濁,光線衰減程度大,導(dǎo)致視野混濁,遠(yuǎn)處景物模糊不清。
基于小波變換的霧天圖像增強(qiáng)方法,使用小波變換的多分辨分析能力,將霧天圖像分解為低頻子帶圖和高頻子帶圖,然后根據(jù)其特點(diǎn)對(duì)不同的部分設(shè)計(jì)不同的處理方法。低頻部分包含了霧天圖像的大部分噪聲,高頻部分對(duì)應(yīng)圖像的細(xì)節(jié)部分。
二維圖像經(jīng)小波分解可以分解為4個(gè)子圖像:
Lif(x,y)=
(1)
(2)
(3)
(4)
圖1是小波分解示意圖,小波重構(gòu)按相反過程進(jìn)行。其中:LL1表示原圖的低頻子帶圖,保持了原圖的主要信息,集中了原圖像的絕大部分的噪聲;HL1為水平方向邊緣信息的子帶圖;LH1為垂直方向邊緣信息的高頻子帶圖;HH1為對(duì)角線方向綜合信息的高頻子帶圖。高頻子帶圖反映了圖像的細(xì)節(jié)信息,如何增強(qiáng)高頻子帶圖是圖像增強(qiáng)的關(guān)鍵問題。對(duì)LL1再次分解即可得到LL2、HL2、LH2、HH2四個(gè)子圖像[23-24]。
圖1 霧天圖像的二層小波變換分解圖
在對(duì)霧天圖像的處理中,Retinex算法可以將照射分量從原始圖像中分離出來,然后將其去除,即可得到表示細(xì)節(jié)信息的反射分量。但Retinex算法是對(duì)圖像整體處理,缺乏針對(duì)性,無法較好地去除圖像中的霧霾噪聲。
Retinex理論認(rèn)為,一幅圖像可以由照射分量和反射分量乘積表示,其數(shù)學(xué)表達(dá)式為:
I(x,y)=L(x,y)·R(x,y)
(5)
式中:I(x,y)為輸入的圖像;L(x,y)為照射分量;R(x,y)為反射分量。為了消除照射分量的影響,恢復(fù)真實(shí)場景,對(duì)式(5)的兩邊取對(duì)數(shù)得:
lgI(x,y)=lgL(x,y)+lgR(x,y)
(6)
為了估算出照射分量,使用高斯濾波和原圖進(jìn)行卷積運(yùn)算,最終得到單尺度的Retinex算法公式:
R′(x,y)=lgI(x,y)-lg[F(x,y)*I(x,y)]
(7)
傳統(tǒng)的單尺度Retinex算法中的高斯濾波器在濾波計(jì)算過程中僅考慮各像素點(diǎn)的距離信息,即認(rèn)為在窗口鄰域內(nèi),離中心點(diǎn)近的點(diǎn)其權(quán)重系數(shù)大,反之則權(quán)重系數(shù)小。
這種僅考慮距離的計(jì)算方法,在像素灰度值沒有明顯變化的平坦區(qū)域是可行的,但若在邊緣區(qū)域,像素的灰度值存在躍變,中心點(diǎn)兩側(cè)的像素灰度值會(huì)有顯著差異,該計(jì)算方法會(huì)損失圖像邊緣信息。
除了空間距離因素,各像素灰度值的差異也是雙邊濾波器在濾波過程中參考的重要因素,即灰度因子。在濾波計(jì)算的窗口內(nèi),和中心點(diǎn)灰度值差異越小的點(diǎn)權(quán)重越大,反之越小,這種計(jì)算方法更為合理,圖像邊緣信息得以保護(hù)。
實(shí)驗(yàn)證明:使用雙邊濾波的Retinex算法對(duì)圖像進(jìn)行增強(qiáng),可以避免損失圖像邊緣細(xì)節(jié)信息,得到令人滿意的增強(qiáng)效果。
雙邊濾波對(duì)輸入圖像照射分量的估計(jì)如下:
(8)
λ[(x,y),(x′,y′)]=λs[(x,y),(x′,y′)]·
λr[(x,y),(x′,y′)]
(9)
(10)
(11)
實(shí)驗(yàn)中發(fā)現(xiàn),如果將圖像中的照射分量完全去除,增強(qiáng)后的圖像會(huì)顯得不自然,因此在去除照射分量的計(jì)算過程中,引入權(quán)值α(0<α<1),其表達(dá)式如下:
(12)
低頻子帶圖增強(qiáng)過程如下:
1) 因單尺度Retinex算法的輸入必須是灰度圖,故將有正有負(fù)的低頻子帶圖系數(shù)全部轉(zhuǎn)換到0~255范圍:
(13)
式中:Imin和Imax代表系數(shù)的最大值和最小值;I′(i,j)為映射后結(jié)果。
2) 將I′(i,j)作為輸入,根據(jù)式(12)進(jìn)行增強(qiáng)。
3) 將處理后的低頻子帶圖系數(shù)映射回(Imin,Imax)范圍內(nèi)。
霧天圖像經(jīng)小波分解后的高頻分量對(duì)應(yīng)圖像的細(xì)節(jié)信息,傳統(tǒng)的全局增強(qiáng)算法如HE算法,線性對(duì)比度拉升,在對(duì)圖像進(jìn)行增強(qiáng)時(shí),容易出現(xiàn)放大噪聲、圖像過度增強(qiáng)問題。因此本文根據(jù)模糊規(guī)則和高頻子帶圖中像素點(diǎn)的局部特性計(jì)算其增強(qiáng)系數(shù),針對(duì)圖像中的局部信息的特點(diǎn),進(jìn)行不同程度的增強(qiáng)。具體步驟如下:
1) 計(jì)算高頻子帶圖局部對(duì)比度,窗口大小為3×3,公式如下:
(14)
式中:D(i,j)表示子帶圖的局部對(duì)比度;Imax為窗口內(nèi)最大灰度值;Imin為窗口內(nèi)最小灰度值。
2) 計(jì)算隸屬度ηt(t=1,2,3)(η1為低細(xì)節(jié)區(qū)域隸屬度,η2為中細(xì)節(jié)區(qū)域隸屬度,η3為高細(xì)節(jié)區(qū)域隸屬度)。
局部對(duì)比度D(i,j)在圖像的平坦區(qū)域和細(xì)節(jié)區(qū)域會(huì)有不同,比如在像素灰度值沒有顯著變化的平坦區(qū)域,D(i,j)的值比較小。在像素灰度值出現(xiàn)躍變的細(xì)節(jié)區(qū)域,D(i,j)的值比較大。低、中、高細(xì)節(jié)區(qū)域無法精確劃分,所以根據(jù)每個(gè)像素的局部對(duì)比度的大小來計(jì)算其每一種隸屬度的大小,具體計(jì)算公式如下:
ηt(i,j)=4sigm{as[D(i,j)-bs]}×
sigm{-as[D(i,j)-bs]}
s=1,2,3D(i,j)∈[0,1]
(15)
式中:sigm(x)=1/[1+exp(-x)]。式(15)中的參數(shù)可通過實(shí)驗(yàn)和經(jīng)驗(yàn)確定:a1=a3=20,a2=30,b1=0,b2=0.8,b3=1。
3) 計(jì)算增強(qiáng)系數(shù)。實(shí)驗(yàn)結(jié)果表明,對(duì)中細(xì)節(jié)區(qū)域進(jìn)行重點(diǎn)增強(qiáng)處理,圖像視覺效果最佳。設(shè)低、中、高區(qū)域的增強(qiáng)因子分為λlow、λmid、λhigh。將第2步中計(jì)算得到的隸屬度作為權(quán)值,計(jì)算各點(diǎn)的最終增強(qiáng)系數(shù),公式如下:
(16)
實(shí)驗(yàn)發(fā)現(xiàn):取λlow=λhigh=1.5、λmid=3時(shí),可以對(duì)圖像達(dá)到理想增強(qiáng)效果。
4) 對(duì)高頻子帶圖進(jìn)行增強(qiáng):
f′(i,j)=λ[η(i,j)]×f(i,j)
(17)
式中:f′(i,j)表示增強(qiáng)后小波系數(shù);f(i,j)表示原始小波系數(shù)。
1) 使用sym4小波將霧天圖像分解為低頻和高頻兩部分;2) 使用改進(jìn)的Retinex算法對(duì)低頻子帶圖進(jìn)行去噪增強(qiáng);3) 根據(jù)高頻子帶圖的局部特性,設(shè)計(jì)合適的增強(qiáng)系數(shù)進(jìn)行增強(qiáng);4) 將處理后的兩部分進(jìn)行小波逆變換,得到增強(qiáng)后的霧天圖像。
圖2 算法流程圖
本文的實(shí)驗(yàn)平臺(tái)為英特爾奔騰@3.50 GHz處理器,內(nèi)存8.00 GB,Windows 10操作系統(tǒng),算法使用MATLAB 2016a編寫。為驗(yàn)證本文算法,選取不同類型場景、不同景深、不同視野范圍的200幅圖片作為實(shí)驗(yàn)數(shù)據(jù)庫。
所有霧天圖像分別使用HE算法、小波結(jié)合HE算法、改進(jìn)的Retinex算法和本文方法進(jìn)行處理并比較分析。
本文算法實(shí)驗(yàn)參數(shù):小波基選擇sym4小波;改進(jìn)的Retinex:卷積窗口大小5×5,σs=65,σr=15,α=0.5;模糊規(guī)則增強(qiáng):a1=a3=20,a2=30,b1=0,b2=0.8,b3=1。λlow=λhigh=1.5,λmid=3。
為了便于直觀理解,現(xiàn)從實(shí)驗(yàn)數(shù)據(jù)庫中選擇三組代表性的圖片進(jìn)行展示,如圖3所示,(a)、(b)、(c)分別為場景復(fù)雜多目標(biāo)物的某小區(qū)道路監(jiān)控圖像、景深開闊大視野的城市郊區(qū)圖像、單一目標(biāo)物小視野的某建筑物外觀圖。各算法對(duì)霧天圖像的處理結(jié)果如圖4-圖7所示。
(a) (b) (c)圖3 原始圖像
(a) (b) (c)圖4 HE算法對(duì)霧天圖像處理結(jié)果
(a) (b) (c)圖5 小波+HE算法對(duì)霧天圖像處理結(jié)果
(a) (b) (c)圖6 改進(jìn)的Retinex算法對(duì)霧天圖像處理結(jié)果
(a) (b) (c)圖7 本文算法對(duì)霧天圖像處理結(jié)果
從視覺效果看,HE算法處理的圖像雖然抑制了一部分霧霾噪聲(圖4(b)),改善了圖像的對(duì)比度,比如圖中遠(yuǎn)處的道路、河流變得清晰,但是圖像局部細(xì)節(jié)消失,近處的花草樹木基本消失,淹沒在陰影里,圖像視覺效果較差。小波結(jié)合HE算法一定程度上去除了圖像中的霧霾噪聲(圖5(b)),圖中景物變得略微清晰均勻,但是圖像細(xì)節(jié)沒有得到有效增強(qiáng),整體上看并不清晰,圖像可讀性不能令人滿意。改進(jìn)的Retinex方法在去除噪聲方面取得了一定的效果(圖6(b)),景物輪廓顯現(xiàn)出來,但是圖像整體偏白,圖像對(duì)比度沒有得到改善,整體視覺效果一般。采用本文提出的方法處理的圖像霧霾噪聲去除效果明顯(圖7(b)),圖像細(xì)節(jié)顯著增強(qiáng),圖中的道路、樹木輪廓變得立體清晰,視覺效果良好。
為了客觀評(píng)價(jià)算法性能,現(xiàn)選擇信息熵作為客觀指標(biāo)。信息熵表示圖像包含的平均信息量(見表1),對(duì)霧天圖像的增強(qiáng)中,其值越大,表明圖像內(nèi)容豐富,對(duì)圖像噪聲的去除效果好,圖像質(zhì)量好。其表達(dá)式為:
(18)
表1 經(jīng)不同算法增強(qiáng)之后的圖片的信息熵
可以看出,4種算法對(duì)霧天圖像的增強(qiáng)有不同程度的效果。與其他3種方法相比,圖像經(jīng)本文方法處理后,信息熵提升效果最佳,說明處理后的圖像細(xì)節(jié)信息豐富,圖像去噪效果好,圖像細(xì)節(jié)得到了較大增強(qiáng)。由此可見,本文方法對(duì)霧天圖像的增強(qiáng)效果較為理想。
針對(duì)現(xiàn)有基于小波變換的霧天圖像增強(qiáng)算法在抑制噪聲和增強(qiáng)圖像細(xì)節(jié)兩者之間無法取得令人滿意的結(jié)果,本文提出了一種結(jié)合小波變換和改進(jìn)的Retinex的霧天增強(qiáng)方法。
1) 使用sym4小波分解霧天圖像,得到低頻子帶圖和高頻子帶圖,對(duì)高頻子帶圖和低頻子帶圖設(shè)計(jì)針對(duì)性算法分別處理,最后進(jìn)行小波重構(gòu),得到增強(qiáng)圖像。
2) 為了更好地處理低頻子帶圖,本文對(duì)傳統(tǒng)的Retinex算法進(jìn)行改進(jìn),用具有邊緣保護(hù)性的雙邊濾波替代高斯濾波估計(jì)低頻子帶圖的照射分量,解決了傳統(tǒng)的Retinex算法容易導(dǎo)致圖像邊緣細(xì)節(jié)模糊的缺點(diǎn);用改進(jìn)的Retinex的算法對(duì)低頻部分進(jìn)行處理。針對(duì)高頻部分,傳統(tǒng)的全局增強(qiáng)算法容易放大噪聲、過增強(qiáng)問題,而本文根據(jù)圖像局部特性,設(shè)計(jì)不同的增強(qiáng)系數(shù)以達(dá)到最優(yōu)的增強(qiáng)效果。
實(shí)驗(yàn)表明,本文算法不僅有效增強(qiáng)了霧天圖像細(xì)節(jié)信息,而且抑制了圖像中的霧霾噪聲,在去噪和增強(qiáng)細(xì)節(jié)之間取得了較好的平衡,綜合效果優(yōu)于對(duì)比算法。