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