張國強, 楊 燕, 李一菲
(蘭州交通大學 電子與信息工程學院,甘肅 蘭州 730070)
隨著我國工業化進程的快速發展,其面臨的環境問題日益突出,特別是近年來秋冬季節經常出現的霧霾現象。在這種情況下,戶外監控系統捕獲到的圖像細節信息不明顯,許多特征被覆蓋或顯示模糊,并且信息的可識性嚴重降低。同時,色彩保真度降低,出現嚴重的色偏現象,這嚴重阻礙了戶外監控系統獲取有用信息和捕獲目標源位置的能力。因此,對于如何有效去除霧氣干擾的研究具有極其重要的實際意義和研究價值。
目前,針對單幅圖像去霧算法的研究已經取得了一定的研究成果。這些不同的算法主要可以分為基于圖像增強的方法和基于物理模型的圖像復原方法。其中,基于圖像增強的方法不考慮圖像是因為何種因素而發生退化,不能做到真正意義上的去霧,主要是使用數字圖像處理的方法對有霧圖像中需要增強的細節進行增強,并提高其對比度。這種方法在去除霧氣的同時會造成部分細節丟失,使部分復原的圖像失真;基于圖像復原的方法將大氣散射模型作為理論基礎,通過反演假設或先驗條件評估在模型中起到重要作用的未知參數,然后將這些未知參數代入模型進行求解,從而獲得清晰的無霧圖像,這種方法復原的圖像比較自然,可以滿足更多的場景需求。目前,基于物理模型復原算法已經取得了顯著的成果。He等[1]通過對大量無霧圖像進行統計,提出暗通道先驗算法進行圖像去霧,但是該方法依然存在一定的不足,當存在大片天空區域時,暗通道先驗假設不成立,同時由于最小值濾波的使用,導致塊狀效應和景深突變的邊緣出現Halo現象,隨后He等[2]又提出引導濾波的算法進行優化,取得了一定效果,但是依然存在時間復雜度較高的問題。Zhu等[3]通過顏色先驗的方法,利用局部大氣光的思想獲取大氣光值,該方法可以準確地估計大氣光值,但是由于兩次使用濾波的原因導致時間復雜度較高。Meng等[4]提出一種邊界約束方法,該方法通過對邊界進行相應的約束,并通過迭代細化透射率,進而復原無霧圖像,該算法雖然有效,但是對于濃霧圖像處理效果不佳。劉海波等[5]提出一種結合暗通道先驗和Retinex理論的圖像去霧算法,該方法通過Retinex理論獲取反射分量,進而復原出無霧圖像,但是該方法時間復雜度較高,在景深劇烈變化區域失效。楊燕等[6]通過光補償算法將沙塵圖像轉化為霧圖進行處理,然后利用逐像素的方法得到透射率,該方法解決了塊狀效應問題,但是對于大氣光值的選取依然存在不準確的問題。Cai等[7]利用卷積神經網絡的思想,通過訓練優化透射率進而達到良好的去霧效果,但是由于訓練集較少且模型不完善導致去霧效果不徹底。
通過對單幅圖像去霧算法進行研究,本文以大氣散射模型為依據,通過構造霧濃度檢測函數獲取準確的大氣光評估區域,然后對大氣散射模型進行簡化;其次,構建局部大氣光遮罩,通過計算拉依達準則下限值的策略獲取引導圖,然后利用引導濾波進行區域平滑并保持邊緣特性,結合簡化模型獲取場景反照率;最后,根據Land成像模型,得到復原的無霧圖像。實驗結果表明,所提出的方法可以取得良好的去霧效果。
大氣散射模型廣泛如圖1所示,它被應用于計算機視覺研究領域,可以用來描述霧成像過程,該模型可表示為
I(x)=J(x)t(x)+A(1-t(x))
(1)
式中,J(x)t(x)為直接衰減模型;A(1-t(x))為環境光成分,為環境光增強項。

圖1 大氣散射模型
根據Land成像模型[5]可知,一幅有霧圖像可以由全局大氣光和場景反照率兩者之間的乘積得到,具體的表達式為
J(x)=Aρ(x)
(2)
將式(2)代入到式(1)中可得:
I(x)=Aρ(x)t(x)+A(1-t(x))
(3)
式中,I(x)為有霧圖像;J(x)為待復原的清晰無霧圖像;t(x)為介質傳輸率,即透射率;A為全局大氣光值的強度;ρ(x)為場景反照率。
式(3)中,透射率t(x)的表達式為
t(x)=e-βd(x), 0≤t(x)≤1
(4)
式中,β為大氣散射系數,假設霧均勻分布,此時β近似為常數;d(x)為成像設備到場景點支架的距離,即場景深度。
He等[1]通過對大量無霧圖像進行統計發現,對于晴天天氣條件下的無霧圖像,可將其分解成若干個局部區域,在每個局部區域內至少在一個顏色通道中存在灰度值很小的像素點,并且其中大多數強度值趨于0,從而提出暗通道圖像中各像素點的值可以通過式(5)獲得。
(5)

針對霧天條件下圖像降質的問題,提出一種基于構造簡化模型和局部大氣光遮罩的單幅圖像去霧算法,本文算法流程圖如圖2所示,主要分為3步:① 構造霧濃度檢測函數,檢測出準確的大氣光值選取區域;② 對大氣散射模型進行簡化,并設計局部大氣光遮罩估計算法,通過計算拉依達準則下限值的策略獲取引導圖,然后利用引導濾波算法進行區域平滑并保持邊緣特性,接著結合簡化模型獲取場景反照率;③ 根據Land成像模型得到復原的無霧圖像。

圖2 本文算法流程圖
大氣光估計值的準確性直接影響最終的復原效果,大氣光值的選取大于其真實值會導致復原的圖像整體偏暗,大氣光的取值小于其真實值會導致復原的圖像整體偏亮,從而丟失部分細節。目前的圖像去霧算法研究中,對于大氣光值選取方面的研究不是很多。
He等[1]通過選取暗通道圖像中前0.1%的高亮像素點對應的有霧圖像的最大值作為大氣光值,該方法容易受到白色物體和強光源的影響導致選取的大氣光值偏大;Sulami等[8]通過對大氣光矢量的方向進行判斷,自動獲取大氣光值,該方法在矢量方向判斷不準確時會導致大氣光值的選取出現偏差。大氣光值的選取區域一般定義為霧最不透明區域,本文提出一種霧濃度檢測函數,利用該函數選取準確的大氣光值選取區域,從而提高大氣光值的準確性,減少大氣光值估計偏差給復原圖像帶來的影響。
首先,結合HSV顏色通道的相關特點,通過式(6)構造霧濃度檢測函數:
d(x)=‖Ihsv(x)-B‖
(6)
式中,B為HSV顏色通道中像素值最高的像素點。通過分析可知,d(x)的取值越小,則表示該點的霧濃度越大,反之亦然。同時考慮到白色物體對檢測區域的影響,通過對式(6)進行最小最大操作,可獲得如下表達式:
(7)
通過上述操作可以使局部平滑,同時消除紋理效應的影響。最小最大操作可以通過形態學開操作來代替實現,即:

(8)
為了確保大氣光值選取區域的準確性,通過大量測試實驗設定閾值范圍τ∈[0.2,0.3],可準確地檢測出霧最不透明區域。在d(x)∈τ的區域選取0.1%像素的均值作為全局大氣光值A。
對于大氣光值的選取,A的取值不會小于有霧圖像對應的灰度均值圖像。因此,可以進一步約束大氣光值的選取。
(9)
式中,Igray為原始有霧圖像所對應的灰度圖像;W和H分別為圖像的寬和高。通過該方法得到的大氣光值可以消除白色物體和強光源的影響,提高其魯棒性。
本文通過白平衡處理,即通過對原始有霧圖像除以大氣光值A[5],將大氣光照度的顏色分量校正到灰度軸方向,利用R,G,B顏色分量的最大值來估計光照顏色。結合式(1)和式(2)可以得到:

(10)
考慮到圖像中的高亮度像素強度大于大氣光A,則產生I(x)/A>1, 本文將白平衡校正的圖像I(x)/A限制在[0, 1]范圍內,用I′(x)進行表示,采用下式約束:
(11)
局部大氣光遮罩定義為
V(x)=1-t(x)
(12)
因此,大氣散射模型簡化為
I′(x)=ρ(x)t(x)+V(x)
(13)
根據上述分析,通過式(13)可以得出,此時的大氣光被固定為常數,即大氣光的取值為[1,1,1]T,通過該操作不僅簡化了模型,而且減少了時間復雜度,提高了準確性。
由于暗通道先驗算法使用了最小值濾波操作,這使得到的透射率出現塊狀效應、邊緣信息估計不準確等問題。若采用Soft Matting算法進行優化,其時間和空間復雜度過高,運算時間長,不能應用于實時處理。盡管He等[2]又提出引導濾波算法對初始透射率進行優化,雖然可以在降低時間復雜度的同時具有良好的邊緣保持特性,但是在景深突變的邊緣會出現遺留少量殘霧的現象。本文結合簡化后的大氣散射模型,通過構造局部大氣光遮罩的方法來達到圖像去霧的目的。
2.3.1 粗估計
根據暗通道先驗原理和Land成像模型可知,在RGB三個顏色通道中,至少存在一個通道的反射率趨近于0,因此可以得到式(2)中ρ(x)→0,結合式(13)可以得出:
假設滿足ρ(x)→0,再根據暗通道先驗理論,局部大氣光遮罩可以粗略地從式(14)獲得:
(14)
但是ρ(x)→0不能滿足每個像素點,因此采用形態學操作的策略來腐蝕掉局部灰度級過高的像素。本文算法過程圖如圖3所示。粗局部大氣光遮罩如圖3(b)所示。可以看出,所得到的粗局部大氣光遮罩邊緣細節模糊,邊緣信息嚴重丟失。而在物體景深突變的邊緣會出現Halo效應,因此需要保持景深突變的邊緣細節。

圖3 效果過程圖
2.3.2 基于引導濾波細化
由于大氣光遮罩僅是關于景深的函數,對局部大氣光遮罩進行區域平滑操作,這可以看作一個濾波問題。文獻[1]中使用原有霧圖像作為引導圖,造成恢復圖像近景去霧不徹底,并且明亮區域色彩失真。文獻[9]選取最小值圖像的局部最大值作為引導圖,這種方法依然存在遠景區域去霧不徹底的現象,并且在景深突變處出現Halo效應。通過上述兩種方法得到的引導圖,其邊緣細節部分細節丟失,無法保留景深特性,使得復原的圖像無法保留引導圖的變化細節,這是造成景深處去霧不徹底的主要原因之一。
本文對引導圖進行深度濾波處理,首先用高斯分布對I′(x)做預處理,這樣局部區域內所有像素都服從高斯分布,得到預處理后的最小值圖像V(x),然后計算得到局部區域的拉依達準則下限值,該準則是一種判斷誤差的方法,判斷式為
|x-μ|>3σ
式中,μ,σ為局部均值和方差。本文用測量值x的下限值μ-3σ得到引導圖G(x)。對V(x)進行雙邊濾波得到局部均值圖μ(x):
μ(x)=FBF(V(x))
(15)
對最小值圖像和局部均值圖像差值的絕對值再次進行雙邊濾波操作就可以得到其對應的標準差:
σ(x)=med((V(x)-μ(x))2)
(16)
利用雙邊濾波可以保持圖像平滑,保留圖像邊緣特征,但雙邊濾波只能較好地濾除低頻成分,對最小值圖像與局部均值進行差值操作后,會在局部區域內產生脈沖噪聲,而中值濾波可以用來消除脈沖噪聲。所以對標準差求解選取中值濾波。采用雙邊濾波和中值濾波計算局部均值和方差,既能保持圖像平滑,又能保持邊緣特征,因此可以得到引導圖:
G(x)=μ(x)-3σ(x)
(17)
式(15)~式(17)中,μ(x)和σ(x)為使用快速雙邊濾波計算的均值和方差;G(x)為引導圖;FBF(*)表示快速雙邊濾波處理。
引導濾波[2]可以克服雙邊濾波產生梯度反轉的弊端,具有良好的局部平滑和保持邊緣的特性。在引導圖G(x)的引導下使輸出的圖像與輸入的圖像差異最小化,以G(x)為引導圖濾除V(x)中的紋理細節,剔除區域內的異常值,保證有效像素的使用。通過以上操作,可以保留輸入圖像的總體特征,結合引導圖的變化細節,可以得到邊緣保持良好且局部平滑的局部大氣光遮罩,從而有效抑制了恢復結果中由于景深邊緣突變而引入的Halo效應,即
Vdc(x)=guidefilter(G(x),V(x))
(18)
式中,Vdc(x)為對V(x)引導濾波后得到的局部大氣光遮罩,而且由于引導圖G(x)是灰度圖像,故可以降低算法復雜度并提高運算速度。
從上述分析中已經獲取了局部大氣光遮罩Vdc(x),通過式(12)~式(14)和式(18)就可以得到場景反照率ρ(x),可以看出恢復的場景反照率細節明顯。然后結合Land成像模型,復原出無霧圖像J(x)。復原效果圖如圖4所示。具體的數學表達式為
(19)

圖4 恢復過程效果圖
本文算法是在Windows 10操作系統下的Matlab R2014a上運行,硬件配置環境為Intel?CoreTMi5-6300HQ CPU@2.30 GHz,8.0 GB RAM。為了驗證本文所提出的算法的性能,與近幾年具有代表性的經典方法進行比較,并分別從視覺效果(主觀評價)和客觀評價兩個方面進行對比驗證。
視覺效果分析以人的感性認知為基礎,通過對去霧效果的主觀分析可以快速看出復原圖像效果的優勢與不足,但是主觀分析往往具有一定的片面性。本文選取文獻[1]He等的暗通道先驗算法、文獻[9]算法,文獻[10]算法進行對比。圖5給出了相應的實驗結果。圖5(b)為暗通道先驗去霧效果,該算法復原的圖像在景深突變的邊緣存在遺留殘霧的現象,并且圖像明顯偏暗,這主要是大氣光值選取的誤差導致的,其次部分遠景細節丟失,如圖5(b)中的紅色框所示。圖5(c)為文獻[9]算法的去霧效果,遠景存在大量殘霧現象,如圖5(c)中的紅色框所示,這主要是由于引導圖選取不當引起的。另外,前面兩種算法復原出來的無霧圖像亮度不足,效果偏暗,這主要是由于大氣光值的估計大于其真實值引起的。圖5(d)為文獻[10]算法的去霧效果,基本上去除了霧氣的干擾,但是在部分圖像中出現過飽和、顏色失真的現象,這主要是兩次使用形態學操作引起的,如圖5(d)中的紅色框所示。本文方法復原的圖像結果如圖5(e)所示,本文所提出的算法恢復的圖像細節明顯增多、對比度高、亮度適宜,相比較于暗通道先驗去霧算法,所提出的算法復原的圖像細節多,尤其在遠景區域。相比較于文獻[1]、文獻[9]方法,本文方法具有更好的色彩保真度性能,可以有效地除掉霧氣的干擾,并且圖像明亮度適宜。相比文獻[10]方法,本文實現效果在對比度和恢復細節上都有一定的優勢。綜上所述,本文方法在視覺效果上取得了一定的成果。

圖5 實驗效果對比


(20)
(21)
(22)
式中,nr和n0分別為無霧圖像和有霧圖像中可見邊數目的集合;ri為Pi處無霧圖像和有霧圖像的平均梯度比;r為無霧圖像的可見邊集合;ns為復原圖像的飽和像素點數;W和H分別為原始有霧圖像的寬和高。實驗對比數據如表1所示。

表1 客觀評價(實驗圖像為圖5(a)圖像,依次從左到右)
從表1的客觀評價數據中可以看到,文獻[9]方法復原的圖像出現負值,本文算法在可見邊上相對于文獻[1]、文獻[9]、文獻[10]有相對的優勢;對于歸一化平均梯度值,本文算法相比較文獻[1]、文獻[9]有一定優勢,但是對于文獻[10]來說,本文算法對于圖3、圖4略顯不足;對于飽和像素點,本文算法相比較于文獻[1]、文獻[9]有一定的優勢,但是相對于文獻[10]存在一定的不足,這主要是因為形態學的使用,導致對霧濃度估計過高,從而出現顏色飽和、平均梯度減小的問題,但是在可接受的范圍之內。綜合考慮,本文算法具有一定的優勢。
針對霧天環境下捕獲的圖像嚴重降質的問題,本文提出一種基于構造簡化大氣散射模型和局部大氣光遮罩的去霧算法。該算法首先通過構造霧濃度檢測函數,檢測出準確的大氣光選取區域;然后,利用簡化大氣散射模型的思想,構造局部大氣光遮罩估計算法;最后,結合大氣散射模型復原出場景反照率,進而根據Land成像模型復原出清晰的無霧圖像。從主觀評價和客觀評價兩個方面對該算法的可行性進行了驗證,表明該算法具有一定的優勢。