楊德明,吳青娥,陳 虎
(鄭州輕工業(yè)大學(xué) 電氣信息工程學(xué)院,河南 鄭州450002)
隨著社會及科學(xué)技術(shù)的發(fā)展,機(jī)器視覺系統(tǒng)在各領(lǐng)域得到廣泛應(yīng)用。但是,在有霧天氣下所采集的圖像退化嚴(yán)重,使基于光學(xué)儀器的智能系統(tǒng)無法正常工作。因此,有霧圖像去霧算法的研究有著理論和現(xiàn)實意義。目前,圖像去霧方法[1-5]分為2類:基于圖像增強(qiáng)的算法和基于物理模型的算法。
基于圖像增強(qiáng)的去霧方法最為流行的是Retinex算法,例如王小霞等人[6]提出基于Retinex的快速去霧方法,然而Retinex算法具有復(fù)雜度高、計算量大及光暈現(xiàn)象等固有缺陷。
基于物理模型的去霧方法是研究大氣懸浮顆粒對光線的散射作用,建立有霧圖像退化模型,反演還原出無霧圖像,去霧效果逼真,更貼近降質(zhì)前的景物原景。基于物理模型的去霧圖像復(fù)原算法可分為基于偏微分方程、深度關(guān)系和先驗信息等去霧圖像復(fù)原算法。該去霧方法最早由O-akley等人[7]提出了一種在已知場景深度幾何信息情況下的去霧方法,但此去霧方法需要昂貴的雷達(dá)等裝置來取得場景深度信息。Narasimhan 等人[8-9]依據(jù)降質(zhì)圖像退化模型,提出了根據(jù)不同大氣條件引起場景色彩變化的幾何約束來獲取場景深度信息的去霧方法。依據(jù)先驗信息的單幅降質(zhì)圖像去霧方法,早期工作由Tan等人[10]完成,但去霧圖像顏色往往趨于飽和。
He等人[11]在前人基礎(chǔ)上提出利用暗通道先驗算法,但是該算法存在光暈顏色失真現(xiàn)象。為了解決軟摳圖算法耗時問題,He等人[12]提出了一種新穎的引導(dǎo)濾波算法,用于去霧和制導(dǎo)羽化等應(yīng)用。崔倩男等人[13]在文獻(xiàn)[11-12]的基礎(chǔ)上提出了改進(jìn)暗通道先驗的引導(dǎo)濾波去霧算法,但該算法存在光暈顏色失真的問題。天空區(qū)域分割優(yōu)化[14-15]去霧算法最近被提出,取得不錯的效果。邢曉敏等人[16]提出最大類間差法的改進(jìn)去霧算法,然而該算法存在區(qū)域誤分割的不足,造成還原出的無霧圖像顏色失真現(xiàn)象,因此,該去霧算法有待改進(jìn)。
針對上述問題,本文提出基于顏色特征的K均值區(qū)域分割優(yōu)化的改進(jìn)暗通道先驗去霧算法。本文的改進(jìn)算法對粗略透射率圖進(jìn)行區(qū)域優(yōu)化處理,糾正暗通道先驗算法對天空區(qū)域透射率圖的估計偏差。將有霧圖像、優(yōu)化的透射率圖和大氣光值帶入霧天圖像退化模型,還原出無霧圖像。
依據(jù)霧天圖像退化模型,利用暗通道先驗理論求出霧霾圖像的粗略透射率t1(x)。將t1(x)等參數(shù)直接代入霧天圖像退化模型對圖像反演去霧,還原的無霧圖像會出現(xiàn)塊效應(yīng)。以有霧圖像的灰度圖為引導(dǎo)圖對t1(x)進(jìn)行引導(dǎo)濾波優(yōu)化得到細(xì)化透射率t2(x),把有霧圖像I(x),t2(x)以及全局大氣光值A(chǔ),代入霧天圖像退化模型,恢復(fù)出無圖霧像J(x),消除了塊效應(yīng)。相比軟摳圖算法,引導(dǎo)濾波去霧算法具有耗時少的優(yōu)點。基于引導(dǎo)濾波優(yōu)化的暗通道先驗去霧算法如圖1所示。
圖1 基于引導(dǎo)濾波優(yōu)化的暗通道先驗去霧算法
在文獻(xiàn)[8-9]中,Narasimhan等人通過研究不同天氣條件下的大氣粒子特性,提出了霧霾天氣的大氣散射模型,其模型如式(1)所示:
I(x)=J(x)t(x)+A(1-t(x))。
(1)
該模型包括物體反射光衰減模型和大氣環(huán)境光模型兩部分,其中x表示像素二維坐標(biāo)值,I(x)表示有霧圖像,J(x) 表示無霧圖像,A表示大氣光強(qiáng)度值,大氣透射率t(x)定義為:
t(x)=e-βd(x),
(2)
式中,β表示大氣散射系數(shù),d(x)表示景深。文獻(xiàn)[10]中,Tan等人提出了景深特性具有局部平滑性,即在邊緣處會有大的突變,非邊緣的大部分區(qū)域是平滑的。根據(jù)式(2),透射率也應(yīng)具備景深特性,邊緣處會有大的突變,非邊緣的大部分區(qū)域是平滑的。
文獻(xiàn)[11]中,He 等人提出了暗通道先驗理論。He 等人研究并統(tǒng)計無霧圖像特征,發(fā)現(xiàn)在無霧圖像的非天空局部區(qū)域內(nèi)總是存在一些RGB顏色像素點,在至少一個顏色通道內(nèi)的顏色分量值接近于零,定義為暗通道,暗通道的公式為:
(3)
式中,Jdark(x)表示無霧圖像J(x)的暗通道,Ω(x)表示以x為中心的局部區(qū)域,Jc代表一個顏色通道,c表示R,G,B三顏色通道。對于戶外的無霧圖像J(x),統(tǒng)計發(fā)現(xiàn)其暗通道趨向于零。
假定大氣光值A(chǔ)給定,對式(1)使用最小值濾波得到:
(4)
根據(jù)Jdark(x)暗通道的值趨于零這一先驗規(guī)律,將式(3)帶入式(4),即可求出t1(x):
。(5)
在實際無霧場景圖像和景深較遠(yuǎn)的場景中依然會有一些霧氣,因此引入ω(0<ω<1)來降低去霧程度。此時粗略透射率t1(x)缺乏邊緣跳變特性,出現(xiàn)塊狀效應(yīng),t1(x)有待優(yōu)化。
相比以彩色有霧圖像作為引導(dǎo)圖,簡單有效的是以有霧圖像的灰度圖為引導(dǎo)圖,對粗透射率進(jìn)行引導(dǎo)濾波的細(xì)化處理,引導(dǎo)圖表示為式(6)。
Iguide(x)=H(x)=RGBtoGRAY(I(x)),
(6)
式中,RGBtoGRAY(·)表示對彩色圖像灰度化,H(x)表示I(x)的灰度圖,Iguide(x)代表引導(dǎo)圖。
用Iguide(x)作為引導(dǎo)圖,利用引導(dǎo)濾波對t1(x)進(jìn)行優(yōu)化,得到t2(x)。文獻(xiàn)[12]詳述了引導(dǎo)濾波算法,引導(dǎo)濾波簡約定義為式(7)。
t2(x)=Guide(t1(x),Iguide(x)),
(7)
式中,Guide(·)表示對圖像進(jìn)行引導(dǎo)濾波優(yōu)化處理,式(7)是以引導(dǎo)圖Iguide(x)對t1(x)進(jìn)行引導(dǎo)濾波優(yōu)化得到細(xì)化透射率t2(x)。粗略透射率t1(x)經(jīng)引導(dǎo)濾波優(yōu)化后,得到細(xì)化透射率t2(x),消除塊狀效應(yīng)。
文獻(xiàn)[11]中,He等人將全局大氣光值A(chǔ)選取為暗通道圖中0.1%最亮的像素,它們所在的區(qū)域是霧最濃的區(qū)域;在有霧圖像中選取同位置區(qū)域的像素,求取亮度平均值,作為全局大氣光值A(chǔ)。這樣可以避免輸入有霧圖像中的白色物體對選取大氣光值的干擾。將有霧圖I(x)、A和細(xì)化透射率t2(x)帶入霧天圖像退化模型恢復(fù)出J(x)。
(8)
式中,t0表示透射率設(shè)定的下限值,當(dāng)t2(x)趨近于零時,會使J(x)引入噪聲,t0一般取0.1。
針對天空區(qū)域缺乏暗原色,不符合暗通道先驗規(guī)則,暗通道先驗算法存在誤估天空區(qū)域透射率的不足,造成天空區(qū)域去霧產(chǎn)生光暈失真現(xiàn)象。由此涌現(xiàn)出各種基于天空區(qū)域分割優(yōu)化的去霧算法。不同大氣光值環(huán)境下,固定分割閾值天空區(qū)域分割存在區(qū)域誤分割的缺點,邢曉敏[16]等人提出利用大津算法進(jìn)行自適應(yīng)圖像區(qū)域分割優(yōu)化去霧算法,取得不錯的效果。大津算法,又稱作最大類間差法(OTSU),是一種基于圖像灰度空間的自適應(yīng)閾值區(qū)域分割算法。然而大津算法誤將前景區(qū)域灰度較高的物體錯誤分割為天空區(qū)域,因此文獻(xiàn)[16]算法去霧存在圖像失真現(xiàn)象。針對上述問題,本文提出了一種K均值區(qū)域分割優(yōu)化的改進(jìn)暗通道先驗去霧算法,如圖2所示。
本文算法提出K均值區(qū)域分割算法,基于圖像顏色特征能夠?qū)⒂徐F圖像的天空區(qū)域和前景區(qū)域準(zhǔn)確分割開。對粗略透射圖進(jìn)行區(qū)域優(yōu)化,將有霧圖像I(x)、大氣光值A(chǔ)和區(qū)域優(yōu)化的透射圖代入去霧模型進(jìn)行有霧圖像去霧。
圖2 區(qū)域分割優(yōu)化的改進(jìn)暗通道先驗去霧算法
1967年MacQueen等人[17]提出了 K均值算法。K均值算法是基于距離的一種聚類算法,K均值聚類算法原理是對于給定的數(shù)據(jù)總數(shù)為N的待測集合X,依據(jù)集合X的某種特征屬性,將待分集合分為k個類別,表示為集合S={S1,S2,…,Sk},其中k≤n。隨機(jī)選取k個數(shù)據(jù)點μ1,μ2,…,μk作為類別Si的初始聚類中心,求出待分對象到初始聚類中心的距離,將待分對象分配給距離最近的類別,最后重新算出劃分k個集合的聚類中心,不斷迭代計算出新的聚類中心,直到所有的觀測值類別不再改變,或者迭代次數(shù)達(dá)到最大的預(yù)設(shè)值。最終以群內(nèi)的方差作為聚類準(zhǔn)則函數(shù),方差越小聚類效果越好。
K均值算法的聚類分類原則是給定μ1,μ2,…,μk初始聚類中心,計算出待測集合X中的數(shù)據(jù)點Xm到聚類中心μj的歐氏距離d(Xm,μj) ,即求其2-范數(shù),將Xm歸為最小歐氏距離Sj的所屬類別,聚類分類原則定義為式(9)。
(9)
式中,j表示類別號,j∈[1,k];t表示聚類算法迭代次數(shù);m表示集合X的數(shù)據(jù)點,m∈[1,N];N為待測集合X的數(shù)據(jù)總數(shù);argmin(·)表示求解數(shù)據(jù)集的最小值。
聚類中心是指每個類別Sj的質(zhì)心μj,迭代計算聚類中心定義為式(10)。
(10)
K均值區(qū)域分割算法簡約定義為式(11)。
Gk(x)=KMEANS(I(x),k),
(11)
式中,KMEANS(·)表示對彩色圖像進(jìn)行K均值聚類區(qū)域分割,I(x)表示有霧圖像,k表示分割圖像的區(qū)域數(shù)量,根據(jù)分割實驗,k取經(jīng)驗值為5,Gk(x)為聚類分割后的類別標(biāo)簽圖?;贙均值聚類算法的區(qū)域分割效果圖如圖3所示。
圖3 K均值聚類算法的區(qū)域分割效果圖
以選取大氣光值A(chǔ)的局部區(qū)域為掩膜(大氣光值A(chǔ)選取區(qū)域如圖4(a)所示),統(tǒng)計出Gk(x)類別標(biāo)簽圖對應(yīng)掩膜區(qū)域位置的類別標(biāo)簽值作為天空區(qū)域的類別標(biāo)簽值A(chǔ)j。獲取二值圖定義為式(12)。其中Gk(i)為類別標(biāo)簽圖像Gk(x)的一點,Aj為天空區(qū)域的類別標(biāo)簽值,B(x)為天空區(qū)域分割二值圖。
(12)
當(dāng)Gk(i) 的類別標(biāo)簽Sj=Aj時,i處于天空區(qū)域,B(i)值置為0,當(dāng)Gk(i) 的類別標(biāo)簽Sj≠Aj時,i處于前景區(qū)域,B(i)值置為255。經(jīng)二值化得到天空和前景區(qū)域分割二值圖B(x),對B(x)形態(tài)閉運算,消除瑕疵空隙。獲取區(qū)域分割二值圖B(x)如圖4所示。其中圖4(a)中矩形區(qū)域為大氣光值A(chǔ)選取區(qū)域,圖4(b)為天空與前景區(qū)域分割二值B(x)。
圖4 區(qū)域分割二值圖和區(qū)域優(yōu)化透射率
以二值圖B(x)為掩膜,對粗略透射率t1(x)進(jìn)行區(qū)域優(yōu)化處理。當(dāng)二值圖中B(i)為0時,i坐標(biāo)點位于天空區(qū)域,增大對應(yīng)粗略透射率圖i坐標(biāo)點的粗略透射率數(shù)值,衰弱其去霧強(qiáng)度,消除天空區(qū)域去霧時產(chǎn)生的光暈顏色失真現(xiàn)象;當(dāng)二值圖中B(i)為255時,i坐標(biāo)點位于非天空的前景區(qū)域,減小對應(yīng)粗略透射率圖i坐標(biāo)點的粗略透射率數(shù)值,增強(qiáng)其去霧強(qiáng)度,消除去霧不徹底現(xiàn)象。區(qū)域優(yōu)化粗略透射率t1(x)算法定義為式(13)。
(13)
(14)
將有霧圖I(x)、t2(x)和大氣光值A(chǔ)帶入霧天圖像退化模型,還原出無霧圖像J(x)。本文提出多空間閾值自適應(yīng)區(qū)域分割優(yōu)化的改進(jìn)暗通道先驗去霧算法,天空區(qū)域分割準(zhǔn)確,還原出的無霧圖像細(xì)節(jié)豐富真實,顏色逼真,消除了基于暗通道先驗去霧算法天空區(qū)域去霧產(chǎn)生光暈顏色失真的現(xiàn)象。去霧效果圖如圖5所示。
圖5 去霧效果圖
為驗證本文提出去霧算法的正確性和可行性,從網(wǎng)絡(luò)百度圖片中采集有霧圖像進(jìn)行去霧實驗。實驗平臺采用 CPU i5-7500 處理器、顯卡采用 GTX 1050Ti、內(nèi)存為16 G及操作系統(tǒng)為Windows10的臺式計算機(jī),運用Visual Studio 2013及Opencv3.1.0對本文所提去霧算法進(jìn)行編程實驗驗證。
文獻(xiàn)[16]提出基于大津算法的區(qū)域分割算法,取得不錯的去霧效果。然而其采用的基于圖像灰度圖的區(qū)域分割算法,存在將灰度值較高的前景區(qū)域圖像錯誤分割為天空區(qū)域的不足,造成還原出的無霧圖像失真。
本文提出K均值區(qū)域分割優(yōu)化的改進(jìn)暗通道先驗去霧算法,能夠滿足不同大氣光值環(huán)境下,依據(jù)顏色特征將有霧圖像天空區(qū)域準(zhǔn)確分割開,彌補(bǔ)了文獻(xiàn)[16]分割算法存在誤分割天空區(qū)域的不足。對粗略透射圖進(jìn)行區(qū)域優(yōu)化處理,將有霧圖像I(x)、大氣光值A(chǔ)及區(qū)域優(yōu)化的透射圖代入去霧模型進(jìn)行有霧圖像去霧,去霧圖像顏色保真度高,圖像細(xì)節(jié)得到增強(qiáng)。
圖6為文獻(xiàn)[16]算法和本文算法的去霧比較。比較圖6(b)和圖6(d),圖6(g)和圖6(i),本文算法的區(qū)域分割二值圖能夠較好地將天空區(qū)域分割出來,而文獻(xiàn)[16]算法的區(qū)域分割二值圖存在將灰度值較高的前景物體誤分割為天空區(qū)域的現(xiàn)象。主觀比較分析圖6(c)和圖6(e)、圖6(h)和圖6(j),文獻(xiàn)[16]算法的去霧圖存在顏色失真現(xiàn)象,本文算法去霧圖清晰真實。
圖6 文獻(xiàn)[16]去霧算法和本文去霧算法比較
圖7為文獻(xiàn)[16]算法及本文算法去霧結(jié)果比較分析。H分量直方圖橫坐標(biāo)歸一化為0~180°色調(diào)角,縱坐標(biāo)為0~180°各色調(diào)統(tǒng)計數(shù)值。其中0°表示紅色,30°表示黃色,60°表示綠色,90°表示青色,120°表示藍(lán)色,150°表示品紅色。
對文獻(xiàn)[16]算法去霧結(jié)果進(jìn)行比較分析。對比文獻(xiàn)[16]算法去霧圖O1的圖7(f)和圖7(b),可知圖7(f)的輪廓線基本擬合圖7(b)的曲線。同樣對比圖7(h)和圖7(d),可知圖7(h)的輪廓線與圖7(d)的曲線不相吻合,且圖7(h)的圖形面積相較急劇變小。上述說明,文獻(xiàn)[16]算法存在去霧圖失真現(xiàn)象。
對本文算法去霧結(jié)果進(jìn)行客觀比較分析。對比圖7(j)和圖7(b),可知圖7(j)的輪廓線和圖7(b)的輪廓線變化趨勢和幅度相吻合,圖7(j)的圖形面積有所增大,色調(diào)角150°附近像素數(shù)量較圖7(f)的相應(yīng)區(qū)域豐富,印證了文獻(xiàn)[16]去霧圖O1存在建筑物切頂失真。對比7(l)和圖7(d),可知圖7(j)的輪廓線和圖7(d)的輪廓線變化趨勢和幅度基本一致,二者圖形面積相較基本不變。上述說明本文算法去霧圖像顏色真實。
實驗結(jié)果表明,文獻(xiàn)[16]算法因存在區(qū)域誤分割的不足,使去霧圖出現(xiàn)顏色失真現(xiàn)象。本文算法能夠滿足不同環(huán)境天空區(qū)域準(zhǔn)確分割,還原出的無霧圖像細(xì)節(jié)豐富,顏色逼真。
圖7 文獻(xiàn)[16]去霧算法和本文去霧算法去霧結(jié)果客觀比較分析
有霧圖像分別采用文獻(xiàn)[6 ]的基于Retinex的MSRCR帶有彩色恢復(fù)的多尺度圖像增強(qiáng)算法和文獻(xiàn)[11]He的算法,以及本文去霧算法進(jìn)行去霧結(jié)果比較與分析。
圖8為本文算法與常見算法去霧效果。主觀比較分析不同去霧算法效果如下:對比文獻(xiàn)[6]算法去霧圖8(e)和圖8(g)與對應(yīng)有霧圖8(a)和圖8(c),圖8(e)和圖8(g)圖像整體偏暗,但對比度有所提升。對比文獻(xiàn)[11]He的算法去霧圖8(i)和圖8(k)與對應(yīng)有霧圖8(a)和圖8(c),圖8(i)和圖8(k)圖像天空區(qū)域存在顏色失真現(xiàn)象,前景區(qū)域圖像細(xì)節(jié)豐富顏色逼真。對比本文算法去霧圖8(m)和圖8(o)與對應(yīng)有霧圖8(a)和圖8(c),圖8(m)和圖8(o)圖像細(xì)節(jié)豐富顏色逼真,天空區(qū)域顏色無失真。
客觀比較分析不同去霧算法效果。對文獻(xiàn)[6]算法去霧結(jié)果進(jìn)行客觀比較分析。對比圖8(f)和圖8(b),可知圖8(f)的輪廓線背離了圖8(b)的曲線,且圖8(f)的圖形面積相較減小殆盡。同樣對比圖8(h)和圖8(d),可知圖8(h)的輪廓線與圖8(d)的曲線不相一致,且圖8(h)的圖形面積相較嚴(yán)重衰減。上述說明,文獻(xiàn)[6]算法存在去霧圖顏色失真現(xiàn)象。
對文獻(xiàn)[11]He的算法去霧結(jié)果進(jìn)行客觀比較分析。對比圖8(j)和圖8(b),可知圖8(j)的輪廓線基本契合了8(b)的曲線變化趨勢,但色調(diào)角120°附近略有凸起,這也印證了天空區(qū)域存在藍(lán)色碎片狀顏色失真。對比圖8(l)和圖8(d),可知圖8(l)的輪廓線與圖8(d)的曲線基本一致,且圖8(l)的圖形面積相較變化不大,但色調(diào)角180°附近的紫色像素點數(shù)量相較增大,反映出天空區(qū)域去霧圖像顏色偏紫色。上述說明,文獻(xiàn)[11] He的算法去霧圖像的天空區(qū)域存在顏色失真現(xiàn)象。
對本文算法去霧結(jié)果進(jìn)行客觀比較分析。對比8(n)和圖8(b),可知圖8(n)的輪廓線基本契合了圖8(b)的曲線變化趨勢,色調(diào)角0°附近紅色像素有明顯增多,說明去霧后紅色前景部分得到增強(qiáng)。對比圖8(p)和圖8(d),可知圖8(p)的輪廓線與圖8(d)的曲線基本一致,對應(yīng)色調(diào)角120°的藍(lán)色附近像素點數(shù)量相較增大。且圖8(p)的圖形面積相較變化不大。上述說明,本文算法去霧圖顏色保真度高。
圖8 本文算法與常見算法去霧效果比較分析
本文提出的K均值區(qū)域分割優(yōu)化的改進(jìn)暗通道先驗去霧算法和其他流行去霧算法實驗結(jié)果比較,實驗結(jié)果表明,本文算法能夠滿足不同大氣光值環(huán)境下的天空區(qū)域準(zhǔn)確分割,彌補(bǔ)了基于灰度空間的分割算法存在天空區(qū)域誤分割而引起去霧失真的不足,使還原出的無霧圖像細(xì)節(jié)豐富真實,顏色保真度高,消除了天空區(qū)域去霧時產(chǎn)生光暈顏色失真現(xiàn)象。實驗結(jié)果驗證了本文算法的正確性和可行性。
然而,本文去霧算法仍存在前景含有顏色類似天空的區(qū)域誤分割的不足,本文區(qū)域分割算法仍有改進(jìn)空間。近年來,基于深度學(xué)習(xí)的圖像語義分割算法日臻成熟,相較傳統(tǒng)的圖像分割算法,區(qū)域分割精確率更高,算法魯棒性更強(qiáng)。今后,將進(jìn)行基于深度學(xué)習(xí)圖像語義區(qū)域分割優(yōu)化的去霧算法研究工作,期待獲得更好的去霧效果,滿足社會霧天安全生產(chǎn)生活的需要。