崔建偉 王冬青 劉金燕
(青島大學自動化學院 青島 266071)
近年來,計算機視覺引起熱潮,在工業視覺、視頻監控、輔助駕駛、人臉識別等方向應用廣泛。圖像質量是計算機視覺特征提取準確性的關鍵因素[1~2]。霧霾對成像設備獲取的圖像造成各種程度的對比度降低、圖像噪聲變大、清晰度降低等質量下降現象。進一步給計算機進行特征提取、目標識別帶來阻礙[3~4]。因此,研究開發有效的去霧算法具有重大深遠的意義。
目前,國內外學者針對霧霾天氣的研究方法按照原理不同可以分為兩類[5]:一類是基于圖像增強的去霧算法,Kim 和Stark 等[6~7]提出的局部直方圖均衡化去霧圖像特征突出,但運算復雜,易出現塊狀效應。Land[8~9]提出的Retinex理論沒有考慮局部特點。另一類是基于大氣物理模型的圖像復原算法,Narasimhan 等[10]根據同一場景下不同天氣條件的兩幅或多幅圖像來估計景深信息然后恢復無霧圖像,但此方法不具有實用價值。Y.Y.Schecnner等[11~12]通過采集同一場景的多幅偏振圖像估計環境光,但偏振片對部分光線不能完全濾除,且此方法需要多幅圖像。Tan[13]等通過提高有霧圖像的局部對比度來實現圖像去霧,但會出現顏色失真和光暈現象。Fattal[14]等通過獨立成分分析來計算表面反射率及圖像透射率,但此算法對顏色要求較高,當霧氣濃度大時去霧圖像易出現失真現象。He[15]通過對大量戶外清晰圖像統計,提出了一種暗通道理論去霧算法,結合軟摳圖優化算法透射率,獲得了不錯的效果,但暗通道對天空區域的透射率估計不夠準確且軟摳圖算法計算復雜度大。Tarel[16]等提出了一種白平衡先驗的中值濾波去霧算法,但此算法在景深突變的邊緣處會有去霧不徹底的現象。
本文提出了一種結合小波變換的均值濾波去霧算法。霧天天氣獲得的圖像亮度較高且對比度較低,圖像變化程度較緩,邊緣不明顯。因此推斷霧氣主要影響了圖像的低頻區域。通過小波變換對圖像的低頻區域進行去霧,在去霧的同時保留了圖像的邊緣信息。小波變換會對圖像的亮度有所降低,本文對去霧后圖像在HSV 顏色空間進行了亮度提高。本文算法在有效去霧的同時大限度地保留了圖像的邊緣信息,在提升視覺效果的同時便于計算機視覺進行特征提取。
小波變換如今廣泛應用于信號處理領域。在圖像處理領域,傅里葉變換無法從時域和頻域兩個方向來進行圖像處理,而小波變換是局部時域分析法,信號的多尺度精細由小波平移和伸縮來完成,能從時域和頻域兩個方向進行圖像處理。
圖像可以看作是離散的二維信號,本文對一張圖像分別進行行和列的離散一維小波變換進行二維圖像的小波分解和重構。對圖像進行小波分解時,通過一維低通濾波器構建尺度函數,通過高通濾波器構建小波函數。分別用高通濾波器和低通濾波器對圖像的行和列進行濾波,可以得到圖像的二維小波分解,在每一個尺度上都可以得到LL,LH,HL 和HH 四個分量。其中,LL 分量為低頻分量,此分量包含了原始圖像的大部分信息,HL,LH和HH 為高頻分量,HL 包含原始圖像的水平邊緣信息,LH 包含了原始圖像的垂直邊緣信息,HH 包含了原始圖像的對角邊緣信息。如果對低頻分量進一步分解,可以得到多尺度小波分解。小波重構為小波分解的逆運算,可以對小波分解后進行處理的圖像進行重構。單尺度小波分解圖如圖1所示。

圖1 單尺度小波分解圖
小波基函數的類型很多,由于Haar 小波函數結構簡單,計算方便,計算速度快,因此本文的實驗選用Haar 小波作為小波基進行圖像分解和重構。Haar小波函數的定義如下:


霧天天氣獲得的圖像中霧氣主要影響了圖像的低頻區域,考慮到算法的復雜度及避免引入更多的噪聲,本文采用Haar 小波進行單尺度小波分解和重構。對一幅灰度Lena圖像進行單尺度Haar小波分解的示意圖如圖2所示。

圖2 單尺度Haar小波分解示意圖
霧霾天氣需要通過物理模型來刻畫,麥卡特尼精簡的大氣散射模型精確表示了霧天圖像的退化過程,該模型精簡為下式:

式中,x表示圖像中某點像素的坐標;I表示退化后的有霧圖像,J是退化前的圖像,即需要復原的無霧圖像。r表示大氣散射系數;d表示成像設備到景物之間的距離,即景深;A表示大氣光值,通常為一常值。
式(3)中,J(x)e-rd(x)表示入射光衰減項,表示反射光從景物傳輸到成像設備的過程中部分光線被衰減的情況;A(1-e-rd(x))表示環境光,表示其他路徑上的大氣光進入成像設備的情況。
對式(3),用L(x)代替A(1-e-rd(x)),即

將式(3)改寫為

可知,圖像去霧就是根據有霧圖像I(x)來估算環境光L(x)及大氣光值A,進一步得到無霧圖像J(x)。
指數衰減項e-rd(x)表示景物反射光到達成像設備的部分的比例,被稱為透射率,將e-rd(x)替換為t(x),即

由式(6)得到,t(x)隨景深變大而變小且與景深變化軌跡相近,透射率值大代表反射光得到了較小程度的衰弱。
由此將(3)式化為

由式(7)可知

對式(8)兩邊計算R、G、B 三顏色通道最小值,且有

將式(7)改為Ao(1-t(x))≤M(x),變換得

接下來是本文對透射率的估計方法。
對式(11)右側進行均值濾波得

其中,sa表示濾波窗口大小,濾波得到的值與真實透射率之間具有一些增加量,所以需將上述值加上一個增加值,且有

因此,可得透射率的粗估值為

上式中右邊尾項為增加值,且0 ≤φ≤1,記ω=1-φ,將式(14)改寫為

當ω取較小數時,粗估透射率便大,得到的無霧圖像圖像灰度大,霧氣較濃。當ω取較大數時,粗估透射率便小,得到的無霧圖像灰度較小,為均衡霧氣和灰度的關系,我們取值

式中,ρ為可調節參數且0 ≤ρ≤1/ma,ma是M 中像素的平均值,此處需注意計算時要把像素進行歸一化處理。將ρ的取值設定在0 ≤ρ≤1/ma可以通過原始圖像的灰度合理調整復原圖像的灰度。有霧圖像灰度越低,ma值越小,粗估透射率從而越大,使得復原圖像灰度值不變得過低,相反亦對。
要確保調整的增加量為正數且不能過小,需設定ω值的上限,我們設上限為0.9,即

聯立式(11),式(15)和式(17),可得透射率:

記L(x)=[Lo(x)Lo(x)Lo(x)]T,聯合式(2)即可估算出環境光的大小為

由式(19)得,根據均值濾波估計的環境光具有隨景深變化而變化的性質,估計值更加準確。
對于大氣光值,我們將有霧圖像取三通道最小值后灰度值最大的點對應原始圖像的R、G、B 顏色通道的平均值,這種方式運算速度快且保證了一定的準確度。
根據上述算法估算出環境光和大氣光值之后,便可根據圖像霧天退化模型得到低頻無霧圖像。即

然后對低頻無霧圖像進行小波重構,得到原始無霧圖像。小波分解與重構算法得到的無霧圖像亮度太暗,本文采用如下算法對圖像整體亮度進行了提升。
HSV顏色空間是一種面向用戶的顏色空間,相比RGB 顏色空間更接近人們的視覺對于色彩的感知。HSV顏色空間中的三個指標為亮度、色調與飽和度。本文將復原后的RGB 圖像變換到HSV 顏色空間,對亮度分量進行增強處理。
為證明上述算法的效果,在一臺處理器為Inter Core i5-4210M@2.60GHz 的PC 機上通過Matlab R2014a進行仿真實驗驗證。
為了得到較優的效果,該算法需要選取合適的參數,決定去霧效果的參數主要有兩個,一個是均值濾波的半徑,另一個為調節參數ρ。經過一些測試,對于半徑參數,本文取值為圖像寬度和高度最大值的1/20。可調參數ρ決定了圖像的去霧能力,為了兼顧去霧能力與圖像亮度,本文將可調參數ρ設置為1.8。選取幾幅有霧圖片進行仿真實驗,得到的結果如圖3所示。

圖3 去霧效果對比圖
由以上幾副圖像可以看出,本文算法效果顯著,在具有一定去霧能力的同時保持了圖像的亮度適中,同時提高了圖像的對比度,更加符合人類的視覺感知。且去霧圖像邊緣細節較為清晰,便于計算機視覺進行特征提取。
針對霧霾天氣造成的圖像質量下降問題,本文提出了一種基于均值濾波和小波變換的單幅圖像去霧算法,小波分解與重構算法保留了圖像的高頻特征,均值濾波算法對環境光和大氣光進行估計。基于Matlab 軟件進行仿真驗證,實驗驗證可得:本算法去霧效果較好,同時保持了圖像的清晰度,增強了圖像對比度,保留了圖像的邊緣特征,便于計算機視覺進行特征提取,具有較強的實用價值。