許駿, 王直杰
東華大學 信息科學與技術學院,上海 200051
摘要:基于暗通道先驗算法的圖像去霧技術已經日益成熟,但是其處理速度慢、天空區域過曝、處理完的圖像色彩變暗等缺點也很明顯。本文針對這幾方面分別提出了求透射率時的優化、糾正天空等明亮區域的錯誤估計的透射率、采用自動色劑的算法進行顏色校正等方法,從而有效地提升去霧圖像的視覺效果與處理速度。實驗結果與幾種經典的算法結果進行比較驗證了本文算法在處理效率與顏色保真度方面的優越性。
關鍵詞:圖像去霧;暗通道先驗;顏色校正;處理速度
0引言
在日常生活中,戶外場景拍攝很容易受各種因素的影響,如灰塵、霧或煙霧。近幾年霧霾天氣越來越頻繁,這些懸浮在空氣中的粒子會對場景的反射光和大氣光的散射產生很大的影響,使得拍攝所得到的圖像質量降低、美感全無,甚至會讓圖像對比度與顏色產生明顯失真,導致場景和目標的可辨識度降低。這些都會直接影響到機器視覺對于圖像內容的識別與分析。所以為了給機器視覺識別提供更清晰的圖像,對圖像進行去霧處理就顯得非常重要。
1去霧算法分類
目前,圖像去霧算法主要分為兩大類:一類為圖像增強[1],如直方圖均衡化法、Retinex算法、基于小波的方法、基于大氣調制傳遞方程的方法。另一類為圖像修復[2],如深度信息的霧天圖像復原、基于先驗的霧天圖像復原、基于偏微分方程的霧天圖像復原、最小失真意義下的霧化圖像復原。
為了能夠更有效地對圖像進行高效的去霧處理,本文提出了基于暗通道先驗的去霧改進算法,其屬于基于先驗的霧天圖像復原。本文基于大氣散射模型,在算法去霧的計算過程中進行了合理的優化,減少計算量,提高了實時性,并且改善了經過去霧處理后使得圖像整體變暗的不良效果。
2本文的算法
2.1大氣散射模型
大氣散射模型是由McCarthney在1975年提出的,該模型描述了霧化圖像的退化過程,并被廣泛應用于圖像去霧領域,根據大氣光在霧天退化過程中傳輸的物理特性可以用以下公式表示為[3]:
I(x)=J(x)t(x)+A(1-t(x))(1)
其中,I(x)表示有霧圖像,J(x)表示去霧后的圖像,場景輻射中大氣傳輸過程中的透射率用t(x)表示,目標輻射信息的直接衰減用J(x)t(x)表示,反應出了經過傳輸介質后目標的電磁波信息到達傳感器的能量;A表示大氣光,大氣光經過衰減后到達傳感器的能量用A(1-t(x))表示。假設大氣層是均勻的,電磁波在大氣中為各向同性傳播,透射率t表示為:t(x)=e-βd(x),其中,β是大氣散射系數,d(x)是場景深度。
2.2暗通道先驗條件
暗通道先驗[4]是通過對多幅室外的無霧圖像進行研究總結出來的規律,在這些室外無霧清晰的圖像中發現,大部分非天空區域中,至少有一個顏色通道的某些像素的亮度值很低,幾乎趨近于零,并且,此區域的最低亮度值也幾乎為零。對于任意的圖像J,它的暗原色通道Jdark可以表示為:Jdark= minΩ (minc∈{r,g,b}Jc)
其中Jdark表示圖像J的強度值接近于0的暗通道,Jc表示J的R、G、B三通道之一,Ω 表示以一個像素為中心的窗口。
2.3透射率的計算與優化
根據文獻[3]中暗原色先驗理論得到:
這就是透射率t的預估值。
在生活中,即使是萬里無云的晴天,空氣中也存在著一些顆粒,因此,看遠處的物體還是能感覺到霧的影響,但是,霧能使人感受到景深的存在,使圖像看起來更真實。因此,有必要在去霧的時候保留一定程度的霧,這可以通過在式(2)中引入一個在[0,1]之間的因子w,則式(2)修正為:
w代表了霧的保留度,其值越小,去霧效果越不明顯,所以取w=0.95,這樣保留一些霧的存在可以使人感受到景深的存在,圖像也更符合需求。
由于暗通道去霧的透射率圖比其他算法都要精細,并且在整個算法中占用了大量的處理時間,降低了程序的處理效率,所以如果適當地降低一點精度,其去霧的效果理論上應該不會有太大的區別,本文采取的方法不對原圖求透射率,而是用以下方法來對透射率的求取進行簡化。
(1)把RGB轉化為灰度直方圖;
(2)對原圖進行下采樣,縮小為原圖的1/4,存放在V(x),并求解出V(x)的透射率;
(3)采用插值法獲取原圖大概的透射率。
經過實驗證明這種方式很大程度上提高了執行速度,而且去霧效果與原方案基本一致。
但是,如果縮小系數不是特別大,比如縮小為原來的0.5倍大小,可能兩次縮放所用的耗時還抵消了計算小圖的透射率圖所換來的盈利,因此必須合理選擇這個下采樣率。
研究中發現傳統的暗通道先驗去霧對天空部分處理效果不好,天空往往會出現較大面積的紋理及分塊現象。其根本原因還是因為天空部位基本上是不符合暗通道去霧先驗條件的,對此本文提出了一種避免圖像去霧算法中天空部分出現過度增強的方法:(1)將圖像轉換為灰度,為保留更多的邊緣信息,使用具有對比度保留功能的去色算法;(2)求灰度圖像的梯度信息,采用邊緣檢測算子實現;(3)對梯度信息進行去噪和濾波;(4)按照設定梯度閾值和亮度閾值對梯度信息進行區分;(5)對區分后的圖像進行高斯羽化處理。
得到天空區域后,He[4]將天空區域的透射率圖統一設置成一個固定值,但這樣不好,還是應該根據具體的值做適當的修正。 在He的上述操作中,得到的天空區域并不真正屬于天空,某個點并不一定是完全屬于天空或完全不屬于。因此本文提出一種優化方法,如下所示:
Jx=(tp×Ix+Jx×(255-Ix))/255
其中Jx是指暗通道的點,tp就類似于He所講的固定透射率值,是自己根據圖像處理效果調試指定的,在上式中,若I(x)=255,即完全屬于天空,則該點的透射率即為固定值,若I(x)=0,即完全不屬于天空,計算式的值不變,不影響正常去霧。
另外關于大氣光值A的計算,He提出了以獲得的天空部位的像素的平均值作為A,這也是非常合理的,但是在實際處理時,針對有些完全沒有天空部分的圖像,可能檢測到的天空區域很小(明顯屬于誤檢,但是程序不知道),這個時候以此為大氣光值,也是不合理的。為此,本文的處理方式是先計算天空部位的A值,然后再檢測天空像素占整個圖像的比例,如果比例小于5%,則還是以He計算A的方式進行。
還有一步,He也提到了,就是這些校正的步驟都必須在進行導向濾波前做。這樣利用導向濾波的平滑功能,可以從一定程度上將天空和非天空分界部位的不平滑現象彌補掉,這一方法有效地避免了天空區域過曝的情況。
如圖1所示,優化透射率后的算法的圖像右上角天空區域不會出現暗通道算法的偏色和大量色斑,不會有明顯的過渡區域。
2.4顏色增強
直接去霧后的圖像會比原始圖像暗,因此本文提出在處理完后需要對圖像進行一定的曝光增強。圖像亮度調整分為非線性和線性兩種方法[5]。非線性圖像亮度調整是將圖像像素的R、G、B分別加上或減去某個值,其優點是代碼簡單,亮度調整速度快;缺點是圖像信息損失較大,調整過的圖像顯得平淡,無層次感。線性圖像亮度調整一般是將圖像像素的RGB轉換為HSL(HSV)等顏色空間,對L(V)部分進行增減調整后,再轉換為RGB顏色空間,優點是調整過的圖像層次感很強;缺點是代碼較復雜,調整速度慢,而且當圖像亮度增減量較大時有很大的失真。
設亮度增減量value范圍為 -1~+1,本文采用了優化后的圖像亮度增強法,原理用下式表示:
當value>0時:
rgb=RGB+RGB*(1/(1-value)-1)
當value<0時:
rgb=RGB+RGB*value
3實驗結果與分析
3.1去霧效果比較
如圖1和圖2給出了本文算法與He文獻中的原暗通道先驗算法的去霧效果比較。
在圖1中,本文的處理結果能較好地恢復出天空區域,無偏色及明顯色斑。圖2中,本文的處理結果能很好地改善圖像色彩偏暗的情況。由此可見本文算法的去霧效果比He算法的處理效果有明顯改善。
3.2運算速度比較
在普通計算機上,使用Visual Studio 2010運行本文算法。運行環境為Windows 7,計算機配置為Intel(R) Core(TM) i3 CPU M 350 @2.27 GHz with 3 GB RAM。程序運行時間如表1。
4總結
本文基于暗通道先驗模型,在He算法基礎上提出了以下改進,首先針對暗通道原理去霧效率低的缺點,提出了縮小采樣標本后再用插值法求取透射率的方法來優化
算法效率。然后對是否屬于天空區域的透射率進行矯正。最后通過圖像亮度增強的方法改善了去霧處理后圖像變暗的缺點,使得實驗結果在主觀和客觀方面都達到了令人滿意的效果。
參考文獻
[1] 郭璠,蔡自興,謝斌,等.圖像去霧技術研究綜述與展望[J].計算機應用,2010,30(9):24172421.
[2] 葛艷,趙瑞,高占江,等.基于TV模型和膨脹的圖像修復方法研究[J].微型機與應用,2014,33(18):3941,44.
[3] MCCARTNEY E J. Optics of Atmosphere: Scattering by Molecules and Particles[M]. New York: John Wiley and Sons,1976.
[4] He Kaiming, Sun Jian, Tang Xiaoou. Single image haze removal using dark channel prior [J]. IEEE Transactions on pattern Analysis and Machine Intelligence, 2011,33(12):23412353.
[5] 劉艷英,凌朝東.HSV空間的彩色多聚焦圖像融合[J].微型機與應用,2014,33(8):4548.