康彩新,張道康,蘭時勇,2+
(1.四川大學 計算機學院,四川 成都 610065; 2.四川大學 視覺合成圖形圖像技術國防重點學科實驗室,四川 成都 610065)
在戶外氣象條件不佳時,由于大氣中存在的懸浮顆粒產生的散射作用,景物反射的光線在一定程度上受到衰減,導致圖像中一些場景的信息丟失,嚴重影響了后期圖像處理的工作。目前的圖像去霧技術分為使用深度學習的去霧方法和傳統(tǒng)的圖像去霧,傳統(tǒng)的去霧技術主要分為兩大類:第一類是利用圖像增強方法,如直方圖均衡化、色彩恒常性以及視網膜皮層 (Retinex)理論圖像增強[1]等方法。第二類基于大氣散射模型,用先驗信息復原有霧圖像的方法被提出。如Fattal等[2]的方法。He等[3]通過對無霧圖像的觀察,提出暗原色先驗規(guī)律,來估計大氣透射率以及全局大氣光,取得了不錯的去霧效果。然而,由于天空區(qū)域亮度較高,暗原色先驗在天空區(qū)域失效。因此一些改進方法被提出。舒巧玲等[4]通過建立含多正則化約束變分模型對透射率優(yōu)化,并引入容差機制對明亮區(qū)域透射率進行修正。王柯儼等[5]使用多閾值天空分割方法分割天空,然后分別估計兩類區(qū)域的透射率,其方法較為復雜,盧輝斌等[6]通過亮通道和暗通道分別計算出的大氣光值,加權結合來估計全局大氣光,得到了更精確的大氣光估計值,而其僅在估計大氣光時應用亮通道,有一定局限性。
針對暗原色先驗存在的圖像中高亮區(qū)域去霧過處理、場景景深關系還原不佳,以及引導濾波窗影響景物邊緣處的透射率估計,進而影響準確性的問題,本文提出主要的創(chuàng)新工作如下:
(1)本文考慮巧妙采用對RGB亮通道取反,改進大氣透射率估計,使高亮區(qū)估計得到的透射率增大,進而使此處的去霧力度減弱,避免明亮區(qū)域被過度增強,以減少大氣光值的影響,使其符合觀感常規(guī)特性不被破壞。而且,正因考慮采用亮通道取反處理自適應修正大氣透射率估計,還可以對不同景深深度的景物施予自適應的去霧力度,使復原結果可以更好體現(xiàn)景深特性,保留景物的層次感;
(2)在透射率估計過程中,本文引入邊緣因子,抑制因引導濾波局部窗導致的所估計獲取的透射圖的塊效應,以更清晰復原圖像的景物邊緣細節(jié)。
本文的實驗對比分析表明,改進方法使暗通道方法的去霧效果有了顯著提升,便于人眼的主觀視覺觀察以及計算機的后續(xù)處理,驗證了所提算法的有效性。
在計算機視覺和圖形領域中,廣泛應用于有霧圖像的大氣散射模型[7,8]為
I(x)=J(x)t(x)-A(1-t(x))
(1)
其中,I(x)為成像設備獲取到的有霧圖像;J(x)為無霧圖像;A為全局大氣光;t(x)為大氣透射率。
為了求得J(x),He等[5]基于對戶外大量無霧圖像統(tǒng)計觀察,發(fā)現(xiàn)了暗原色先驗,即圖像RGB這3個通道中的最小值往往接近于零。這是由于景物的陰影、黑色物體和具有鮮艷顏色的物體所造成的?;诖怂岢隽税翟闰災P?/p>
(2)
其中,Ω(x)是以x為中心的一個方形窗口,Jc是J的一個RGB 顏色通道,Jdark是暗通道圖像,其值往往被估計為0。
而對于全局大氣光A,He等[3]借助于暗通道圖來從有霧圖像中獲取該值。首先從暗通道圖中按照亮度的大小取前0.1%的像素,往往是圖像中霧最濃的像素。在這些位置中,在原始有霧圖像I中尋找對應的具有最高亮度的點的值作為全局大氣光A的值。
利用暗原色先驗模型,估計得到的大氣透射率t(x)和全局大氣光A,可以得到透射率t(x)
(3)
其中,ω用來修正去霧程度,一般取值為ω=0.95,上標c表示在R/G/B這3個通道中。
最終恢復的圖像的表達式為
(4)
其中,t0為防止透射率t(x)值過小設置的閾值,一般設置為t0=0.1。
使用暗原色先驗對圖像進行去霧處理,可以得到不錯的效果,然而此方法也存在一些不足:
(1)天空區(qū)域的處理問題一直是長期困擾圖像去霧領域的難題。同樣,由于天空區(qū)域像素通道值比較大,并不適用暗原色先驗,此方法對帶有天空區(qū)域的圖像處理效果不佳,其所估計的透射率比實際值偏小,造成色彩失真等問題;
(2)由于直接由暗通道得到的透射圖不夠精細,直接帶入計算會產生明顯的塊效應,He等先后采用軟摳圖算法[3]以及引導濾波[9]對透射率分布圖進行優(yōu)化。但由于景物邊緣進行濾波時,濾波窗口同時包含景物中以及非景物的信息,處理過的透射圖仍有一些塊效應,并且在物體邊緣處理不夠精細,存在一些光暈。
針對上述存在的暗原色先驗圖像去霧算法在天空區(qū)域失效,以及引導濾波窗影響景物邊緣處的透射率估計的問題,本文提出了一種RGB亮通道取反的自適應修正暗原色先驗去霧算法,算法流程如圖1所示。具體而言,先對有霧圖像的RGB通道中最亮通道進行取反處理,之后計算暗通道估計值;然后,進行全局大氣光的估計時,計算最亮0.1%的像素的均值;其次,采用使用canny算子提取圖像的邊緣信息,對導向濾波的方法進行修正,進而使用大氣散射模型對有霧圖像進行復原,得到最終的去霧圖像。
傳統(tǒng)的方法在計算暗通道時,直接對原始有霧圖像進行最小值濾波處理,而對于存在天空區(qū)域、水面等大面積明亮區(qū)域以及霧氣過于濃厚的圖像,它們對應區(qū)域的像素值較大,難以找到像素值接近于0的暗原色,即不符合暗原色先驗的預設條件。在使用He等的方法[3]直接處理時,天空區(qū)域的恢復圖像往往并不理想,去霧處理后會產生色彩失真、飽和度過高以及嚴重的光暈問題。而后期改進的方法如王柯儼等[5],往往需要將天空部分進行分離單獨處理,處理過程較為繁雜,效果欠佳。
對于以上問題,我們對有霧圖像中的高亮區(qū)域進行分析,天空區(qū)域的圖像往往具有相同特征,性質相似,并沒有太多的細節(jié)要素,使用暗原色先驗對其進行過度去霧處理的效果不佳,還會帶來光暈等負面效果。我們認為不需要過分要求對其進行過分去霧,適當?shù)娜レF處理使其符合觀感和常規(guī)特性即可。在從He等[3]、Fattal等[2]的公開圖像數(shù)據(jù)集選取的具有天空區(qū)域的有霧圖像中,我們對有霧圖像中天空區(qū)域的特征進行了統(tǒng)計,數(shù)據(jù)得到的天空區(qū)域的RGB數(shù)值均值較高?;诜治鼋Y果,我們提出了對RGB通道中的最亮通道進行取反計算的方法,來解決暗原色先驗去霧方法在天空及高亮區(qū)域失效的問題。
由于天空部分的各通道數(shù)值較高,在最小值濾波后得到的數(shù)值相對非天空區(qū)域也更高,且不均勻。而在對RGB最亮通道取反(此后簡稱為“通道取反”)之后,最小值濾波后天空區(qū)域將得到接近于0的較低的數(shù)值,由式(3)可知,估計得到的透射率t(x)將會較高,由式(4)可得,隨著t(x)的升高,多項式第一項的分母更靠近1,數(shù)值減小,從而減弱對這部分區(qū)域的去霧力度。所以通過取反的處理,我們可以有效篩選出天空區(qū)域以及其它高亮區(qū)域,降低對其去霧的效果,增大該區(qū)域的透射率,抑制明亮區(qū)域過度增強,以減少大氣光值的影響,使其符合觀感和后期處理的需求,保證其常規(guī)特性不被破壞。
通道取反公式為
(5)
同時,取反處理對非天空區(qū)域的去霧效果也有一定增益。傳統(tǒng)的暗通道去霧對不同距離的景物進行相同程度處理,試圖使景物清晰,但喪失了圖片的景深特性。在有霧圖像中,隨著景物距離的增加,其與觀察者之間的霧氣厚度也將增加,取反處理可以對不同深度的景物產生不同程度的修正效果。介質透射率t(x)描述了未被散射并直接到達相機的光部分。t(x)的定義為
t(x)=exp(-βd(x))
(6)
其中,d(x)是從場景點到攝像機的距離,β是大氣散射系數(shù)。具體而言,由式(6)可知,對于距離近的景物,其d(x)較小,即透射率較高,而由式(3),透射率t(x)與暗通道值成反比,則其對應的暗通道值較低,最亮通道取反對其暗通道值影響不大;而對于距離較遠的景物,其d(x)較大,則透射率較低,對應的暗通道值較高,取反將創(chuàng)造較小暗通道值,從而減弱其去霧效果,增強其距離感。即去霧力度會隨景深的增加而削弱,從而得到更真實的復原效果。具體表現(xiàn)在其復原結果可以更好的體現(xiàn)圖片的景深,保留景物的層次感,維持遠處景物恰當?shù)撵F氣的效果。
我們將式(3)進行修改,去掉原有的去霧程度修正系數(shù)ω,改用RGB最亮通道取反后的圖像來調節(jié)每張圖像不同區(qū)域的去霧程度,新的公式為
(7)
因最亮通道取反對顏色、明暗不同的區(qū)域,帶來的影響不同,去霧力度不同,增強了細節(jié)和顏色差異,所以,取反處理后的去霧圖像顏色自然、對比度高,有更好的觀感和細節(jié)。
He等[3]對大氣光進行估計方法為,首先求得暗通道圖,從中按照亮度的大小,取亮度最大的0.1%的像素。對應這些像素的位置,在原始有霧圖像中尋找對應的具有最高亮度的點的值,作為全局大氣光的值。而由于非天空區(qū)域的圖像中可能存在鏡面等較大塊明亮物體,其亮度超過天空區(qū)域,可能造成大氣光值的錯誤估計,導致去霧圖像顏色異常等問題。且傳統(tǒng)方法[3]中的A最終是取原始像素中的某一個點的像素,這樣各通道的A值很有可能全部很接近255,會造成處理后的圖像偏色和出現(xiàn)色斑。為了提高大氣光估計值的準確度,本文首先基于RGB最亮通道取反后的暗通道值,并使用暗通道圖像中,亮度最大的0.1%的像素,對應位置的原圖像中的均值,作為全局大氣光的估計值,以此得到更合適的全局大氣光估計值。
由于將透射率t(x)直接帶入計算會產生明顯的塊效應,為了消除去霧圖像產生的塊效應,He等采用軟摳圖算法[3]對透射率分布圖進行優(yōu)化,之后改進為使用引導濾波替代軟摳圖處理[9],較大地提高了處理效率。但處理過的透射圖仍有一些塊效應,并且在物體邊緣處理不夠精細,存在一些光暈。這是因為在景物邊緣進行濾波時,濾波窗口同時包含景物及非景物的信息,使透射率圖的邊緣變得模糊,從而使去霧復原圖像的景物邊緣出現(xiàn)光暈。
本文沿用導向濾波的方法,并對處理步驟做了調整。首先,使用canny算子提取有霧圖像景物的邊緣信息,之后,在最小值濾波后的透射率圖中,對景物邊緣進行弱化,去除錯誤估計的邊緣信息,其計算公式為
tcanny(x)=tmin(x)-εy(x)
(8)
其中,tmin(x)為最小值濾波計算出的初始透射率數(shù)值,y(x)為使用canny算子提取的景物邊緣信息,ε是邊緣弱化因子,本文通過實驗調試,并結合峰值信噪比等參數(shù)信息,取ε=0.3,對初始透射率數(shù)值進行修正。最后,再使用導向濾波對tcanny(x)進行細化,得到最終的透射率估計值。使透射率估計結果更加精細,減少了圖像中景物邊緣的光暈,得到更高質量的復原圖像。
為了驗證本文方法的去霧效果,通過從透射率的估計結果、去霧細節(jié)以及景深改進以及整體去霧主觀效果和客觀去霧指標幾個方面將本文方法與文獻[3,6,10,11]的方法進行對比。測試圖片來源于He等[3]、Fattal等[2]的公開圖像數(shù)據(jù)集。在2.3 GHz四核Intel Core i5處理器的電腦下運行,本文采用的最小值濾波窗口大小為20*20像素。
圖2為在9*9濾波窗口下文獻[3]與本文最小值濾波后透射率估計結果對比,使用文獻[3]原始方法得到的透射圖在高亮區(qū)域暗通道數(shù)值估計過高,透射率估計值較低。RGB最亮通道取反的透射圖與原始的暗通道透射圖對比,可以發(fā)現(xiàn)在取反之后天空區(qū)域的暗通道值下降,透射率估計圖更高,更符合天空的去霧處理要求,這樣有效改善了在復原圖中去霧圖片產生明顯的光暈效果的缺點。另外在非天空區(qū)域,取反操作調節(jié)了對景物的去霧力度,并且可以看到景物的透射率估計值更加精細,層次分明且輪廓清晰,擁有豐富的細節(jié)。
圖3為取反前后的去霧結果對比,在天空區(qū)域,未做取反處理的去霧圖片產生明顯的光暈效果,在非天空區(qū)域,未做取反處理的去霧圖像顏色偏暗,細節(jié)模糊,難以分辨景物的輪廓。經過取反處理后的去霧圖片,有效改善傳統(tǒng)暗通道去霧方法天空部分產生色彩失真以及產生光暈等問題,在非天空區(qū)域還原有霧圖像的更多細節(jié),景物輪廓清晰,去霧后圖像色彩更為真實,得到更好的去霧還原效果。
同時,在現(xiàn)實生活中,即使是晴朗的天氣,空氣中也存在著一些顆粒,因此,看遠處的物體還是能感覺到霧的影響,霧的存在讓人類感到景深的存在,有必要在去霧的時候保留一定程度的霧。在Image1中可以看到在圖3(b)中圖框圈出的區(qū)域,遠處圖像的霧得到一定程度的保留,體現(xiàn)了景物的層次感,使圖像更加真實。而在圖3(a)中,相同區(qū)域中的景物過度的去除了霧,邊界模糊且難以分辨距離遠近,景深特征丟失。在Image2(b)中框出區(qū)域,屋頂和樹林的輪廓清晰,樹林與遠處景物邊界分明,圖片富有層次,可以分辨景物的遠近,而圖3(a)中還原圖像模糊不清,屋頂恢復效果昏暗,難以分辨景物輪廓。
如圖4為在15*15濾波窗口下原始導向濾波與修正后的導向濾波結果對比,文獻[9]的透射率先由最小值濾波估計出,再經過導向濾波細化,其處理過的透射圖仍有一些塊效應,并且在物體邊緣處理不夠精細,存在一些光暈,一些細節(jié)丟失。本文使用canny算子提取有霧圖像景物的邊緣信息,并在最小值濾波后的透射率圖中去除錯誤估計的邊緣信息,再進行導向濾波,可以看到圖4(c)中的估計的透射率與圖4(b)相比,一定程度去除了景物邊緣的光暈,并且更清晰,包含更多細節(jié),使用修正后的透射圖進行去霧可以得到更好的復原圖像。
為了驗證本文方法的有效性,將處理結果與文獻[3]、文獻[6]、文獻[10]以及文獻[11]中的去霧算法的處理結果進行比較,實驗結果包括兩部分,第一部分進行主觀視覺效果的對比,即將不同算法的去霧效果圖像進行比較;第二部分利用客觀評價標準對不同算法的去霧結果進行評估。
對比圖5中不同算法的去霧結果圖,文獻[3]的方法達到了一定的去霧效果,但去霧圖像缺失了邊緣細節(jié),且仍有一些霧殘余,并且在天空區(qū)域顏色失真,有明顯的光暈。文獻[10]的方法的去霧結果顏色失真明顯,天空顏色昏暗,有光暈現(xiàn)象,且對第3幅、第4幅圖像處理時,復原圖像顏色出現(xiàn)上下顏色分層的情況,雖然其部分圖像的可見邊梯度平均值r較高,但其一定程度破壞了景深特性,為將遠處的過度增強帶來的結果,但顏色對比度較低,影響了圖像的主觀視覺質量;文獻[11]方法,基于DehazeNet神經網絡,復原結果中不存在偽影,沒有光暈,但是其圖像的去霧程度低,如第4幅圖像中較遠的樓宇基本沒有被去霧,復原圖像中依舊有大量的霧存在;文獻[6]方法在估計大氣光時結合明通道和暗通道的估計值,在文獻[3]的基礎上進行了改進,可以看到其去霧圖像對比度更高,細節(jié)更豐富,但其在天空區(qū)域仍存在一些光暈,以及部分景物色彩失真。圖5(f)為本文算法的處理結果,先對有霧圖像的RGB最亮通道進行取反處理,避免了暗原色先驗去霧方法在處理天空區(qū)域時顏色失真和出現(xiàn)光暈等不足,同時維持圖片的景深,使恢復圖像更真實;大氣光的估計計算最亮0.1%的像素均值,得到更合適的全局大氣光估計值;并使用canny算子提取邊緣信息,修正導向濾波方法,得到更平滑的透射率結果,使復原圖像具有豐富的細節(jié),邊界清晰;去霧后的圖像整體顏色比較自然,邊緣細節(jié)保持較好,且保留了圖片的景深信息。
主觀評估容易受到個人因素的影響,本文進一步計算了客觀評價指標新增峰值信噪比PSNR、結構相似性SSIM、以及文獻[12]中提出的可見邊梯度平均值r,對圖5中的圖像進行評價,其中PSNR通常用來評價一幅圖像經過處理后和原圖像相比的失真程度,PSNR越高,圖像和原圖越接近;SSIM用于評價去霧后的圖像與原圖相比在結構上的相似性,其更符合人眼對影像品質的判斷,其數(shù)值越高代表相似程度越高,最大為1;可見邊梯度平均值r是計算去霧圖像與原圖像的可見邊平均梯度比來客觀的評價圖像的去霧效果,r的值越大,表明處理后的圖像邊緣強度越大,對比度越高。從表1的客觀評估值中可以看出,本文的去霧算法在綜合評價結果相對優(yōu)秀。從而說明本文算法具有一定的優(yōu)越性和較好的去霧效果。
表1 客觀評價
本文提出了一種RGB亮通道取反的自適應修正暗原色先驗去霧算法。在計算圖像暗通道時,本文首先對RGB通道中最亮通道進行取反處理,自適應修正透射率的估計值,改善了天空區(qū)域去霧效果,使圖片符合觀感常規(guī)特性不被破壞。另外在非天空區(qū)域,保留了景物的層次感和景深信息,擁有豐富的細節(jié)。在全局大氣光估計時,本文采用暗通道對應原圖位置的最亮0.1%像素的均值,使大氣光估計更加準確,圖像色彩更為真實。之后使用canny算子提取圖像的邊緣信息,修正導向濾波方法,得到更平滑的透射率結果,使去霧后圖像消除了邊緣光暈,輪廓清晰。實驗結果表明,采用本文方法可以有效改善去霧圖像細節(jié),避免天空區(qū)域出現(xiàn)光暈、顏色失真以及過飽和等問題,得到更好的復原圖像。