張國(guó)強(qiáng), 楊 燕, 李一菲
(蘭州交通大學(xué) 電子與信息工程學(xué)院,甘肅 蘭州 730070)
隨著我國(guó)工業(yè)化進(jìn)程的快速發(fā)展,其面臨的環(huán)境問(wèn)題日益突出,特別是近年來(lái)秋冬季節(jié)經(jīng)常出現(xiàn)的霧霾現(xiàn)象。在這種情況下,戶外監(jiān)控系統(tǒng)捕獲到的圖像細(xì)節(jié)信息不明顯,許多特征被覆蓋或顯示模糊,并且信息的可識(shí)性嚴(yán)重降低。同時(shí),色彩保真度降低,出現(xiàn)嚴(yán)重的色偏現(xiàn)象,這嚴(yán)重阻礙了戶外監(jiān)控系統(tǒng)獲取有用信息和捕獲目標(biāo)源位置的能力。因此,對(duì)于如何有效去除霧氣干擾的研究具有極其重要的實(shí)際意義和研究?jī)r(jià)值。
目前,針對(duì)單幅圖像去霧算法的研究已經(jīng)取得了一定的研究成果。這些不同的算法主要可以分為基于圖像增強(qiáng)的方法和基于物理模型的圖像復(fù)原方法。其中,基于圖像增強(qiáng)的方法不考慮圖像是因?yàn)楹畏N因素而發(fā)生退化,不能做到真正意義上的去霧,主要是使用數(shù)字圖像處理的方法對(duì)有霧圖像中需要增強(qiáng)的細(xì)節(jié)進(jìn)行增強(qiáng),并提高其對(duì)比度。這種方法在去除霧氣的同時(shí)會(huì)造成部分細(xì)節(jié)丟失,使部分復(fù)原的圖像失真;基于圖像復(fù)原的方法將大氣散射模型作為理論基礎(chǔ),通過(guò)反演假設(shè)或先驗(yàn)條件評(píng)估在模型中起到重要作用的未知參數(shù),然后將這些未知參數(shù)代入模型進(jìn)行求解,從而獲得清晰的無(wú)霧圖像,這種方法復(fù)原的圖像比較自然,可以滿足更多的場(chǎng)景需求。目前,基于物理模型復(fù)原算法已經(jīng)取得了顯著的成果。He等[1]通過(guò)對(duì)大量無(wú)霧圖像進(jìn)行統(tǒng)計(jì),提出暗通道先驗(yàn)算法進(jìn)行圖像去霧,但是該方法依然存在一定的不足,當(dāng)存在大片天空區(qū)域時(shí),暗通道先驗(yàn)假設(shè)不成立,同時(shí)由于最小值濾波的使用,導(dǎo)致塊狀效應(yīng)和景深突變的邊緣出現(xiàn)Halo現(xiàn)象,隨后He等[2]又提出引導(dǎo)濾波的算法進(jìn)行優(yōu)化,取得了一定效果,但是依然存在時(shí)間復(fù)雜度較高的問(wèn)題。Zhu等[3]通過(guò)顏色先驗(yàn)的方法,利用局部大氣光的思想獲取大氣光值,該方法可以準(zhǔn)確地估計(jì)大氣光值,但是由于兩次使用濾波的原因?qū)е聲r(shí)間復(fù)雜度較高。Meng等[4]提出一種邊界約束方法,該方法通過(guò)對(duì)邊界進(jìn)行相應(yīng)的約束,并通過(guò)迭代細(xì)化透射率,進(jìn)而復(fù)原無(wú)霧圖像,該算法雖然有效,但是對(duì)于濃霧圖像處理效果不佳。劉海波等[5]提出一種結(jié)合暗通道先驗(yàn)和Retinex理論的圖像去霧算法,該方法通過(guò)Retinex理論獲取反射分量,進(jìn)而復(fù)原出無(wú)霧圖像,但是該方法時(shí)間復(fù)雜度較高,在景深劇烈變化區(qū)域失效。楊燕等[6]通過(guò)光補(bǔ)償算法將沙塵圖像轉(zhuǎn)化為霧圖進(jìn)行處理,然后利用逐像素的方法得到透射率,該方法解決了塊狀效應(yīng)問(wèn)題,但是對(duì)于大氣光值的選取依然存在不準(zhǔn)確的問(wèn)題。Cai等[7]利用卷積神經(jīng)網(wǎng)絡(luò)的思想,通過(guò)訓(xùn)練優(yōu)化透射率進(jìn)而達(dá)到良好的去霧效果,但是由于訓(xùn)練集較少且模型不完善導(dǎo)致去霧效果不徹底。
通過(guò)對(duì)單幅圖像去霧算法進(jìn)行研究,本文以大氣散射模型為依據(jù),通過(guò)構(gòu)造霧濃度檢測(cè)函數(shù)獲取準(zhǔn)確的大氣光評(píng)估區(qū)域,然后對(duì)大氣散射模型進(jìn)行簡(jiǎn)化;其次,構(gòu)建局部大氣光遮罩,通過(guò)計(jì)算拉依達(dá)準(zhǔn)則下限值的策略獲取引導(dǎo)圖,然后利用引導(dǎo)濾波進(jìn)行區(qū)域平滑并保持邊緣特性,結(jié)合簡(jiǎn)化模型獲取場(chǎng)景反照率;最后,根據(jù)Land成像模型,得到復(fù)原的無(wú)霧圖像。實(shí)驗(yàn)結(jié)果表明,所提出的方法可以取得良好的去霧效果。
大氣散射模型廣泛如圖1所示,它被應(yīng)用于計(jì)算機(jī)視覺(jué)研究領(lǐng)域,可以用來(lái)描述霧成像過(guò)程,該模型可表示為
I(x)=J(x)t(x)+A(1-t(x))
(1)
式中,J(x)t(x)為直接衰減模型;A(1-t(x))為環(huán)境光成分,為環(huán)境光增強(qiáng)項(xiàng)。
圖1 大氣散射模型
根據(jù)Land成像模型[5]可知,一幅有霧圖像可以由全局大氣光和場(chǎng)景反照率兩者之間的乘積得到,具體的表達(dá)式為
J(x)=Aρ(x)
(2)
將式(2)代入到式(1)中可得:
I(x)=Aρ(x)t(x)+A(1-t(x))
(3)
式中,I(x)為有霧圖像;J(x)為待復(fù)原的清晰無(wú)霧圖像;t(x)為介質(zhì)傳輸率,即透射率;A為全局大氣光值的強(qiáng)度;ρ(x)為場(chǎng)景反照率。
式(3)中,透射率t(x)的表達(dá)式為
t(x)=e-βd(x), 0≤t(x)≤1
(4)
式中,β為大氣散射系數(shù),假設(shè)霧均勻分布,此時(shí)β近似為常數(shù);d(x)為成像設(shè)備到場(chǎng)景點(diǎn)支架的距離,即場(chǎng)景深度。
He等[1]通過(guò)對(duì)大量無(wú)霧圖像進(jìn)行統(tǒng)計(jì)發(fā)現(xiàn),對(duì)于晴天天氣條件下的無(wú)霧圖像,可將其分解成若干個(gè)局部區(qū)域,在每個(gè)局部區(qū)域內(nèi)至少在一個(gè)顏色通道中存在灰度值很小的像素點(diǎn),并且其中大多數(shù)強(qiáng)度值趨于0,從而提出暗通道圖像中各像素點(diǎn)的值可以通過(guò)式(5)獲得。
(5)
針對(duì)霧天條件下圖像降質(zhì)的問(wèn)題,提出一種基于構(gòu)造簡(jiǎn)化模型和局部大氣光遮罩的單幅圖像去霧算法,本文算法流程圖如圖2所示,主要分為3步:① 構(gòu)造霧濃度檢測(cè)函數(shù),檢測(cè)出準(zhǔn)確的大氣光值選取區(qū)域;② 對(duì)大氣散射模型進(jìn)行簡(jiǎn)化,并設(shè)計(jì)局部大氣光遮罩估計(jì)算法,通過(guò)計(jì)算拉依達(dá)準(zhǔn)則下限值的策略獲取引導(dǎo)圖,然后利用引導(dǎo)濾波算法進(jìn)行區(qū)域平滑并保持邊緣特性,接著結(jié)合簡(jiǎn)化模型獲取場(chǎng)景反照率;③ 根據(jù)Land成像模型得到復(fù)原的無(wú)霧圖像。
圖2 本文算法流程圖
大氣光估計(jì)值的準(zhǔn)確性直接影響最終的復(fù)原效果,大氣光值的選取大于其真實(shí)值會(huì)導(dǎo)致復(fù)原的圖像整體偏暗,大氣光的取值小于其真實(shí)值會(huì)導(dǎo)致復(fù)原的圖像整體偏亮,從而丟失部分細(xì)節(jié)。目前的圖像去霧算法研究中,對(duì)于大氣光值選取方面的研究不是很多。
He等[1]通過(guò)選取暗通道圖像中前0.1%的高亮像素點(diǎn)對(duì)應(yīng)的有霧圖像的最大值作為大氣光值,該方法容易受到白色物體和強(qiáng)光源的影響導(dǎo)致選取的大氣光值偏大;Sulami等[8]通過(guò)對(duì)大氣光矢量的方向進(jìn)行判斷,自動(dòng)獲取大氣光值,該方法在矢量方向判斷不準(zhǔn)確時(shí)會(huì)導(dǎo)致大氣光值的選取出現(xiàn)偏差。大氣光值的選取區(qū)域一般定義為霧最不透明區(qū)域,本文提出一種霧濃度檢測(cè)函數(shù),利用該函數(shù)選取準(zhǔn)確的大氣光值選取區(qū)域,從而提高大氣光值的準(zhǔn)確性,減少大氣光值估計(jì)偏差給復(fù)原圖像帶來(lái)的影響。
首先,結(jié)合HSV顏色通道的相關(guān)特點(diǎn),通過(guò)式(6)構(gòu)造霧濃度檢測(cè)函數(shù):
d(x)=‖Ihsv(x)-B‖
(6)
式中,B為HSV顏色通道中像素值最高的像素點(diǎn)。通過(guò)分析可知,d(x)的取值越小,則表示該點(diǎn)的霧濃度越大,反之亦然。同時(shí)考慮到白色物體對(duì)檢測(cè)區(qū)域的影響,通過(guò)對(duì)式(6)進(jìn)行最小最大操作,可獲得如下表達(dá)式:
(7)
通過(guò)上述操作可以使局部平滑,同時(shí)消除紋理效應(yīng)的影響。最小最大操作可以通過(guò)形態(tài)學(xué)開(kāi)操作來(lái)代替實(shí)現(xiàn),即:
(8)
為了確保大氣光值選取區(qū)域的準(zhǔn)確性,通過(guò)大量測(cè)試實(shí)驗(yàn)設(shè)定閾值范圍τ∈[0.2,0.3],可準(zhǔn)確地檢測(cè)出霧最不透明區(qū)域。在d(x)∈τ的區(qū)域選取0.1%像素的均值作為全局大氣光值A(chǔ)。
對(duì)于大氣光值的選取,A的取值不會(huì)小于有霧圖像對(duì)應(yīng)的灰度均值圖像。因此,可以進(jìn)一步約束大氣光值的選取。
(9)
式中,Igray為原始有霧圖像所對(duì)應(yīng)的灰度圖像;W和H分別為圖像的寬和高。通過(guò)該方法得到的大氣光值可以消除白色物體和強(qiáng)光源的影響,提高其魯棒性。
本文通過(guò)白平衡處理,即通過(guò)對(duì)原始有霧圖像除以大氣光值A(chǔ)[5],將大氣光照度的顏色分量校正到灰度軸方向,利用R,G,B顏色分量的最大值來(lái)估計(jì)光照顏色。結(jié)合式(1)和式(2)可以得到:
(10)
考慮到圖像中的高亮度像素強(qiáng)度大于大氣光A,則產(chǎn)生I(x)/A>1, 本文將白平衡校正的圖像I(x)/A限制在[0, 1]范圍內(nèi),用I′(x)進(jìn)行表示,采用下式約束:
(11)
局部大氣光遮罩定義為
V(x)=1-t(x)
(12)
因此,大氣散射模型簡(jiǎn)化為
I′(x)=ρ(x)t(x)+V(x)
(13)
根據(jù)上述分析,通過(guò)式(13)可以得出,此時(shí)的大氣光被固定為常數(shù),即大氣光的取值為[1,1,1]T,通過(guò)該操作不僅簡(jiǎn)化了模型,而且減少了時(shí)間復(fù)雜度,提高了準(zhǔn)確性。
由于暗通道先驗(yàn)算法使用了最小值濾波操作,這使得到的透射率出現(xiàn)塊狀效應(yīng)、邊緣信息估計(jì)不準(zhǔn)確等問(wèn)題。若采用Soft Matting算法進(jìn)行優(yōu)化,其時(shí)間和空間復(fù)雜度過(guò)高,運(yùn)算時(shí)間長(zhǎng),不能應(yīng)用于實(shí)時(shí)處理。盡管He等[2]又提出引導(dǎo)濾波算法對(duì)初始透射率進(jìn)行優(yōu)化,雖然可以在降低時(shí)間復(fù)雜度的同時(shí)具有良好的邊緣保持特性,但是在景深突變的邊緣會(huì)出現(xiàn)遺留少量殘霧的現(xiàn)象。本文結(jié)合簡(jiǎn)化后的大氣散射模型,通過(guò)構(gòu)造局部大氣光遮罩的方法來(lái)達(dá)到圖像去霧的目的。
2.3.1 粗估計(jì)
根據(jù)暗通道先驗(yàn)原理和Land成像模型可知,在RGB三個(gè)顏色通道中,至少存在一個(gè)通道的反射率趨近于0,因此可以得到式(2)中ρ(x)→0,結(jié)合式(13)可以得出:
假設(shè)滿足ρ(x)→0,再根據(jù)暗通道先驗(yàn)理論,局部大氣光遮罩可以粗略地從式(14)獲得:
(14)
但是ρ(x)→0不能滿足每個(gè)像素點(diǎn),因此采用形態(tài)學(xué)操作的策略來(lái)腐蝕掉局部灰度級(jí)過(guò)高的像素。本文算法過(guò)程圖如圖3所示。粗局部大氣光遮罩如圖3(b)所示。可以看出,所得到的粗局部大氣光遮罩邊緣細(xì)節(jié)模糊,邊緣信息嚴(yán)重丟失。而在物體景深突變的邊緣會(huì)出現(xiàn)Halo效應(yīng),因此需要保持景深突變的邊緣細(xì)節(jié)。
圖3 效果過(guò)程圖
2.3.2 基于引導(dǎo)濾波細(xì)化
由于大氣光遮罩僅是關(guān)于景深的函數(shù),對(duì)局部大氣光遮罩進(jìn)行區(qū)域平滑操作,這可以看作一個(gè)濾波問(wèn)題。文獻(xiàn)[1]中使用原有霧圖像作為引導(dǎo)圖,造成恢復(fù)圖像近景去霧不徹底,并且明亮區(qū)域色彩失真。文獻(xiàn)[9]選取最小值圖像的局部最大值作為引導(dǎo)圖,這種方法依然存在遠(yuǎn)景區(qū)域去霧不徹底的現(xiàn)象,并且在景深突變處出現(xiàn)Halo效應(yīng)。通過(guò)上述兩種方法得到的引導(dǎo)圖,其邊緣細(xì)節(jié)部分細(xì)節(jié)丟失,無(wú)法保留景深特性,使得復(fù)原的圖像無(wú)法保留引導(dǎo)圖的變化細(xì)節(jié),這是造成景深處去霧不徹底的主要原因之一。
本文對(duì)引導(dǎo)圖進(jìn)行深度濾波處理,首先用高斯分布對(duì)I′(x)做預(yù)處理,這樣局部區(qū)域內(nèi)所有像素都服從高斯分布,得到預(yù)處理后的最小值圖像V(x),然后計(jì)算得到局部區(qū)域的拉依達(dá)準(zhǔn)則下限值,該準(zhǔn)則是一種判斷誤差的方法,判斷式為
|x-μ|>3σ
式中,μ,σ為局部均值和方差。本文用測(cè)量值x的下限值μ-3σ得到引導(dǎo)圖G(x)。對(duì)V(x)進(jìn)行雙邊濾波得到局部均值圖μ(x):
μ(x)=FBF(V(x))
(15)
對(duì)最小值圖像和局部均值圖像差值的絕對(duì)值再次進(jìn)行雙邊濾波操作就可以得到其對(duì)應(yīng)的標(biāo)準(zhǔn)差:
σ(x)=med((V(x)-μ(x))2)
(16)
利用雙邊濾波可以保持圖像平滑,保留圖像邊緣特征,但雙邊濾波只能較好地濾除低頻成分,對(duì)最小值圖像與局部均值進(jìn)行差值操作后,會(huì)在局部區(qū)域內(nèi)產(chǎn)生脈沖噪聲,而中值濾波可以用來(lái)消除脈沖噪聲。所以對(duì)標(biāo)準(zhǔn)差求解選取中值濾波。采用雙邊濾波和中值濾波計(jì)算局部均值和方差,既能保持圖像平滑,又能保持邊緣特征,因此可以得到引導(dǎo)圖:
G(x)=μ(x)-3σ(x)
(17)
式(15)~式(17)中,μ(x)和σ(x)為使用快速雙邊濾波計(jì)算的均值和方差;G(x)為引導(dǎo)圖;FBF(*)表示快速雙邊濾波處理。
引導(dǎo)濾波[2]可以克服雙邊濾波產(chǎn)生梯度反轉(zhuǎn)的弊端,具有良好的局部平滑和保持邊緣的特性。在引導(dǎo)圖G(x)的引導(dǎo)下使輸出的圖像與輸入的圖像差異最小化,以G(x)為引導(dǎo)圖濾除V(x)中的紋理細(xì)節(jié),剔除區(qū)域內(nèi)的異常值,保證有效像素的使用。通過(guò)以上操作,可以保留輸入圖像的總體特征,結(jié)合引導(dǎo)圖的變化細(xì)節(jié),可以得到邊緣保持良好且局部平滑的局部大氣光遮罩,從而有效抑制了恢復(fù)結(jié)果中由于景深邊緣突變而引入的Halo效應(yīng),即
Vdc(x)=guidefilter(G(x),V(x))
(18)
式中,Vdc(x)為對(duì)V(x)引導(dǎo)濾波后得到的局部大氣光遮罩,而且由于引導(dǎo)圖G(x)是灰度圖像,故可以降低算法復(fù)雜度并提高運(yùn)算速度。
從上述分析中已經(jīng)獲取了局部大氣光遮罩Vdc(x),通過(guò)式(12)~式(14)和式(18)就可以得到場(chǎng)景反照率ρ(x),可以看出恢復(fù)的場(chǎng)景反照率細(xì)節(jié)明顯。然后結(jié)合Land成像模型,復(fù)原出無(wú)霧圖像J(x)。復(fù)原效果圖如圖4所示。具體的數(shù)學(xué)表達(dá)式為
(19)
圖4 恢復(fù)過(guò)程效果圖
本文算法是在Windows 10操作系統(tǒng)下的Matlab R2014a上運(yùn)行,硬件配置環(huán)境為Intel?CoreTMi5-6300HQ CPU@2.30 GHz,8.0 GB RAM。為了驗(yàn)證本文所提出的算法的性能,與近幾年具有代表性的經(jīng)典方法進(jìn)行比較,并分別從視覺(jué)效果(主觀評(píng)價(jià))和客觀評(píng)價(jià)兩個(gè)方面進(jìn)行對(duì)比驗(yàn)證。
視覺(jué)效果分析以人的感性認(rèn)知為基礎(chǔ),通過(guò)對(duì)去霧效果的主觀分析可以快速看出復(fù)原圖像效果的優(yōu)勢(shì)與不足,但是主觀分析往往具有一定的片面性。本文選取文獻(xiàn)[1]He等的暗通道先驗(yàn)算法、文獻(xiàn)[9]算法,文獻(xiàn)[10]算法進(jìn)行對(duì)比。圖5給出了相應(yīng)的實(shí)驗(yàn)結(jié)果。圖5(b)為暗通道先驗(yàn)去霧效果,該算法復(fù)原的圖像在景深突變的邊緣存在遺留殘霧的現(xiàn)象,并且圖像明顯偏暗,這主要是大氣光值選取的誤差導(dǎo)致的,其次部分遠(yuǎn)景細(xì)節(jié)丟失,如圖5(b)中的紅色框所示。圖5(c)為文獻(xiàn)[9]算法的去霧效果,遠(yuǎn)景存在大量殘霧現(xiàn)象,如圖5(c)中的紅色框所示,這主要是由于引導(dǎo)圖選取不當(dāng)引起的。另外,前面兩種算法復(fù)原出來(lái)的無(wú)霧圖像亮度不足,效果偏暗,這主要是由于大氣光值的估計(jì)大于其真實(shí)值引起的。圖5(d)為文獻(xiàn)[10]算法的去霧效果,基本上去除了霧氣的干擾,但是在部分圖像中出現(xiàn)過(guò)飽和、顏色失真的現(xiàn)象,這主要是兩次使用形態(tài)學(xué)操作引起的,如圖5(d)中的紅色框所示。本文方法復(fù)原的圖像結(jié)果如圖5(e)所示,本文所提出的算法恢復(fù)的圖像細(xì)節(jié)明顯增多、對(duì)比度高、亮度適宜,相比較于暗通道先驗(yàn)去霧算法,所提出的算法復(fù)原的圖像細(xì)節(jié)多,尤其在遠(yuǎn)景區(qū)域。相比較于文獻(xiàn)[1]、文獻(xiàn)[9]方法,本文方法具有更好的色彩保真度性能,可以有效地除掉霧氣的干擾,并且圖像明亮度適宜。相比文獻(xiàn)[10]方法,本文實(shí)現(xiàn)效果在對(duì)比度和恢復(fù)細(xì)節(jié)上都有一定的優(yōu)勢(shì)。綜上所述,本文方法在視覺(jué)效果上取得了一定的成果。
圖5 實(shí)驗(yàn)效果對(duì)比
(20)
(21)
(22)
式中,nr和n0分別為無(wú)霧圖像和有霧圖像中可見(jiàn)邊數(shù)目的集合;ri為Pi處無(wú)霧圖像和有霧圖像的平均梯度比;r為無(wú)霧圖像的可見(jiàn)邊集合;ns為復(fù)原圖像的飽和像素點(diǎn)數(shù);W和H分別為原始有霧圖像的寬和高。實(shí)驗(yàn)對(duì)比數(shù)據(jù)如表1所示。
表1 客觀評(píng)價(jià)(實(shí)驗(yàn)圖像為圖5(a)圖像,依次從左到右)
從表1的客觀評(píng)價(jià)數(shù)據(jù)中可以看到,文獻(xiàn)[9]方法復(fù)原的圖像出現(xiàn)負(fù)值,本文算法在可見(jiàn)邊上相對(duì)于文獻(xiàn)[1]、文獻(xiàn)[9]、文獻(xiàn)[10]有相對(duì)的優(yōu)勢(shì);對(duì)于歸一化平均梯度值,本文算法相比較文獻(xiàn)[1]、文獻(xiàn)[9]有一定優(yōu)勢(shì),但是對(duì)于文獻(xiàn)[10]來(lái)說(shuō),本文算法對(duì)于圖3、圖4略顯不足;對(duì)于飽和像素點(diǎn),本文算法相比較于文獻(xiàn)[1]、文獻(xiàn)[9]有一定的優(yōu)勢(shì),但是相對(duì)于文獻(xiàn)[10]存在一定的不足,這主要是因?yàn)樾螒B(tài)學(xué)的使用,導(dǎo)致對(duì)霧濃度估計(jì)過(guò)高,從而出現(xiàn)顏色飽和、平均梯度減小的問(wèn)題,但是在可接受的范圍之內(nèi)。綜合考慮,本文算法具有一定的優(yōu)勢(shì)。
針對(duì)霧天環(huán)境下捕獲的圖像嚴(yán)重降質(zhì)的問(wèn)題,本文提出一種基于構(gòu)造簡(jiǎn)化大氣散射模型和局部大氣光遮罩的去霧算法。該算法首先通過(guò)構(gòu)造霧濃度檢測(cè)函數(shù),檢測(cè)出準(zhǔn)確的大氣光選取區(qū)域;然后,利用簡(jiǎn)化大氣散射模型的思想,構(gòu)造局部大氣光遮罩估計(jì)算法;最后,結(jié)合大氣散射模型復(fù)原出場(chǎng)景反照率,進(jìn)而根據(jù)Land成像模型復(fù)原出清晰的無(wú)霧圖像。從主觀評(píng)價(jià)和客觀評(píng)價(jià)兩個(gè)方面對(duì)該算法的可行性進(jìn)行了驗(yàn)證,表明該算法具有一定的優(yōu)勢(shì)。