魏紅偉,田 杰,肖卓朋
(1.湖南大學 信息科學與工程學院,湖南 長沙 410082;2.張家界航空工業職業技術學院,湖南 張家界 427000)
隨著工業的飛速發展,大氣污染越來越嚴重,由此帶來的霧霾天氣使室外拍攝的圖片和視頻發生質量退化現象,給智能交通帶來很大安全隱患。此外,室外監控與遙感系統也會因濃霧對成像的退化作用而發生癱瘓。因此,提高霧天圖像質量是目前亟待解決的重要問題。
霧霾天氣下室外能見度低,這是由于空氣中存在大量細微顆粒,光線從物體表面反射回來并向成像設備傳播的過程中,這些顆粒對大氣中的光線產生折射和反射作用,導致圖像對比度下降,邊緣與紋理信息丟失,使最終生成的圖像或視頻不能真實描述所處環境。這種場景輻射衰減與大氣光散射疊加會隨著傳播距離的增加而逐漸累積,進行去霧操作時需要從給定的單幅霧圖中同時恢復未知的大氣環境光以及場景深度,因此恢復無霧原始圖像是一項極具挑戰的任務。為提高霧霾環境下圖像的采集質量,降低塵霧天氣對戶外成像系統帶來的不利影響,國內外學者對圖像去霧技術開展了大量研究,根據去霧算法原理,可將其分為基于多幅圖像的去霧算法、基于圖像增強的去霧算法、基于物理模型的去霧算法以及基于神經網絡的去霧算法4 種,其中基于物理模型的去霧算法與基于神經網絡的去霧算法是目前該領域的主流解決方案[1]。以下針對4 類算法分別進行分析。
根據輸入源數量可將去霧算法分為單圖去霧和多圖去霧兩種。由于單幅圖像去霧問題中缺少諸多關鍵信息,因此早期研究者嘗試使用多幅圖像或補充額外信息的方法為霧圖成像的欠定方程增加約束。Narasimhan 等[2]通過在相同場景中拍攝多張不同天氣條件下圖片的方法恢復無霧圖像,但需要等待天氣變化;Schechner 等[3]和Tali 等[4]考慮到天氣條件變化,提出基于偏振圖像的去霧算法,即在相同場景下拍攝多幅不同偏振圖像;Kopf 等[5]提出在去霧算法中將場景幾何信息作為補充輸入信息。雖然上述算法可有效實現圖像去霧,但在實際應用場景中,獲取這些額外信息并不容易[6],一般研究較多的是單圖去霧。
基于圖像增強的去霧算法不考慮圖像降質原因,而是通過增強對比度的方法改善圖像視覺效果。該類算法使用范圍廣,但是對于突出部分的信息可能會造成一定損失或過增強現象。根據操作對象是整幅圖像還是局部區域,基于圖像增強的去霧算法可分為全局化圖像增強與局部化圖像增強兩大類[6],具體如圖1 所示。其中,直方圖均衡化是將霧圖的灰度直方圖變換為均勻分布的形式,通過增加像素灰度值范圍以提高圖像對比度,如Stark[7]和Kim等[8]分別提出了自適應直方圖均衡化算法和部分重疊的子塊直方圖均衡化算法。同態濾波是一種廣泛用于信號和圖像處理的技術,其將灰度變換與頻率過濾相結合用于改善圖像質量[9]。Retinex 是一種模擬人類在不同光照條件下視物情況的彩色視覺模型[10]。基于該模型,Adrian 等[11]提出一種效果顯著的霧圖增強算法。基于局部方差的圖像增強算法[11-12],通過計算并比較局部標準方差大小判斷圖像增強程度,進而進行局部灰度拉伸。然而,上述方法均未考慮霧圖退化的本質原因,因此增強效果有限且魯棒性往往較差。

Fig.1 Defogging algorithm based on image enhancement圖1 基于圖像增強的去霧算法
霧天能見度較低是由大氣中的懸浮粒子對光的吸收和散射造成的。研究者們通過建立數學模型,解釋了霧天圖像的成像過程與包含要素。該模型最早由McCartney[13]根據米氏大氣散射理論提出,后續由Narasimha 等[2]推導得到。該模型認為在強散射介質下,引起探測系統成像結果降質的主要原因有兩個[14]:一是目標反射光受到大氣中懸浮粒子的吸收和散射作用造成能量衰減,導致探測系統的成像亮度降低、對比度下降;二是太陽光等環境光受大氣中介質的散射作用影響形成背景光,兩部分光疊加在一起到達成像設備,影響成像效果。基于大氣散射物理模型的霧天物體成像過程如圖2 所示。

Fig.2 Foggy picture formation process based on atmospheric scattering model圖2 基于大氣散射模型的霧圖形成過程
根據物理模型去霧算法的理論基礎,可將圖像在惡劣天氣下的退化描述為:

該模型的前提是場景中的霧是均勻分布的。式中,x表示圖像像素點位置,J(x)和I(x)分別表示待恢復的無霧圖和成像的有霧圖,(tx)和A分別表示場景光透射率和當前大氣環境光。
圖像去霧即從給定的有霧圖像I(x)中恢復出無霧圖像J(x),但由于(tx)和A為未知項,故其是一個病態問題。要想恢復出高質量無霧圖像,關鍵步驟是預測透射率(tx)和大氣環境光A,再根據散射模型反演出去霧圖像。以該物理模型為參考,許多優秀去霧算法被提出。如He 等[15]提出了暗通道去霧算法;Raanan[16]根據無霧圖像與有霧圖像的色線分布不同求解場景透射圖,提出了單幅圖像去霧算法,該方法耗時較長,不能用于處理霧濃度較高的圖像;Robby[17]根據對比度不同,提出一種基于馬爾科夫隨機場的代價函數恢復無霧圖像,雖然能夠獲得視覺感受較好的去霧圖像,但常發生過度飽和以及圖像失真現象;Meng等[18]提出一種正則化去霧方法,通過挖掘大氣透射率函數固有的邊界約束提升大氣透射率精度,取得了很好的去霧效果;Berman 等[19-20]基于非局部先驗提出一種全局評估透射圖方法,能夠同時恢復景深和無霧圖像,然而在大氣光非常強烈時,該方法會由于不能很好地檢測霧線而失效;Zhu 等[21]提出基于顏色衰減先驗的去霧方法,根據霧濃度與圖像亮度和飽和度的差值呈正相關的關系建立線性模型,并通過監督學習方法學習模型參數,恢復場景深度信息,從而實現單幅圖像去霧。還有一些研究基于暗通道先驗,在算法效率與復原精度方面進行了優化[22-26]。以下將詳細介紹暗通道先驗去霧算法。
暗通道先驗由He 等[15]基于物理模型率先提出,給圖像去霧帶來了變革性發展。其利用暗通道去霧原理計算透射率,采用軟摳算法對透射率進一步優化,最終實現圖像去霧。暗通道原理如下:

式中,Ω(x)為像素點x的鄰域,Jdark為圖像的暗通道,Jc為圖像的顏色通道。
由暗通道先驗理論可知,無霧圖像局部圖塊的最小通道值趨近于0,該通道被稱為暗通道,而霧圖由于大氣光的影響,其暗通道并不趨近于0,可通過霧圖的暗通道值判斷霧氣濃薄程度,從而得到大氣光和透射圖。根據該理論簡化大氣散射模型,并進行相應變形得到:

兩邊取最小值,等號右邊第一部分即為暗通道,其值趨于0,這樣便可得到(tx,y)。

He 等[15]在處理透視圖像時采用了soft mapping 軟摳圖,較其他圖像去霧方法取得了更好效果。暗通道先驗是對大量戶外無霧照片的統計結果,若目標場景中有物體顏色與大氣光類似,如雪地、白墻、大海等,將無法獲得滿意的去霧效果。
近年來,卷積神經網絡作為深度學習的代表算法備受研究者們關注。由于該網絡具有表征學習能力,能有效捕捉輸入信號與輸出信號之間的潛在映射關系,在圖像處理領域表現出較好性能。卷積神經網絡結構如圖3 所示,通常由卷積層、池化層與全連接層組成[27]。卷積層利用卷積操作完成圖像特征提取,池化層完成下采樣,對提取出的特征降維,相鄰兩層組成一個卷積組,通過若干個卷積層與全連接層連接,最終全連接層實現對圖像特征信息的分類。經過多層卷積與池化操作,數據量龐大的圖像處理問題的復雜度有所降低。
基于神經網絡的去霧方法分為兩階段去霧算法和單階段去霧算法兩種。前者依賴于大氣退化模型,利用神經網絡對模型中的參數進行估計,早期去霧方法大多是基于這種思路;后者則是利用神經網絡將輸入的有霧圖像直接恢復得到去霧圖像,也即深度學習中常說的端到端去霧。兩階段去霧算法利用神經網絡以一種回歸的方式求取透射圖或大氣光值,同時還需結合傳統先驗評估,也就是說神經網絡只是求取大氣光或透射圖的一個工具,最終還是要根據大氣散射模型求出無霧圖像。單階段神經網絡去霧算法則完全脫離了大氣散射模型,無需通過先驗評估透射率和大氣光,而是通過訓練學習輸入有霧與無霧圖像之間的映射關系,再通過映射關系求出無霧圖像。
目前越來越多的研究者傾向于單階段去霧方法,比較有代表性的包括:Cai 等[28]提出了一種名為DehazeNet 的網絡,利用神經網絡估計輸入圖像的大氣透射率,根據大氣散射模型求得無霧圖像;Li 等[29]提出一種名為AOD-Net 的網絡,將大氣散射模型公式進行適當變形,通過神經網絡學習其相關參數;Zhu 等[30]提出DehazeGAN 算法,采用與AOD-Net 相似的方法,在一個生成對抗網絡中同時估計透射率與大氣光值;Ren 等[31]提出MSCNN 算法,通過多尺度網絡結構構建不同粗細粒度的子網,實現透射圖的粗略與精細化評估,該算法有效抑制了去霧過程中出現的光暈現象;Mei 等[32]完全摒棄物理模型,將神經網絡視為黑盒,通過訓練得到霧圖與無霧圖之間的映射關系,并采用編碼器—解碼器聯合殘差網絡塊的結構實現了端到端去霧。

Fig.3 Convolution neural network structure圖3 卷積神經網絡結構
DehazeNet 是Cai 等[28]于2016 年提出的可訓練的端到端網絡結構,其通過神經網絡直接學習有霧圖像與透射圖之間的映射關系,進而求出透射率。其還提出新穎的非線性激活函數BReLU,通過卷積神經網絡進行非線性回歸得到透射圖,采用假設先驗求出大氣光A,最后根據大氣散射模型恢復出無霧圖像。DehazeNet 結構如圖4 所示。
與傳統先驗去霧方法相比,DehazeNet 的去霧效果明顯提升。雖然該方法在透射率計算上具有優勢,但對于全局大氣光的計算卻存在一定缺陷。由于真實的大氣環境十分復雜,化學成分的多樣性和顆粒分布的不均勻性導致大氣中不同位置對光的吸收、散射與透射作用程度不同,從而使得環境光并非均勻分布。

Fig.4 DehazeNet structure圖4 DehazeNet 結構
AOD-Net 是Li 等[33]于2017年國際計算機視覺大會(ICCV)上首次提出的端到端去霧網絡。其認為對透射率與大氣光分別進行評估,再代入大氣散射模型恢復無霧圖像會導致誤差疊加放大,因此將其集成在神經網絡中同步完成,并對大氣散射模型進行如下變形:

式(6)中,I(x)、J(x)、(tx)和A分別表示原始無霧圖像、輸入霧圖、場景透射率和環境大氣光,而b為算法引入的參數。Li 等[33]將透射率與大氣光合并為一個中間變量K,利用輕量級神經網絡回歸變量K恢復出無霧圖像。
基于神經網絡的圖像去霧方法是目前該領域的主流研究方向,大量仿真霧天數據集通過卷積神經網絡進行學習,取得了很好的去霧效果。但由于自然場景中的有霧、無霧圖對很難獲得,數據集基本都是自然場景圖片進行人工加霧處理而得,導致神經網絡在訓練時數據集易產生過擬合現象,因此該算法用于真實自然場景的去霧效果與仿真場景有一定偏差。
分別對直方圖均衡化、暗通道先驗去霧[34]、DehazeNet和AOD-Net去霧算法進行測試,實驗結果如圖5和表1所示。

Fig.5 Comparison of several defogging algorithms圖5 幾種去霧算法效果對比

Table 1 Calculation time of several defogging algorithms表1 幾種去霧算法計算時間 單位:s
從圖5 中可以看出,基于圖像增強的直方圖均衡化算法的去霧圖像對比度明顯增強,由于不考慮降質原因,在增加對比度的同時也對噪聲進行了放大,出現細節丟失與色彩偏差現象。基于物理模型的暗通道去霧算法、基于神經網絡的DehazeNet 和AOD-Net 算法的去霧效果較直方圖均衡化算法更佳。
從表1 可以看出,基于圖像增強的直方圖均衡化算法和基于物理模型的暗通道算法去霧所用時間較短,具有較強的實時性,而基于神經網絡的DehazeNet 和AOD-Net 去霧算法由于計算量大,去霧所需時間較長。
基于圖像增強的去霧方法使去霧圖像的對比度顯著提高,視覺效果明顯,應用較為廣泛,但該方法沒有考慮圖像降質原因,會出現細節信息損失或過增強現象。基于物理模型的去霧方法考慮到物體成像原理,根據大氣散射模型求得無霧圖像,去霧效果明顯優于基于圖像增強的去霧方法,但對于透射率與全局大氣光的評估需要通過先驗假設,而這些假設在特定情況下會失效。基于神經網絡的圖像去霧方法利用卷積神經網絡的學習能力,取得了顯著效果,其中基于神經網絡的兩階段去霧不是真正的端到端去霧,而是先利用神經網絡學習評估出透射率和大氣光,再根據大氣散射模型求出無霧圖像。如果對二者估計不準確,由于累積效應,最后使用物理模型恢復無霧圖像時可能會出現顏色失真現象。端到端單階段去霧方法完全脫離了大氣散射模型,避免了透射率和大氣光的評估,通過訓練學習輸入有霧圖像與無霧圖像之間的映射關系得到無霧圖像,但這種方法更依賴于仿真數據集,網絡模型容易發生過擬合現象,導致在仿真數據集上的去霧效果明顯優于真實場景。可見,如何將真實場景圖像數據加入到訓練數據集中是基于深度學習的圖像去霧領域亟待解決的問題。
目前,圖像去霧技術雖已取得較大進步,但由于真實大氣場景十分復雜,每種方法都有其局限性,后續研究可關注以下幾個問題:
(1)復雜度和實時性。目前多數去霧算法都存在算法復雜、時間和空間復雜度過高的缺點,在一些實時性要求高的場合無法滿足需求,因此可從降低算法復雜度和利用計算機硬件加速兩方面著手。
(2)普適性。目前的算法并不能適用于所有場景,尤其是濃霧時往往會失效,需要人工干預。智能交通、實時監控等系統對圖像和視頻的去霧要求較高,因此去霧算法應在不同場景條件下自動作出調整,以適應多種去霧要求。
(3)評價體系。目前去霧效果評價方法較少,且現有評價方法存在一定局限性,不能全面評價算法優劣,缺少認可度高的客觀評測體系。建立并完善一套圖像去霧評價體系將有利于相關技術的規范發展。