(上海理工大學(xué)光電信息與計算機(jī)工程學(xué)院,上海 200093)
在日常生活中,霧霾天氣隨處可見。尤其近幾年,我國很多地區(qū)頻繁出現(xiàn)嚴(yán)重霧霾天氣。霧霾天氣對人們的出行和健康都會造成嚴(yán)重影響。首先,霧霾天氣會嚴(yán)重降低物體的可見度水平,使戶外圖像采集設(shè)備(如交通視頻監(jiān)控、攝像機(jī)、遙感衛(wèi)星等)采集到的圖像嚴(yán)重降質(zhì),如出現(xiàn)模糊不清、對比度低、邊緣模糊、顏色偏移與失真等現(xiàn)象[1],嚴(yán)重影響了圖像在交通、偵查及航海等方面的應(yīng)用。其次,霧霾中存在很多有害物質(zhì),這些物質(zhì)會嚴(yán)重影響人們身體健康。所以,在霧霾環(huán)境下,如何將降質(zhì)圖像恢復(fù)成原始圖像,是當(dāng)前需要解決的一個重要問題。
在模糊或多霧場景中,圖像去霧是恢復(fù)圖像的一種基本方法[2]。針對有霧圖像恢復(fù)技術(shù),人們提出了很多相關(guān)算法,現(xiàn)有圖像去霧方法主要包括基于物理模型的圖像復(fù)原和基于圖像處理技術(shù)的圖像增強(qiáng)兩大類[3]?;谖锢砟P偷膱D像復(fù)原方法主要是在霧霾條件下建立物理成像模型,分析圖像機(jī)理和降質(zhì)過程,根據(jù)降質(zhì)過程推導(dǎo)圖像退化原因,并運用有霧圖像的先驗知識恢復(fù)有霧圖像。在大氣物理散射模型中,圖像復(fù)原方法通常需要估計大氣光值、透射率等參數(shù),通過這些參數(shù)求出清晰圖像,從而恢復(fù)有霧圖像[4]?;谖锢砟P偷膱D像復(fù)原方法主要包括基于偏微分方程的去霧算法、基于先驗知識的去霧算法和基于場景深度的去霧算法等[5-7]。基于圖像處理技術(shù)的圖像增強(qiáng)方法主要是對有霧圖像本身進(jìn)行增強(qiáng),此類方法不需要考慮霧霾條件下的物理成像模型,而是通過突出強(qiáng)調(diào)有霧圖像亮度和色彩或提高有霧圖像的對比度,從而改善圖像視覺效果?;趫D像處理技術(shù)的圖像增強(qiáng)方法主要包括基于直方圖均衡化的去霧算法、基于Retinex 理論的去霧算法和基于同態(tài)濾波的去霧算法等[8-9]。
近年來,單幅圖像去霧技術(shù)取得了顯著進(jìn)展。例如,F(xiàn)attal 等[10]提出基于獨立分量分析(ICA)的彩色圖像去霧模型,由于該方法需要大量顏色信息,所以不適用于濃霧圖像;Tan 等[11]提出一種基于馬爾科夫隨機(jī)場(MRF)的圖像局部對比度最大化去霧方法,該方法有較好的去霧效果,但往往也會出現(xiàn)過飽和以及去霧不徹底等現(xiàn)象;He等[12]提出一種基于暗通道先驗(DCP)的單幅圖像去霧算法,但該算法不適用于天空等明亮區(qū)域,處理后的圖像會出現(xiàn)明顯的顏色失真現(xiàn)象;Meng 等[13]提出一種正則化圖像去霧算法,雖然該方法有明顯的去霧效果,但圖像去霧后邊緣會存在光暈偽影現(xiàn)象。
因此,針對現(xiàn)有算法存在的去霧不徹底、圖像周圍存在光暈偽影及顏色失真等問題,提出一種將圖像復(fù)原與圖像增強(qiáng)兩種思想相結(jié)合的算法,即基于暗通道先驗的Ret?inex 去霧算法。首先,利用改進(jìn)的暗通道先驗算法得到初步去霧圖像;其次,對初步去霧圖像進(jìn)行Retinex 圖像增強(qiáng)處理;最后,運用還原函數(shù)恢復(fù)色彩,避免出現(xiàn)顏色失真現(xiàn)象。
暗通道先驗(DCP)理論由He 等[12]提出,其研究了大量室外清晰圖像,經(jīng)多次研究發(fā)現(xiàn),大多數(shù)圖像區(qū)域(除天空區(qū)域與白色區(qū)域外)都有一個最小值近似于0 的像素通道,后來其將該發(fā)現(xiàn)定義為暗通道先驗理論。
在計算機(jī)視覺理論中,模糊圖像的大氣物理散射模型可表示為:
其中,I(x)、J(x)分別為有霧圖像和無霧圖像,t(x)為透射率,A為大氣光值。根據(jù)式(1)可得出,若模糊圖像I(x)已知,并且能夠獲得圖像的大氣光值A(chǔ)和透射率t(x),則可求出原始無霧圖像。
暗通道先驗算法步驟如下:
(1)獲取暗通道圖像。根據(jù)以下公式可得出:
從式(2)可以看出,要想獲取暗通道圖像,首先必須求出輸入圖像3 個通道(分別為R、G、B)中的最小值,然后將求出的最小值組成灰度圖,并進(jìn)行最小值濾波處理,得到的圖像即為暗通道圖像。其中,Jdark(x)為暗通道圖像,Ω(x)是以x為中心的集中區(qū)域,Jc(c)表示J(c)的顏色通道。
(2)粗略估計透射率。
其中,ω為霧的保留系數(shù),通常ω取值范圍為[0.7,0.95],本文取ω的值為0.95。
(3)采用導(dǎo)向濾波對透射率進(jìn)行細(xì)化處理。由于根據(jù)式(3)估計出的透射率值比較粗糙,導(dǎo)致處理后的圖像不清晰,所以需進(jìn)一步對透射率進(jìn)行細(xì)化操作。He 等[12]首先提出運用軟摳圖法對透射率t(x)進(jìn)行細(xì)化,但該方法的計算復(fù)雜度和時間復(fù)雜度較高。其后來又提出采用導(dǎo)向濾波代替軟摳圖法,該方法與軟摳圖法相比,顯著優(yōu)化了計算復(fù)雜度和時間復(fù)雜度,并且在邊緣保持方面效果較好。因此,本文采用導(dǎo)向濾波對透射率進(jìn)行細(xì)化操作。
(4)估計大氣光值。首先在暗通道中獲取亮度最高的0.1% 的像素點,然后在原始圖像中,根據(jù)這些像素點位置選出亮度最高的點,最后將有霧圖像中3 個通道的最大像素值作為大氣光值A(chǔ)。
(5)初步復(fù)原圖像。由于當(dāng)圖像中存在大片較亮(如天空、水面等)區(qū)域時,經(jīng)原始暗通道先驗?zāi)P吞幚砗蟮膱D像會出現(xiàn)塊狀現(xiàn)象,所以為避免該現(xiàn)象,本文引入數(shù)值t0,即容差解決該問題。求解公式如下:
本文取t0的值為0.2。根據(jù)式(4)對3 個通道分別進(jìn)行去霧處理,即可求出初步復(fù)原圖像。
采用改進(jìn)的暗通道先驗去霧算法對有霧圖像進(jìn)行處理后得到初步復(fù)原圖像的可見度水平有一定程度提高,但存在圖像細(xì)節(jié)信息丟失、色調(diào)整體偏暗、對比度不高、邊緣部分出現(xiàn)光暈等問題。所以針對這些問題,需對初步復(fù)原圖像進(jìn)一步進(jìn)行Retinex 增強(qiáng)處理。
基于顏色恒常性的Retinex 理論是由Edwin 首次提出的,該理論以人眼視覺系統(tǒng)為基礎(chǔ),認(rèn)為人們一般不會感知到物體的絕對亮度,感知到的只是相對亮度[14]。Retinex理論的主要目標(biāo)是將原始有霧圖像分解成兩個不同分量,即決定動態(tài)范圍的照度分量和決定固有特性的反射分量。換句話說,即把人類視覺系統(tǒng)感知到的圖像看作照度圖像和反射圖像的乘積,其數(shù)學(xué)表達(dá)式可表示為:
其中,I(x,y)、L(x,y)分別為原始圖像和照度分量,L(x,y)滿足L(x,y)∈(0,∞);R(x,y)為反射分量,滿足R(x,y)∈(0,1]。在求解反射分量的過程中,為避免運算量較大的乘法運算,通常將R(x,y)的估計轉(zhuǎn)換到log 域中進(jìn)行,即:
若想獲得具有大量細(xì)節(jié)信息的反射分量估計值R(x,y),首先必須求出照度分量L(x,y)。Jobson 等提出照度分量是由原始圖像與高斯濾波函數(shù)作卷積運算得到的,根據(jù)中心環(huán)繞思想可得出以下公式:
其中,* 為卷積運算符號,G(x,y)為低通濾波器,用來估計照度圖像。
多尺度Retinex 算法公式如下:
其中,ωn為權(quán)重值,δn為濾波尺度常量,k由歸一化函數(shù)決定。
(1)計算初步復(fù)原圖像的亮度圖像。首先采用加權(quán)平均法求出初步復(fù)原圖像的亮度圖像,將其作為該算法的初始圖像。
(2)估計照度分量,求出反射分量。采用引導(dǎo)濾波對步驟(1)中求得的亮度圖像作平滑處理,估計出照度分量,然后在對數(shù)域中求出反射分量。
在Retinex 算法中,常用的環(huán)繞函數(shù)為高斯濾波函數(shù),但采用該函數(shù)對照度分量進(jìn)行處理后,得到的圖像往往存在光暈偽影,所以后來有研究者提出利用雙邊濾波代替高斯濾波,不僅可以保留圖像細(xì)節(jié)信息,還有效避免了光暈偽影現(xiàn)象[15]。但相比引導(dǎo)濾波,雙邊濾波的運算量和時間復(fù)雜度相對較高,并且引導(dǎo)濾波在邊緣保持方面優(yōu)于雙邊濾波。所以,本文采用引導(dǎo)濾波代替雙邊濾波,對照度分量進(jìn)行處理,并求出反射分量,求解公式可表示為:
f(x)為引導(dǎo)濾波函數(shù),其公式可表示為:
其中,qi為窗口內(nèi)輸出的像素值,Ωk是一個面積為(2r+1)×(2r+1)的正方形區(qū)塊,系數(shù)ak、bk為常數(shù),通過最小化目標(biāo)函數(shù)加以確定。根據(jù)最小二乘法,局部線性函數(shù)系數(shù)ak、bk可采用以下公式進(jìn)行求解:
其中,wk為當(dāng)前窗口,為像素總數(shù),μk、σk分別為圖像I在wk中的均值和標(biāo)準(zhǔn)差,ε是正則化參數(shù)。將式(12)應(yīng)用到整幅圖像,即可得到引導(dǎo)濾波函數(shù)為:
將式(15)代入式(11)可求出反射分量R(x,y)。
另外,本文根據(jù)濾波圖像尺寸大小與尺度個數(shù)之間的數(shù)量關(guān)系,自適應(yīng)設(shè)置Retinex 算法尺度參數(shù),利用引導(dǎo)濾波獲取多尺度反射分量。其中設(shè)置3 個尺度參數(shù),即為小、中、大,且各尺度范圍分別為:[1,rmin]、[rmin,rmid]和[rmid,rmax],具體公式定義如下:
其中,m、n為濾波圖像尺寸大小,k為尺度個數(shù),取值為3。
(3)對反射分量進(jìn)行S型函數(shù)增強(qiáng)、全局自適應(yīng)對比度調(diào)整、Gamma 亮度調(diào)整等一系列操作。
在反射分量中存在大量圖像細(xì)節(jié)信息,所以為獲得圖像細(xì)節(jié)信息,需進(jìn)一步對反射分量進(jìn)行增強(qiáng)處理。本算法利用S型函數(shù)增加去霧圖像細(xì)節(jié)信息,公式定義如下:
其中,ω為求出的反射分量,由于ω在log 域中,所以ω可能取負(fù)值,本文設(shè)置ω的取值范圍為[-1,1];a為參數(shù),a取值不同,增強(qiáng)效果也不同,圖1 表示a取不同值時S型函數(shù)的對應(yīng)圖像。由圖可看出,a值越大,圖像越陡,圖像增強(qiáng)效果也越明顯。經(jīng)多次實驗得出,當(dāng)a=6 時,圖像增強(qiáng)效果最明顯。
由于經(jīng)暗通道先驗算法處理后的圖像整體對比度和亮度都偏低,所以需進(jìn)一步處理初步復(fù)原圖像以提高圖像對比度和亮度。
為了提高圖像對比度,根據(jù)輸入圖像本身的全局亮度進(jìn)行自適應(yīng)調(diào)整,具體公式如下:
其中,Lw(x,y)為輸入圖像亮度值,為亮度對數(shù)均值,Lwmax為圖像亮度最大值。
為提高圖像亮度值,采用改進(jìn)的非線性全局Gamma函數(shù)進(jìn)行亮度調(diào)整,公式如下:
其中,R(x) 為亮度調(diào)整后的圖像,x為輸入圖像,a為調(diào)整參數(shù),Gamma 函數(shù)映射圖如圖2 所示。
Fig.1 Sigmoid function mapping圖1 S 型函數(shù)映射
Fig.2 Gamma function mapping圖2 Gamma 函數(shù)映射
由圖2 可以看出,a取值越小,圖像亮度增強(qiáng)效果也越明顯。經(jīng)多次實驗得出,當(dāng)a=0.6 時,效果最佳。另外,從圖2 也可以看出,當(dāng)a取值為0.6 時,較低亮度區(qū)域位于函數(shù)y=x的上方,較高亮度區(qū)域位于函數(shù)y=x的下方,說明該函數(shù)不但能有效增強(qiáng)低亮度區(qū)域,還能防止過度增強(qiáng)現(xiàn)象。
(4)顏色恢復(fù)函數(shù)。首先求出A=max(IR[i],IG[i],IB[i]),然后求出放大因子:。其中,R'為輸入圖像,Int為亮度圖像。接下來計算每個通道:
R=M?IR[i]
G=M?IG[i]
B=M?IB[i]
最后將3 個通道進(jìn)行整合,得到恢復(fù)后的去霧清晰圖像。
為驗證提出的基于暗通道先驗的Retinex 去霧算法的有效性,對300 幅有霧圖像進(jìn)行處理,并分別從主觀視覺效果和客觀質(zhì)量評價兩方面進(jìn)行驗證。將本文算法與現(xiàn)有算法(He 算法、Tan 算法、Wang 算法和Fattal 算法)處理結(jié)果進(jìn)行比較。
首先,從主觀角度對比幾種算法,效果如圖3-圖5 所示。
從3 組圖片可以看出,經(jīng)He 算法和Tan 算法處理后,雖然圖像整體清晰度有所改善,但圖像較亮區(qū)域(天空、水面等)出現(xiàn)了塊狀模糊和光暈現(xiàn)象;經(jīng)Wang 算法處理后,圖像丟失了很多細(xì)節(jié)信息,圖像色調(diào)整體偏暗;經(jīng)Fattal 算法處理后,圖像顏色偏亮泛白,去霧不徹底,同時出現(xiàn)了明顯的顏色失真現(xiàn)象;經(jīng)本文算法處理后,圖像清晰度明顯提高,有效避免了顏色失真現(xiàn)象,細(xì)節(jié)信息和亮度值也在一定程度上有所提高??傮w而言,從主觀視覺角度來看,本文算法明顯優(yōu)于其它算法。
Fig.3 Different algorithms for fog removal effects of image 1圖3 圖像1 不同算法去霧效果
Fig.4 Different algorithms for fog removal effects of image 2圖4 圖像2 不同算法去霧效果
Fig.5 Different algorithms for fog removal effects of image 3圖5 圖像3 不同算法去霧效果
采用圖像均值、對比度、平均梯度和信息熵對本文算法進(jìn)行客觀評價。
圖像均值用于表示圖像平均亮度的變化,均值公式如下:
其中,M、N為圖像尺寸。
對比度用于評價圖像整體對比度,對比度越高,圖像越清晰。對比度公式如下:
其中,n=|i-j|,為灰度共生矩陣。
平均梯度用于評價圖像整體模糊程度,平均梯度值越大,細(xì)節(jié)信息越多,邊緣保持效果越好。平均梯度公式如下:
其中,M、N表示處理圖像的大小。
信息熵用于評價圖像細(xì)節(jié)表現(xiàn)能力,信息熵值越大,說明處理后圖像保留的細(xì)節(jié)信息越多,信息熵公式如下:
其中,i為像素值,pi為i出現(xiàn)的概率。
然后,采用客觀評價標(biāo)準(zhǔn)對比幾種算法,對比結(jié)果如表1-表3 所示。
Table 1 Objective evaluation criteria for image-one表1 圖1 客觀評價標(biāo)準(zhǔn)
Table 2 Objective evaluation criteria for image-two表2 圖2 客觀評價標(biāo)準(zhǔn)
Table 3 Objective evaluation criteria for image-three表3 圖3 客觀評價標(biāo)準(zhǔn)
從亮度和對比度可以看出,本文算法在平均亮度和對比度上都有一定程度提高,明顯優(yōu)于現(xiàn)有其它去霧算法。從平均梯度和信息熵可以看出,本文算法的平均梯度和信息熵值增大,說明本文算法相比其它算法具有較好的邊緣保持和細(xì)節(jié)增強(qiáng)效果,處理后的圖像可見度也較高,圖像效果更加自然。
針對現(xiàn)有圖像去霧算法去霧不徹底及對比度低等問題,本文提出一種基于暗通道先驗的Retinex 去霧算法,該算法將圖像復(fù)原與圖像增強(qiáng)兩大類思想相結(jié)合。首先,采用改進(jìn)的暗通道先驗算法對有霧圖像進(jìn)行初步處理,用導(dǎo)向濾波代替軟摳圖細(xì)化透射率,并對圖像復(fù)原公式進(jìn)行改進(jìn),得到初步去霧圖像;其次,采用Retinex 算法對其進(jìn)行增強(qiáng)處理,利用引導(dǎo)濾波對照度分量進(jìn)行處理,求出反射分量;然后,利用S 型曲線、全局自適應(yīng)對比度與改進(jìn)的Gamma 校正函數(shù)對反射分量進(jìn)行處理,最終實現(xiàn)了細(xì)節(jié)增強(qiáng),同時有效解決了圖像周圍存在光暈偽影等問題;最后,運用還原函數(shù)還原圖像色彩。實驗結(jié)果表明,本文算法平均亮度相比其它算法至少提高了1.79%,對比度至少提高了1.07%,平均梯度和信息熵值分別至少提高了4.8% 和4.79%。說明本文算法相比其它算法具有較好的邊緣保持和細(xì)節(jié)增強(qiáng)效果,處理后的圖像顏色也相對自然,為圖像去霧技術(shù)提供了一種新思路。