呂建威,錢 鋒,韓昊男,張 葆
(1. 中國科學院 長春光學精密機械與物理研究所,吉林 長春 130033;2. 中國科學院大學,北京 100049)
在夜間有霧圖像中,人工光源發出的光經過漂浮在空中的顆粒或水滴散射,導致光源周圍產生光暈現象。夜間圖像去霧就是針對人工光源產生的光暈、圖像細節不清晰、色偏等問題進行處理,盡可能地提高圖像的恢復質量和可視度。研究夜間圖像去霧方法對夜視系統、監控錄像、目標跟蹤探測等方面有著重要的意義。
近些年來,許多研究者已經開發出一系列的方法來進行圖像的去霧[1-3]和增強[4-5],有效提升圖像的恢復質量。Narasimhan和Nayar提出的白天去霧模型將有霧場景描述為線性關系[6],其中包含直接傳輸和空氣光,建立了霧天圖像降質模型。在此基礎上,許多先驗方法如暗通道先驗[7]、局部對比度先驗[8]、圖像融合[9]等被提出并大幅提高了圖像的去霧效果,Meng等[10]在暗通道先驗方法的基礎上加入邊界約束條件,顯著提升了去霧圖片中對于天空的處理效果。Ancuti等人[11]提出了RGB和LAB之間的顏色變換方法來進行圖像去霧。這些方法對白天有霧圖像可進行有效去霧,但通常對于夜間有霧圖像會失效。這是因為夜間圖像存在多種顏色的人工光源,通常認為大氣光分布不均勻,而在白天去霧過程中大氣光被認為均勻分布,其值不發生變化,利用這樣的大氣光值得到的去霧結果將產生顏色偏移現象。
最近,夜間圖像去霧逐漸成為了圖像領域研究中的熱點問題。Pei等[12]提出了從RGB到LAB空間的顏色映射作為預處理,采用改進的暗通道先驗和雙邊濾波來進行去霧。盡管此方法可以改善圖像的可視性,但輸出顏色看起來不切實際并且具有嚴重的色偏,這是由于顏色變換僅使用了數學模型而不是物理模型來校正顏色。Zhang等[13]介紹了一種夜間去霧模型,該模型結合Retinex理論和伽馬校正等方法來進行顏色校正和光照補償,雖然圖像的顏色更加真實,但模型未考慮光暈因素帶來的影響。Li等[14-15]提出了一種新的夜間散射模型,該模型使用圖像分層方法分離光暈,然后結合暗通道先驗方法去霧。雖然去霧圖像包含較少的光暈,但圖像的天空區域產生大量的噪點和塊效應。楊愛萍等人[16]提出基于Retinex圖像增強算法分離出夜間有霧反射光圖像,然后利用暗原色先驗對反射光圖像進行去霧,并根據相機成像原理求解無霧入射光對象,進而融合反射光與入射光,最終得到夜間無霧圖像。Zhang等[17]假設每個無霧圖像RGB通道中的最大強度值趨近于1并將其作為光照估計值,從而提出最大反射先驗方法。Yu等[18]提出了一種用于估計透射圖的逐像素和系數 α值疊加的方法,其中將暗通道先驗和亮通道先驗估計的透射率有效地融合到一個由亮度感知權重圖指導的透射圖中。Yang等人[19]利用超像素分割的方法來估計大氣光值,并結合圖像層分解和暗通道來進行去霧。
從以上方法可以看出,許多現有的夜間圖像去霧技術是基于大氣散射模型和先驗知識進行的,大氣光和透射率的估計精度不足,還需要考慮經過霧散射后產生的光暈效應、細節模糊以及顏色失真等問題。因此,本文重點對夜間圖像中光暈效應的處理和大氣光及透射率的估計精度問題進行研究。
根據文獻[6]中的描述,常用的白天去霧模型認為相機捕獲的大氣中的散射光包含直接傳輸和空氣光兩項,可以表示為:

其中I(x)是在像素x處觀察到的圖像像素值大小,J(x) 是 場景反射或沒有霧時理想的恢復圖像,A是在白天除霧時被認為是恒定常數的大氣光值,t(x)是 到達攝像機之前場景的透射率,β是經霧中顆粒散射后的衰減因子,d(x)是相機與被稱為景深的場景之間的光學厚度或距離,J(x)t(x)稱為直接傳輸,A(1?t(x))是空氣光。
由于存在光暈,因此夜間場景與白天場景有所不同,圖1為本文使用的夜間模型。

圖1 夜間有霧圖像模型Fig. 1 Image model for the scene with haze at night
由于大氣光值不是恒定的常數,夜間有霧場景的光學圖像模型是變化的。因此將變化的大氣光表示為大氣點擴散函數(Atmosphere Point Spread Function, APSF),即[14]:

其中AL(x)是 人工光源的強度,它需要與APSF進行卷積后表示光暈的模糊。因為來自不同光源的各種顏色對大氣光的估計有所干擾,A(x)不再是常數,其隨像素點位置的不同而改變。該模型提供了一種描述帶有人工光源光暈的夜間有霧圖像的有效方法。
光暈是通過使光源與勒讓德多項式[11]表示的大氣點擴散函數卷積而產生的,將式(3)表示的模型進行簡化,即:

其中,T(x)=J(x)t(x)+A(x)(1?t(x))和G(x)=AL(x)?APSF分別表示有霧細節圖像和光暈圖像。這樣把消除夜間有霧圖像光暈問題變成圖像分層問題,需要求解圖像的有霧層T(x)和 光暈層G(x)。從梯度直方圖特征中可以看出,圖像背景細節層符合“長尾”分布,圖像光暈層的梯度直方圖具有“短尾”分布的特點[15],圖像光暈模糊層比背景細節層更加平滑。根據以上圖像分層算法驗證得到的特點,利用以下的目標函數進行描述[14]:

其中,約束條件有 0≤T(x)≤I(x),f1,2表示兩個方向的一階導數濾波器,f3表示二階拉普拉斯濾波器,操作符“?”表示卷積操作。 ρ (v)=min(v2,τ)表示魯棒函數,其中 τ的值很小,在1 0?4左右,利用該函數可以在有霧細節層T(x)中盡可能保留原始圖像I(x)的較大梯度。上述公式屬于稀疏表示模型,而得到最好的去光暈效果就轉化為L0范數最優化問題的求解,魯棒優化函數類似于稀疏表示中的懲罰因子[20]。參數 λ用來調節光暈層圖像的平滑程度,經過多次實驗后發現設置為600時能得到更好的復原效果。
受灰度世界假設的啟發[21],提出了一種新的RGB顏色通道變換方法以解決色偏問題。首先,取圖像的R、G和B 3個顏色通道總和的平均值,由式(6)得到。然后,根據Von Kries色適應理論[22]計算RGB 3個通道的增益系數,并調整圖像中每個像素的RGB分量,如式(7)~(9)所示。最后,可以得到顏色平衡后的圖像,經過上述顏色校正后,可以得到顏色比較真實的夜間圖像,能夠減弱人工光源和夜間有霧造成的圖像偏色的影響。


其中r、g、b是圖像T(x)對應的RGB分量,r′、g′、b′是經過上述顏色校正后得到的RGB分量的圖像結果。然后將得到的新的RGB圖像利用單尺度Retinex變換[23]進行圖像增強,使用引導濾波[24]進行修正,與雙邊濾波方法相比,使用引導濾波可以使圖像的邊緣更加平滑,保持邊緣細節完整性,能夠消除邊緣產生的光暈現象,使圖像更加真實。結果如圖2(彩圖見期刊電子版)所示。

圖2 圖像層分解和顏色變換過程圖Fig. 2 Image layer decomposition and color transformation
對于夜間圖像,受人工光源的影響,大氣光光照分布不均勻,因此要想得到整幅圖像的大氣光分布,需要分別對有光源和無光源區域進行大氣光估計。接下來將介紹有關夜間圖像光源區域的分割方法。
在一幅夜間圖像中,圖像每一個像素點的RGB3個通道中,通常至少有一個像素點具有一個很高和一個很低的像素值。將每個像素點的最大和最小的顏色通道值的差異稱為通道差異,在具有光源的亮區域的像素點位置通道差異較大,在暗區域的像素點位置通道差異較小。因此,可以通過這種通道差異來量化像素點的分布,為了能夠明顯區分像素點在亮暗處的分布,引入校正因子γ 來對通道差異進行放大,利用如下的表達式進行描述:

其中,Nth表示分割光源和非光源區域的閾值大小,LSR和 NLSR分別表示光源區域(Light Source Regions, LSR)和非光源區域(Non-Light Source Regions, NLSR),x表示像素點的位置。為了確定設置閾值Nth和校正因子 γ的大小,從數據集中選取500張夜間有霧圖像利用上述方法進行圖像分割處理,γ在1.0~2.0之間的通道差異越大,光源和非光源區域的分割越明顯,選取其他的值并不能有效地觀察到明顯的光源分割邊界,通過實驗選取γ=2.0。然后,通過設定閾值得到二值圖像,使得大量的圖片可以獲得明顯的光源分割邊界,并找出邊界區域的值,經過多次實驗得知獲得明顯光源分割邊界的閾值Nth為0.07(對應的像素值為17.85)。部分圖像的光源分割結果如圖3(彩圖見期刊電子版)所示。得到的實驗圖像結果顯示,函數值 η(x)越大,說明像素點屬于有光源區域的概率就越大,因此可以把 η(x)作為像素點屬于光源區域分布的概率值。

圖3 夜間有霧圖像的光源分割結果Fig. 3 The results of nighttime hazy image segmentation
在白天有霧圖像中,大氣光主要來源于太陽光,通常被認為是全局恒定的值。然而對于夜間圖像,不同種類的人工光源也會發生散射現象,造成大氣光分布不均勻,大氣光值隨著像素點位置的變化而變化。因此,如果以局部的大氣光估計值作為全局的大氣光值會使估計精度出現偏差[25],無法有效地消除圖像中的霧,同時會產生許多噪聲。為了解決上述問題,本節提出了新的大氣光估計方法,該方法分為兩個方面:一是在非光源區域的大氣光估計,因為非光源區域通常很暗,所以該區域可以忽略光源的作用,主要是由大氣光經過散射到圖像中。然而夜間圖像中大氣光值很小,可以考慮散射后產生的空氣光近似等于大氣光。二是光源區域的大氣光估計,大氣光經過散射后其強度隨著景深的增加而呈指數式衰減。因此,圖像的整體光照分布可表示為:

其中P(x) 表 示原始圖像I(x)的 全局光照圖,t2(x)表示光源區域的透射率,該值的求解方法將在3.3節中給出。A0(x)和A1(x)分別表示圖像在非光源和光源區域的真實大氣光值。為了獲得全局的光照圖P(x),本節將采用最大反射先驗[21]方法進行估計,光照圖表示為:

利用透射率t2(x) 得 到估計值后,結合A0(x)、A1(x)以 及概率分布 η(x),圖像全局的大氣光估計結果為:

夜間有霧圖像通常具有局部亮度高、飽和度低、局部較為平滑(圖像梯度小)的特性。根據文獻[26?27]提出的模型,可以得到圖像中霧的濃度跟圖像深度有關,圖像深度是由圖像的亮度、飽和度和梯度3個特征決定的,然而,文獻[26?27]并沒有考慮到夜間有霧圖像亮暗區域的差別。由于在圖像亮暗區域的特征差別較大,因此,可將圖像的亮暗區域分割后分別進行考慮,在亮區域中,圖像的深度特征可以由亮度、飽和度、梯度進行描述,在無光源區域中可通過暗通道先驗方法來得到圖像的透射率,這樣就可以描述整幅圖像的透射率分布。
針對圖像的無光源區域,由式(10)和式(11)得到的概率分布 η(x)和 大氣光估計值A0(x),通過暗通道先驗方法得到對應的透射率t1(x)分布:

其中, N LSR 表 示無光源區域,c表示RGB顏色通道, Ω (x) 表 示以像素x為中心的一個窗口,可以看出獲取暗通道就是獲取一個窗口內所有像素各個通道的最小值。
對于光源區域,本文提出了線性圖像深度模型,表示如下:

其中,d(x) 表 示圖像的深度信息,L(x)表示圖像的亮度,S(x)表 示圖像的飽和度,G(x)表示圖像的梯度。ω1、ω2、ω3是 待求的線性系數,ε表示模型的誤差系數。
為了解決未知的非線性系數問題,從D-HAZY數據集中[28]選取了1000張夜間有霧圖像和夜間無霧圖像,通過將其中的無霧圖像添加隨機深度合成對應的有霧圖像,每組無霧圖像和合成的有霧圖像作為一組訓練樣本,訓練樣本如圖4所示(彩圖見期刊電子版)。

圖4 夜間無霧圖像和對應合成的夜間有霧圖像Fig. 4 Nighttime haze-free images and the corresponding synthetic hazy images
首先,在無霧圖像中隨機合成深度為0.5~1的霧,設置大氣光的向量值為A(k,k,k), 其中k的取值為0.8~1.0。結合大氣散射模型得到1000張合成的有霧圖像和對應的無霧圖像。此外,獲取了所有夜間有霧圖像的亮度、飽和度以及梯度等特征,采用文獻[29]里面的方法,圖像深度模型表示為:

其中,i表 示第i組 訓練樣本,ωT=[ω1,ω2,ω3]T,Xi=[L(xi),S(xi),G(xi)],第i組訓練樣本的有霧圖像的深度圖為di(x),通過線性表示的深度圖模型為d(xi),根據1000幅訓練樣本,利用最小化損失誤差求得線性系數和線性誤差,表示為:

其中n為訓練樣本的總數,為了簡化討論,取

這樣最小化損失誤差E就可以表示為:

為了解決最小化損失函數的問題,作以下求導,令該求導值為0,可以得到

其中XTX為 滿秩的正則矩陣,這樣可以求得ω?為:

經過樣本的訓練,可以獲得最終的未知參數結果為:ω1=1.0267,ω2=?0.5966,ω3=0.6735,ε=0.004135。根據獲得的參數,可以得到式(15)中d(x) 的 值,進一步求得所需要的透射率t2(x)為:

以上由式(15)和式(22)分別求出了在無光源區域的透射率t1(x)和有光源區域的透射率t2(x) , 利用像素點屬于光源區域的概率η (x)將這兩個透射率疊加在一起,可以得到全局圖像的透射率分布圖t(x),疊加方法為:

得到透射率估計圖以后,利用引導濾波保持邊緣,減少邊緣光暈現象。圖5(彩圖見期刊電子版)所展示的是分別使用透射率圖t1(x)、t2(x)和t(x)得到的實驗結果。可以看出,由于在無光源區域內可以近似認為不考慮人工光源的照度、顏色特性等影響,大氣光值為常數值,使用暗通道先驗方法可以處理無光源區域的霧,對于有人工光源影響的區域,利用上述的線性模型進行估計能夠有效消除霧的影響,得到的最終結果在去霧、光暈的消除和圖像細節的保持等方面效果顯著。

圖5 使用不同透射率的去霧結果Fig. 5 The dehazing results using different transmission
由于圖像中通常具有較多的暗區域,透射率的下限值不能達到一個非常小的數值,因此為了更好地復原圖像,這里設置一個透射率最低下限值為0.1。復原圖像的結果可表示為:

為了驗證本文所采用方法的有效性,按照算法過程利用Matlab 2019a編寫了代碼進行實現,得到一些有霧圖像的去霧結果,并與其他廣泛使用的夜間去霧方法,如Zhang方法[13],Li方法[14],Yu方法[18]進行比較。本實驗所使用的設備環境為ASUS Inter Core i7-7500U 2.90 GHz, 8 GB RAM,Nvidia Geforce 930MX。實驗所得到的參數為β=0.5, γ =2.0,Nth=0.07, ω1=1.0267, ω2=?0.5966,ω3=0.6735, ε =0.004135。
在圖6(彩圖見期刊電子版)的所有圖像中,可以看出本文方法的去霧圖像邊緣更加平滑并保持清晰度,圖像的其他部分恢復更加柔和。取第1張圖像的部分特寫視圖(如第2幅圖所示),從天空區域來看,本文算法的噪點相比于其他方法明顯更少,恢復效果更好;從燈光周圍的恢復效果看,本文方法跟Li方法都能有效地消除光暈,而 其他方法并不能消除光暈。

圖6 本文方法與其他去霧方法效果的比較。從左到右各列分別為:原圖,使用Zhang方法[13]、Li方法[14]、Yu方法[18]和本文方法獲得的圖像Fig. 6 Comparison of the effects of the proposed method with other methods. From left to right: original image, images obtained with Zhang’s method[13], Li’s method[14], Yu’s method[18] and proposed method
比較第1,第4和第5幅圖像的暗處細節(例如黑暗處的樹林位置),Zhang方法和Li方法都能明顯看到圖像的偏色現象,而在本文方法所得到的結果中,這部分的顏色看起來更加自然。
具體比較第1,第4和第6幅圖像的天空區域,其他方法得到的去霧圖有許多噪聲,而在本方法的去霧結果中天空區域的噪聲顯著減少。另外,對于天空區域的顏色,本文方法的去霧圖像看起來也更加自然。
對比所有方法中的第7和第8幅圖像的白光區域,可以看出其他方法經過圖像去霧或增強會產生過曝現象,掩蓋了背景的許多細節,但本文的方法可以保證白光區域減少了過曝現象,而且燈光的形狀能恢復完整。
為了進一步驗證算法去霧有效性,本節采取了客觀質量評價方法,所使用的參數指標有圖像盲評價參數e(Blind Assessment),圖像的峰值信噪比(Peak Signal-to-Ratio, PSNR), 圖像的結構 相 似 度(Image Structural Similarity, SSIM), 對比度增益(Contrast Gain, CG), 圖像 可視化測量(Image Visibility Measurement, IVM),視 覺 對 比度測量(Visual Contrast Measure, VCM)等[30]。圖像參數值e、CG、IVM、VCM利用原始有霧圖像和去霧圖像之間的對比測量得到,PSNR和SSIM是通過去霧結果和理想復原圖像之間的對比來度量的。圖像的質量評價對比圖如圖7所示。

圖7 夜間去霧方法效果比較Fig. 7 Comparison of nighttime dehazing algorithms
使用該圖測量的圖像質量評價數據如表1所示。從表1可以看出,本文方法的參數e、CG、IVM、VCM值均比其他方法高,說明本方法在圖像邊緣保持、細節體現、對比度增強、可視度提高方面表現更突出。本文方法的PSNR和SSIM的數值比Yu的方法略高一些,說明本方法的去霧效果更好。綜上所述,本文改進的去霧方法能夠取得更優秀的去霧結果,圖像復原效果更突出。

表1 圖像質量評價數據表Tab. 1 The values of image quality assessment
目前,霧天圖像復原取得了顯著成果,但夜間圖像成像環境比較復雜,各種不同種類光源的存在導致光照不均且色偏嚴重,夜間圖像去霧難度較大,因此大多數方法并不適用于夜間場景。針對夜間圖像存在的光暈和偏色問題,采用帶有顏色校正的圖像分層算法使去霧圖像更加真實。針對大氣光估計精度不足的問題,本文提出了帶有顏色通道差異的光源閾值分割方法,將該閾值設置為像素點在光源區域的概率值,并結合最大反射先驗方法分段估計大氣光值。針對透射率估計問題,對于光源區域提出了結合圖像深度、亮度、梯度以及飽和度的線性模型,通過訓練樣本求得線性系數;對于非光源區域采用暗通道先驗的方法來估計,并利用上述的概率值進行疊加,從而提高了透射率的估計精度。與其他夜間去霧方法相比,本文方法不僅可以有效地消除夜間光暈和霧氣,而且復原圖像顏色上看起來更自然,提高了圖像的細節清晰度,減少了噪聲。但是本文提出的方法也有一些缺點,例如,利用閾值的光源分割方法只能大致區分光源區域和非光源區域,區分精度不足。此外,本文提出的線性深度估計模型對于透射率的估計精度雖然有提升,但提升能力有限,需要進一步尋找更合適的估計模型。在以后的工作中會著重尋找相應辦法來解決這些問題。