呂建威,錢 鋒,韓昊男,張 葆
(1. 中國科學(xué)院 長春光學(xué)精密機(jī)械與物理研究所,吉林 長春 130033;2. 中國科學(xué)院大學(xué),北京 100049)
在夜間有霧圖像中,人工光源發(fā)出的光經(jīng)過漂浮在空中的顆?;蛩紊⑸?,導(dǎo)致光源周圍產(chǎn)生光暈現(xiàn)象。夜間圖像去霧就是針對人工光源產(chǎn)生的光暈、圖像細(xì)節(jié)不清晰、色偏等問題進(jìn)行處理,盡可能地提高圖像的恢復(fù)質(zhì)量和可視度。研究夜間圖像去霧方法對夜視系統(tǒng)、監(jiān)控錄像、目標(biāo)跟蹤探測等方面有著重要的意義。
近些年來,許多研究者已經(jīng)開發(fā)出一系列的方法來進(jìn)行圖像的去霧[1-3]和增強(qiáng)[4-5],有效提升圖像的恢復(fù)質(zhì)量。Narasimhan和Nayar提出的白天去霧模型將有霧場景描述為線性關(guān)系[6],其中包含直接傳輸和空氣光,建立了霧天圖像降質(zhì)模型。在此基礎(chǔ)上,許多先驗方法如暗通道先驗[7]、局部對比度先驗[8]、圖像融合[9]等被提出并大幅提高了圖像的去霧效果,Meng等[10]在暗通道先驗方法的基礎(chǔ)上加入邊界約束條件,顯著提升了去霧圖片中對于天空的處理效果。Ancuti等人[11]提出了RGB和LAB之間的顏色變換方法來進(jìn)行圖像去霧。這些方法對白天有霧圖像可進(jìn)行有效去霧,但通常對于夜間有霧圖像會失效。這是因為夜間圖像存在多種顏色的人工光源,通常認(rèn)為大氣光分布不均勻,而在白天去霧過程中大氣光被認(rèn)為均勻分布,其值不發(fā)生變化,利用這樣的大氣光值得到的去霧結(jié)果將產(chǎn)生顏色偏移現(xiàn)象。
最近,夜間圖像去霧逐漸成為了圖像領(lǐng)域研究中的熱點(diǎn)問題。Pei等[12]提出了從RGB到LAB空間的顏色映射作為預(yù)處理,采用改進(jìn)的暗通道先驗和雙邊濾波來進(jìn)行去霧。盡管此方法可以改善圖像的可視性,但輸出顏色看起來不切實際并且具有嚴(yán)重的色偏,這是由于顏色變換僅使用了數(shù)學(xué)模型而不是物理模型來校正顏色。Zhang等[13]介紹了一種夜間去霧模型,該模型結(jié)合Retinex理論和伽馬校正等方法來進(jìn)行顏色校正和光照補(bǔ)償,雖然圖像的顏色更加真實,但模型未考慮光暈因素帶來的影響。Li等[14-15]提出了一種新的夜間散射模型,該模型使用圖像分層方法分離光暈,然后結(jié)合暗通道先驗方法去霧。雖然去霧圖像包含較少的光暈,但圖像的天空區(qū)域產(chǎn)生大量的噪點(diǎn)和塊效應(yīng)。楊愛萍等人[16]提出基于Retinex圖像增強(qiáng)算法分離出夜間有霧反射光圖像,然后利用暗原色先驗對反射光圖像進(jìn)行去霧,并根據(jù)相機(jī)成像原理求解無霧入射光對象,進(jìn)而融合反射光與入射光,最終得到夜間無霧圖像。Zhang等[17]假設(shè)每個無霧圖像RGB通道中的最大強(qiáng)度值趨近于1并將其作為光照估計值,從而提出最大反射先驗方法。Yu等[18]提出了一種用于估計透射圖的逐像素和系數(shù) α值疊加的方法,其中將暗通道先驗和亮通道先驗估計的透射率有效地融合到一個由亮度感知權(quán)重圖指導(dǎo)的透射圖中。Yang等人[19]利用超像素分割的方法來估計大氣光值,并結(jié)合圖像層分解和暗通道來進(jìn)行去霧。
從以上方法可以看出,許多現(xiàn)有的夜間圖像去霧技術(shù)是基于大氣散射模型和先驗知識進(jìn)行的,大氣光和透射率的估計精度不足,還需要考慮經(jīng)過霧散射后產(chǎn)生的光暈效應(yīng)、細(xì)節(jié)模糊以及顏色失真等問題。因此,本文重點(diǎn)對夜間圖像中光暈效應(yīng)的處理和大氣光及透射率的估計精度問題進(jìn)行研究。
根據(jù)文獻(xiàn)[6]中的描述,常用的白天去霧模型認(rèn)為相機(jī)捕獲的大氣中的散射光包含直接傳輸和空氣光兩項,可以表示為:
其中I(x)是在像素x處觀察到的圖像像素值大小,J(x) 是 場景反射或沒有霧時理想的恢復(fù)圖像,A是在白天除霧時被認(rèn)為是恒定常數(shù)的大氣光值,t(x)是 到達(dá)攝像機(jī)之前場景的透射率,β是經(jīng)霧中顆粒散射后的衰減因子,d(x)是相機(jī)與被稱為景深的場景之間的光學(xué)厚度或距離,J(x)t(x)稱為直接傳輸,A(1?t(x))是空氣光。
由于存在光暈,因此夜間場景與白天場景有所不同,圖1為本文使用的夜間模型。
圖1 夜間有霧圖像模型Fig. 1 Image model for the scene with haze at night
由于大氣光值不是恒定的常數(shù),夜間有霧場景的光學(xué)圖像模型是變化的。因此將變化的大氣光表示為大氣點(diǎn)擴(kuò)散函數(shù)(Atmosphere Point Spread Function, APSF),即[14]:
其中AL(x)是 人工光源的強(qiáng)度,它需要與APSF進(jìn)行卷積后表示光暈的模糊。因為來自不同光源的各種顏色對大氣光的估計有所干擾,A(x)不再是常數(shù),其隨像素點(diǎn)位置的不同而改變。該模型提供了一種描述帶有人工光源光暈的夜間有霧圖像的有效方法。
光暈是通過使光源與勒讓德多項式[11]表示的大氣點(diǎn)擴(kuò)散函數(shù)卷積而產(chǎn)生的,將式(3)表示的模型進(jìn)行簡化,即:
其中,T(x)=J(x)t(x)+A(x)(1?t(x))和G(x)=AL(x)?APSF分別表示有霧細(xì)節(jié)圖像和光暈圖像。這樣把消除夜間有霧圖像光暈問題變成圖像分層問題,需要求解圖像的有霧層T(x)和 光暈層G(x)。從梯度直方圖特征中可以看出,圖像背景細(xì)節(jié)層符合“長尾”分布,圖像光暈層的梯度直方圖具有“短尾”分布的特點(diǎn)[15],圖像光暈?zāi):龑颖缺尘凹?xì)節(jié)層更加平滑。根據(jù)以上圖像分層算法驗證得到的特點(diǎn),利用以下的目標(biāo)函數(shù)進(jìn)行描述[14]:
其中,約束條件有 0≤T(x)≤I(x),f1,2表示兩個方向的一階導(dǎo)數(shù)濾波器,f3表示二階拉普拉斯濾波器,操作符“?”表示卷積操作。 ρ (v)=min(v2,τ)表示魯棒函數(shù),其中 τ的值很小,在1 0?4左右,利用該函數(shù)可以在有霧細(xì)節(jié)層T(x)中盡可能保留原始圖像I(x)的較大梯度。上述公式屬于稀疏表示模型,而得到最好的去光暈效果就轉(zhuǎn)化為L0范數(shù)最優(yōu)化問題的求解,魯棒優(yōu)化函數(shù)類似于稀疏表示中的懲罰因子[20]。參數(shù) λ用來調(diào)節(jié)光暈層圖像的平滑程度,經(jīng)過多次實驗后發(fā)現(xiàn)設(shè)置為600時能得到更好的復(fù)原效果。
受灰度世界假設(shè)的啟發(fā)[21],提出了一種新的RGB顏色通道變換方法以解決色偏問題。首先,取圖像的R、G和B 3個顏色通道總和的平均值,由式(6)得到。然后,根據(jù)Von Kries色適應(yīng)理論[22]計算RGB 3個通道的增益系數(shù),并調(diào)整圖像中每個像素的RGB分量,如式(7)~(9)所示。最后,可以得到顏色平衡后的圖像,經(jīng)過上述顏色校正后,可以得到顏色比較真實的夜間圖像,能夠減弱人工光源和夜間有霧造成的圖像偏色的影響。
其中r、g、b是圖像T(x)對應(yīng)的RGB分量,r′、g′、b′是經(jīng)過上述顏色校正后得到的RGB分量的圖像結(jié)果。然后將得到的新的RGB圖像利用單尺度Retinex變換[23]進(jìn)行圖像增強(qiáng),使用引導(dǎo)濾波[24]進(jìn)行修正,與雙邊濾波方法相比,使用引導(dǎo)濾波可以使圖像的邊緣更加平滑,保持邊緣細(xì)節(jié)完整性,能夠消除邊緣產(chǎn)生的光暈現(xiàn)象,使圖像更加真實。結(jié)果如圖2(彩圖見期刊電子版)所示。
圖2 圖像層分解和顏色變換過程圖Fig. 2 Image layer decomposition and color transformation
對于夜間圖像,受人工光源的影響,大氣光光照分布不均勻,因此要想得到整幅圖像的大氣光分布,需要分別對有光源和無光源區(qū)域進(jìn)行大氣光估計。接下來將介紹有關(guān)夜間圖像光源區(qū)域的分割方法。
在一幅夜間圖像中,圖像每一個像素點(diǎn)的RGB3個通道中,通常至少有一個像素點(diǎn)具有一個很高和一個很低的像素值。將每個像素點(diǎn)的最大和最小的顏色通道值的差異稱為通道差異,在具有光源的亮區(qū)域的像素點(diǎn)位置通道差異較大,在暗區(qū)域的像素點(diǎn)位置通道差異較小。因此,可以通過這種通道差異來量化像素點(diǎn)的分布,為了能夠明顯區(qū)分像素點(diǎn)在亮暗處的分布,引入校正因子γ 來對通道差異進(jìn)行放大,利用如下的表達(dá)式進(jìn)行描述:
其中,Nth表示分割光源和非光源區(qū)域的閾值大小,LSR和 NLSR分別表示光源區(qū)域(Light Source Regions, LSR)和非光源區(qū)域(Non-Light Source Regions, NLSR),x表示像素點(diǎn)的位置。為了確定設(shè)置閾值Nth和校正因子 γ的大小,從數(shù)據(jù)集中選取500張夜間有霧圖像利用上述方法進(jìn)行圖像分割處理,γ在1.0~2.0之間的通道差異越大,光源和非光源區(qū)域的分割越明顯,選取其他的值并不能有效地觀察到明顯的光源分割邊界,通過實驗選取γ=2.0。然后,通過設(shè)定閾值得到二值圖像,使得大量的圖片可以獲得明顯的光源分割邊界,并找出邊界區(qū)域的值,經(jīng)過多次實驗得知獲得明顯光源分割邊界的閾值Nth為0.07(對應(yīng)的像素值為17.85)。部分圖像的光源分割結(jié)果如圖3(彩圖見期刊電子版)所示。得到的實驗圖像結(jié)果顯示,函數(shù)值 η(x)越大,說明像素點(diǎn)屬于有光源區(qū)域的概率就越大,因此可以把 η(x)作為像素點(diǎn)屬于光源區(qū)域分布的概率值。
圖3 夜間有霧圖像的光源分割結(jié)果Fig. 3 The results of nighttime hazy image segmentation
在白天有霧圖像中,大氣光主要來源于太陽光,通常被認(rèn)為是全局恒定的值。然而對于夜間圖像,不同種類的人工光源也會發(fā)生散射現(xiàn)象,造成大氣光分布不均勻,大氣光值隨著像素點(diǎn)位置的變化而變化。因此,如果以局部的大氣光估計值作為全局的大氣光值會使估計精度出現(xiàn)偏差[25],無法有效地消除圖像中的霧,同時會產(chǎn)生許多噪聲。為了解決上述問題,本節(jié)提出了新的大氣光估計方法,該方法分為兩個方面:一是在非光源區(qū)域的大氣光估計,因為非光源區(qū)域通常很暗,所以該區(qū)域可以忽略光源的作用,主要是由大氣光經(jīng)過散射到圖像中。然而夜間圖像中大氣光值很小,可以考慮散射后產(chǎn)生的空氣光近似等于大氣光。二是光源區(qū)域的大氣光估計,大氣光經(jīng)過散射后其強(qiáng)度隨著景深的增加而呈指數(shù)式衰減。因此,圖像的整體光照分布可表示為:
其中P(x) 表 示原始圖像I(x)的 全局光照圖,t2(x)表示光源區(qū)域的透射率,該值的求解方法將在3.3節(jié)中給出。A0(x)和A1(x)分別表示圖像在非光源和光源區(qū)域的真實大氣光值。為了獲得全局的光照圖P(x),本節(jié)將采用最大反射先驗[21]方法進(jìn)行估計,光照圖表示為:
利用透射率t2(x) 得 到估計值后,結(jié)合A0(x)、A1(x)以 及概率分布 η(x),圖像全局的大氣光估計結(jié)果為:
夜間有霧圖像通常具有局部亮度高、飽和度低、局部較為平滑(圖像梯度?。┑奶匦?。根據(jù)文獻(xiàn)[26?27]提出的模型,可以得到圖像中霧的濃度跟圖像深度有關(guān),圖像深度是由圖像的亮度、飽和度和梯度3個特征決定的,然而,文獻(xiàn)[26?27]并沒有考慮到夜間有霧圖像亮暗區(qū)域的差別。由于在圖像亮暗區(qū)域的特征差別較大,因此,可將圖像的亮暗區(qū)域分割后分別進(jìn)行考慮,在亮區(qū)域中,圖像的深度特征可以由亮度、飽和度、梯度進(jìn)行描述,在無光源區(qū)域中可通過暗通道先驗方法來得到圖像的透射率,這樣就可以描述整幅圖像的透射率分布。
針對圖像的無光源區(qū)域,由式(10)和式(11)得到的概率分布 η(x)和 大氣光估計值A(chǔ)0(x),通過暗通道先驗方法得到對應(yīng)的透射率t1(x)分布:
其中, N LSR 表 示無光源區(qū)域,c表示RGB顏色通道, Ω (x) 表 示以像素x為中心的一個窗口,可以看出獲取暗通道就是獲取一個窗口內(nèi)所有像素各個通道的最小值。
對于光源區(qū)域,本文提出了線性圖像深度模型,表示如下:
其中,d(x) 表 示圖像的深度信息,L(x)表示圖像的亮度,S(x)表 示圖像的飽和度,G(x)表示圖像的梯度。ω1、ω2、ω3是 待求的線性系數(shù),ε表示模型的誤差系數(shù)。
為了解決未知的非線性系數(shù)問題,從D-HAZY數(shù)據(jù)集中[28]選取了1000張夜間有霧圖像和夜間無霧圖像,通過將其中的無霧圖像添加隨機(jī)深度合成對應(yīng)的有霧圖像,每組無霧圖像和合成的有霧圖像作為一組訓(xùn)練樣本,訓(xùn)練樣本如圖4所示(彩圖見期刊電子版)。
圖4 夜間無霧圖像和對應(yīng)合成的夜間有霧圖像Fig. 4 Nighttime haze-free images and the corresponding synthetic hazy images
首先,在無霧圖像中隨機(jī)合成深度為0.5~1的霧,設(shè)置大氣光的向量值為A(k,k,k), 其中k的取值為0.8~1.0。結(jié)合大氣散射模型得到1000張合成的有霧圖像和對應(yīng)的無霧圖像。此外,獲取了所有夜間有霧圖像的亮度、飽和度以及梯度等特征,采用文獻(xiàn)[29]里面的方法,圖像深度模型表示為:
其中,i表 示第i組 訓(xùn)練樣本,ωT=[ω1,ω2,ω3]T,Xi=[L(xi),S(xi),G(xi)],第i組訓(xùn)練樣本的有霧圖像的深度圖為di(x),通過線性表示的深度圖模型為d(xi),根據(jù)1000幅訓(xùn)練樣本,利用最小化損失誤差求得線性系數(shù)和線性誤差,表示為:
其中n為訓(xùn)練樣本的總數(shù),為了簡化討論,取
這樣最小化損失誤差E就可以表示為:
為了解決最小化損失函數(shù)的問題,作以下求導(dǎo),令該求導(dǎo)值為0,可以得到
其中XTX為 滿秩的正則矩陣,這樣可以求得ω?為:
經(jīng)過樣本的訓(xùn)練,可以獲得最終的未知參數(shù)結(jié)果為:ω1=1.0267,ω2=?0.5966,ω3=0.6735,ε=0.004135。根據(jù)獲得的參數(shù),可以得到式(15)中d(x) 的 值,進(jìn)一步求得所需要的透射率t2(x)為:
以上由式(15)和式(22)分別求出了在無光源區(qū)域的透射率t1(x)和有光源區(qū)域的透射率t2(x) , 利用像素點(diǎn)屬于光源區(qū)域的概率η (x)將這兩個透射率疊加在一起,可以得到全局圖像的透射率分布圖t(x),疊加方法為:
得到透射率估計圖以后,利用引導(dǎo)濾波保持邊緣,減少邊緣光暈現(xiàn)象。圖5(彩圖見期刊電子版)所展示的是分別使用透射率圖t1(x)、t2(x)和t(x)得到的實驗結(jié)果??梢钥闯?,由于在無光源區(qū)域內(nèi)可以近似認(rèn)為不考慮人工光源的照度、顏色特性等影響,大氣光值為常數(shù)值,使用暗通道先驗方法可以處理無光源區(qū)域的霧,對于有人工光源影響的區(qū)域,利用上述的線性模型進(jìn)行估計能夠有效消除霧的影響,得到的最終結(jié)果在去霧、光暈的消除和圖像細(xì)節(jié)的保持等方面效果顯著。
圖5 使用不同透射率的去霧結(jié)果Fig. 5 The dehazing results using different transmission
由于圖像中通常具有較多的暗區(qū)域,透射率的下限值不能達(dá)到一個非常小的數(shù)值,因此為了更好地復(fù)原圖像,這里設(shè)置一個透射率最低下限值為0.1。復(fù)原圖像的結(jié)果可表示為:
為了驗證本文所采用方法的有效性,按照算法過程利用Matlab 2019a編寫了代碼進(jìn)行實現(xiàn),得到一些有霧圖像的去霧結(jié)果,并與其他廣泛使用的夜間去霧方法,如Zhang方法[13],Li方法[14],Yu方法[18]進(jìn)行比較。本實驗所使用的設(shè)備環(huán)境為ASUS Inter Core i7-7500U 2.90 GHz, 8 GB RAM,Nvidia Geforce 930MX。實驗所得到的參數(shù)為β=0.5, γ =2.0,Nth=0.07, ω1=1.0267, ω2=?0.5966,ω3=0.6735, ε =0.004135。
在圖6(彩圖見期刊電子版)的所有圖像中,可以看出本文方法的去霧圖像邊緣更加平滑并保持清晰度,圖像的其他部分恢復(fù)更加柔和。取第1張圖像的部分特寫視圖(如第2幅圖所示),從天空區(qū)域來看,本文算法的噪點(diǎn)相比于其他方法明顯更少,恢復(fù)效果更好;從燈光周圍的恢復(fù)效果看,本文方法跟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幅圖像的暗處細(xì)節(jié)(例如黑暗處的樹林位置),Zhang方法和Li方法都能明顯看到圖像的偏色現(xiàn)象,而在本文方法所得到的結(jié)果中,這部分的顏色看起來更加自然。
具體比較第1,第4和第6幅圖像的天空區(qū)域,其他方法得到的去霧圖有許多噪聲,而在本方法的去霧結(jié)果中天空區(qū)域的噪聲顯著減少。另外,對于天空區(qū)域的顏色,本文方法的去霧圖像看起來也更加自然。
對比所有方法中的第7和第8幅圖像的白光區(qū)域,可以看出其他方法經(jīng)過圖像去霧或增強(qiáng)會產(chǎn)生過曝現(xiàn)象,掩蓋了背景的許多細(xì)節(jié),但本文的方法可以保證白光區(qū)域減少了過曝現(xiàn)象,而且燈光的形狀能恢復(fù)完整。
為了進(jìn)一步驗證算法去霧有效性,本節(jié)采取了客觀質(zhì)量評價方法,所使用的參數(shù)指標(biāo)有圖像盲評價參數(shù)e(Blind Assessment),圖像的峰值信噪比(Peak Signal-to-Ratio, PSNR), 圖像的結(jié)構(gòu) 相 似 度(Image Structural Similarity, SSIM), 對比度增益(Contrast Gain, CG), 圖像 可視化測量(Image Visibility Measurement, IVM),視 覺 對 比度測量(Visual Contrast Measure, VCM)等[30]。圖像參數(shù)值e、CG、IVM、VCM利用原始有霧圖像和去霧圖像之間的對比測量得到,PSNR和SSIM是通過去霧結(jié)果和理想復(fù)原圖像之間的對比來度量的。圖像的質(zhì)量評價對比圖如圖7所示。
圖7 夜間去霧方法效果比較Fig. 7 Comparison of nighttime dehazing algorithms
使用該圖測量的圖像質(zhì)量評價數(shù)據(jù)如表1所示。從表1可以看出,本文方法的參數(shù)e、CG、IVM、VCM值均比其他方法高,說明本方法在圖像邊緣保持、細(xì)節(jié)體現(xiàn)、對比度增強(qiáng)、可視度提高方面表現(xiàn)更突出。本文方法的PSNR和SSIM的數(shù)值比Yu的方法略高一些,說明本方法的去霧效果更好。綜上所述,本文改進(jìn)的去霧方法能夠取得更優(yōu)秀的去霧結(jié)果,圖像復(fù)原效果更突出。
表1 圖像質(zhì)量評價數(shù)據(jù)表Tab. 1 The values of image quality assessment
目前,霧天圖像復(fù)原取得了顯著成果,但夜間圖像成像環(huán)境比較復(fù)雜,各種不同種類光源的存在導(dǎo)致光照不均且色偏嚴(yán)重,夜間圖像去霧難度較大,因此大多數(shù)方法并不適用于夜間場景。針對夜間圖像存在的光暈和偏色問題,采用帶有顏色校正的圖像分層算法使去霧圖像更加真實。針對大氣光估計精度不足的問題,本文提出了帶有顏色通道差異的光源閾值分割方法,將該閾值設(shè)置為像素點(diǎn)在光源區(qū)域的概率值,并結(jié)合最大反射先驗方法分段估計大氣光值。針對透射率估計問題,對于光源區(qū)域提出了結(jié)合圖像深度、亮度、梯度以及飽和度的線性模型,通過訓(xùn)練樣本求得線性系數(shù);對于非光源區(qū)域采用暗通道先驗的方法來估計,并利用上述的概率值進(jìn)行疊加,從而提高了透射率的估計精度。與其他夜間去霧方法相比,本文方法不僅可以有效地消除夜間光暈和霧氣,而且復(fù)原圖像顏色上看起來更自然,提高了圖像的細(xì)節(jié)清晰度,減少了噪聲。但是本文提出的方法也有一些缺點(diǎn),例如,利用閾值的光源分割方法只能大致區(qū)分光源區(qū)域和非光源區(qū)域,區(qū)分精度不足。此外,本文提出的線性深度估計模型對于透射率的估計精度雖然有提升,但提升能力有限,需要進(jìn)一步尋找更合適的估計模型。在以后的工作中會著重尋找相應(yīng)辦法來解決這些問題。