唐 斌 馬思根 陳清容 龍 文
1(貴州財經大學信息學院 貴州 貴陽 550025)2(貴州財經大學貴州省經濟系統仿真重點實驗室 貴州 貴陽 550025)
在有霧的低照度環境下,攝像機、數碼相機等圖像傳感器所采集的視頻或圖像通常能見度較低,圖像紋理可辨識度不高。在進行機器識別或目標跟蹤之前需要對有霧圖像做清晰化預處理。
有霧圖像清晰化處理的方法層出不窮。根據其使用技術的特征,可將去霧算法分為兩大類。第一類是以增加對比度為目的的增強算法。使用直方圖均衡的方法是通過拉伸方式改變像素值的分布概率達到增強對比度的目的,但可能會丟失圖像的部分細節[1]。Retinex理論[2]認為有霧圖像是由環境光照射分量和物體表面反射光分量組成,那么可以使用同態濾波減弱環境光照射分量從而提高反射光分量,最終增加對比度,但是該類方法容易出現偏色問題。第二類是基于大氣散射模型的還原算法,該類方法的關鍵在于估算透射率和大氣環境光。He等[3]發現暗原色先驗理論并利用此理論估算透射率,該方法簡單易行,去霧效果較好,但存在Halo效應,處理速度較慢。Zhu等[4]發現顏色衰減先驗理論,構建了場景深度與亮度、飽和度之間的線性模型,根據此模型可以計算透射率。該方法同樣簡單可行,去霧后的圖像清晰,但線性模型中的系數容易受訓練數據集影響。Kim等[5]以圖像均方誤差和信息丟失量構建了一個反映對比度的成本函數,通過最大化成本函數的方法獲取透射率。該方法不僅適合非天空區域,也適用于天空區域,但存在偏色現象。由于深度學習在圖像識別領域的卓越表現,基于卷積神經網絡去霧的算法逐漸出現。Cai等[6]構建端到端的卷積神經網絡DehazeNet,通過深度學習提取有霧圖像特征而估算透射率,但深度學習需要大量的數據集訓練。
本文采用第二類方法去霧,根據每個像素點的最小顏色值和全局大氣環境光值估算粗糙大氣透射圖。粗糙大氣透射圖除了包含有景深邊緣外,還包含部分紋理信息,因此再使用全變分濾波平滑粗糙大氣透射圖的紋理信息和保留景深邊緣,全變分濾波迭代次數與濾波效果成正比關系,但會增加去霧時間。為降低計算復雜度,在全變分濾波前,對粗糙透射圖下采樣再進行全變分濾波,最后獲取精細大氣透射圖。
根據大氣散射模型理論[7],物體表面光在霧天環境中傳播時會因為顆粒的散射作用而出現衰減,因此圖像傳感器設備采集的圖像可用如下模型描述:
I(x)=J(x)e-βd(x)+A(1-e-βd(x))
(1)
式中:J(x)表示無衰減的無霧圖像;A表示大氣環境光;e-βd(x)為衰減系數,也稱為大氣透射率t(x);β為大氣散射系數;d(x)為景深。受顆粒的散射作用影響,無霧圖像和大氣環境光分別衰減為J(x)t(x)和A(1-t(x))(大氣耗散函數),圖像傳感器采集的有霧圖像I(x)則由這兩個衰減項之和組成。
式(1)中,已知條件為有霧圖像,在缺乏其他約束條件的情況下,無霧圖像的值存在著多種可能。為恢復無霧圖像,需要從有霧圖像中提取大氣環境光A和大氣透射率t(x)。
通常采用有霧圖像比較明亮的像素值估算大氣環境光。He等[3]對有霧圖像的RGB像素值進行降序排序,然后檢索出前0.1%值所對應的像素點坐標,這些坐標對應像素點的RGB三個平均值就是三個顏色通道的大氣環境光值。大量的實驗結果表明:使用這種大氣環境光復原后的圖像亮度偏暗,顏色偏藍。Kim等[5]認為大氣環境光與白色(RGB三個顏色值都為255)最接近,但有霧圖像中存在的白色發光物體會干擾大氣環境光值的估算。為了排除這種干擾,可以采用四叉樹方法搜索最接近白色的像素點。具體方法是:將有霧圖像切割成四個圖像塊,選取均方差最小的圖像塊繼續切割成四部分,直至切割圖像塊尺寸小于閾值才停止,然后在均方差最小的圖像塊中搜索出最接近白色的像素點,該像素點的RGB值就是大氣環境光值。大量的實驗結果表明:使用這種大氣環境光復原后的圖像亮,顏色偏黃。
在估算大氣環境光前,首先對有霧圖像進行伽瑪矯正,然后分別使用He等[3]和Kim等[5]的方法估算出兩種大氣環境光值,最后使用線性加權方法獲取最終大氣環境光。計算方法如下:
A=αAHE+(1-α)AKIM
(2)
經過多次試驗觀測,α的經驗值設置為0.6。
大氣耗散函數A(1-t(x))中包含有大氣透射率t(x),因此本文使用該函數估算大氣透射率。假設V(x)=A(1-t(x)),那么大氣透射率的估算公式如下:
(3)
大氣耗散函數V(x)如果直接使用有霧圖像每個像素點的最小顏色值W(x),那么結合大氣環境光A,估算出的粗糙大氣投射率如下:
(4)
式中:粗糙大氣透射率最小值設置為0.2;系數ω設置為0.95。式(4)估算的值之所以稱為粗糙大氣透射率,是因為W(x)不僅包括了較多躍變的景深邊緣信息,還具有較多平滑的圖像紋理信息。雖然景深邊緣信息可以用來估算透射率,但圖像紋理信息對透射率的估算具有干擾作用。
Rudin等[8]提出的全變分模型具有平滑細節和保留邊緣特點,廣泛應用于圖像去霧領域[9-13]。基于全變分的圖像降噪可以用極小化能量泛函如下描述:
(5)
式中:第一項是基于l1范數的全變分正則項,其作用是保留擴散系數小的邊緣,平滑擴散系數大的平坦區;第二項是基于降噪圖像u與噪聲圖像i之間差值平方的擬合項,其作用是確保降噪圖像u與原始圖像具有較高的相似度,λ為正則項和擬合項的平衡系數。
根據極值條件和變分法,極小化能量泛函需要對歐拉-拉格朗日方程求解。該方程可以使用梯度下降法、迭代法或Bregman法求解,但這三種求解方法都不夠簡練。Gong等[14]設計了一種新的全變分濾波器,使用濾波的方法最小化正則項,從而獲取降噪圖像u。全變分濾波器的輸入為BT、WT、WC和BC等四幅無交集圖像。這四幅圖像數據分別取自于噪聲圖像坐標為(2n,2n)、(2n,2n+1)、(2n+1,2n)、(2n+1,2n+1)所對應點的像素值。具體對應關系如圖1所示,圖中黑色三角形、白色三角形、白色圓形和黑色圓形分別表示BT、WT、WC和BC的像素。

圖1 BT 、WT 、WC、BC坐標圖
將噪聲圖像切割成BT、WT、WC和BC四幅子圖像后,對每幅子圖像單獨進行全變分濾波。全變分濾波工作原理為:以過中心像素點的對稱軸將尺寸為3×3的全窗口切割成兩部分,計算半窗口內除中心像素點外其他5個像素的平均值,然后計算該平均值與中心像素點的差值。由于3×3的全窗口存在4條對稱軸,故對應的差值存在8個。選取絕對值最小的差值更新中心像素點。以圖2為例,全變分濾波細節如下:
(1) 以過中心像素點P0的對稱軸為分界線,將圖2切割成8個不同的半窗口。
(2) 計算下列表達式計算8個不同的差值di。
d0=(P1+P2+P3+P4+P5)/5-P0
(6)
d1=(P2+P3+P5+P7+P8)/5-P0
(7)
d2=(P4+P5+P6+P7+P8)/5-P0
(8)
d3=(P1+P2+P4+P6+P7)/5-P0
(9)
d4=(P1+P2+P3+P5+P8)/5-P0
(10)
d5=(P1+P4+P6+P7+P8)/5-P0
(11)
d6=(P1+P2+P3+P4+P6)/5-P0
(12)
d7=(P3+P5+P6+P7+P8)/5-P0
(13)
(3) 選擇最小值di采用下列公式更新中心像素P0的值。
P0=P0+min{|di|,i=0,1,2,3,4,5,6,7}
(14)

圖2 WC半窗口切割方法
為了獲取精細大氣透射率,還需要濾除W(x)中的紋理細節,同時保留躍變景深邊緣信息[15]。全變分濾波對全變分值大的躍變景深邊緣具有保持作用,對全變分值小的紋理信息具有平滑作用,因此使用全變分濾波獲取精確的大氣耗散值。其計算過程如下:
(15)
WTV(x)=TVfilter(Wdown(x),iteration)
(16)
WUP(x)=imresize(WTV(x),scale,′bicubic′)
(17)
全變分濾波需要通過多次迭代才可以獲取較好的保邊去細節效果,但增加迭代次數(itertation)會增加濾波時間從而犧牲實時性。為減少計算時間,本文沒有直接對W(x)進行全變分濾波,而是采用式(15)對W(x)進行下采樣,然后使用式(16)進行全變分濾波,最后使用式(17)進行上采樣恢復精確大氣耗散值,將該值代入式(3)即可獲取精細透射率。由于圖像縮放同樣具有均值濾波功能,因此縮放比例scale的設置非常關鍵,常用的縮放算法包括最臨近值法、雙線插值法和雙三次插值法(bicubic),其中雙三次插值算法縮放后的圖像比較光滑,因此本文選擇雙三次插值算法縮放透射圖。由于雙三次插值法是根據鄰域內16個像素獲取插值點值,因此縮放比例scale最佳值設置為4。其他值只能小于或等于4,如果大于4,將導致上采樣后的圖像出現“halo”效應。
圖3給出了群馬圖像的三種不同情況下的透射率。其中:(a)是有霧圖像;(b)是無縮放和無全變分濾波處理的粗糙透射圖,該透射圖的紋理信息豐富;(c)是經過迭代次數為60的全變分濾波處理但無縮放處理的透射圖,該透射圖紋理信息較少;(d)是經過迭代次數為60的全變分濾波處理但縮放比例scale為4的縮放處理的精細透射圖,該圖紋理信息最少。

圖3 三種不同情況下的透射圖
根據本文算法對互聯網上部分有霧圖像進行去霧處理以驗證本文算法的有效性和實時性,實驗中的硬件和軟件環境分別是:主頻是1.7 GHz的四核Core i5處理器;在Windows 8操作系統上運行的MATLAB R2014b軟件。
由于縮放處理可以減少全變分濾波的計算工作量,同時還具有均值濾波作用,因此縮放操作在本文算法中具有較重要的作用,縮放比例scale的設置非常關鍵,該值設置過大雖然均值作用明顯,但“halo”現象同樣嚴重。設置過小,全變分濾波計算量減少不夠明顯。根據前面的理論分析,其最佳值為4。圖4給出了街景圖不同縮放比例的處理結果圖,其中:(a)是有霧圖像;(b)的縮放比例scale為2;(c)的縮放比例scale為4;(d)的縮放比例scale為5;(e)的縮放比例scale為6;(f)的縮放比例scale為8。五種不同下采樣比例恢復的圖像主觀視覺效果大致相近,但從白色方框標示區域的圖像可以看出:縮放比例scale小于或等于4時,“halo”現象較弱,尤其是縮放比例scale為4時最弱;而縮放比例scale大于4時,“halo”現象比前兩幅圖像明顯,縮放比例scale越大,該現象越嚴重。


圖4 四種縮放比例的去霧結果
根據平均梯度比、新增可見邊之比、熵、運行速度等客觀指標以及直觀視覺效果對本文算法進行了驗證,并且與文獻[3]算法、文獻[4]算法進行對比以驗證本文算法的有效性和實時性。本文算法的參數設置為:迭代次數為10,縮放比例scale為4;文獻[3]算法的導向濾波半徑為60;文獻[4]算法的導向濾波半徑為15。實驗結果如圖5所示,其中:第1列為有霧圖像,第2列為本文算法去霧結果,第3列為文獻[3]算法去霧結果,第4列為文獻[4]算法去霧結果。

圖5 三種算法的去霧結果
五幅圖像經過圖像去霧處理后視覺效果相當,圖像細節比有霧圖像豐富,三種算法去霧效果接近,但部分細節存在差異。文獻[3]算法和文獻[4]算法處理后的圖像中部分物體變黑,如:文獻[3]算法處理后的群馬圖的輪胎、公路圖的垃圾桶、天鵝圖的草坪和樹干、廣場圖的大理石圍欄;文獻[4]算法處理后的群馬圖的輪胎和馬脖子、公路圖的部分樹、廣場圖的樹和建筑物第一樓層。而本文算法出現變黑的物體較少。


表1 三種算法的客觀指標
雖然客觀指標值表明三種算法客觀指標相近,但表2的運行時間表明:下采樣有效地減少了計算工作量,提高了去霧的速度。本文算法與文獻[3]相比,最大加速比可達15.8倍,最小加速比為6倍;與文獻[4]相比,最大加速比為7.2倍,最小加速比為2.7倍。圖像分辨率越大,對應的加速比也越大。

表2 三種算法的運行時間

續表2
本文結合最小濾波、全變分濾波提出了一種快速的單幅圖像去霧算法。基于全變分的圖像處理雖然可以獲取較好的保邊和平滑效果,但歐拉-拉格朗日方程的求解復雜繁瑣,因此本文借助全變分濾波器濾除大氣耗散函數中的圖像紋理細節,保留與場景深度對應的景深邊緣。濾波器的計算方式簡單易行,只需直接使用3×3領域內的半個窗口的像素更新中心像素值即可。全變分濾波需要多次迭代導致計算耗時較長,所以采用下采樣的方法降低計算復雜度。通常縮放比例越大,計算量越小,但較大的縮放比例會導致嚴重的“halo”效應,故本文給出了縮放比例的取值范圍,小于4的縮放比例可以減少該現象。仿真結果表明:本文算法的去霧效果與其他兩種算法相近,但其運行速度更快,最大加速比為15.8,最小加速比為2.7,加速比與圖像分辨率成正比。因此本文算法具有較好的適應性,適合應用在對實時性要求較高的工程場合。