張麗華,孫鋼燦,酒明遠
(1.鄭州大學 河南先進技術研究院;2.鄭州大學 信息工程學院,河南鄭州 450001)
霧霾是一種常見的大氣現象,出現霧霾時空氣中懸浮各種顆粒物,比如微小水滴、冰晶、灰塵等,不僅使大氣變得渾濁,而且會吸收、反射和散射來自大氣和物體的光,令場景能見度大幅降低,導致采集的圖像質量變差,圖像中有用信息急劇減少。作為計算機視覺系統處理圖像的源頭,采集的圖像質量對后續的圖像處理至關重要,圖像質量的優劣影響應用系統的安全性和穩定性。圖像去霧技術能減小霧霾對圖像造成的負面影響,增強圖像對比度,恢復圖像顏色或場景深度,使圖像更加清晰,達到后續處理要求。因此,對圖像去霧算法進行深入研究具有重要意義。
近年圖像去霧理論和算法研究成果頗豐,現將圖像去霧算法分類介紹如下。
(1)基于圖像增強去霧算法。這類去霧算法通過最大限度地去除圖像噪聲減小對圖像的干擾,進而增加圖像對比度,最后達到圖像去霧目的。代表性方法有直方圖均衡化、Retinex 理論、小波變換等。楊驥等先將圖像的顏色空間從RGB 轉換到HIS,然后利用模塊間具有相似性的特點進行自適應更新,最后定義閾值裁剪直方圖;張賽楠等利用中心自適應調節擬合函數改進的SSR算法增強圖像對比度,進而實現圖像去霧目的。
(2)基于圖像復原去霧算法。這類算法主要依據大氣散射模型,通過對大量不同場景中的有霧圖像和清晰無霧圖像進行實驗觀察和數據分析,發現其中存在的某些映射關系,然后根據霧霾圖像的形成過程進行逆向運算,復原出無霧圖像。Tan在馬爾科夫隨機場框架中構建代價函數,明顯提升了圖像的對比度,但圖像顏色會出現嚴重失真;Tarel 等在求取大氣光值A
時使用經典中值濾波器,該濾波器可以保留景物邊緣細節,但同時也保留了城市建筑、樹木等物體拐角處的殘霧或偽影;利用一種傳統的直線中值濾波器,既可以保留邊緣又可以保留鈍角,但圖像顏色會過飽和;Wang 等提出基于多尺度深度融合(MDF)的去霧算法,去霧圖像具有較好的場景深度,能有效緩解去霧圖像的光暈效應和白色物體問題,不足的是算法處理速度較慢;He 等提出暗通道先驗理論,在非天空區域具有明顯的去霧效果,但景物邊緣存在明顯的光暈效應且在景深處去霧不徹底。使用軟摳圖法優化透射率,可以較好地抑制光暈效應,但是這種方法耗時長,在實際場景中應用非常有限;張晨等利用圖像融合并通過構造高斯函數,對不同景深處的暗通道設置不同的權值。該算法在遠景處去霧效果明顯,但隨著權值的增大,近景的物體顏色會過飽和;Jackson 等利用瑞利散射理論和折射率系數估計初始透射率,采用快速導頻濾波器對初始透射率進行細化處理。使用該算法能得到不錯的去霧結果,但去霧后圖像仍存在少量偽影;Salazar 等利用形態學重建來估計透射圖,保留了處理過程中各階段的重要結構,但是不適用于處理天空區域;Sun 等采用局部大氣光估計方法,彌補了全局大氣光值在取值方面較為單一的問題。(3)基于深度學習去霧算法。這類方法需要對大量的仿真霧天數據集進行訓練,然后將得到的網絡結構用于圖像去霧。Cai 等提出可訓練的端到端系統,采用基于神經網絡的深度架構,設計專門的層來提取圖像特征,并提出雙邊校正線性單元這一新的非線性激活函數來提高復原圖像質量;Li 等提出基于深度卷積神經網絡(CNN)的圖像去霧算法,它包括一個感知霧霾的去除子網和一個細化子網,分別用來重建和優化去霧圖像;Yin 等采用變分圖像去霧,通過創建彩色轉移圖像去霧模型進行去霧,并設計基于CNN 的深度學習框架作為監督學習策略獲取模型系數信息。
受到以上去霧方法啟發,本文針對傳統暗通道先驗算法去霧程度不徹底、景物邊緣存在光暈效應以及處理速度慢等問題,提出一種基于暗通道先驗去霧的改進算法。首先,對原始最小通道圖進行底帽變換得到圖像的輪廓圖,并與原始最小通道圖的灰度反轉圖融合,補償暗通道的像素值;然后,將歸一化處理的最小通道圖進行雙邊濾波和開、閉運算,將得到的透射圖與改進的暗通道得到的透射圖進行融合,優化透射率。實驗結果表明,本文算法能夠有效保留圖像邊緣信息,復原圖像清晰明亮,可以實現圖像的實時處理。
空氣中飄浮的大量顆粒物對光的散射作用是產生霧霾的一個關鍵原因。在圖像處理領域中,常用大氣散射模型描述霧天降質圖像,其數學表達式為:
χ
=(x
,y
)表示像素坐標點,I
(χ
)表示有霧圖像,J
(χ
)表示無霧圖像,A 為全局大氣光值,t
(χ
)表示介質透射率,t
(χ
)=e
,d
(x
)表示場景深度,β
為大氣散射系數。t
(χ
)的值與場景深度密切相關,其值越小表示霧的濃度越大。根據式(1)可知,獲取無霧圖像J
(χ
)的關鍵在于從有霧圖像中估算出透射率t
(χ
)和大氣光值A
,但t
(χ
)顯然無法從式(1)中直接獲取,因此需要使用一些先驗和假設來提供更多條件。t
(χ
)的估計和大氣光值A
的獲取提供了方向,其基本思想是:在大多數室外無霧圖像的RGB 三個顏色通道中,總有一些像素至少有一個顏色通道在非天空區域中具有較低甚至接近于0 的像素值。暗通道先驗理論的數學表達式為:J
(χ
)表示暗通道圖像,J
(χ
) →0。J
表示有霧圖像某一個顏色通道的值,Ω
(χ
)表示以像素(x
,y
)為中心的矩形濾波窗口,本文中Ω
(χ
)=15。首先假設透射率t
(χ
)為一個常數,根據已知條件求出大氣光值A
,然后結合式(1)和式(2)可得到透射率的表達式如下:ω
,本文中ω
=0.95。當透射率t
(χ
)值很小時,J
(χ
)將會很大,復原圖像會向白場過度,造成圖像失真,所以需設置一個閾值t
,使復原圖像的亮度值在一個正常范圍內。最終去霧圖像表達式為:t
<t
時,令t
=t
,t
的取值設為0.1。在圖像處理中,形態學處理是使用范圍最廣泛的技術之一,在簡化圖像、保留物體形狀主要特征等方面發揮著重要作用。本文中用到的形態學處理主要有開運算、閉運算和底帽變換。
形態學腐蝕指以結構元素為模板,尋找在結構元素鄰域范圍內圖像像素值與結構元素之差的最小值。形態學膨脹則是以結構元素為模板,尋找在結構元素鄰域范圍內圖像像素值與結構元素之差的最大值。形態學腐蝕和膨脹的數學表達式分別為:
I
(χ
)表示輸入圖像,B
表示結構元素。形態學處理中,開運算的過程可描述為先對輸入圖像進行腐蝕運算后進行膨脹運算,根據噪聲和需要消除的目標特點,選取形狀合適的結構元素,消除圖像中的孤立區域和毛刺,保持圖像亮度基本不變;閉運算的過程可描述為先對輸入圖像進行膨脹運算后進行腐蝕運算,對圖像中物體內的細小空洞具有填充作用,也可用來連接物體中相鄰區域之間被斷開的部分和平滑物體邊界。開、閉運算表達式分別為:
暗通道先驗算法雖然可以消除大部分霧氣,但在復原圖像的景物邊緣處往往存在明顯的光暈效應,且在景深處未能徹底去霧。本文針對這些問題進行改進,主要包括暗通道改進和透射率優化兩個部分,圖1 為本文算法流程。
I
(χ
),根據式(2),可將原始最小通道表示為:Fig.1 Flow of the proposed algorithm圖1 改進算法流程
底帽變換是閉運算與原圖之差。底帽變換的作用是突出圖像輪廓周圍亮度較暗的區域,得到較好的輪廓圖。底帽變換還可以校正不均勻光照對圖像的影響,將最小通道圖的整體亮度調整到一個合適的范圍,以便對全局大氣光值進行更精確的估計。根據式(8),底帽變換可以表示為:
圖像融合指利用圖像處理和計算機技術等手段處理將兩幅或多幅圖像整合成一幅圖像,以便最大程度地提取和利用每幅圖像中的有利信息。將經過底帽變換得到的輪廓圖和最小通道的灰度反圖進行融合,可以增強圖像邊緣像素的像素值,優化圖像邊緣細節。本文采用像素級的加權平均算法融合上述兩幅圖像,如圖2 所示。圖2(d)為圖像融合后的最小通道圖。
Fig.2 Calculation of dark channel圖2 暗通道計算
I
(χ
)表示對最小通道圖進行灰度反轉,w
、w
為加權系數,兩者之間的關系滿足w
+w
=1。經過反復實驗,w
、w
的取值分別為w
=0.56,w
=0.44。對融合后的圖像再次使用灰度轉換,然后進行最小值運算,便可得到最終的暗通道圖。
選擇經過改進的暗通道圖來估計大氣光值。在暗通道圖中尋找亮度值前0.1%的像素點,將這些像素點的強度平均值作為全局大氣光值。
h
和w
分別表示暗通道圖的高和寬。對輸入圖像進行歸一化處理:
歸一化后最小通道表示為:
t
(χ
),然后經過雙邊濾波器和形態學處理得到透射率t
(χ
),將t
(χ
)和t
(χ
)融合,得到最終透射率t
(χ
),最后使用導向濾波對t
(χ
)進行精細化處理。初始透射率可以表示為:
a
為常數,作用是給圖像做線性變換從而增加圖像對比度,本文a
取值為1.15。雙邊濾波是一種常用的非線性濾波,在對圖像空間鄰近度和像素值相似度進行折中處理的同時,也考慮了圖像的空域信息和灰度相似性。本文采用雙邊濾波對初始透射率圖進行濾波處理,目的是減少噪聲對圖像的干擾,平滑并保留圖像物體邊緣信息。雙邊濾波表示如下:
根據式(7)、式(8),對濾波后的透射圖進行開、閉運算,結果如圖3(d)、圖3(e)所示。
t
(χ
)和t
(χ
)進行融合,其數學表達式為:k
和k
為加權系數,同樣k
、k
滿足k
+k
=1,經過試驗,當k
=0.4、k
=0.6 時圖像去霧效果最好。引導濾波不僅可以保持邊緣,還能夠降低圖像噪聲,因此本文使用引導濾波對透射率t
(χ
)進行精細化處理。最終的透射率t
(χ
)表達如下:t
(χ
)和全局大氣光值A
,結合大氣散射模型得到復原圖像。去霧結果如圖4(b)所示。Fig.3 Calculation of transmissivity圖3 透射率計算
Fig.4 Haze removal results圖4 去霧結果
本文實驗編譯環境為Python3.7,計算機操作系統為Windows10,CPU 為3GHz,運行內存為8GB。
為驗證本文算法的去霧性能,選取8 幅在室外自然場景下拍攝的經典霧天圖像,3 幅室外自然場景的合成加霧圖像和3 幅室內場景的合成加霧圖像進行實驗觀察和分析,并將文獻[8]Tarel 等算法、文獻[10]He 等算法和Zhu等的結果與本文算法實驗結果進行主觀分析和客觀對比。本文中室外場景合成圖像選自O-HAZE 數據集,室外場景合成圖像選自D-HAZY 數據集。
主觀分析是通過人的視覺對圖像優劣進行最直觀的評價。圖5 分別給出了本文中不同去霧算法的去霧結果,圖5(a)是從自然環境中采集的有霧圖像,圖5(b)是經過He算法處理后的去霧結果,可以看出,雖然圖像中的霧能夠基本清除,去霧后圖像整體色彩也較為自然,但是去霧不夠徹底,在第1、2、3、6 等幾幅圖中可以很直觀地看出在物體邊緣處和景深突變處存在光暈效應。圖5(c)是Tarel算法結果,該算法整體看去霧程度很高,但景物邊緣處有明顯殘霧,如第2 幅圖像中有明顯的霧氣殘留在樹葉周圍;從圖5(c)中可以看出Zhu 的算法去霧程度不均勻,在同一幅圖片不同景深處去霧效果差距很大,如第2、4、8 這3 幅圖中,中間部分去霧效果明顯比其他區域好。此外,Zhu算法復原圖像顏色出現過飽和,如第3 幅圖像建筑物顏色相對其他幾種算法明顯偏深;Tarel算法和Zhu算法復原圖像亮度變暗,導致圖像景物細節模糊,如第5 幅圖像中,由于使用這兩種算法去霧后的圖像比較昏暗,進而導致無法得到較多的有用信息。圖5(e)為本文算法去霧結果,經過幾種算法去霧效果對比,能夠明顯發現本文算法更加出色,如第1 幅圖像,在景物邊緣幾乎看不到明顯的光暈效應,且在景深處去霧程度較為徹底,細節恢復程度高,如第6 幅圖像,可以清楚看到遠景處的樓房細節。另外,對比其他3 種算法,本文算法的去霧圖像亮度合適,如第5 幅圖像,圖中景物更加明亮清晰。
室外和室內合成圖像去霧對比結果分別如圖6、圖7 所示。實驗結果顯示,在這兩種場景中,本文算法都有較好的去霧表現。雖然室外合成圖像的復原結果顏色有輕微偏差,但整體來看本文算法復原圖像細節清晰,還原度較高且亮度適中,視覺效果更好。
Fig.5 Comparison of defogging effects of real-world images圖5 自然圖像去霧效果對比
Fig.6 Comparison of defogging effects of synthetic images(outside)圖6 合成圖像去霧效果對比(室外)
為了對本文算法作出更準確的評價,采用峰值信噪比(PSNR)、結構相似度(SSIM)和處理時間t 作為評價指標,對復原圖像質量進一步分析。PSNR
表示在一幅圖像中可能產生的最大功率與噪聲功率的比值,PSNR
可以衡量噪聲對圖像的干擾程度,比值越高表示干擾越小。PSNR
表示為:SSIM
是描述兩幅圖像之間結構相似性的度量指標,分別從圖像亮度l
(χ
)、對比度c
(χ
)和結構s
(χ
)三個方面對復原圖像的相似性進行評價。SSIM
的取值范圍為(0,1),其值越大,表示復原圖像與原圖像相似度越高。Fig.7 Comparison of defogging effects of synthetic images(indoor)圖7 合成圖像去霧效果對比(室內)
PSNR
和SSIM
兩種評價指標的實驗數據,通過對數據分析可知,在對室外合成圖像進行去霧時,本文算法復原圖像的PSNR
值比其他算法高,表明噪聲干擾較小;SSIM
指標的數據值更接近于1,表明本文算法去霧圖像與原圖的結構相似度更加接近。Table 1 Comparison of PSNR results表1 PSNR 結果對比
Table 2 Comparison of SSIM results表2 SSIM 結果對比
表3 列出了4 種算法處理單幅圖像所耗費的時間,從表中可以看出,He算法時間消耗最多,而本文算法處理時間最短。綜合3個圖像質量評價指標的對比結果可以得出,本文算法的去霧效果更加出色,不僅復原圖像的對比度和清晰度大幅提高,圖像視覺效果好,而且處理速度也有較大優勢。
Table 3 Comparison of running time(seconds)表3 處理時間對比 (s)
本文提出一種基于底帽變換與圖像融合的圖像去霧算法。首先改進圖像暗通道,利用底帽變換和圖像融合對暗通道的像素值進行補償,同時調整圖像整體背景亮度,從而能夠更加精確地估計大氣光值;然后利用雙邊濾波和形態學處理、改進的暗通道分別對透射率進行估計,再將兩者進行圖像融合,從而優化圖像透射率。實驗結果表明,與傳統暗通道先驗算法相比,本文算法處理后的圖像PSNR 和SSIM 指標分別提高了4.3%和8.5%,處理時間減少了98.5%,證明本文算法能夠有效恢復圖像細節,節約時間成本。本文算法能夠運用到視頻中實現實時去霧,但此過程會出現輕微閃爍現象,下一步將針對此現象展開研究。