余 朋,文小琴,汪兆棟,賀 樂
(華南理工大學 自動化科學與工程學院,廣東 廣州 510000)
近年來,有研究者提出利用多幅圖像去霧,基于3D幾何信息建模場景深度并去霧的思想[1-6]。然而,在單一圖像去霧實驗中,獲得多幅圖像或額外信息非常困難,因此限制了它們的應用。最近,基于單一圖像而不使用額外信息的去霧算法取得了較大的進步[7,8]。比如自動顏色均衡化算法[9]、WP(White-point)算法[10],這些算法能獲得良好的去霧效果,但由于沒有考慮有霧圖像的形成過程而導致圖像部分細節信息的丟失,往往會產生不可預測的失真。何凱明等[11]提出了利用暗通道先驗信息來實現圖像去霧,但研究人員在后續實驗中發現,該方法對那些類似于大氣光的白色場景目標去霧效果不理想;Meng等[12]在何凱明等的基礎上提出了一種利用圖像內各目標間的邊界信息來有效地正則化暗通道圖,從而實現最終的去霧目的。雖然他們取得了較好的去霧效果,卻易引起輕微的顏色失真,且計算相當復雜。為了克服上述算法的不足,針對單一圖像去霧,本文作了以下工作:
(1)利用在有霧圖像的亮度成分中進行“均值池化”的新思想進行“異質”大氣光估計。
(2)提出了利用“非線性”顏色衰減先驗模型來精確估計場景深度信息的算法。
(3)基于所估計的場景深度信息及“異質”大氣光估計,提出了一種去霧系統。
在過去幾年里,根據McCartney等提出的“勻質”大氣散射模型(homogeneous atmospheric scattering model,ASM),研究人員提出了各種各樣的先進算法。該模型表示如下
I(x)=J(x)t(x)+A(1-t(x))
(1)
t(x)=e-βd(x)
(2)
式(1)中等號右邊第一項是直接衰減項,用來描述場景輻射照度在介質中的衰減, 它隨場景深度呈指數衰減;第二項被稱為大氣光幕,用來描述場景成像中加入的大氣散射光, 它造成了場景的模糊和顏色的失真。I(x)是有霧圖像,J(x)是無霧圖像,x是場景中某個像素的二維坐標,A是“勻質”大氣光,t(x)是介質傳輸率,β是介質傳輸系數,它由介質密度決定。d(x)描敘場景中某一位置深度?!皠蛸|”大氣散射模型因為考慮了光的吸收及散射而被廣泛應用于圖像去霧中,但是由于它假設整個場景中的大氣光是勻質的而導致很多先進的算法去霧后的圖像較暗。因此,采用“勻質”大氣散射模型進行去霧的算法會導致圖像變暗。
Zhu等[13]首先提出了顏色衰減先驗模型(color attenuation prior,CAP)。他們觀察到,場景深度與HSV顏色空間中亮度和飽和度成分之間的差值有關。如圖1所示,隨著場景中霧的厚度增加,亮度和飽和度成分之差變大,反之亦然。

圖1 圖像中亮度和飽和度成分之間的差值
我們知道,霧的厚度和場景深度是正相關的。因此,他們對有霧圖像數據集做了大量的統計分析,最后假設場景深度與亮度和飽和度成分之差呈線性關系。基于上述假設,他們提出了一個線性模型來估計有霧圖像的場景深度,并通過基于合成有霧圖像數據集的訓練法獲得該線性模型參數。通過該方法,他們在一些場景中取得了很好的去霧效果。但是,當我們使用該線性模型進行去霧實驗時,發現該模型估計的場景深度出現了大量負值,尤其是比較靠近鏡頭并且幾乎不受霧影響的場景對象,這是不合理的。
在本節中,我們將通過估計異質大氣光A(x),用非線性模型精確計算場景深度d(x)和介質傳輸率t(x),最終得到去霧圖像J(x)。
為了解決基于勻質大氣光假設而得到的去霧圖像較暗的問題,我們假設A(x)在整個場景中是可變的。即大氣光是異質的或局部近似均勻的。由于大的場景對象對太陽光的遮擋,不同的場景對象具有不同的反射率或吸收率,場景中大氣光呈現異質。改進的異質大氣散射模型(ASM)公式如下
I(x)=J(x)t(x)+A(x)(1-t(x))
(3)
式(3)和式(1)的差別在于,式(3)中A(x)的值與位置x有關。為了準確估計異質大氣光A(x),我們利用了“均值池化”的思想。首先,對亮度成分進行均值池化以獲得較小的異質大氣光圖A″(x),并且這里用于池化的窗口大小是R×R。其次,利用雙立方插值法將較小的異質大氣光圖A″(x)放大到原始有霧圖像大小,以獲得過渡的異質大氣光圖A′(x)。最后,將大氣光圖A′(x)歸一化以調整最終獲得的異質大氣光圖A(x)的下限。算法1說明了獲得異質大氣光A(x)的整個流程。實驗結果如圖2所示,它表明,采用本文改進的異質大氣光估計A(x)的去霧圖像要優于勻質大氣光假設的去霧圖像,并且圖2(d)的異質大氣光的估計結果也更合理。

圖2 勻質和異質大氣光去霧對比
算法1:改進的異質大氣光估計
輸入:亮度V(x),歸一化參數ρ,窗口大小R
輸出:A(x)
初始化:ρ=0.7,R=100;
A″(x)=meanPooling(V(x));
A′(x)=bicubicInterpoloation(A″(x));
Min=min(A′(x));
Max=max(A′(x))
為了克服由Zhu等提出的線性模型的缺點并精確估計場景深度,我們提出了一個非線性顏色衰減先驗模型,它不僅可以解決出現許多負值的問題,而且還保持線性模型的一些優點。
(1)構造非線性模型
由于亮度和飽和度成分之間的差值可以近似地描述霧的厚度,我們可以建立一個非線性模型來估計場景深度,其表達式如下
(4)
式中:x表示有霧圖像中坐標位置,d(x)是場景深度,V(x)和S(x)分別表示亮度和飽和度。θ0,θ1,θ2,α是未知非線性參數,α參數非常重要,表示原始有霧圖像豐富的梯度信息,ε(x)是描述非線性模型隨機誤差的變量。
圖3可以對式(4)進行形象地解釋說明。圖3中橫軸表示亮度和飽和度成分之差,縱軸表示場景深度。在我們的非線性模型中,場景深度是不可能為負值的,而線性模型在區間a中卻出現了很多負值。非線性模型在區間b還可以很好地近似線性模型,并保持線性模型的一些優勢。除此之外,它也表明非線性模型可以很好地近似人類視覺系統的成像機制。我們使用均值為0,方差為σ2的高斯函數ε(x),ε(x)~N(0,σ2)。由高斯分布的性質我們得出

(5)
已知d(x)的分布,我們可以通過簡單有效的監督學習法獲得模型參數θ0,θ1,θ2,α。下面對該監督學習法進行詳細地闡述。

圖3 線性及非線性模型估計場景深度值對比
(2)合成有霧圖像訓練數據集
為了獲得精確的模型參數θ0,θ1,θ2,α。我們需要一個包括有霧圖像及其相應的場景深度標注信息的數據集。然而,現實中沒有能夠滿足我們要求的且已收集好的訓練數據集。因此我們利用“無霧”的圖像數據集合成了一個“有霧”的圖像數據集[14]。在得到合成的有霧圖像數據集過程中,我們首先從網上收集449張無霧圖像,然后分別在區間[0,1]和[0.80,0.95]上為每個無霧圖像隨機生成深度圖d(x)和大氣光圖A(x)。由于我們逐個像素地對模型進行訓練,所以我們不需要遵循以往的假設,即場景深度局部近似相同以生成場景深度圖d(x)或大氣光圖A(x)。
(3)訓練非線性CAP模型
我們已經在上文中描述了單個像素服從的場景深度分布規律,但是,我們需要考慮所有圖像中的像素。因此,我們構造了聯合條件分布函數
L=p(d(x1),…,d(xn)|x1,…xn,θ0,θ1,θ2,α,σ2)
(6)
式中:n表示像素的總量,d(xn)是第n個場景點的深度。L表示似然函數。在訓練期間,我們假設各像素的隨機誤差是彼此獨立的。然后我們可以推導出以下公式
(7)
將式(5)代入式(7),得到似然函數的具體形式

(8)
式中:dgi描述了場景深度標注信息(即隨機生成的場景深度標注信息),于是我們的目標轉換為尋找θ0,θ1,θ2,α的最優解來最大化似然函數L。為了簡單起見,我們將式(8)用一個簡單的形式表示

(9)
同時,我們避開直接求似然函數L的最大值,而是求其對數lnL的最大值。因此,該問題轉化為求式(10)的最大值
(10)
為了求解上述問題,我們首先計算lnL對的導數,并且讓它等于零
(11)
根據式(11)可以求得σ2的最大似然估計值
(12)
對于非線性參數θ0,θ1,θ2,α, 我們通過自適應SGD[15]算法估計它們的值。分別對θ0,θ1,θ2,α求導,得到下列各式
Ti=(dgi-di)*(1-di)*di
(13)
(14)
(15)
(16)
(17)
用于更新非線性參數的方程可以簡潔地表示為

(18)
算法2:非線性CAP模型的參數估計
輸入:亮度向量V(x),飽和度向量S(x)和場景深度向量d(x)
輸出:非線性參數θ0,θ1,θ2,α,σ
初始化:α=5,θ0=0,θ1=1,θ2=-1,Su=0,αSum=0,wsum=0,vSum=0,sSum=0,learnRate=0.002;
對于i∈[1,n]
temp=dgi-di;
temp1=θ0+θ1*V(xi)+θ2*S(xi);
Su=Su+temp2;

vSum=vSum+temp*(1-di)*di*α*V(xi);
sSum=sSum+temp*(1-di)*di*α*S(xi);
αSum=αSum+temp*(1-di)*di*temp1;
θ0=θ0+learnRate*wSum/n;
θ1=θ1+learnRate*vSum/n;
θ2=θ2+learnRate*sSum/n;
α=α+learnRate*αSum/n;
算法2呈現了學習非線性參數θ0,θ1,θ2,α和變量σ2的詳細過程。我們用449個樣本訓練該非線性模型,所有樣本總共包含2.1552億個場景點。模型終止訓練的準則是兩次連續迭代的均方誤差值(MSE)的差小于一個人為設定的迭代閾值。最后的模型訓練結果是α=4.99,θ0=-0.29,θ1=0.83,θ2=-0.16。有了這些參數估計值及前面建立的場景深度有d(x),亮度V(x)和飽和度S(x)之間的非線性關系,就可以精確計算出場景深度,從而實現單一圖像去霧。
已知估計的場景深度,我們可以很容易地通過式(2)計算場景介質傳輸率。然而,霧的厚度不僅由場景深度決定,而且還取決于介質密度。事實上,由于各種人為或自然因素,介質密度往往因場景而異。因此,不同場景的β值也不同。在我們的實驗中,發現它分布于區間[1.1,2.0]上。然而,當值較大時,將導致t(x)的某些值接近于零,這是不合理的,盡管其對于某些場景點去霧效果良好,但是容易導致對遠處場景點的不自然去霧效果,因此,我們限制t(x)值大于t0。
利用先前估計的場景介質傳輸t(x)和改進的異質大氣光A(x),我們可以求解式(3)得到去霧后的圖像J(x)的表達式。結果如下

(19)
至此,我們實現了最終的圖像去霧目的。
在合成的和自然的有霧圖像上,我們進行了廣泛的定性和定量比較實驗。以此驗證我們算法的有效性。
我們將所提出的算法與一些先進的算法進行比較,包括DCP[11],BCCR[12],CAP[13],其定性比較結果如圖4所示。從圖可知,對于第一行有霧航拍圖像,DCP,BCCR和CAP算法去霧后的圖像變得非常暗,而利用本文提出的異質大氣光A(x)的假設及相應算法得到的結果則非常明亮。此外,你會發現BCCR算法擅長處理遠處的霧霾場景,而對于較近的場景則去霧不徹底。CAP算法不能在整個場景中實現完全去霧的目的,我們的結果則不會出現該問題。將上述算法應用于第二行有霧的南瓜圖像得到了相同的結果。對于最后兩張有霧圖像,采用BCCR算法出現了顏色失真,而采用DCP和CAP算法仍然會出現亮度較暗和去霧不徹底現象??傊覀兊慕Y果可以克服所有這些算法的缺陷,并獲得預期的去霧效果。
為了驗證本文非線性模型精確估計場景深度的有效性,我們使用十對立體無霧圖像和他們相應的場景深度圖像來合成有霧圖像,然后采用我們的非線性模型和其它算法估計該合成的有霧圖像的場景深度圖。最后,我們計算真實場景深度圖和估計的深度圖之間的平均MSE。雖然這些算法中有的只能估計場景介質傳輸圖t(x),但由于在合成有霧圖像時,β值已知,故它們可以通過式(2)間接地估計場景深度圖。因此,對于所有算法來說,表1的對比結果是合理的。
在表1中,最好的結果用粗體表示。如表1所示,我們對于aloe,baby,cones,dolls等圖片的場景深度的估計效果是最好的,但是也有些圖片例外,諸如art,laundry,teddy圖片。在表1的最后一行中,我們計算了所有圖片的平均MSE。顯然,我們的結果是最好的,因為我們可以克服CAP算法的缺陷,即該算法在估計場景深度時出現了許多明顯不合理的負值(如圖3所示)。DCP算法結果相對來說最差,因為其對場景深度的不良估計導致去霧過度。

圖4 定性對比

方法DCPBCCRCAP本文方法aloe11.40951.40800.02130.0101art10.68880.93050.03110.0316baby11.21591.18020.03030.0239cones10.49250.92980.01210.0088dolls10.60030.92130.01360.0099Laundry10.53210.96240.01300.0173plastic9.70870.59330.02090.0135reindeer10.41820.97990.03560.0306teddy11.02141.04950.01520.0167TotalMSE10.72781.00540.02170.0176
本文提出了一種基于改進的異質大氣光估計和非線性顏色衰減先驗模型的有效的去霧算法。該算法不僅可以解決現有算法DCP、BCCR和CAP導致去霧后的圖像變暗的問題,而且還可以克服由線性顏色衰減先驗模型產生的許多場景深度估計值為負數的缺陷,并保留有霧圖像的豐富的梯度信息。實驗結果表明,我們所提出的算法可以獲得高質量的去霧圖像,其結果甚至比現有的方法更好。
[1]SUN Xiaoming,SUN Junxi,ZHAO Lirong,et al.Improved algorithm for single image haze removing using dark channel prior[J].Journal of Image and Graphics,2014,19(3):381-385(in Chinese).[孫小明,孫俊喜,趙立榮,等.暗原色先驗單幅圖像去霧改進算法[J].中國圖象圖形學報,2014,19(3):381-385.]
[2]WU Di,ZHU Qingsong.The latest research progress of image dehazing[J].Acta Automatica Sinica,2015,41(2):221-239(in Chinese).[吳迪,朱青松.圖像去霧的最新研究進展[J].自動化學報,2015,41(2):221-239.]
[3]Wang Yating,Feng Ziliang.Single image fast dehazing method based on dark channel prior[J].Journal of Computer Applications,2016,36(12):3406-3410.
[4]YANG Ting.Research on fog removal methods of multiple images[D].Dalian:Dalian Maritime University,2013:38-53(in Chinese).[楊婷.多幅圖像去霧算法研究[D].大連:大連海事大學,2013:38-53.]
[5]LIU Tongjun.Research of image dehazing based on multiple polarization images[J].Journal of Hunan University of Technology,2016,30(2):37-42(in Chinese).[劉同軍.基于多幅偏振圖像的去霧研究[J].湖南工業大學學報,2016,30(2):37-42.]
[6]Davis MA,Kazmi SMS,Dunn AK.Imaging depth and multiple scattering in laser speckle contrast imaging[J].Journal of Biomedical Optics,2014,19(8):086001.
[7]Xu Y,Guo X,Wang H,et al.Single image haze removal using light and dark channel prior[C]//IEEE International Conference on Communications in China.IEEE,2016:1-6.
[8]Ullah E,Nawaz R,Iqbal J.Single image haze removal using improved dark channel prior[C]//Proceedings of International Conference on Modelling,Identification & Control.IEEE,2013:245-248.
[9]Cheon M,Lee W,Yoon C,et al.Vision-based vehicle detection system with consideration of the detecting location[J].IEEE Transactions on Intelligent Transportation Systems,2012,13(3):1243-1252.
[10]Deb SK,Nathr RK.Vehicle detection based on videofor traffic surveillance on road[J].International Journal of Computer Science & Emerging Technologies,2012,3(4):121-137.
[11]Sun J,He K,Tang X.Single image haze removal using dark channel priors[P].U.S:8340461,2012-12-25.
[12]Meng G,Wang Y,Duan J,et al.Efficient image dehazing with boundary constraint and contextual regularization[C]//IEEE International Conference on Computer Vision.IEEE,2013:617-624.
[13]Zhu Q,Mai J,Shao L.A fast single image haze removal algorithm using color attenuation prior[J].IEEE Transactions on Image Processing,2015,24(11):3522-3533.
[14]Tang K,Yang J,Wang J.Investigating haze-relevant features in a learning framework for image dehazing[C]//IEEE Conference on Computer Vision and Pattern Recognition.IEEE,2014:2995-3002.
[15]He J,Zhang Y,Zhou Y,et al.Adaptive stochastic gradient descent on the Grassmannian for robust low-rank subspace recovery[J].IET Signal Processing,2016,10(8):1000-1008.