司振惠 于 萍 王 巖
(吉林師范大學(xué)計算機學(xué)院 吉林 四平 136000)
在霧天里,空氣中的粒子會吸收和反射物體的光,從而使拍攝的圖像可見度和對比度降低[1],圖像質(zhì)量下降,很不利于識別圖像中的目標,這也往往是道路發(fā)生交通事故的重要原因。因此,提出一種提高圖像可見度和對比度的算法十分重要[2]。隨著計算機視覺的高速發(fā)展,圖像去霧技術(shù)的應(yīng)用范圍也越來越廣,如在霧天識別汽車牌照[3]以及應(yīng)用在校園監(jiān)控中[4]等。針對有霧圖像,學(xué)者們提出了大量的去霧算法,目前的去霧算法主要分為兩類:第一類是提高圖像對比度的增強算法,這類算法主要有Retinex算法、直方圖均衡算法、同態(tài)濾波算法。Retinex算法主要有三種,分別是單尺度retinex算法(Single Scale Retinex,SSR)、多尺度Retinex算法(Multiscale Retinex,MSR)和帶有彩色恢復(fù)因子的多尺度Retinex算法(Multiscale Retinex with Color Restoration,MSRCR),由于SSR[5]對灰度圖像效果更好,而MSR[6]難以維持顏色恢復(fù)和保留細節(jié)之間的平衡,所以MSRCR[7]算法應(yīng)用得更多,但對于色彩過度飽和的圖像來說,去霧效果不理想,易出現(xiàn)色彩失真現(xiàn)象。直方圖均衡算法[8]通過使有霧圖像的灰度分布直方圖接近均勻化分布進而提高圖像對比度,但不同灰度值的像素在均衡化后可能變成相同灰度值,導(dǎo)致圖像細節(jié)丟失。同態(tài)濾波[9]算法主要通過高通濾波器增強高頻分量,降低低頻分量來提高有霧圖像的可見度,但對于一些霧不均勻的圖像來說去霧效果不好。
第二類是基于物理大氣散射模型的圖像去霧算法,這類算法主要依據(jù)無霧圖像與有霧圖像之間的線性方程,進而反推出清晰圖像。He等[10]的算法通過圖像的暗通道去估計粗略的透射率,然后利用引導(dǎo)濾波進行優(yōu)化,但由于對透射率估計得不準確,降低了圖像的亮度,圖像可見度不高,并且在明亮區(qū)域(尤其天空區(qū)域)容易出現(xiàn)光暈現(xiàn)象。蔣建國等[11]對He等的算法提出了改進,引入了容差值解決了該問題,但圖像的清晰度依然不高。Tarel等[12]提出基于中值濾波的去霧算法,該算法運行速度快、復(fù)雜度低,但對于不連續(xù)的深度圖像容易出現(xiàn)顏色失真現(xiàn)象。Meng等[13]利用傳輸函數(shù)的邊界約束和上下文正則化來建模,進而估計有霧圖像的傳輸圖,該算法在色彩恢復(fù)方面效果不佳,去霧后的圖像色彩過于飽和。Zhu等[14]提出了用顏色先驗估計傳輸圖的算法,對霧和顏色比較均勻的圖像效果較好,但去霧后圖像整體偏暗。Cai等[15]提出了一種端到端的單幅圖像去霧系統(tǒng),通過輸入有霧圖像估計其傳輸圖,最后利用大氣散射模型進行去霧,該算法去霧效果較好,但圖像亮度較低,算法復(fù)雜度也偏高。Sebastian等[16]提出用多層感知機從最小通道去估計并優(yōu)化傳輸圖,相對于傳統(tǒng)的暗通道算法對傳輸圖的兩次運算,提高了算法效率,但去霧后圖像局部顏色失真,圖像可見度和亮度下降。
總的來說,現(xiàn)有算法存在的問題主要有兩點:一是去霧后圖像整體偏暗,圖像細節(jié)模糊;二是圖像的色彩過度增強,易出現(xiàn)光暈或失真現(xiàn)象。對于第一個問題,主要是通過伽馬校正來提高原圖像亮度。對于第二個問題,主要采用限制對比度自適應(yīng)直方圖均衡算法來提高圖像對比度,恢復(fù)圖像色彩以及增強細節(jié)。最后將兩者融合,使圖像視覺效果恢復(fù)更好。
基于暗通道的單圖像融合去霧算法不同于傳統(tǒng)的暗通道算法,在對圖像求解暗通道之前,要先對其進行伽馬校正和調(diào)整對比度的預(yù)處理,然后對伽馬校正后的圖像進行求解暗通道,并依據(jù)暗通道估計透射率和大氣光,利用物理模型求解出清晰圖像,最后將其與限制對比度自適應(yīng)直方圖均衡算法處理后的圖像進行融合得到增強圖像。改進算法的具體流程如圖1所示。

圖1 算法流程
伽馬校正(Gamma Correction)是一種重新對圖像色彩進行編譯的算法,通過放大圖像中的深色和淺色范圍,進而提高圖像對比度,其數(shù)學(xué)公式如下:
Gy=yr
(1)
式中:Gy伽馬校正后的圖像;y表示原始圖像;r表示校正系數(shù)。當(dāng)r的值大于1的時候,隨著r的增加,圖像的高光局部范圍逐漸被壓制,而低光局部范圍則得到了舒展,圖像整體色彩偏暗,細節(jié)更加清晰;當(dāng)r的值小于1時,情況恰恰相反,低光壓制高光舒展,圖像亮度增強。
有霧圖像中“重”顏色區(qū)域在經(jīng)過暗通道去霧后顏色會變得更深,使圖像整體偏暗,圖像可見度恢復(fù)程度不高,為了解決這一問題,通過大量實驗數(shù)據(jù)證明:通過對圖像進行伽馬校正,使圖像局部高光動態(tài)范圍擴大,去霧后的圖像可見度會更高,圖像細節(jié)會更加清晰,實驗結(jié)果如圖2所示。

圖2 實驗結(jié)果
可以看出,經(jīng)過伽馬校正后的去霧圖像的可見度明顯提高,在色彩恢復(fù)方面效果更自然,原圖像中樹木的形態(tài)變得更加清晰,其傳輸圖的效果也更好。為了確定最優(yōu)的校正參數(shù)r,進行了不同r值的實驗,實驗結(jié)果如圖3所示。

圖3 伽馬校正圖
可以看出,當(dāng)校正系數(shù)r的值小于0.7時,圖像中霧的覆蓋面積比原圖像大很多,而當(dāng)r的值大于0.7時,圖像開始局部偏暗,去霧后的效果不會更好,考慮到是有霧圖像,所以伽馬校正系數(shù)的值不能太小,當(dāng)r=0.7時,圖像增加的亮度和霧都是適當(dāng)?shù)摹R虼耍竺鎸嶒炛衦的取值都為0.7。
限制對比度自適應(yīng)直方圖均衡(Contrast Limited Adaptive Histgram Equalization,CLAHE)算法可以增強圖像對比度,在色彩恢復(fù)方面效果更好[17]。其中參數(shù)c是用來限定圖像對比度范圍,其值越大,圖像對比度越明顯,但值過大時,容易造成圖像過度增強現(xiàn)象。為了確定最優(yōu)參數(shù)c,進行了一系列不同c值的實驗,實驗結(jié)果如圖4所示。

圖4 CLAHE實驗結(jié)果
可以看出,隨著c值的增大,雖然圖像的色彩得到了增強,但局部區(qū)域出現(xiàn)了過度增強效果,并且增強后的圖像與原圖像的色差值越來越大,面對有霧的圖像,c值的增大也會產(chǎn)生更多噪聲,因此在后續(xù)實驗中c的值取0.01,此時圖像的色彩是最貼近原圖像的,同時也能夠消除一定量的霧。
霧天的大氣散射物理模型如下:
I(x)=J(x)t(x)+A(1-t(x))
(2)
式中:I為觀測到的有霧圖像;J為所求的清晰圖像;A為大氣光值;t為透射率;x為像素點的坐標。
He等[10]根據(jù)大量統(tǒng)計數(shù)據(jù)得出假設(shè):大多數(shù)圖像在某些區(qū)域(除天空區(qū)域)總能存在最小亮度值,其值接近于零,并稱之為圖像的暗通道,對于任意一幅圖像,其暗通道表達式如下:
Jdark(x) =minc∈{r,g,b}(miny∈Ω(x)(Jc(y)))
(3)
式中:圖像的三個顏色通道分別用r、g、b來表示,Ω(x)表示以像素點x為中心的方形區(qū)域。
求解暗通道的具體代碼:
Wnd=3;
%濾波窗口的大小
Ir = I(:,:,1);Ig = I(:,:,2);Ib = I(:,:,3);
%有霧圖像的三通道圖像拓展(對于邊緣像素需要以其為中
%心,按窗口半徑進行向外擴展形成一個3×3的方形區(qū)域。)
[m,n,~] = size(I);
%獲取圖像的長和寬
%定義擴展矩陣大小
Irr = zeros(m+Wnd-1, n+Wnd-1);
Igg = zeros(m+Wnd-1, n+Wnd-1);
Ibb = zeros(m+Wnd-1, n+Wnd-1);
% Ir、Ig、Ib通道值賦給擴展區(qū)域Irr、Igg、Ibb
Irr((Wnd-1)/2:m+(Wnd-1)/2-1,(Wnd-1)/2: n+(Wnd-1)/2-1 ) = Ir;
Igg((Wnd-1)/2:m+(Wnd-1)/2-1,(Wnd-1)/2: n+(Wnd-1)/2-1)=Ig; Ibb((Wnd-1)/2:m+(Wnd-1)/2-1,(Wnd-1)/2: n+(Wnd-1)/2-1 ) = Ib;
% 暗通道的求解
for i=1:m
for j=1:n
%求三通道在局部方形區(qū)域內(nèi)的最小值
Rmin= min(min (Irr(i:i+Wnd-1, j:j+Wnd-1)));
Gmin=min(min (Igg(i:i+Wnd-1, j:j+Wnd-1)));
Bmin=min(min (Ibb(i:i+Wnd-1, j:j+Wnd-1)));
%三個通道的最小通道值作為暗通道
Jdark(i,j) = min(min(Rmin,Gmin),Bmin);
end
end
He等[10]發(fā)現(xiàn)霧霾圖像的暗通道和霧霾的稠密程度相似,所以挑選暗通道中最亮的0.1%像素估計大氣光,具體做法為:首先在暗通道中選取m個像素點(m=總像素點個數(shù)/1 000),記錄其坐標,然后在原圖像中找到對應(yīng)的像素點,并從中選取最大值作為A的值。
通過對暗通道采取局部最小值濾波和利用大氣散射物理模型,可以求出粗略的透射率t,表達式如式(4)所示。其中參數(shù)ω用來保留部分霧,使圖像看起來更自然,取值為0.95。
(4)
引導(dǎo)濾波方法可以顯著降低暗通道去霧算法的復(fù)雜度并優(yōu)化透射率t,引導(dǎo)濾波和雙邊濾波都可以平滑圖像,但是在保存邊緣和細節(jié)方面更優(yōu)于雙邊濾波[18],優(yōu)化t的表達式如式(5)所示。
Gt=GF(I,t,r,ε)
(5)
式中:Gt表示優(yōu)化后的透射率;GF表示引導(dǎo)濾波函數(shù);I表示引導(dǎo)圖像也就是有霧圖像;t表示濾波圖像即粗略的透射率;r表示濾波窗口大小;ε表示正則化參數(shù),在大多數(shù)實驗中r和ε的取值分別為32和0.01。
將求出的A和Gt的值代入式(2),求出相應(yīng)的無霧圖像,為了避免t的值等于0,為其設(shè)置一個下限t0,t0的取值為0.1。所求的J(x)表達式如下:
(6)
對于He等[10]對透射率錯誤估計的問題,蔣建國等[11]通過設(shè)置容差值K解決,對于小于K值的部分定義為明亮區(qū)域,重新計算其透射率,對于大于K值的部分,其透射率的值保持不變,當(dāng)K=0時,為原來的暗通道先驗算法,最后得到清晰圖像的表達式如式(7)所示。
(7)
重估透射率并求解清晰圖像的具體代碼如下:
for i = 1:1:m
%m和n分別為圖像的長和寬
for j = 1:1:n
for k = 1:1:3
%k表示圖像3個道通
s=K/(abs(I(i,j,k)-A(k)));
%abs為絕對值函數(shù)
J(i,j,k)=(I(i,j,k)-A(k))/ %此處對應(yīng)式(7)
min((max(s,1).*max(Gt(i,j),t0)),1)+A(k);
end
end
end
圖像融合是處理圖像過程中常用的方法,該方法可以將不同圖像或同一圖像不同形態(tài)相融合在一起,用彼此的優(yōu)點補償各自的缺點,使融合后的圖像效果更令人滿意。Galdran等[19]的人工多曝光圖像融合算法在去霧方面取得了很好的成效,因此,將經(jīng)過伽馬校正后的去霧圖像與CLAHE處理的圖像進行線性融合,會使圖像整體視覺效果更好,具體的融合公式為:
M=Gr+(1-r)C
(8)
式中:M為融合后的圖像,r為融合系數(shù),G為暗通道去霧后的圖像,C為增強對比度后的圖像。經(jīng)過大量的實驗證明,當(dāng)r的取值為0.2時,融合的圖像無論是在去霧方面,還是在可見度恢復(fù)方面都有所增強,圖像中的物體更加清晰。實驗結(jié)果如圖5所示。

圖5 融合結(jié)果
可以看出,隨著r值的增大,圖像中天空區(qū)域的霧越來越多,圖像的可見度也明顯下降,伽馬校正和CLAHE算法都會增加圖像的對比度,CLAHE增加的效果會更加強烈一些,對于一些色彩比較豐富的有霧圖像,如果CLAHE在融合中占的比例比較高,去霧后圖像容易出現(xiàn)過度增強現(xiàn)象。綜合考慮以上結(jié)論,最終確定r的取值為0.2。
該實驗是在普通PC機上進行的,具體配置為:操作系統(tǒng)Windows 7,CPU為Intel? CoreTMi7-6700@3.4 GHz,系統(tǒng)內(nèi)存為8 GB,運行算法的軟件為MATLAB2016。
為了證明算法的魯棒性,進行了與其他經(jīng)典算法的比較,圖像是兩幅在網(wǎng)絡(luò)上下載的彩色RGB圖像,其中包含天空區(qū)域。選取包含天空圖像的原因是:去霧算法通常在天空區(qū)域附近,易出現(xiàn)光暈現(xiàn)象,可以驗證改進算法的可行性,選取RGB圖像主要是因為其比灰度圖像去霧效果更明顯,更容易與其他算法進行效果對比,并且RGB圖像包含的圖像信息更多。具體實驗結(jié)果分別如圖6和圖7所示。

圖6 實驗結(jié)果

圖7 實驗結(jié)果
從圖6(圖像大小:600×450, 水平/垂直分辨率:96dpi)中可以看出文獻[10,13-15]算法雖然去除了霧,但圖像的亮度明顯降低,對于原圖像中藍色區(qū)域都出現(xiàn)了過度增強現(xiàn)象,圖像色彩過于飽和。文獻[12]算法在圖像的天空區(qū)域出現(xiàn)了顏色失真現(xiàn)象,圖像邊緣有偽輪廓出現(xiàn)。文獻[16]和改進算法結(jié)果更令人滿意,但文獻[16]算法去霧效果不徹底,圖像的亮度也明顯低于改進算法。
在圖7(圖像大小:450×600, 水平/垂直分辨率:96dpi)中,文獻[12]算法明顯過度增強了山脈的紋絡(luò),導(dǎo)致圖像嚴重失真。文獻[10,13-16]算法使圖像局部顏色加深,可見度降低,圖像細節(jié)模糊,尤其是對于原圖像中藍色區(qū)域內(nèi)的恢復(fù)效果都沒有改進算法好,無論是細節(jié)的增強還是顏色的補償,其他算法相比改進算法都有所欠缺。
目前對于圖像去霧算法還沒有統(tǒng)一的評價標準,這里主要選取了比較具有權(quán)威的峰值信噪比(Peak-Signal to Noise Ratio/ PSNR)和r[20]作為評價標準, PSNR表示圖像的失真程度以及降噪程度,值越大表示圖像失真越小,噪聲越少。r表示圖像邊緣增強程度,值越大表示圖像的可見度越高,表1和表2為圖6和圖7的客觀評價標準表。

表1 圖6的客觀評價表

表2 圖7的客觀評價表
結(jié)合表1和圖6可以明顯看出,文獻[14]算法可見度最低,文獻[12]算法失真最嚴重,改進算法無論是PSNR還是r的值都高于其他算法,在圖像可見度恢復(fù)方面和降噪方面更勝一籌。結(jié)合表2和圖7可以看出,由于文獻[12]算法的過度增強,導(dǎo)致圖像失真嚴重,所以其r值高于改進算法,而在降噪方面和可見度增強方面,改進算法更好。
伽馬校正參數(shù)r值和調(diào)整對比度參數(shù)c值對兩幅圖像(圖6和圖7)的PSNR的影響如圖8所示。從圖8(a)中可以看出,當(dāng)r等于固定值0.7時,隨著c值的增大,圖6和圖7的PSNR值逐漸下降,這是因為c值的逐漸增大,導(dǎo)致圖像出現(xiàn)過度增強現(xiàn)象即失真。從圖8(b)中可以看出,當(dāng)c等于固定值0.01時,隨著r值的增大,兩幅圖像的PSNR值在r=0.7時達到了最大值,表明此時圖像的失真程度最小。結(jié)合前面的圖3和圖4可以得出:當(dāng)r=0.7、c=0.01時改進算法的效果最為理想。

(a) c值對PSNR的影響(r=0.7)

(b) r值對PSNR的影響(c=0.01)圖8 參數(shù)對PSNR影響的折線圖
圖像去霧的目的是提高圖像的可見度和亮度,進而識別圖像中感興趣區(qū)域,現(xiàn)有的一些算法雖然在去霧方面效果較好,但往往在圖像顏色恢復(fù)方面表現(xiàn)欠佳,去霧后的圖像局部區(qū)域物體顏色加深,導(dǎo)致圖像整體偏暗,圖像中的細節(jié)更是不易顯示和識別。對此,改進后的算法選取了伽馬校正和CLAHE算法。伽馬校正可以提高圖像亮度,進而避免了去霧后圖像局部變暗的現(xiàn)象。CLAHE算法不僅可以提高圖像對比度,而且在色彩恢復(fù)方面有很好的效果,有效避免了去霧后圖像色彩加深的問題。改進后的算法簡單,復(fù)雜度低,但魯棒性和實效性很強,還可以處理霧天的交通監(jiān)控圖像,提高汽車牌照識別率,減少事故發(fā)生的概率,因此具有較強的實用價值。