林 森, 孫彭輝
(沈陽理工大學自動化與電氣工程學院,沈陽 110000)
在霧霾天氣下,空氣中存在大量懸浮顆粒,使得光線被吸收或散射,會嚴重影響無人機等航拍設備獲取圖像信息,因此進行圖像去霧操作極為重要。
目前去霧算法主要分為圖像增強、圖像復原和深度學習3類。基于圖像增強的方法有直方圖均衡化[1]、Retinex[2]以及小波變換[3]等,此類方法通過加強圖像中的感興趣特征來實現視覺效果提升,速度快且易于實現,但沒有實質解決霧化問題。
基于圖像復原的方法把大氣散射模型作為基礎,利用改進后的模型求解透射率和大氣光來實現去霧[4]。TAREL等[5]提出基于中值濾波的去霧算法,該算法時間復雜度低,但設置參數多,且容易丟失圖像細節信息;HE等[6]提出暗通道先驗算法,去霧效果良好且易于實現,但當圖像中包含景深突變和明亮區域(天空、水面、大面積白色區域等)時,去霧后會出現顏色失真和光暈偽影;ZHU等[7]對大量有霧圖像進行分析發現霧濃度和景深有關,提出顏色衰減先驗,該算法簡單有效,但濃霧環境下處理效果較差;SABIR等[8]根據霧濃度求取透射率,并取天空和非天空區域的大氣光均值作為整體大氣光值,一定程度上抑制了顏色失真,但結果圖像偏暗。
基于深度學習的去霧算法經過訓練大量數據集恢復無霧圖像。REN等[9]通過學習模糊圖像與透射率圖之間的對應關系,提出用于去霧的多尺度卷積神經網絡;CAI等[10]提出一種名為DehazeNet的端到端系統用于圖像去霧,將有霧圖像作為輸入,并輸出對應的透射率圖,之后根據霧天模型恢復清晰圖像;LI等[11]利用卷積神經網絡建立去霧模型,提出了一體化去霧網絡(All-in-One Dehazing Network,AOD-Net)。因為訓練所用的數據集都是人工合成的有霧圖像,這些算法在真實霧天環境下的去霧效果并不佳。
針對上述算法的不足,本文提出改進暗通道窗口與透射率修正的圖像去霧算法。主要創新性貢獻有:1)利用超像素分割獲得景深一致的局部窗口,獲取更為準確的暗通道,并結合大氣光特性求取大氣光值;2)對于引導濾波細化后的透射率,提出自適應容差機制進行補償,有效抑制明亮區域的顏色失真。
目前圖像去霧算法采用的普遍為簡化的大氣散射模型[6],其表達式為
Ic(x)=Jc(x)·t(x)+Ac·(1-t(x))
(1)
式中:I為有霧圖像;J為無霧圖像;A為大氣光值;t為透射率;c為RGB圖像3個顏色通道中的任意一個通道;x為像素點的位置;空氣中的介質粒子均勻時,透射率可表示為
t(x)=e-βd(x)
(2)
式中:β為介質散射系數;d(x)為像素點x處景深。
HE等[6]提出了暗通道先驗理論(Dark Channel Prior,DCP),通過對大量的室外無霧圖像進行統計,發現在絕大多數圖像中,存在一個顏色通道值很低,趨近于零,即
(3)
若Ac已知,對式(1)兩邊同時除以Ac且同時進行最小值濾波可得
(4)
將式(3)代入式(4)可得透射率為
(5)
式中,ω為霧氣保留系數,一般取0.95[6]。
本文算法流程如圖1所示。

圖1 算法流程
具體步驟如下:1) 使用超像素分割算法改進濾波窗口,以求取更加準確的暗通道;2) 根據大氣光所在區域特性,結合超像素分割進行大氣光值估計;3) 用改進后的暗通道求取透射率,再用自適應容差機制來修正明亮區域的透射率;4) 反演大氣散射模型恢復無霧圖像。
下面詳細闡述各步驟的相關原理和方法。
由于DCP選取固定方形濾波窗口,在邊緣處會包含多個景深,容易導致去霧后出現光暈偽影。為解決此問題,用超像素分割有霧圖像得到景深一致的局部窗口,窗口內的像素點有著相似的亮度、顏色和梯度等特征。在改進后的每個窗口內計算獲取更為準確的暗通道,從而提高透射率估計精度。
本文使用超像素分割方法為簡單線性迭代聚類算法(Simple Linear Iterative Clustering,SLIC[12]),其主要優勢是時間復雜度低、生成超像素的緊湊度高、邊緣保持性好,且只需設置一個參數,即需要分割的超像素數量s。s決定了超像素分割后窗口的大小,合適的窗口可以獲得較好的暗通道。由于HE等[6]對600 像素×400 像素大小的圖像使用15 像素×15 像素大小的窗口取得了較好的去霧效果,本文將其作為標準來調整窗口大小,若輸入圖像的大小為m×n,則窗口大小為
(6)
式中:wwin為窗口大小值;m,n分別表示輸入有霧圖像I(x)的高度和寬度。從而超像素分割數量s為
(7)
為驗證改進窗口的有效性,選取一幅包含邊緣信息較多的霧圖進行驗證,對比結果如圖2所示。

圖2 透射率對比
圖2(b)的DCP沒有考慮景深的影響,丟失了較多的邊緣信息。相比之下,圖2(c)的邊緣信息保持較好,近處的樓房清晰可見,遠處的景物也輪廓分明。
大氣光值易受到霧圖中的明亮物體影響,導致估計不準確。為克服此問題,從大氣光特性出發并結合超像素塊來估計大氣光值。由式(1)和式(2)可知,當拍攝場景中存在濃霧時,目標物體無法透過濃霧到達相機設備,此時透射率近似于零,在景深無窮遠處亦是如此。此時霧天成像模型可簡化為
I(x)≈A
(8)
式中,A為大氣光Ac的3個通道的均值。這時成像結果主要由大氣光造成。因此,大氣光的選取需要考慮兩點:1) 大氣光所在處一般為有霧圖像的背景區域(濃霧區域和景深無窮遠區域);2) 從式(8)可知,大氣光所在區域的亮度近似于定值A,因此該區域局部像素值變化很小。本文根據這兩點提出了一種新的大氣光值求取方法。考慮到在室外霧圖中,背景區域往往都在圖像上半部分,天空區域距離拍攝設備非常遙遠,可認為其是景深無窮遠處,即背景區域。因此大氣光值的求取只考慮圖像上半部分。具體實現方式為:1)將超像素分割后的霧圖上、下等分,取上半部分圖像作為處理對象;2)對該部分圖像的每個超像素塊內的像素計算標準差;3)標準差最小的超像素塊作為大氣光所在區域,并求其像素平均值作為最終大氣光值。
上述超像素塊內像素的標準差算式為
(9)

(10)
圖3為DCP及本文算法估計的大氣光所在區域對比圖。在圖像前景處包含明亮區域時,DCP將大氣光定位在前景明亮處而非背景區域,產生了錯誤。本文算法估計的大氣光定位準確且符合大氣光特性,所得數值更加精確。

圖3 不同算法估計的大氣光對比
在求得暗通道和大氣光值后,通過式(5)求出透射率,并用引導濾波[13]對其細化,得

(11)

對式(4)進行變換,得到實際的透射率為
(12)
引入容差機制[14]為
對于地下室的防滲漏施工一般采用的是堵漏法進行防水,堵漏法一般分兩種情況,一種情況是漏水孔大水壓比較高的地方,這種情況采用施工方法是先觀察好地面結構情況,然后進行空洞的預鑿,孔洞大小一定要確定好,然后將碎石平鋪在孔洞的下面,在上面鋪一層防水油氈,引開滲漏下去的水,最后要做的是將漏水孔處理好,然后注入水泥膠漿。另一種情況是在漏水孔比較小,水壓比較低的地方,施工方法是將孔洞改成一個以孔洞中心為圓心的圓槽,深在3~4cm左右,然后清理好圓槽進行水泥膠漿的灌注,壓實后涂上防水材料,為保證施工質量施工的每一步都必須進行嚴格的檢查。
(13)
式中:tlast(x)為修正后的透射率;K為容差參數,它是不同區域劃分的依據,將|I(x)-A| 為了更直觀地表現容差機制對透射率的修正,將式(13)寫成分段函數形式,即 (14) 從式(14)中可以明顯看出,K的取值直接決定了透射率的修正結果,當|I(x)-A| 因為明亮區域的大小是由K決定的,所以若能確定不同輸入圖像中明亮區域的大小,便能求出相應的K值。均值迭代分割算法可以有效分割出圖像明亮區域,故應用此算法來處理輸入圖像,并進一步求取K值,具體步驟如下。1) 對輸入的有霧圖像使用均值迭代分割算法,得到二值圖像;2) 將有霧圖像對應于二值圖像中白色區域的部分作為明亮區域;3) 在明亮區域內求得最大和最小像素值;4) 用最大像素值和最小像素值分別減去大氣光值A,并對兩個結果的絕對值取平均作為容差參數K的值,即 (15) 式中:Imax為明亮區域最大像素值;Imin為明亮區域最小像素值。 用本文所提算法求得容差參數K,將其代入式(13)修正透射率,結果如圖4所示。 圖4 透射率修正前、后對比 由圖4(b)可見,天空處透射率值過低,圖4(c)修正后的透射率得到明顯改善。 根據已知透射率、大氣光值和有霧圖像,代入式(1)求得無霧圖像,并對其進行Gamma校正提升圖像亮度從而獲得最終清晰圖像,即 (16) 在RESIDE[15]數據集中選取4幅航拍視角(Image1~Image4)和其他視角(Image5~Image7)的有霧圖像以及實際濃霧天氣下手機拍攝所得霧圖(Image8)作為實驗對象。將本文算法與TAREL算法[5]、HE算法[6]、CAI算法[10]和SABIR算法[8]的去霧效果進行對比,對比結果如圖5所示。實驗運行環境為64位Windows10系統,CPU為AMD Ryzen 5 1600X,內存為16 GiB,仿真平臺為Matlab2018a。 圖5 去霧結果對比 從圖5中可以看出:TAREL算法恢復了較多的邊緣信息,但噪點太多,去霧后圖像仍然模糊;HE算法有著較好的去霧效果,但景深突變處出現光暈偽影,天空處出現嚴重的顏色失真且整體顏色偏暗;屬于深度學習的CAI算法沒有光暈偽影和顏色失真現象,但有一些色偏并且對于濃霧圖像(Image7和Image8)去霧后仍留有殘霧;SABIR算法對DCP算法做出了改進,消除了景深突變處的光暈偽影,但細節恢復一般且有一定色偏,在暗處場景去霧效果不佳,如Image1和Image2的左下部分。 綜合發現,本文去霧算法恢復的圖像顏色自然,消除了景深突變處的光暈效應,同時抑制了明亮區域的顏色失真,去霧效果好且細節處恢復更好,在真實拍攝的霧天場景下依然有較好的去霧效果,對比其他算法有著顯著優勢,且對于不同的場景都具備良好的去霧能力,魯棒性更好。 為進一步驗證本文所提算法的有效性,使用峰值信噪比(Peak Signal to Noise Ratio,PSNR),結構相似性(Structural Similarity Index Metric,SSIM)和平均梯度(Average Gradient,AG)這3項常用指標對多種算法的實驗結果進行比較分析。 PSNR的值越大圖像失真越少,其數學表達式為 (17) 式中:Mmax表示輸入圖像的最高像素值;MMSE是均方誤差。 SSIM用來描述兩幅圖像的相似程度,取值范圍為[0,1],用該指標評價去霧效果,其值越大越好。SSIM的數學表達式為 (18) AG反映圖像紋理信息的改變,值越大,表明邊緣性越好,數學表達式為 (19) 式中:M′和N′分別為圖像的長和寬;m′和n′分別為對應像素點的橫、縱坐標。 不同算法的各項指標值對比結果如表1~3所示。對于每幅圖像不同算法的去霧結果,每項指標的最優值都加粗標出。為了綜合評價整體去霧效果,對8組圖像結果取均值。可以看出,本文算法在峰值信噪比、結構相似性和平均梯度的評測結果中,均優于其他算法,說明了本文算法的優越性。 表1 客觀評價指標PSNR 表2 客觀評價指標SSIM 表3 客觀評價指標AG 不同的光照環境對霧天圖像清晰化有著不同的挑戰。為了測試本文算法對光照的適應范圍,選取3幅不同光照環境的霧圖進行評估,結果如圖6所示。圖6中第1行圖為有霧圖像,第2行圖為去霧后圖像。 圖6 不同光照環境的去霧結果 白天光照充足,去霧后的樓房邊緣清晰,顏色自然,整體畫面效果良好。傍晚的光照不足,但仍然有光源,依然能夠對圖像進行去霧處理,恢復了場景的真實顏色,但整體較暗。夜間已經沒有了太陽作為光源,光照嚴重不足,此時大氣散射模型不再適用,無法直接使用該模型進行去霧處理。若想實現夜間去霧,則需根據夜間場景特點修正成像模型,已不屬于本文研究范疇。綜上可見,本文算法在有太陽作為光源的情況下,無論光照強度如何,都可以進行去霧操作,效果良好,具有實用價值。 考慮到各算法應用在實際生活中時,不僅要有良好的去霧效果,還要滿足一定的時間要求,對于各算法的時間對比如表4所示。 表4 不同算法運行時間 由表4可知,本文算法時間雖然不是最優,但仍然比HE算法要低,并且對于尺寸較小的圖像,本文算法的運行時間在可接受范圍內。 本文在暗通道先驗算法基礎上做出改進,提出改進暗通道窗口與透射率修正的圖像去霧算法。利用超像素分割算法改進暗通道的濾波窗口,獲取更為準確的暗通道,從而消除光暈偽影;根據大氣光的特性,結合超像素分割求取更為準確的大氣光值;提出自適應容差來修正透射率,解決了DCP存在的先驗盲區,抑制了明亮區域的顏色失真。實驗證明,本文算法有更好的去霧效果,且能夠應對不同類型的霧天圖像,對于霧天環境下航拍等設備準確獲取場景信息有著極大的幫助。后續將考慮進一步優化算法,提升超像素分割的效率。


3 實驗結果分析

3.1 主觀評價
3.2 客觀評價






4 結論