張 宏,張玉倫,鄧 旭,徐 梅
(哈爾濱理工大學計算機科學與技術學院,黑龍江 哈爾濱 150080)
由于在霧霾天氣下拍攝的圖像模糊不清并且對比度較低,這將影響后續的交通監控、軍事偵查、目標識別等任務[1-4]。因此,如何將有霧圖像清晰化顯得尤為重要。
目前圖像去霧算法主要可以分為兩類,即:基于圖像增強方法和基于圖像復原方法。基于圖像增強方法通常不考慮圖像退化原因,通過提高圖像的對比度來改善圖像的視覺效果。例如,直方圖均衡化[5]和Retinex算法[6]是典型地基于圖像增強方法。然而,直方圖均衡化方法容易導致去霧后的圖像信息丟失,Retinex算法去霧后圖像的色彩保真度不夠令人滿意。基于圖像復原方法通常分析圖像退化的原因,建立相應的退化模型,并在退化過程中補償丟失的信息。例如,基于偏振成像的方法[7]和基于先驗知識的方法[8-10]是典型地基于圖像復原的方法。然而,基于偏振成像的方法對景深信息的確認以及大氣散射系數的改動需要用戶交互式操作。因此,國內外研究學者們著手研究霧氣濃度分布規律以期望得到合理的先驗信息,從根本上達到圖像去霧的目的。這類方法早期由Tan等人[8]提出,基于無霧圖像具有較高對比度的先驗信息,通過最大化局部對比度來達到圖像去霧效果。但是復原圖像的顏色容易出現過飽和。Tarel等人[9]提出使用中值濾波,該方法運行時間較快,但是復原圖像容易出現光暈效應。Fattal等人[10]基于大氣光傳播介質與局部場景透射率不相關作為先驗信息,使用獨立成分分析來估算透射率,但是該方法復原的圖像容易發生失真情況。He等人[11]基于無霧圖像的非天空區域中至少一個顏色通道上的像素強度非常低的先驗信息,提出了經典的暗通道先驗方法。但是該方法對天空區域的去霧效果不是很理想。為此,文獻[12,13]是基于He等人提出的暗通道先驗方法做出了改進。Zhu等人[14]提出了顏色衰減先驗的假設,通過建立場景深度線性模型來獲取深度信息。Meng等人[15]提出了邊界約束和正則化圖像去霧方法,通過犧牲部分邊界信息來復原圖像。Cai等人[16]提出了一種端到端的網絡,稱為DehazeNet圖像去霧方法,該方法將深度學習與傳統方法相結合,以有霧圖像為輸入,通過深度學習估計透射圖,然后使用大氣散射模型復原圖像。與傳統網絡相比,該網絡圖像去霧的效率更高。但是,復原圖像容易出現霧氣去除不徹底的情況。
大氣中細小顆粒物的散射作用是形成霧霾的主要因素,在霧霾天氣下拍攝的圖像可視性大大降低。1999年,Nayar等人[17]提出了著名的大氣散射模型,該模型可以表示為
I(x)=J(x)t(x)+(1-t(x))A
(1)
式中I(x)表示為觀測到的有霧圖像,t(x)表示為場景透射率圖,A表示為全局大氣光值,J(x)表示為所要求取的無霧圖像。
He等人[11]通過觀察大量室外無霧圖像的暗通道發現:在大多數室外無霧圖像的非天空區域內,至少一個顏色通道上的像素強度非常低,并且像素值接近于0或者等于0。

(2)
式中Jdark(x)表示觀測到的無霧圖像J(x)的暗通道,Jc(x)表示無霧圖像J(x)的第c個顏色通道,其中c∈{R,G,B},Ω(y)是以像素y為中心的窗口。由于無霧圖像J(x)非天空區域的暗通道灰度強度較低,因此Jdark(x)→0。
He等人[11]選取暗通道圖像中最亮的前0.1%的像素點作為大氣光候選區域,并在大氣光候選區域對應其在原始圖像的位置中尋找最大像素點的值作為估計的大氣光值A。然而,當有霧圖像含有亮白色物體或者其它高亮噪聲時,大氣光候選區域可能會錯誤定位在亮白色物體或其它高亮噪聲上,導致大氣光值估計的不準確,從而影響圖像的去霧效果。此外,由于暗通道先驗方法復原圖像的顏色相對較暗,影響圖像的視覺效果。
針對上述分析,本文提出了基于改進暗通道先驗的圖像去霧算法,圖1為本文提出算法的流程圖,其主要貢獻如下:
1)提出了四叉樹搜索算法來估計大氣光候選區域,避免了大氣光候選區域定位在高亮噪聲或者亮白色物體上,進而導致大氣光值估計的不準確,影響圖像的復原效果。
2)將初步的去霧圖像轉為HSI顏色空間,保持色調H和飽和度S不變,僅對亮度I進行限制對比度自適應直方圖均衡化處理。最后,將HSI顏色空間轉為RGB顏色空間得到最終的去霧圖像,改善了去霧后圖像亮度偏暗的問題。

圖1 提出算法的流程圖
理想情況下,大氣光被估計于無窮遠的天空區域上。當圖像中存在較大的霧氣時,為了避免估計的大氣光候選區域定位在高亮噪聲或者亮白色物體上,導致大氣光值估計的不準確。本文通過四叉樹搜索算法來估計大氣光候選區域,其主要過程可以描述為:
1)將輸入的有霧圖像劃分為四個大小相等的區域。
2)分別計算四個區域的均值和方差,并且將每個對應區域的均值減去對應區域的方差得出對應區域的得分。
3)選擇得分最大的區域繼續重復執行四叉樹搜索算法。
4)當搜索選定區域的像素點個數小于等于設置的閾值時,停止四叉樹搜索,此區域為最終估計的大氣光候選區域。如圖2所示,通過不同方法估計的大氣光候選區域,大氣光候選區域標記為紅色。

圖2 估計大氣光候選區域
從圖2中可以看出He等人[11]的方法錯誤地將大氣光候選區域定位在白色物體上,這將導致大氣光值估計的不準確,進而影響圖像的去霧效果。而本文提出的算法將大氣光候選區域定位在遠處的天空區域內,有利于提高大氣光值估計的準確性。
確定了大氣光候選區域后,將大氣光候選區域對應其在有霧圖像中的位置,再將求得位置的R,G,B三個顏色通道的均值作為估計的大氣光值Ac,其中c∈{R,G,B}。
根據大氣散射模型(式(1))可知,僅有含霧圖像I(x)是已知的。若想求取無霧圖像J(x)需要計算兩個未知量,分別是大氣光值A和場景透射率圖t(x)。根據暗通道先驗理論Jdark(x)→0,故根據式(1)可以求得透射率圖t(x),即

(3)
為了使去霧后的圖像保留一定的霧度,使其看起來更加自然,在式(3)中引入一個參數w∈{0,…,1},即

(4)
式中w值越大,復原圖像中的霧氣去除效果越明顯,但是復原圖像的顏色很大程度上會變得比較暗并且過度的凸顯圖像的細節,影響了圖像的可視性。而w值越小,復原圖像中的霧氣去除效果越不明顯。一般w設為0.95。
根據第3.1節計算得出的大氣光值Ac和上述計算得出的透射率圖t(x),可以根據大氣散射模型求出復原圖像J(x)

(5)
式中t0是為了避免透射率t(x)過小而設置的閾值(通常設t0=0.1)。

圖3 通過不同算法獲得的透射圖和相應的圖像去霧結果
從圖3中可以看出,通過He等人[11]提出的方法進行去霧時,去霧結果中的天空區域出現了顏色失真的情況。而通過本文提出的算法進行圖像去霧時,去霧結果中天空區域的顏色比較自然,并且沒有出現顏色失真的情況。
由于本文提出的算法是基于暗通道先驗原理,使得去霧后的圖像J(x)顏色較暗。因此,將初步去霧后的圖像轉為HSI顏色空間并保持H(色調)和S(飽和度)不變,僅對I(亮度)進行限制對比度自適應直方圖均衡化處理。將處理完的HSI顏色空間轉為RGB顏色空間得到最終的去霧后圖像。
限制對比度自適應直方圖均衡化主要思想是對其對比度進行限幅,具體過程可以描述為:
1)將圖像分割為n個大小相等的連續子區域(不重疊),計算出每個區域內的直方圖。

圖4 直方圖裁剪和重新均勻分配示意圖
2)對每個子區域內的直方圖進行裁剪,使其幅值低于預先設定好的上限。如圖4所示,將裁掉的部分像素重新均勻分配到各個灰度級中。從圖4中可以看出,經過重新均勻分配后的直方圖有部分像素超過預先設定好的上限,故重復此過程直至所有被裁剪的像素被均勻分配為止。
3)對限制對比度后的每個區域的直方圖分別進行均衡化。
4)最后為了消除人為引起的邊界,使用雙線性插值法將相鄰區域合并,為每個像素進行線性插值運算得到最終的圖像。
從圖5中可以看出,通過對HSI顏色空間中的亮度I進行限制對比度直方圖均衡化操作,有效的改善了圖像場景亮度偏暗的問題,并且提高了圖像的對比度,更加凸顯去霧后圖像的細節。

圖5 初步去霧結果和最終去霧結果的比較
本文使用MATLAB編程語言,在windows7的操作系統上進行所有實驗。硬件平臺為Inter(R) Core(TM) i5 - 4278U CPU @ 2.60GHz處理器、8GB RAM。
將本文提出的算法與幾種著名的圖像去霧方法(He等人[11],Zhu等人[14],Meng等人[15],Cai等人[16])進行比較,分別使用定性評估和定量評估的方式來驗證本文方法的有效性。
圖6到圖10表示不同場景下真實有霧圖像的去霧結果,其中(a)表示原始有霧圖像,(b)表示He等人[11]的去霧結果,(c)表示Zhu等人[14]的去霧結果,(d)表示Meng等人[15]的去霧結果,(e)表示Cai等人[16]的去霧結果,(f)表示本文算法的去霧結果。

圖6 火車圖像的去霧結果比較

圖7 稻草圖像的去霧結果比較

圖8 公路圖像的去霧結果比較

圖9 城市圖像的去霧結果比較

圖10 森林圖像的去霧結果比較
從圖6到圖10中可以看出,雖然He等人[11]提出的經典暗通道方法可以有效地去除有霧圖像中的霧氣,但是去霧后的圖像顏色偏暗,如圖6(b)所示,并且天空區域容易出現顏色失真,如圖10(b)所示。雖然Zhu等人[14]提出的顏色衰減先驗方法可以增強圖像的紋理信息,但是該方法去霧后的圖像顏色偏暗,如圖6(c)所示,并且遠處的圖像場景容易出現霧氣去除不徹底的情況,如圖7(c)所示。Meng等人[15]提出的基于邊界約束的去霧方法,該方法可以有效地去除圖像中的霧氣,但是該方法去霧后的圖像容易發生顏色失真的情況,如圖6(d)所示。Cai等人[16]提出了一種端到端的網絡去霧方法,雖然去霧后圖像的顏色沒有發生失真,但是并沒有很有效的去除圖像中的霧氣,如圖10(e)所示。
從圖10(f)中可以看出,本文提出的算法改善了He等人[11]和Meng等人[15]去霧結果中的天空區域發生色彩失真的情況。并且避免了Zhu等人[14]和Cai等人[16]的方法對于遠處場景的霧氣去除不徹底的情況。從圖6到圖10不同場景下的圖像去霧結果可以看出,本文提出的算法可以有效的去除圖像中的霧氣。與一些經典的圖像去霧方法相比,避免了出現顏色失真的情況,并且改善了去霧后的圖像亮度偏暗的問題。綜合以上定性分析的結果可以看出,本文提出的算法總體去霧效果更佳。
由于每個人的視覺感知是不同的,使得定性評估的方式包含一些主觀因素。為了更公平的比較實驗,本文又采用定量評估的方式來驗證提出算法的有效性。本文選取圖像平均梯度、可見邊邊緣梯度法[18]和圖像信息熵作為定量評估的指標。
圖像平均梯度可以描述圖像的清晰程度,反映了圖像細節反差程度以及紋理變化。通常來說,平均梯度值越大,圖像越清晰。圖像平均梯度可以表示為

(6)
如表1所示,與其它4種對比的圖像去霧方法相比較,通過本文提出的算法對真實有霧圖像進行去霧處理,去霧結果的平均梯度值最高。這表明了通過本文算法去霧后的圖像細節豐富,紋理清晰。

表1 去霧結果的平均梯度g對比
可見邊邊緣梯度法[18]包括三個評估指標,e(新增可見邊比率)、r(恢復后對比度質量)和σ(恢復后飽和像素數)。一般來說,e和r的值越大表明去霧后的圖像質量越好,σ值越小表明去霧后的圖像質量越好,e、r和σ分別定義為[18]:

(7)

(8)

(9)
如表2所示,本文提出算法的新增可見邊比率基本優于其它4種對比的圖像去霧方法。僅有個別數據略高于本文提出的算法,并且相差較小。例如表2中有關圖7的數據顯示,He等人[11]提出方法的新增可見邊比率略高于本文提出算法的新增可見邊比率。但是結合定性評估的結果來看,He等人[11]的去霧結果中顏色相對偏暗,遠處的細節不容易被人眼捕捉,而本文提出算法的色彩飽和度和亮度都略高于He等人的方法。

表2 去霧結果的新增可見邊比率e對比
如表3所示,與幾種著名的圖像去霧方法相比較,采用本文提出的算法進行去霧處理,恢復后對比度質量最高。這表明了采用本文提出的算法恢復后的圖像具有較高對比度的特點。
如表4所示,本文算法恢復后飽和像素數在圖6、7、8中具有很好的競爭優勢。在表4中有關圖9的數據顯示,Zhu等人[14]和Meng等人[15]提出方法的恢復后飽和像素數略優于本文提出算法的恢復后飽和像素數。但是從定性評估角度來看,Zhu等人[14]和Meng等人[15]的去霧結果中,近距離建筑物復原的細節略差于本文提出算法的去霧效果。表4中有關圖10的數據顯示,He等人[11]提出方法的恢復后飽和像素數略優于本文提出算法的恢復后飽和像素數。但是從定性評估角度來看,He等人[11]去霧結果中的天空區域出現了顏色失真,并且近距離的場景顏色暗淡。

表3 去霧結果的恢復后對比度質量r對比

表4 去霧結果的恢復后飽和像素數σ對比
圖像信息熵值的大小可以反映圖像信息量的多少。通常來說,圖像信息熵的值越大,圖像的信息量越豐富、質量越好。圖像信息熵可以表示為

(10)
如表5所示,與其它4種對比的圖像去霧算法相比較,本文去霧結果的圖像信息熵具有較好的競爭優勢,僅圖10中Zhu等人[14]的數據略優于本文算法。但是從定性評估的角度來看,Zhu等人[14]方法的去霧效果并沒有本文方法的去霧后效果顯示的信息量豐富,并且遠處場景存在霧氣去除不徹底的情況。而本文算法的去霧結果中遠處場景的細節較為突出。

表5 去霧結果的圖像信息熵U對比
本文針對現有的圖像去霧算法存在顏色失真和去霧后圖像亮度偏暗的問題,提出了基于改進暗通道先驗的圖像去霧算法。通過改進的四叉樹搜索算法來估計大氣光候選區域,提高了大氣光值估計的準確性,并且有效地減少了去霧后的圖像出現顏色失真的情況。此外,通過將初步去霧后的圖像轉為HSI顏色空間,僅對亮度I進行限制對比度自適應直方圖均衡化處理,有效的改善了去霧后的圖像顏色偏暗的問題,提高了圖像的對比度,使去霧后的圖像凸顯更多細節。