仲會娟,廖一鵬
(1.河北工程技術學院 網絡與通信學院,河北 石家莊 050091;2.陽光學院 人工智能學院,福建 福州 350015;3.福州大學 物理與信息工程學院,福建 福州 350108)
隨著通信技術、計算機技術、網絡技術的日新月異,圖像處理技術的應用已經無處不在,如移動通信、自動駕駛、遙感遙測、醫療領域等。高質量的清晰圖像有利于圖像的后續研究,如圖像分割、特征提取、圖像分類與識別、目標跟蹤與檢測等。但是,在霧霾、大霧、雨天等天氣條件下,獲取的圖像會出現顏色失真、對比度低、圖像退化等問題,嚴重時會導致計算機視覺系統失靈。因此,圖像去霧算法成為圖像處理和機器視覺領域中學者和專家們關注和研究的熱點。
當前,國內外主流的圖像去霧方法包括兩種:一種是基于圖像增強的圖像去霧算法,另一種是基于大氣散射模型的圖像去霧算法。其中,圖像增強算法可以抑制圖像中無用信息,增強有用信息,達到圖像去霧的目的,如直方圖均衡化[1-2]、Retinex去霧[3-6]和同態濾波[7]等。此類方法未考慮圖像退化的原因,因此去霧后會丟失大量圖像細節[8]。圖像復原方法首先建立圖像退化數學模型,并據此進行逆變換獲取無霧圖像,此類方法從圖像降質的本質出發,去霧后不易產生信息丟失,處理結果更加逼近清晰圖像[5]。文獻[9]對眾多戶外清晰圖像進行統計分析,由此總結得到了暗通道先驗原理,同時聯合大氣散射物理模型設計出簡單高效的單一圖像去霧算法,但去霧后明亮區域存在失真現象。文獻[10]通過容差策略可以有效抑制圖像中明亮區域的失真問題,但其他區域會出現誤補償問題。文獻[11]引入引導濾波算法來解決處理結果中細節缺失的問題,同時提高了算法效率,但處理結果中的明亮區域仍存在失真現象。文獻[12]首先識別有霧圖像中的天空區域,并對其透射率進行修正,但處理效率低下,且存在天空區域誤識別的問題。文獻[13]引入混合暗通道來克服處理結果中明亮區域暗通道原理失效的問題。
針對以上問題,本文將傳統暗通道去霧算法進行改進,并結合自適應容差策略實現圖像去霧。首先,根據圖像尺寸得到3種最小值濾波窗口尺寸r1、r2、r3,利用3種不同尺寸的最小值濾波器分別計算暗通道圖和透射率估計。接著,對3種不同濾波器尺寸下的透射率估計展開有效融合,得到多尺度透射率圖。引導濾波器使得處理后圖像與引導圖像的邊緣保持一致,有效增強透射率估計的邊緣、紋理等細節信息。自適應容差策略可以依據有霧圖像中明亮區域的尺寸獲得相應的容差參數,補償明亮區域的透射率估計,有效抑制了明亮區域處理后存在失真的問題。最后,對上述處理結果的亮度和對比度分別進行補償完成圖像去霧。
大氣散射物理模型用來刻畫有霧圖像的形成過程和原理,被廣泛應用于圖像去霧領域[14-15],具體表示為:

其中,I(x)是實際有霧圖像;A是大氣光值;J(x)是待復原的無霧圖像;t(x)是透射率,表示光線從對象傳到觀察者期間未被散射的成分。公式(1)中,J(x)t(x)是直接衰減項,表示光線在傳輸期間的輻射或衰減分量;A(1-t(x))稱為大氣光成像,由大氣散射現象引起,易造成圖像顏色偏差。
由大氣散射物理模型可以看出,圖像去霧的本質是根據獲取的有霧圖像及強有力的先驗知識,準確估計A和t(x),進而獲得復原效果較好的J(x)。
暗通道先驗原理認為無霧圖像(不包含明亮區域)的大多數局部區域中,最少會有一個顏色通道的亮度趨向于零[9]。其數學表述為:


文獻[9]中,He等人假設單幅圖像的A值是確定常量,在Ω(x)鄰域內的透射率t(x)也是常數,記為(x)。在A已知的情況下,先后計算公式(1)等號兩邊中RGB三通道的最小值和局部最小值,變形后獲得透射率粗估計:

實際生活中,即便是陽光明媚的午后,大氣里仍然會不可避免地夾雜一些雜質。同時,霧是人體獲取圖像景深的要素,所以在式(4)中添加約束參數θ,控制去霧程度,去霧同時留有少許覆蓋在遠景的微量霧氣,讓處理復原圖像更加真實,具體表述為:

其中,透射率約束參數θ取值范圍為(0,1)。將式(5)直接代入式(1)實現圖像去霧。在式(5)中,當t(x)取值逼近0時,去霧圖像整體白場過度,幾乎為噪聲,因此設置透射率最小值t0,要求透射率值不小于t0,一般取0.1,透射率表達式修正為:

用式(6)計算得到的透射率估計,其中有較為明顯的塊效應,容易引起復原圖像邊緣模糊。因此,He等利用軟摳圖[16]、引導濾波[11]對式(5)中的透射率圖進行細化,得到了更好的去霧圖像。
暗通道原理中最小值濾波窗口尺寸的選取對去霧效果有重要影響,文獻[9]首先對輸入圖像進行尺寸歸一化處理,然后采用固定尺寸的濾波窗口獲得透射率估計。在實際圖像處理技術的應用中,不同系統對輸入圖像的大小要求往往不同,且變換范圍較大。若濾波窗口尺寸設置太大,則鄰域內有暗通道的幾率更大。然而在圖像的景深突變區估計的透射率有明顯的塊效應,易引起復原圖像中白邊缺陷。若濾波窗口尺寸設置太小,則在該鄰域內出現暗通道的幾率很小,造成去霧圖像中出現明顯的色彩偏移。在天空、白云等圖像中明亮區域,像素點各顏色通道強度都很大,因此暗通道原理失效,導致所得透射率偏小,去霧圖像出現明顯失真現象。
在暗通道原理中引入軟摳圖機制,雖然實現了透射率的優化處理,有效避免了復原圖像的白邊缺陷,但算法運算量和復雜度迅速增大,算法效率無法保證。結合引導濾波來細化透射率圖,雖然對原始傳輸圖進行保邊平滑,但固定的正則化參數會造成復原圖像產生光暈效應。
本文提出了一種改進的多尺度暗通道去霧算法,并結合引導濾波和自適應容差策略,實現了更為高效的圖像去霧。首先,根據輸入圖像尺寸選取3種不同大小的濾波窗口,計算得到3種不同尺度的透射率粗估計,并進行線性擬合得到多尺度透射率粗估計;然后,采用引導濾波處理多尺度透射率粗估計,計算輸出細化后的多尺度透射率估計;最后,引入自適應容差策略來修正明亮區域的多尺度透射率估計。
在傳統的暗通道去霧算法中,最小值濾波窗口尺寸單一,而濾波窗口的大小與去霧圖像的質量緊密相關。本設計根據輸入圖像尺寸計算得到3種不同的濾波窗口尺寸,并分別計算相應的透射率估計。本文采用線性擬合方法,計算得到多尺度透射率估計。本文選取的3種窗口尺寸分別為:

式中,H和W分別為圖像的高度和寬度。在3種不同窗口尺寸下,由式(2)分別計算其對應暗通道圖。然后,分別帶入式(5)計算3種不同窗口下的透射率t1(x)、t2(x)和t3(x)。根據式(8)展開線性擬合獲得多尺度透射率粗估計t(x),具體表述為:

其中,ω為調節因子,設計中選取ω1=ω2=ω3=13。透射率結果如圖1所示。

圖1 不同濾波窗口下的透射率估計Fig.1 Transmittance estimation under different filter windows
由圖1實驗結果可知,圖1(b)中濾波窗口尺寸過大,透射率估計存在塊效應;圖1(a)中濾波窗口尺寸過小,造成透射率估計整體色調偏暗,多尺度融合可以有效避免以上問題,同時圖1(c)中為固定尺寸的濾波窗口,保證了透射率圖的整體有效性。
文獻[9]在暗通道圖內獲取強度最大的0.1%像素,并在原圖像對應像素點上挑選亮度最大的像素值就是大氣光值A。本文以此為基礎,分別計算Jdark1(x)、Jdark2(x)、Jdark3(x)的大氣光值A1、A2和A3,并以其均值作為本文算法的大氣光值A。
多尺度透射率與單一窗口透射率相比,其穩健性得到較大改善,然而多尺度透射率圖的邊緣細節有著明顯不足。引導濾波在平滑圖像的同時可以有效保持圖像邊緣細節,且計算速度快,因此采用引導濾波對多尺度透射率進一步細化。引導濾波的核心是局部線性關系假設模型:

式中,q與I的梯度呈線性關系,其中I是引導圖像,q是濾波輸出圖像,ωk是以像素k為中心r為半徑的方形窗口,ak和bk是方形窗口下的線性系數,通常該系數由最小代價函數E(ak,bk)獲得:

式中,ε為正則化參數,可以防止線性系數ak過大。利用線性回歸求解代價函數,可以得到線性系數:

其中,uk和σ2k分別為引導圖I在窗口ωk中的均值和方差,|ω|是窗口ωk的像素數目,pˉk是在方形窗口內輸入圖像p的均值。因為每個像素點i都會出現在具有不同中心點的不同窗口內,而每個窗口對應的ak和bk不同,因此將所有與像素點i相關的線性系數進行算術平均,得到引導濾波的最終結果,具體表示為

算法中,將原圖的灰度化處理結果作為引導圖I,多尺度透射率圖的引導濾波處理結果如圖2所示。

圖2 引導濾波前后的透射率圖Fig.2 Transmittance maps before and after guided filtering
在圖像的明亮區域中暗通道原理不適用,因此本文采用自適應容差策略對明亮區域的透射率做出補償,且容差參數隨著圖像中天空區域的大小自適應地調整,而其他區域則保持原透射率不變[17]。因此,該算法既可以對復原圖像中明亮區域的透射率進行補償,又保證了非明亮區域的透射率不被誤補償或過補償,較好地克服了去霧圖像中明亮區域失真問題,獲得處理效果更好的復原圖像。
首先,定義容差調節圖Mapc(x)如下:

式中,Ic(x)是實際有霧圖像的一個顏色通道;對應圖像的明亮區域;α與像素被判定為明亮區域的概率有關,稱為調節因子,當α=1時像素被判為明亮區域的概率最小;α=0時原圖本身被認為是明亮區域,本文設置α=0.95。
定義容差參數K為:

式中,Scnum是Sclight中不為0的元素數目,即被判定為明亮區域的像素總數,Ic(x)num是輸入圖像的像素總數。K選取過大易造成非天空區域被誤判為天空區域,使得透射率不準確,因此為K設定上限值,避免非天空區域的透射率被誤補償。經過多次實驗本文設置容差參數的上限值為0.3。
透射率補償機制為:

式中,tnext(x)是輸出的修正透射率,將滿足|IA|<K的部分判定為圖像中明亮區域,并對此區域透射率進行修正;反之透射率保持不變。
有霧情況下,光線被大氣中的顆粒物吸收和散射,使得有霧圖像中像素點亮度相較晴朗天氣中更大,造成復原圖像的整體亮度偏暗,所以,需要對上述結果做出色彩補償。本設計在Hue、Saturation、Value(HSV)模型中,通過調整S和V分量,實現去霧圖像的顏色補償。
為說明算法的有效性,將本文算法與經典算法應用于多種圖像的仿真實驗,從主觀和客觀兩個維度展開論述。本文仿真實驗的軟件環境為64位Matlab R2018b,運 行CPU是Inter(R)Core(TM)i5-7300HQ@2.50 GHz,內存為8G,顯卡為4G。
透射率約束參數θ用來控制圖像去霧程度,θ數值越小表示保留的霧氣越多。為了使復原圖像更加真實,一般只需留有少量遠景霧分量,通常設置θ=0.95[9]。ω為多尺度融合調節因子,取值大小反映了不同尺度窗口對透射率圖的影響程度,值越大說明該尺寸下的透射率圖對多尺度透射率的貢獻越大,本文選取ω1=ω2=ω3=13。引導濾波窗口半徑r與有霧圖像尺寸有關,本文選取r=4(r1+r2+r3)/3。正則化參數ε是一個微小的值[12],一般在(0,0.01]范圍內濾波效果較好,本文設置ε=10-6。
在保持其他網絡參數不變的情況下,分別采用多尺度透射率與8×8單一尺寸透射率實施圖像去霧實驗,透射率估計如圖3(a)所示,復原圖像如圖4(b)所示。對引入自適應容差機制實施透射率補償和無透射率補償進行圖像去霧實驗,無補償透射率估計和復原圖像如圖3(b)、圖4(c)所示,本文算法的透射率估計和去霧結果如圖3(c)和圖4(d)所示。

圖3 不同算法的透射率估計Fig.3 Transmittance estimation for different algorithms

圖4 不同算法的去霧圖像Fig.4 Defogged images with different algorithms
以上結果表明,在引入多尺度透射率后,透射率估計更加細致,復原圖像中色彩更加真實,細節更加清晰。在引入自適應容差透射率修復機制后,降低了天空等明亮區域的透射率偏差問題,避免了復原圖像中天空區域失真問題,復原圖像的視覺效果更好。
將本文所提去霧算法與多尺度暗通道去霧算法(算法1)、文獻[9]和文獻[11]算法分別應用于相同帶霧圖像進行仿真實驗。其中,算法1對比本文算法未引入自適應容差機制,其他網絡參數設置相同。分別對沒有天空區域的圖像圖5(a1)、有少量天空區域的圖像圖5(a2)、有較多天空區域的圖像5(a3)和有大量天空區域的圖像5(a4)進行仿真驗證,實驗結果如圖5所示。對包含大量天空區域的廣州塔圖像圖6(a1)和CCTV大樓圖像圖6(a2)進行去霧實驗,實驗結果如圖6所示。


圖5 不同場景下去霧效果Fig.5 Defogged images in different scenes

圖6 大量天空區域場景下不同算法的去霧效果Fig.6 Defogged images of different algorithms in scenes with a large number of sky
實驗結果表明,以上算法在一定程度上都實現了圖像去霧復原,但去霧效果不同。文獻[9]算法處理結果中白邊缺陷明顯;文獻[11]算法處理結果中天空處通常會有失真問題;算法1和本文算法沒有出現失真,但相較于其他算法,本文算法在景深突變部分過渡更加自然,色彩更加真實,復原質量更高。
本文采用信息熵、峰值信噪比(Peak Signal to Noise Ratio,PSNR)、平均梯度、結構相似性指數(Structural Similarity Index,SSIM)和處理時間多種指標論證算法有效性。其中,信息熵說明了圖像具有的信息量,越大表示處理結果中有用信息越多,復原質量越優秀[18];平均梯度說明了圖像的細節質量,越大對應圖像的細節輪廓越清楚,算法的細節保持特性越優秀[19];PSNR為信號最大值的平方與處理前后圖像的均方誤差之比,再取對數,越大表明處理結果的失真越小;SSIM從亮度、對比度和結構三維度刻畫平均圖像相似性,取值在[0,1]之間,值越大表示處理后失真度越小。
表1、表2和表3數據表明,在不含、含少量和含較多天空區域的情況下,本文算法復原的圖像PSNR有較大提高,說明該算法能有效抑制圖像失真;本文算法的信息熵最高,說明處理后圖像含有更多有用信息;同時,本文算法的平均梯度相對比較高,表明圖像中細節相對清晰,因此處理結果更加逼近相同場景下的無霧圖像,整體質量更佳。

表1 圖5(1)各算法的客觀評價Tab.1 Objective evaluation for Fig.5(1)

表2 圖5(2)各算法的客觀評價Tab.2 Objective evaluation for Fig.5(2)

表3 圖5(3)各算法的客觀評價Tab.3 Objective evaluation for Fig.5(3)
表4、表5和表6中數據表明,在含大量天空區域情況下,本文算法與文獻[9]算法復原圖像的信息熵和平均梯度相當,表明處理結果中有更多有用信息,細節更清晰;同時,本文算法的處理結果中PSNR和SSIM指標分別提高了3 dB和0.1左右,表明該算法處理結果中結構信息保留更加完好,更接近于同場景下的無霧圖像。

表4 圖5(4)各算法的客觀評價Tab.4 Objective evaluation for Fig.5(4)

表5 圖6(1)去霧算法的客觀評價Tab.5 Objective evaluation for Fig.6(1)

表6 圖6(2)去霧算法的客觀評價Tab.6 Objective evaluation for Fig.6(2)
本文針對天空等明亮區域中暗通道無效及傳統暗通道算法易出現白邊缺陷的問題,提出一種基于圖像尺寸的多尺度暗通道算法,并結合自適應容差策略實現圖像去霧。該算法采用由圖像尺寸確定的不同尺寸濾波窗口計算透射率估計,并進行線性擬合,獲得魯棒性和適應性更好的多尺度透射率圖,并采用引導濾波進一步精細化處理,獲得更為精準的透射率圖,克服了處理結果中的白邊問題。采用自適應容差策略,對明亮區域的透射率做出補償,避免了明亮區域處理后的失真現象。實驗結果表明,采用不同算法對不含和少量天空區域的圖像去霧,信息熵提高約0.2 bit/symbol,平均梯度提高約0.5,PSNR提高約8 dB;對較多和大量天空區域圖像去霧,PSNR提高約3 dB,SSIM提高約0.1。本文結果實現了去霧圖像細節清晰,明亮區域去霧效果良好,整體視覺效果更好等要求。