陳 明 譚 濤
1(四川工商職業技術學院信息工程系 四川 都江堰 611837)2(西華師范大學計算機學院 四川 南充 637002)
戶外計算機視覺系統[1],如城市交通、自主導航和遙感探測等,是假定輸入圖像從透明的大氣中獲取的,但是真實情況下獲取的圖像可能會受到惡劣天氣、霧或霾等條件的影響。這些條件降低了圖像的對比度、色彩飽和度和可見性,導致大量細節信息丟失。作為計算機視覺系統的輸入源,圖像質量會對整個系統的性能產生直接影響。因此,國內外研究人員創建許多圖像除霧算法來降低這種影響,圖像除霧技術成為計算機視覺領域研究的熱點之一。
由于霧或霾對于圖像的影響隨著距離[2]的增加而增加,圖像除霧成為一個非常具有挑戰性的問題。目前的圖像除霧技術[3-4]大致可以分成兩種類型:一類是不考慮圖像降質原因, 采取常規圖像增強算法如對比度增強[5]、直方圖均衡化[6]、基于Retinex理論的圖像增強[7]等作為基礎處理手段的非物理模型圖像除霧技術,這類方法通過提高圖像對比度降低霧或霾對圖像的影響,但是也容易造成過增強或者信息損失現象。另一類是考慮圖像霧天降質原因,利用大氣散射原理復原真實場景的物理模型圖像除霧技術,經典的復原方法有暗通道先驗方法(Dark Channel Prior,DCP)[8],這類方法畸變較小,除霧效果很好,但是由于計算復雜度較高,實時處理比較困難。
為了克服這些問題,研究人員提出了許多基于DCP的替代方案,在縮短處理時間的同時,提高圖像處理的質量。Wang等[9]提出了一種基于線性變換的單圖像去霧的快速算法,利用改進的四叉樹分割算法估計大氣光值,雖然取得了較好的效果,但是復原圖像的顏色較暗,并且算法比較復雜。曾接賢等[10]提出一種基于暗通道的雙邊濾波模型,在暗通道先驗理論的基礎上,利用雙邊濾波估計大氣光值和透射率,該算法較好地改善了除霧算法的時間復雜度,但是復原圖像中出現Halo效應問題。Liu等[11]提出一種有效的多尺度相關小波方法,用于解決頻域中的圖像去霧和去噪問題,該算法在高頻部分中自適應地去除噪聲并增強紋理細節,但是復原圖像中出現顏色失真現象。
上述除霧方法雖然在一定程度上提高了圖像的除霧質量,但依然存在運算時間長、復原圖像中出現Halo效應等問題。針對以上問題,本文提出了一種基于形態學和高斯濾波的暗通道先驗的圖像去霧算法。該算法利用形態學的開操作和膨脹運算,以及用于圖像平滑的高斯濾波方法,可以快速、準確地獲取具備主要結構的透射圖,然后結合暗通道先驗方法估計的全局大氣光值,利用大氣散射物理模型獲取復原圖像。
在圖像處理中最常用的單色大氣散射模型如下:
I(χ)=J(χ)t(χ)+A(1-t(χ))
(1)
式中:χ=(x,y)表示圖像坐標;I(χ)為霧天攝像機收到的光強;J(χ)表示實際場景中輻射強度;t(χ)為介質透射率;A為大氣光值。
分析式(1)可知,除霧后的復原圖像J(χ)求解可以通過下式轉化為對透射率t(χ)和大氣光A的估算:
(2)
根據式(1),透射率t(χ)可以表示為:
(3)
為了估算透射率t(χ),暗通道算法是利用無霧圖像中R、G、B三色通道至少有一個顏色通道的亮度值趨近于0的先驗規律進行估算:
(4)
式中:Jdark(χ)表示暗通道,趨于0;Ω(χ)表示以圖像坐標χ為中心的鄰域;Jc表示圖像J中三原色通道R、G、B中之一。
(5)
現實生活中,因為圖像中有霧會讓人們感受到景深的存在[12],所以在圖像除霧過程中可以適當引入一個乘積因子來保留一定程度的“霧”現象:
(6)
式中:系數ω一般取值為0.95。
大氣光A通常可以借助暗通道圖求取輸入圖像中對應的值,由于大氣光的亮度較高,一般選取暗通道圖中亮度值的前0.1%像素對A值估計:
(7)
暗通道理論在近年來單幅圖像除霧算法中影響比較大,但是該方法對于透射率的估計過于粗糙,導致復原圖像中出現Halo效應,如圖1所示。因此,本文在暗通道先驗的基礎上,提出一種結合高斯濾波器和形態學操作的除霧算法,對最小通道圖采用形態學開操作、高斯濾波、形態學膨脹運算,獲取透射率的精細估計。本文算法可以有效避免Halo效應的產生,同時還大大縮短圖像處理時間,該算法的流程圖如圖2所示。

(a) 輸入圖像 (b) 暗通道的透射率 (c) 復原圖像圖1 基于暗通道算法的Halo效應

圖2 基于形態學和高斯濾波的暗通道先驗除霧算法
基于大氣散射模型除霧算法的關鍵是對透射率t(χ)及大氣光值A的估計。在本文算法中,根據式(7)對空氣光A進行估計。
根據A對輸入圖像I(χ)進行歸一化:
(8)
歸一化圖像如圖3(b)所示。
對于透射率t(χ),本文提出了一種結合形態學和高斯濾波器的估計方法。首先計算輸入圖像歸一化后IN(χ)的最小通道:
(9)
操作結果如圖3(c)所示。
在灰度圖像中,形態學腐蝕運算是在結構元素確定的鄰域中,選取圖像值與結構元素值之差的最小值,其作用是使輸出圖像比輸入圖像暗,減弱比結構元素小的明亮細節的視覺效果。同樣,形態學膨脹運算是在結構元素確定的鄰域中,選取圖像值與結構元素值之差的最大值,其作用是使輸出圖像比輸入圖像亮,減弱比結構元素小的暗細節的視覺效果,形態學腐蝕運算εB和膨脹運算δB可定義為:
(10)
式中:I(χ)是輸入圖像;B是結構元素。
在形態學中,對圖像先進行腐蝕運算,再進行膨脹運算過程稱為開操作。開操作可以消除圖像中比結構元素尺寸小的亮細節,同時保持尺寸大的亮區域和圖像的整體灰度值。對最小通道圖Imin(χ)采取開操作的結果如圖3(d)所示,其數學表達式定義為:
Iγ(χ)=γB(Imin(χ))=δB[εB(Imin(χ))]
(11)
高斯濾波器是一種線性濾波器,有效抑制噪聲和平滑圖像的同時,能夠更多地保留圖像的總體灰度分布特征。本文采用高斯濾波器平滑開操作處理后的圖像,減小開操作形成的像素間的差異,如圖3(e)所示。高斯濾波一般采用離散化窗口滑窗卷積方式實現,其數學表達式定義為:
IG(χ)=GaussianFilter(Iγ(χ),g)
(12)
式中:g為高斯濾波器窗長。
高斯核參數如下:
(13)
式中:σ為高斯分布的標準差。
應用高斯濾波后,圖像中兩個相鄰區域形成梯度。為了消除梯度,并保留主要結構,圖3(f)給出了對濾波后的圖像應用膨脹運算后的結果:
ID(χ)=δB2(IG(χ))
(14)
利用最小通道逆與膨脹運算結果之間的最小值,估計透射率:
(15)

(a) 輸入圖像 (b) 歸一化圖像 (c) 最小通道 (d) 開操作

(e) 高斯濾波 (f) 膨脹運算 (g) 取(c)、(f)最小值 (h) 復原圖像圖3 本文算法計算實例
本文所有實驗在一臺配置為Intel(R) Core(TM)i5-3320 CPU @2.60 GHz和4 GB RAM的計算機上進行,算法使用Visual C++結合OpenCV 3.0實現。
本文采取文獻[13]中6幅圖像進行實驗,比較該算法和其他兩種算法的性能。文獻[13]的圖像在除霧算法的研究方式得到了廣泛的應用,所以本文采取其中真實室外環境的3幅圖像進行定性分析, 3幅合成圖像進行定量性能對比。本文在實驗中選取的參數如下:大氣光A=[0.8 0.7 0.9],開操作結構元素B1的尺寸s=15,膨脹操作結構元素B2的尺寸d=42,高斯濾波器的尺寸g=37,透射率t(χ)與每個實驗圖像有關。
圖4-圖6展示了文獻[9]、文獻[11]以及本文提出的方法在三幅自然圖像(Forest、Pumpkin和Canon)的除霧結果。可以看出,利用三種算法進行除霧處理后,三幅自然圖像中的大部分霧霾都被消除掉。對比每一幅圖可以發現:在Forest圖像中,本文算法色調更自然,亮度較高,文獻[9]算法處理的結果顏色對比度較差,亮度偏暗,但光暈很少;在Pumpkin圖像中,本文方法較好地表現了天空區域的細節,且不飽和色比其他兩種方法要好,文獻[9]算法處理的結果較暗,文獻[11]算法出現顏色失真現象;在Canon圖像中,本文方法獲取的復原圖像的對比度和顏色比其他兩種方法要好,細節也更豐富。

(a) 輸入圖像 (b) 文獻[9]算法 (c) 文獻[11]算法 (d) 本文算法圖4 自然圖像(Forest)除霧算法結果

(a) 輸入圖像 (b) 文獻[9]算法 (c) 文獻[11]算法 (d) 本文算法圖5 自然圖像(Pumpkin)除霧算法結果

(a) 輸入圖像 (b) 文獻[9]算法 (c) 文獻[11]算法 (d) 本文算法圖6 自然圖像(Canon)除霧算法結果
本文應用圖像處理中常用的兩種指標來評價算法的復原性能:PSNR(峰值信噪比)和SSIM(結構相似度指數)。PSNR表示復原圖像的最大像素值與噪聲的比值,定義為:
(16)

基于感知模型的歸一化度量SSIM定義為:
S(x,y)=f(l(x,y),c(x,y),s(x,y))
(17)

圖7-圖9給出了在合成圖像中應用除霧算法的結果。表1顯示了文獻[9]、文獻[11]和本文算法通過PSNR和SSIM兩種指標來評價算法復原性能的評估的結果。可以看出,對于這兩個指標中所有經過處理的圖像,本文算法的性能都優于另外兩種算法。

(a) 輸入圖像 (b) 真實圖像 (c) 文獻[9]算法 (d) 文獻[11]算法 (e) 本文算法圖7 合成圖像(roof2)除霧算法的結果

(a) 輸入圖像 (b) 真實圖像 (c) 文獻[9]算法 (d) 文獻[11]算法 (e) 本文算法圖8 合成圖像(tree2)除霧算法的結果

(a) 輸入圖像 (b) 真實圖像 (c) 文獻[9]算法 (d) 文獻[11]算法 (e) 本文算法圖9 合成圖像(bike)除霧算法的結果

表1 除霧結果對比

續表1
圖10給出了三種算法處理一幅像素為600×400圖像(roof2)時的運行時間結果。可以看出,本文算法相較于其他算法而言,在處理時間方面取得了極低的時間復雜度,處理速度獲得了極大的提高,充分體現了本文算法的優越性。

圖10 不同算法在600×400像素圖像中的處理時間
本文提出一種基于形態學和高斯濾波的暗通道先驗快速圖像除霧算法。該算法采取形態學(開操作和膨脹運算)和高斯濾波對最小通道圖進行處理,可以快速、準確地估計透射率,然后結合暗通道先驗方法估計的全局大氣光值,利用大氣散射物理模型獲得復原圖像。通過對戶外模糊圖像的定性分析表明,本文算法比其他兩種算法能夠獲得更多的背景細節,對比度和亮度也更好。此外,對不同的合成圖像進行了PSNR和SSIM兩個指標的定量分析,實驗結果表明本文算法比其他方法更加精確,用時更少。本文算法在除霧精度和除霧時間效率上具有優越性,可以應用在視頻去模糊、人工視覺等方面。