李鵬飛, 何小海*, 卿粼波, 石 偉, 吳小強
(1. 四川大學 電子信息學院,四川 成都 610065;2. 中國民航局第二研究所,四川 成都 610000)
在夜間有霧條件下,光線受到空氣中微粒的反射、散射和吸收的影響,容易造成拍攝的圖片對比度低、整體亮度低和成像模糊的現(xiàn)象。這種情況下采集到的圖像會影響圖像采集、目標跟蹤、顯著性檢測、輔助駕駛等計算機視覺系統(tǒng)的性能。消除霧霾可以提高上述系統(tǒng)的性能,因此從有霧圖像中消除霧霾至關重要。相對于白天去霧,夜間去霧由于人工光源的滲入,光源周圍的大氣光更亮,到場景點的入射光和反射光受到霧霾衰減等因素的影響,使圖像不同部分的照明不均勻,因此夜間的大氣光不能假定為均勻的,相比白天去霧,夜間去霧更具挑戰(zhàn)性。
近年來,夜間圖像去霧的研究方法按照是否對霧天的成像機理進行分析可分為基于圖像增強的方法和基于物理模型圖像復原的方法[1]。圖像增強算法有直方圖均衡化、Retinex算法、小波變換和亮度對比度變換等,該類方法沒有考慮光成像原理,可能丟失部分圖像的細節(jié)信息?;谖锢砟P偷姆椒ㄊ茄芯快F霾圖像退化過程,建立退化模型,得到去霧圖像或其最佳估計,該類方法通常能夠保留豐富的信息,可以得到自然的結果。
目前白天去霧的研究很多,已經(jīng)取得許多優(yōu)秀的研究成果,比如基于暗通道先驗的去霧算法[2-3]、基于非局部先驗去霧算法[4]等,而夜間去霧的研究相對較少。Zhang等人[5]設計了一個考慮了夜間不均勻的光照條件和人工光源對顏色影響的夜間去霧模型,該算法去霧后圖像顏色自然,但容易出現(xiàn)局部失真;Li等人[6]分析了燈光等光源的光暈和光色,在去霧前先消除光暈的影響,通過估計局部大氣光來矯正顏色,再利用暗通道先驗去霧;Park等人[7]首先用相對平滑假設分解出光暈,然后用整體和局部大氣光融合的方法估計大氣光,利用權重熵估計透射率函數(shù),但去霧的同時可能會放大噪聲;Santra等人[8]考慮了夜間空間變化的大氣光,提出一種白天夜間都適用的去霧方法;Zhang等人[9]提出最大反射率先驗來估計變化的大氣光顏色圖,并消除顏色圖對輸入圖像的影響,然后通過改進的暗通道方法估計透射率函數(shù),最后得到了顏色均衡的去霧圖像;Liao等人[10]采用深度學習的方法去除霧霾,在合成的有霧圖像上取得了良好的去霧效果,但是在訓練過程中缺乏大量的真實霧圖和相應的無霧參考圖像數(shù)據(jù)集。
本文針對夜間復雜的光源條件,通過加權差分圖像作為參考進行引導濾波來估計含場景輪廓信息的大氣光,通過拉普拉斯銳化處理的灰度圖像作為參考圖像引導濾波來估計補充細節(jié)的大氣光,然后將二者融合;在計算透射率函數(shù)時結合暗通道和亮通道各自的優(yōu)點提出聯(lián)合優(yōu)化的透射率函數(shù),彌補了暗通道先驗透射率在夜間光源區(qū)域的不足。
在計算機視覺和計算機圖形學中,廣泛用于描述白天有霧圖像的模型是I(x)=J(x)t(x)+A[1-t(x)][2],白天去霧模型基于A是常量和大氣光為場景主要光源的假設,而夜間的光照條件復雜,所以它不太適合于夜間圖像去霧,典型的夜間有霧圖像成像模型[1,11]為:
I(x)=J(x)t(x)+A(x)[1-t(x)],
(1)
式中:I是觀察到的圖像,J是無霧圖像,A(x)是大氣光,t是場景到相機的透射率函數(shù)。J(x)t(x)包含圖像中大部分的信息及細節(jié),與場景輻射的衰減有關,A(x)[1-t(x)]與大氣光在霧霾天氣中的散射有關,代表大氣光散射過程中引起的薄霧粒子[6]。
受最近研究進展的推動,本文基于式(1)描述的模型實現(xiàn)去霧。由夜間霧霾天氣成像模型(1)可以看出,求出t(x)和A(x)即可以恢復出無霧的圖像。本文算法通過原圖像的加權信道差分圖像作為參考對均衡化處理后的圖像引導濾波[12]得到包含輪廓信息的大氣光分量Awcd,通過原圖像的拉普拉斯銳化灰度圖作為參考對均衡化處理后的圖像引導濾波得到補充細節(jié)的大氣光分量Alaplace,然后將二者融合得到大氣光A。本文通過暗通道透射率tDCP和亮通道透射率tBCP的加權融合得出透射率函數(shù)t(x),然后由式(2)求出去霧圖像,算法結構如圖1所示。
圖1 算法結構圖Fig.1 Algorithm structure diagram
在霧霾天氣中,場景成像前一般要經(jīng)歷多次散射,例如霧天條件下光源周圍出現(xiàn)的光暈就是多次散射的一種表現(xiàn),使用引導濾波可以平滑光源的變化。文獻[13]在能見度恢復過程中分析了大氣中的薄霧,指出像素點處薄霧的強度值大于0小于該像素點三通道的最小灰度值,本文使用RGB三通道中最小灰度值的0.7倍來近似薄霧,然后使用式(3)得出的加權信道差分圖像作為參考圖像進行引導濾波[11],得到包含輪廓信息的大氣光。文獻[14]指出引導濾波的關鍵模型參數(shù)是通過原始圖像場景中物體的邊緣信息來選擇的,本文使用輸入圖像的拉普拉斯銳化灰度圖作為參考圖像引導濾波得出補充細節(jié)的大氣光,最后將二者融合得到最終的大氣光。計算公式如下:
(2)
(3)
(4)
IIaplace=Igray-Laplace(Igray)/2,
(5)
(6)
式中,I為輸入圖像,將I轉(zhuǎn)換到Iab空間,對l分量做直方圖均衡化處理得到圖像Ilab,然后使用式(4)得到均衡化處理后的圖像Ieq。Imax、Imedian、Imin分別為輸入圖像中像素點處灰度值的最大值、中值和最小值,Igray為I的灰度圖像,Laplace為核大小為3×3的拉普拉斯變換,Awcd=GuidedFilter(Iwcd,Ieq)、AIaplace=GuidedFilter(IIaplace,Ieq)為引導濾波得到的兩個大氣光分量,Awcd為以Iwcd為參考圖像引導濾波得到的大氣光,AIaplace為以IIaplace為參考圖像引導濾波得到的大氣光,A(x)為求出的大氣光函數(shù)。圖2為本文算法和其他算法A的對比。
圖2 不同方法估計的大氣光Fig.2 Atmospheric light estimated by different methods
空氣中少量的霧霾是人類感知深度的線索[2],即使在晴朗的天氣里,我們看遙遠物體時依然感覺到有少量霧霾的存在,估計透射率函數(shù)t時要避免出現(xiàn)0值,小的t值可以增強暗區(qū)域的亮度,但是當t接近于0時可能會產(chǎn)生噪聲,大的t值可以抑制高亮度。在計算透射率函數(shù)時使光源位置有較大的t值可以抑制光源過度增亮,在暗區(qū)域使t值較小可以增強暗區(qū)域的亮度。本文計算透射率函數(shù)t的過程分為3個步驟:計算暗通道、計算亮通道、暗通道和亮通道的加權融合。
3.2.1 暗通道先驗
暗通道先驗是基于戶外無霾圖像的統(tǒng)計,在圖像中非天空的局部區(qū)域中,一些像素點在至少一個顏色通道(RGB)中具有較低的強度,在有霧圖像中,假設非天空區(qū)域景物至少有一個彩色通道是弱反射的,這些暗通道像素的強度是由大氣光決定的[2],而天空區(qū)域大氣光的所有通道都有強反射,當場景對象上有大面積區(qū)域類似于天空(白色)且沒有陰影時,暗通道先驗可能是無效的。本文在計算透射率時對天空和光源等圖像中較亮的區(qū)域進行了改進,避免在這些區(qū)域出現(xiàn)極小的t值,得出tDCP的計算公式如下:
(7)
式中:
(8)
(9)
(10)
TGmax=0.4×max(IA),
(11)
式中,Ω(x)是以像素點x為中心的窗口區(qū)域,Ac為3.1節(jié)求出的大氣光。
3.2.2 亮通道先驗
夜間有霧圖像可能會受到燈光、火光等光源的影響,為了彌補暗通道先驗在這些光源區(qū)域的不足,文獻[11]使用了亮通道先驗,即光源區(qū)域像素通常包含至少一個具有高強度的顏色通道,在亮通道先驗的基礎上,提出了亮通道透射率的計算方式:
(12)
本文對tBCP(x)進行了一個增強運算,用于增強亮通道中低強度的亮度[15],同時防止高亮區(qū)域出現(xiàn)極端的增強:
(13)
式中,max(tBCP)為tBCP中的灰度值最大值。
3.2.3 計算權重α
由于tDCP較適合應用在非光源區(qū)域,tBCP較適合應用在光源區(qū)域[11],權重α用于融合暗通道和亮通道透射率,本文通過式(15)中設定的判斷條件,對圖片中較亮的區(qū)域計算較大的α值,從而在使用式(20)融合暗亮通道時給亮通道tBCP一個較大的權重;對于圖片中較暗的區(qū)域,為避免過度增強弱光區(qū)域加入了自適應權重系數(shù)[16],如式(15)所示。
(14)
(15)
式中:
(16)
(17)
(18)
tGmax=0.4×max(Imax),
(19)
I為經(jīng)均衡化處理后的輸入圖像。
3.2.4 計算透射率函數(shù)
本文采用加權融合的方法來計算透射率函數(shù)t(x),tBCP和tDCP加權融合的傳輸函數(shù)為:
(20)
之后對上式求出的t(x)做限制對比度自適應直方圖均衡化[17]處理,再用Igray作為參考圖像引導濾波得到細化的透射率函數(shù)。圖3為一組不同算法求出的t(x)函數(shù)圖的對比:
在計算出大氣光A(x)和透射率函數(shù)t(x)后,根據(jù)夜間霧霾圖像成像模型(1),可用公式(2)得到去霧圖像。
圖3 不同方法求出的透射率Fig.3 Transmittance calculated by different methods
本文算法采用PyCharm COMMUNITY 2019.2 Python3.6編程實現(xiàn),計算A(x)使用的引導濾波卷積核直徑為60;窗口Ω的大小對透射率t有重要影響,太大或太小的窗口尺寸都可能會導致不準確的t值估計,本文在求tDCP和tBCP時用Ω尺寸為15×15;求α(x)用的Ω窗口大小為15×15;用于限制對比度自適應直方圖均衡化的網(wǎng)格大小為16×16;細化透射率t(x)用的引導濾波卷積核直徑為30,實驗分為主觀評價、客觀評價和算法處理時間對比。
圖4~圖74組為去霧結果對比,從圖中燈光區(qū)域的對比可以看出本文算法可以保持光源的輪廓形狀。
圖4 不同方法對亭子圖片的去霧效果Fig.4 Dehazing results of different methods on pavilion picture
圖5 不同方法去霧效果對比(第二行為圖中紅框位置放大的結果,從圖中可以看出,算法[8,11]去霧后亭子頂部的紋理過于變暗)Fig.5 Comparison results of different dehazing methods (The second line are the magnification results of the red box area in the picture, the textures on the top of the pavilion are too dark after dehazing by algorithm [8,11])
圖6 不同方法對薄霧和較濃的霧圖像去霧效果對比Fig.6 Comparison of dehazing results of different methods on haze and dense haze images
圖7 不同方法去霧效果對比Fig.7 Comparison of different methods of dehazing results
從圖中可以看出,文獻[5]去霧后亮度和細節(jié)均有改善,但部分區(qū)域會存在噪聲放大的現(xiàn)象;文獻[6]取得了較好的去霧效果,但抑制光暈的過程中光源位置周圍容易產(chǎn)生黑色偽影;文獻[8]去霧后亮度整體偏暗,部分暗區(qū)域會出現(xiàn)細節(jié)丟失;文獻[9]去霧效果良好,但少量區(qū)域會產(chǎn)生顏色失真,如圖7中樹葉和鐵路位置所示;另外圖6中路燈位置出現(xiàn)黑色偽影;文獻[11]去霧后圖像有著良好的對比度,但少量暗區(qū)域會出現(xiàn)細節(jié)丟失,如圖5湖邊亭子的頂部位置所示;另外在圖7第3幅圖路燈位置出現(xiàn)了模糊的情況;本文算法去霧后在保持圖像細節(jié)的同時取得了良好的去霧效果。
客觀評價將本文算法的去霧結果與文獻[5,6,8-9,11]進行了對比。因在現(xiàn)實場景中同時獲得夜間有霧的圖像和與其對應的相同條件下拍攝的無霧Ground Truth圖像是困難的[7],因此采用BRISQUE、NIQE、信息熵和對比度4個無參考指標作為參考。
無參考客觀評價指標BRISQUE可以測量圖像細節(jié)的損失程度,該指標值越低代表圖像質(zhì)量越好[14,18];NIQE用來評估圖像質(zhì)量,越小的數(shù)值代表圖像質(zhì)量越高[19];信息熵反應圖片的信息量,數(shù)值越大代表信息越豐富[20-21];對比度[1]反應圖像細節(jié)豐富程度,數(shù)值越大越好。表1為對圖4、5、6計算的4個指標的對比情況,表2為對圖4~圖7中的圖片計算的上述4個指標的平均值。
表1 不同算法去霧后圖片的指標對比Tab.1 Index comparison of images after dehazing by different algorithms
表2 不同算法去霧后指標平均值對比Tab.2 Comparison of average values of indexes after dehazing by different algorithms
續(xù) 表
從表1和表2的指標對比可以看出,本文算法在質(zhì)量和細節(jié)保持方面具有一定的優(yōu)勢。
該節(jié)將本文算法和文獻[6,8,11]做了運行時間的對比,對比算法和本文算法代碼均使用Matlab編程實現(xiàn),測試電腦系統(tǒng)為Win10 home版,CPU i7-8750H,內(nèi)存為8G,測試圖像為本文主觀對比中使用的10張圖片,將圖片的尺寸都調(diào)整為560×420。表3為不同算法在這10張圖片上運行時間的平均值對比。
表3 不同算法的平均運行時間Tab.3 Average running time of different algorithms
從上表可以看出,本文算法運行時間比文獻[6, 8]要快,比文獻[11]要慢,相比文獻[11],本文算法多了圖片預處理的過程。另外在求暗通道和權重α的過程中增加了判斷條件,還有采用兩種大氣光分量融合的方式等原因?qū)е铝诉\行時間的增加。
本文提出了一種簡單有效的夜間圖像去霧算法,通過兩個大氣光分量融合的方式得出適合光照不均勻夜間環(huán)境的大氣光。通過自適應權重圖融合亮通道和暗通道推導出的透射率函數(shù),結合了亮通道和暗通道各自的優(yōu)點,去霧后視覺效果良好。實驗結果表明,在測試圖片上計算的BRISQUE、NIQE、信息熵、對比度指標的平均值分別為18.281,3.494 3,7.587 2,23.809 7,與對比算法相比均有一定的提升。本文算法去霧后可以較好地保留原圖像的結構信息,且細節(jié)失真較小。