(上海理工大學光電信息與計算機工程學院,上海 200093)
在日常生活中,霧霾天氣隨處可見。尤其近幾年,我國很多地區頻繁出現嚴重霧霾天氣。霧霾天氣對人們的出行和健康都會造成嚴重影響。首先,霧霾天氣會嚴重降低物體的可見度水平,使戶外圖像采集設備(如交通視頻監控、攝像機、遙感衛星等)采集到的圖像嚴重降質,如出現模糊不清、對比度低、邊緣模糊、顏色偏移與失真等現象[1],嚴重影響了圖像在交通、偵查及航海等方面的應用。其次,霧霾中存在很多有害物質,這些物質會嚴重影響人們身體健康。所以,在霧霾環境下,如何將降質圖像恢復成原始圖像,是當前需要解決的一個重要問題。
在模糊或多霧場景中,圖像去霧是恢復圖像的一種基本方法[2]。針對有霧圖像恢復技術,人們提出了很多相關算法,現有圖像去霧方法主要包括基于物理模型的圖像復原和基于圖像處理技術的圖像增強兩大類[3]?;谖锢砟P偷膱D像復原方法主要是在霧霾條件下建立物理成像模型,分析圖像機理和降質過程,根據降質過程推導圖像退化原因,并運用有霧圖像的先驗知識恢復有霧圖像。在大氣物理散射模型中,圖像復原方法通常需要估計大氣光值、透射率等參數,通過這些參數求出清晰圖像,從而恢復有霧圖像[4]。基于物理模型的圖像復原方法主要包括基于偏微分方程的去霧算法、基于先驗知識的去霧算法和基于場景深度的去霧算法等[5-7]。基于圖像處理技術的圖像增強方法主要是對有霧圖像本身進行增強,此類方法不需要考慮霧霾條件下的物理成像模型,而是通過突出強調有霧圖像亮度和色彩或提高有霧圖像的對比度,從而改善圖像視覺效果?;趫D像處理技術的圖像增強方法主要包括基于直方圖均衡化的去霧算法、基于Retinex 理論的去霧算法和基于同態濾波的去霧算法等[8-9]。
近年來,單幅圖像去霧技術取得了顯著進展。例如,Fattal 等[10]提出基于獨立分量分析(ICA)的彩色圖像去霧模型,由于該方法需要大量顏色信息,所以不適用于濃霧圖像;Tan 等[11]提出一種基于馬爾科夫隨機場(MRF)的圖像局部對比度最大化去霧方法,該方法有較好的去霧效果,但往往也會出現過飽和以及去霧不徹底等現象;He等[12]提出一種基于暗通道先驗(DCP)的單幅圖像去霧算法,但該算法不適用于天空等明亮區域,處理后的圖像會出現明顯的顏色失真現象;Meng 等[13]提出一種正則化圖像去霧算法,雖然該方法有明顯的去霧效果,但圖像去霧后邊緣會存在光暈偽影現象。
因此,針對現有算法存在的去霧不徹底、圖像周圍存在光暈偽影及顏色失真等問題,提出一種將圖像復原與圖像增強兩種思想相結合的算法,即基于暗通道先驗的Ret?inex 去霧算法。首先,利用改進的暗通道先驗算法得到初步去霧圖像;其次,對初步去霧圖像進行Retinex 圖像增強處理;最后,運用還原函數恢復色彩,避免出現顏色失真現象。
暗通道先驗(DCP)理論由He 等[12]提出,其研究了大量室外清晰圖像,經多次研究發現,大多數圖像區域(除天空區域與白色區域外)都有一個最小值近似于0 的像素通道,后來其將該發現定義為暗通道先驗理論。
在計算機視覺理論中,模糊圖像的大氣物理散射模型可表示為:

其中,I(x)、J(x)分別為有霧圖像和無霧圖像,t(x)為透射率,A為大氣光值。根據式(1)可得出,若模糊圖像I(x)已知,并且能夠獲得圖像的大氣光值A和透射率t(x),則可求出原始無霧圖像。
暗通道先驗算法步驟如下:
(1)獲取暗通道圖像。根據以下公式可得出:

從式(2)可以看出,要想獲取暗通道圖像,首先必須求出輸入圖像3 個通道(分別為R、G、B)中的最小值,然后將求出的最小值組成灰度圖,并進行最小值濾波處理,得到的圖像即為暗通道圖像。其中,Jdark(x)為暗通道圖像,Ω(x)是以x為中心的集中區域,Jc(c)表示J(c)的顏色通道。
(2)粗略估計透射率。

其中,ω為霧的保留系數,通常ω取值范圍為[0.7,0.95],本文取ω的值為0.95。
(3)采用導向濾波對透射率進行細化處理。由于根據式(3)估計出的透射率值比較粗糙,導致處理后的圖像不清晰,所以需進一步對透射率進行細化操作。He 等[12]首先提出運用軟摳圖法對透射率t(x)進行細化,但該方法的計算復雜度和時間復雜度較高。其后來又提出采用導向濾波代替軟摳圖法,該方法與軟摳圖法相比,顯著優化了計算復雜度和時間復雜度,并且在邊緣保持方面效果較好。因此,本文采用導向濾波對透射率進行細化操作。
(4)估計大氣光值。首先在暗通道中獲取亮度最高的0.1% 的像素點,然后在原始圖像中,根據這些像素點位置選出亮度最高的點,最后將有霧圖像中3 個通道的最大像素值作為大氣光值A。
(5)初步復原圖像。由于當圖像中存在大片較亮(如天空、水面等)區域時,經原始暗通道先驗模型處理后的圖像會出現塊狀現象,所以為避免該現象,本文引入數值t0,即容差解決該問題。求解公式如下:

本文取t0的值為0.2。根據式(4)對3 個通道分別進行去霧處理,即可求出初步復原圖像。
采用改進的暗通道先驗去霧算法對有霧圖像進行處理后得到初步復原圖像的可見度水平有一定程度提高,但存在圖像細節信息丟失、色調整體偏暗、對比度不高、邊緣部分出現光暈等問題。所以針對這些問題,需對初步復原圖像進一步進行Retinex 增強處理。
基于顏色恒常性的Retinex 理論是由Edwin 首次提出的,該理論以人眼視覺系統為基礎,認為人們一般不會感知到物體的絕對亮度,感知到的只是相對亮度[14]。Retinex理論的主要目標是將原始有霧圖像分解成兩個不同分量,即決定動態范圍的照度分量和決定固有特性的反射分量。換句話說,即把人類視覺系統感知到的圖像看作照度圖像和反射圖像的乘積,其數學表達式可表示為:

其中,I(x,y)、L(x,y)分別為原始圖像和照度分量,L(x,y)滿足L(x,y)∈(0,∞);R(x,y)為反射分量,滿足R(x,y)∈(0,1]。在求解反射分量的過程中,為避免運算量較大的乘法運算,通常將R(x,y)的估計轉換到log 域中進行,即:

若想獲得具有大量細節信息的反射分量估計值R(x,y),首先必須求出照度分量L(x,y)。Jobson 等提出照度分量是由原始圖像與高斯濾波函數作卷積運算得到的,根據中心環繞思想可得出以下公式:

其中,* 為卷積運算符號,G(x,y)為低通濾波器,用來估計照度圖像。
多尺度Retinex 算法公式如下:

其中,ωn為權重值,δn為濾波尺度常量,k由歸一化函數決定。
(1)計算初步復原圖像的亮度圖像。首先采用加權平均法求出初步復原圖像的亮度圖像,將其作為該算法的初始圖像。
(2)估計照度分量,求出反射分量。采用引導濾波對步驟(1)中求得的亮度圖像作平滑處理,估計出照度分量,然后在對數域中求出反射分量。
在Retinex 算法中,常用的環繞函數為高斯濾波函數,但采用該函數對照度分量進行處理后,得到的圖像往往存在光暈偽影,所以后來有研究者提出利用雙邊濾波代替高斯濾波,不僅可以保留圖像細節信息,還有效避免了光暈偽影現象[15]。但相比引導濾波,雙邊濾波的運算量和時間復雜度相對較高,并且引導濾波在邊緣保持方面優于雙邊濾波。所以,本文采用引導濾波代替雙邊濾波,對照度分量進行處理,并求出反射分量,求解公式可表示為:

f(x)為引導濾波函數,其公式可表示為:

其中,qi為窗口內輸出的像素值,Ωk是一個面積為(2r+1)×(2r+1)的正方形區塊,系數ak、bk為常數,通過最小化目標函數加以確定。根據最小二乘法,局部線性函數系數ak、bk可采用以下公式進行求解:

其中,wk為當前窗口,為像素總數,μk、σk分別為圖像I在wk中的均值和標準差,ε是正則化參數。將式(12)應用到整幅圖像,即可得到引導濾波函數為:

將式(15)代入式(11)可求出反射分量R(x,y)。
另外,本文根據濾波圖像尺寸大小與尺度個數之間的數量關系,自適應設置Retinex 算法尺度參數,利用引導濾波獲取多尺度反射分量。其中設置3 個尺度參數,即為小、中、大,且各尺度范圍分別為:[1,rmin]、[rmin,rmid]和[rmid,rmax],具體公式定義如下:

其中,m、n為濾波圖像尺寸大小,k為尺度個數,取值為3。
(3)對反射分量進行S型函數增強、全局自適應對比度調整、Gamma 亮度調整等一系列操作。
在反射分量中存在大量圖像細節信息,所以為獲得圖像細節信息,需進一步對反射分量進行增強處理。本算法利用S型函數增加去霧圖像細節信息,公式定義如下:

其中,ω為求出的反射分量,由于ω在log 域中,所以ω可能取負值,本文設置ω的取值范圍為[-1,1];a為參數,a取值不同,增強效果也不同,圖1 表示a取不同值時S型函數的對應圖像。由圖可看出,a值越大,圖像越陡,圖像增強效果也越明顯。經多次實驗得出,當a=6 時,圖像增強效果最明顯。
由于經暗通道先驗算法處理后的圖像整體對比度和亮度都偏低,所以需進一步處理初步復原圖像以提高圖像對比度和亮度。
為了提高圖像對比度,根據輸入圖像本身的全局亮度進行自適應調整,具體公式如下:

其中,Lw(x,y)為輸入圖像亮度值,為亮度對數均值,Lwmax為圖像亮度最大值。
為提高圖像亮度值,采用改進的非線性全局Gamma函數進行亮度調整,公式如下:

其中,R(x) 為亮度調整后的圖像,x為輸入圖像,a為調整參數,Gamma 函數映射圖如圖2 所示。

Fig.1 Sigmoid function mapping圖1 S 型函數映射

Fig.2 Gamma function mapping圖2 Gamma 函數映射
由圖2 可以看出,a取值越小,圖像亮度增強效果也越明顯。經多次實驗得出,當a=0.6 時,效果最佳。另外,從圖2 也可以看出,當a取值為0.6 時,較低亮度區域位于函數y=x的上方,較高亮度區域位于函數y=x的下方,說明該函數不但能有效增強低亮度區域,還能防止過度增強現象。
(4)顏色恢復函數。首先求出A=max(IR[i],IG[i],IB[i]),然后求出放大因子:。其中,R'為輸入圖像,Int為亮度圖像。接下來計算每個通道:
R=M?IR[i]
G=M?IG[i]
B=M?IB[i]
最后將3 個通道進行整合,得到恢復后的去霧清晰圖像。
為驗證提出的基于暗通道先驗的Retinex 去霧算法的有效性,對300 幅有霧圖像進行處理,并分別從主觀視覺效果和客觀質量評價兩方面進行驗證。將本文算法與現有算法(He 算法、Tan 算法、Wang 算法和Fattal 算法)處理結果進行比較。
首先,從主觀角度對比幾種算法,效果如圖3-圖5 所示。
從3 組圖片可以看出,經He 算法和Tan 算法處理后,雖然圖像整體清晰度有所改善,但圖像較亮區域(天空、水面等)出現了塊狀模糊和光暈現象;經Wang 算法處理后,圖像丟失了很多細節信息,圖像色調整體偏暗;經Fattal 算法處理后,圖像顏色偏亮泛白,去霧不徹底,同時出現了明顯的顏色失真現象;經本文算法處理后,圖像清晰度明顯提高,有效避免了顏色失真現象,細節信息和亮度值也在一定程度上有所提高。總體而言,從主觀視覺角度來看,本文算法明顯優于其它算法。


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 不同算法去霧效果
采用圖像均值、對比度、平均梯度和信息熵對本文算法進行客觀評價。
圖像均值用于表示圖像平均亮度的變化,均值公式如下:

其中,M、N為圖像尺寸。
對比度用于評價圖像整體對比度,對比度越高,圖像越清晰。對比度公式如下:

其中,n=|i-j|,為灰度共生矩陣。
平均梯度用于評價圖像整體模糊程度,平均梯度值越大,細節信息越多,邊緣保持效果越好。平均梯度公式如下:

其中,M、N表示處理圖像的大小。
信息熵用于評價圖像細節表現能力,信息熵值越大,說明處理后圖像保留的細節信息越多,信息熵公式如下:

其中,i為像素值,pi為i出現的概率。
然后,采用客觀評價標準對比幾種算法,對比結果如表1-表3 所示。

Table 1 Objective evaluation criteria for image-one表1 圖1 客觀評價標準

Table 2 Objective evaluation criteria for image-two表2 圖2 客觀評價標準

Table 3 Objective evaluation criteria for image-three表3 圖3 客觀評價標準
從亮度和對比度可以看出,本文算法在平均亮度和對比度上都有一定程度提高,明顯優于現有其它去霧算法。從平均梯度和信息熵可以看出,本文算法的平均梯度和信息熵值增大,說明本文算法相比其它算法具有較好的邊緣保持和細節增強效果,處理后的圖像可見度也較高,圖像效果更加自然。
針對現有圖像去霧算法去霧不徹底及對比度低等問題,本文提出一種基于暗通道先驗的Retinex 去霧算法,該算法將圖像復原與圖像增強兩大類思想相結合。首先,采用改進的暗通道先驗算法對有霧圖像進行初步處理,用導向濾波代替軟摳圖細化透射率,并對圖像復原公式進行改進,得到初步去霧圖像;其次,采用Retinex 算法對其進行增強處理,利用引導濾波對照度分量進行處理,求出反射分量;然后,利用S 型曲線、全局自適應對比度與改進的Gamma 校正函數對反射分量進行處理,最終實現了細節增強,同時有效解決了圖像周圍存在光暈偽影等問題;最后,運用還原函數還原圖像色彩。實驗結果表明,本文算法平均亮度相比其它算法至少提高了1.79%,對比度至少提高了1.07%,平均梯度和信息熵值分別至少提高了4.8% 和4.79%。說明本文算法相比其它算法具有較好的邊緣保持和細節增強效果,處理后的圖像顏色也相對自然,為圖像去霧技術提供了一種新思路。