汪 燕,高 靜,周岳鈺,黃曉曉,聞 軍*,朱 柱,2
(1.安慶師范大學(xué) 電子工程與智能制造學(xué)院,安徽 安慶 246133;2.金陵科技學(xué)院 計(jì)算機(jī)工程學(xué)院,江蘇 南京 211169)
室外圖像監(jiān)測(cè)和采集設(shè)備易受霧、雨、煙等低能見度環(huán)境影響以致無法正常使用。近年來,為了提高惡劣天氣下的圖像質(zhì)量,對(duì)有霧圖像的去霧復(fù)原成為當(dāng)下圖像處理領(lǐng)域的研究熱點(diǎn)之一。目前,去霧方法主要有兩類:基于圖像增強(qiáng)的方法[1-2]和基于物理散射成像模型的方法[3-4]。然而,圖像增強(qiáng)方法在處理高密度模糊以及亮度較暗的圖像時(shí),往往會(huì)呈現(xiàn)過增強(qiáng)、信息丟失、顏色失真等現(xiàn)象。針對(duì)這一問題,學(xué)者們提出了一種基于物理散射成像模型的去霧改進(jìn)方法,其核心是透射率矩陣估計(jì),包括圖像塊先驗(yàn)[3-6]和像素先驗(yàn)[7-8]兩種途徑。
圖像塊先驗(yàn)策略通過從局部圖像塊中獲得先驗(yàn)信息來實(shí)現(xiàn)透射率估計(jì),是當(dāng)前主流且高效的處理手段。最為經(jīng)典的是He等[3]提出的基于暗通道先驗(yàn)的透射率估計(jì)算法,主要利用暗通道先驗(yàn)以得到場(chǎng)景像素的視覺深度,在此基礎(chǔ)上通過導(dǎo)向?yàn)V波[9]來優(yōu)化透射率矩陣。這種方法可有效去霧且顏色保真,然而也存在亮度損失、過飽和和細(xì)節(jié)處去霧不徹底等不足。Bui等[4]提出了一種基于顏色線先驗(yàn)的去霧算法,可有效避免過飽和問題,但很容易將高亮度近景區(qū)域誤認(rèn)為高密度霧天區(qū)域。很多深度學(xué)習(xí)去霧算法的實(shí)質(zhì)也是圖像塊層面的先驗(yàn)策略[5-6]?;诰矸e神經(jīng)網(wǎng)絡(luò),Cai 等提出了一種end-to-end 去霧模型[5]。Golts等也基于上下文聚合網(wǎng)絡(luò)提出了一種end-to-end去霧模型[6]。這些基于深度學(xué)習(xí)的去霧方法在一定程度上彌補(bǔ)了傳統(tǒng)圖像塊先驗(yàn)策略的不足,但在亮度保護(hù)、性能提升方面仍具有局限性,且需要足量數(shù)據(jù)來支撐訓(xùn)練。而像素先驗(yàn)策略是通過提取像素的最小通道信息來估計(jì)透射率。Lu等[7]將HSV(Hue-Saturation-Value)顏色空間中像素的飽和度引入暗通道來估計(jì)透射率,并利用導(dǎo)向?yàn)V波來優(yōu)化像素的透射率,可有效避免過飽和現(xiàn)象,但容易造成復(fù)原圖像顏色不自然。而Ju等[8]提出了一種基于gamma校驗(yàn)先驗(yàn)的透射率估計(jì)算法,可以有效復(fù)原目標(biāo)細(xì)節(jié),但易破壞圖像的顏色細(xì)節(jié)??傮w來說,基于像素級(jí)先驗(yàn)的透射率估計(jì)具有很高的執(zhí)行效率,但僅僅從像素中獲取信息會(huì)導(dǎo)致圖像塊的信息遺漏,從而影響透射率估計(jì)的準(zhǔn)確性。
考慮到上述問題,本文融合圖像塊策略和像素策略,提出了一種基于HSI(Hue-Saturation-Intensity)顏色空間的暗通道先驗(yàn)算法來幫助恢復(fù)原始場(chǎng)景。首先,根據(jù)圖像的亮度和飽和度來建立暗通道計(jì)算框架,并引入場(chǎng)景的原始顏色濃度和亮度變化,從而進(jìn)一步優(yōu)化暗通道計(jì)算模型。其次,建立關(guān)于圖像透射率、原始顏色濃度、原始亮度變化的方程組以獲得圖像的透射率,并估計(jì)出大氣光強(qiáng),最后恢復(fù)原始場(chǎng)景。本文創(chuàng)新和主要貢獻(xiàn)在于:(a)在HSI顏色空間中建立暗通道先驗(yàn)的計(jì)算模型,對(duì)傳統(tǒng)暗通道先驗(yàn)進(jìn)行了有效拓展;(b)采用亮度和亮度變化來表達(dá)暗通道亮度特征,使其兼具局部一致性和像素個(gè)體差異性;(c)由顏色濃度、亮度變化構(gòu)造暗通道細(xì)節(jié)特征項(xiàng)以保護(hù)圖像顏色、飽和度,適度提升了亮度;(d)透射率方程包含圖像塊亮度,又融入像素顏色、細(xì)節(jié),去霧結(jié)果兼具兩種先驗(yàn)優(yōu)勢(shì)。
傳統(tǒng)的暗通道先驗(yàn)由何凱明博士[3]提出,即RGB圖像中絕大多數(shù)區(qū)域存在灰度值趨近于0的顏色通道。依此先驗(yàn)為突破口,結(jié)合物理散射成像模型,有效解決了圖像去霧問題中求解方程未知量過多的病態(tài)問題。霧天圖像的成像模型可表達(dá)為
其中,xi是有霧圖像像素i的像素值,yi是原始場(chǎng)景無霧圖像所對(duì)應(yīng)像素的像素值,ti是這一像素的透射率,A是場(chǎng)景中的整體大氣光強(qiáng)。
根據(jù)文獻(xiàn)[3],暗通道計(jì)算模型可定義為
由于環(huán)境光強(qiáng)A具有整體一致性,對(duì)其進(jìn)行歸一化處理,再取透射率最低的前0.1%像素來計(jì)算環(huán)境光強(qiáng)A,復(fù)原結(jié)果為
由公式(3)和公式(4)可以看出,傳統(tǒng)的暗通道先驗(yàn)主要存在三方面不足:(a)在暗通道估計(jì)值偏大時(shí),透射率值會(huì)偏小,從而像素值賦值越小,修復(fù)結(jié)果越暗;(b)若環(huán)境光強(qiáng)偏大,暗通道為零區(qū)域透射率值也偏大,導(dǎo)致去霧不完全,修復(fù)結(jié)果飽和度也會(huì)降低;(c)僅用局部圖像塊來提取暗通道信息,會(huì)缺失像素個(gè)體特征反應(yīng),易出現(xiàn)細(xì)節(jié)處薄霧殘留。
在HSI顏色空間中,H、S和I分別表示圖像的色度、飽和度和亮度,且S和I分量的乘積表示圖像的顏色濃度[10]。像素j的亮度分量I和飽和度分量S可表示為
由公式(2)、(5)和(6)可知,像素i的暗通道可以用S和I分量表達(dá)為
上式包含了像素的亮度、飽和度和顏色濃度。結(jié)合每個(gè)顏色通道的像素值計(jì)算模型及公式(5)和公式(6),將環(huán)境光強(qiáng)A視為常數(shù),可進(jìn)一步得到霧天圖像和原始場(chǎng)景之間的顏色濃度關(guān)系,有
將公式(8)代入公式(7)可得
顯然,以圖像塊亮度計(jì)算暗通道會(huì)使像素細(xì)節(jié)缺失,因而本文引入亮度通道的灰度變化參量M(the median of the deviations from the median)[11]來自適應(yīng)調(diào)節(jié)暗通道亮度,以減小圖像塊計(jì)算模式帶來的細(xì)節(jié)損失。M可有效提取像素亮度變化:
借助上述暗通道先驗(yàn),以公式(3)為計(jì)算模型,歸一化處理A后可以解出圖像的透射率;利用透射率,提取并計(jì)算出環(huán)境光強(qiáng);最后分別代入物理散射成像模型,就可以復(fù)原出原始場(chǎng)景。
結(jié)合公式(3)和公式(12),透射率的計(jì)算模型可表達(dá)為
上式結(jié)合了像素顏色濃度、細(xì)節(jié)和局部圖像塊亮度,因而兼具圖像塊級(jí)和像素級(jí)透射率計(jì)算方法的優(yōu)點(diǎn)。
解出透射率:
以透射率t為輸入,以霧天圖像x為引導(dǎo),通過導(dǎo)向?yàn)V波進(jìn)一步優(yōu)化圖像的透射率:
其中,ε是值很小的調(diào)整常數(shù)[5],可以防止ak過大。通過導(dǎo)向?yàn)V波,使得t*中的細(xì)節(jié)更豐富。
選取圖像中透射率最低的前0.1%像素來構(gòu)造像素集xA,且xA中像素值的平均值即為環(huán)境光強(qiáng)A??紤]到濃霧區(qū)域飽和度低、亮度高、細(xì)節(jié)模糊等特征,將這些參量歸一化后構(gòu)造權(quán)重可提高環(huán)境光強(qiáng)A的準(zhǔn)確性:
上式中,MA、SA和IA是將xA中亮度變化、飽和度和亮度分別歸一化后的向量,e是各分量為1的適當(dāng)維數(shù)向量是向量xA的RGB通道。運(yùn)算符“°”是哈達(dá)瑪積,表示對(duì)應(yīng)元素相乘,結(jié)果是同型向量。運(yùn)算符“·”是數(shù)量積,表示對(duì)應(yīng)向量元素的積之和,結(jié)果是實(shí)數(shù)。
將透射率t*和環(huán)境光強(qiáng)A代入大氣光成像變形公式(3)中,可復(fù)原霧天圖像的原始場(chǎng)景:
其中,常數(shù)0.1用來減少噪聲干擾。
為了衡量本文算法的性能,本文另外選取了六種不同算法作為對(duì)照,即經(jīng)典的基于圖像塊先驗(yàn)的DCP去霧算法[3]、基于非局部特征的NLD顏色線去霧算法[12]、結(jié)合圖像塊先驗(yàn)和深度學(xué)習(xí)的DH-net去霧算法[5]、基于聚合網(wǎng)絡(luò)和圖像塊先驗(yàn)的GDH-net去霧算法[6]、基于像素飽和度調(diào)整的SDH去霧算法[7],以及基于像素動(dòng)態(tài)范圍調(diào)整的整體像素先驗(yàn)IDGCP 去霧算法[8]。實(shí)驗(yàn)環(huán)境為Matlab R2018b Win7 2.50 GHz Intel i5-3210 M PC機(jī)。文中的暗通道和導(dǎo)向?yàn)V波所涉及到的圖像塊尺寸分別為15和50。
圖1至圖3對(duì)比了本文算法和其他算法的去霧結(jié)果??梢钥闯觯珼CP算法、NLD算法、GDH-net算法以及IDGCP算法均可有效去霧,而DCP和GDH-net可有效保護(hù)圖像顏色,但算法復(fù)原結(jié)果暗、亮度損失大,如圖1(b)和圖1(f)所示;IDGCP算法不能有效地保護(hù)圖像的顏色細(xì)節(jié),如圖1(c)所示;NLD算法復(fù)原結(jié)果的飽和度偏高,出現(xiàn)過飽和現(xiàn)象,如圖1(d)所示;SDH算法較好地保護(hù)了圖像的細(xì)節(jié),但去霧結(jié)果出現(xiàn)了較明顯的顏色失真,如圖1(g)所示;DH-net算法較好地保護(hù)了圖像的亮度,但出現(xiàn)了明顯的去霧不徹底現(xiàn)象,如圖1(e)所示;采用像素顏色濃度替代圖像塊顏色濃度,并引入M參量自適應(yīng)調(diào)節(jié)暗通道亮度以減小細(xì)節(jié)損失,因此不僅能夠有效去霧,在亮度和飽和度的保護(hù)上也明顯優(yōu)于其他算法,而且顏色保護(hù)也與DCP和GDH-net結(jié)果相近,如圖1(h)所示。
圖1 草堆圖像去霧結(jié)果
圖2 郊區(qū)圖像去霧結(jié)果
圖3 城市圖像透射率
圖2對(duì)比了不同算法對(duì)霧天郊區(qū)圖像的去霧結(jié)果。將圖2(a)中的遠(yuǎn)景濃霧區(qū)域、中等景深霧區(qū)域和近景薄霧區(qū)域分別標(biāo)注為A、B和C。對(duì)于濃霧區(qū)域A,本文算法可有效去霧,而其他算法去霧均不徹底。本文算法對(duì)于透射率計(jì)算結(jié)合圖像塊亮度與像素顏色、細(xì)節(jié)特征,兼具圖像塊與先驗(yàn)優(yōu)勢(shì),因而在濃霧區(qū)域擁有較好去霧效果。對(duì)于中霧區(qū)域B,除DH-net算法,其他算法均可有效去霧,且在視覺上本文算法亮度和顏色保真能力最好,這是因?yàn)镈H-net算法采用深度學(xué)習(xí)的方式直接估計(jì)輸入霧圖與透射率的關(guān)系,可能發(fā)生過擬合而導(dǎo)致透射率估計(jì)值不準(zhǔn)確。對(duì)于近景C區(qū)域,由于霧濃度低,本文算法和對(duì)比算法均可有效去霧。NLD算法采用Non-local先驗(yàn)方法以將像素聚類成霧線,而本文算法融入了像素的亮度差異特征,因此這兩種算法更能保護(hù)顏色細(xì)節(jié)和亮度。
圖3對(duì)比了本文算法和其他算法的霧天城市圖像透射率。可以看出,DCP算法、NLD算法和GDHnet算法對(duì)遠(yuǎn)景區(qū)域的透射率存在過小估計(jì),使得遠(yuǎn)景區(qū)域過度去霧,以致復(fù)原結(jié)果飽和度過大。IDGCP算法、DH-net算法和SDH算法過高估計(jì)了遠(yuǎn)景區(qū)域的透射率,結(jié)果導(dǎo)致這三種算法無法對(duì)遠(yuǎn)景區(qū)域有效去霧。相比之下,本文算法透射率更符合由近及遠(yuǎn)的漸變規(guī)律,且估計(jì)值更準(zhǔn)確,如圖3(h)所示。
采用霧濃度感知估計(jì)因數(shù)FADE(Fog Aware Density Evaluator)[13]、新生邊緣率e、可見邊緣的歸一化梯度、飽和黑白像素比例σ[14],以及圖像的亮度B(Brightness)定量評(píng)價(jià)算法的去霧性能。FADE值越小對(duì)應(yīng)圖像中的霧濃度越低,因此,若修復(fù)結(jié)果的FADE值越小,則算法的去霧能力越好e值越大,則去霧復(fù)原結(jié)果越好。數(shù)值越大去霧結(jié)果對(duì)比度越高。σ是復(fù)原圖像中黑白飽和像素比例,數(shù)值越小去霧結(jié)果越好。對(duì)于亮度B,可取圖像中所有像素亮度的平均值,其相對(duì)于霧天圖像亮度降低越小,則去霧結(jié)果的亮度保護(hù)能力越有效。
表1列出了采用本文算法和其他算法來處理自然霧天圖像的FADE值和B值結(jié)果。在絕大多數(shù)情況下,本文算法復(fù)原結(jié)果的亮度值和原始圖像的亮度更接近,表明本文算法具有更有效的亮度保真能力。此外,無論是單個(gè)圖像的FADE數(shù)據(jù)還是測(cè)試圖像的FADE平均數(shù)據(jù),本文算法的FADE值更低,這說明本文算法較其他算法去霧能力更強(qiáng)。同時(shí)表2 列出了各種算法處理自然霧天圖像的e值值和σ值。根據(jù)表中數(shù)據(jù),本文算法的e值和σ值在大多情況下是最優(yōu)值值全部高于其他算法,表明本文算法的去霧結(jié)果抑制過飽和能力、對(duì)比度和細(xì)節(jié)保護(hù)能力更強(qiáng)。
表1 本文算法和其他算法去霧結(jié)果的亮度值(B)和FADE值
表2 本文算法和其他算法去霧結(jié)果的e、σ和值
表2 本文算法和其他算法去霧結(jié)果的e、σ和值
為進(jìn)一步評(píng)價(jià)本文算法的性能,隨機(jī)選取了公開數(shù)據(jù)集SOTS[15]中的200張人造霧天圖像來進(jìn)行去霧處理。由于人造霧天圖像的原始無霧圖像已知,故本文計(jì)算了峰值信噪比值(PSNR)、結(jié)構(gòu)相似性系數(shù)值(SSIM)[16]和特征相似性系數(shù)值(FSIM)[17]來評(píng)價(jià)去霧結(jié)果。由表3數(shù)據(jù)可知,本文算法的PSNR值、SSIM值以及FSIM值明顯高于其他算法,說明本文算法去霧后最接近原始無霧圖像,去霧效果最好。圖4給出了人造霧天圖像處理效果,可以看出,本文算法與原始圖像的視覺差異最小。綜上所述,本文算法在自然霧天圖像和人造霧天圖像上都能有效去霧,且能夠保護(hù)原始圖像亮度,視覺感知效果最好。
表3 本文算法和其他算法處理人造霧天圖像的PSNR、SSIM及FSIM值
圖4 人造霧天圖像處理結(jié)果
本文提出了一種基于HSI顏色空間暗通道的亮度保真去霧算法。該算法首先構(gòu)造了HSI顏色空間中暗通道計(jì)算基本模型,然后引入像素原始顏色濃度和亮度變化來優(yōu)化該模型,將圖像塊亮度的局部一致性、原始場(chǎng)景顏色和細(xì)節(jié)個(gè)體差異性兼顧到透射率中,提高了透射率的準(zhǔn)確性,緩解了傳統(tǒng)圖像先驗(yàn)策略算法易損失亮度、破壞飽和度和丟失細(xì)節(jié)等問題。此外,針對(duì)暗通道中場(chǎng)景的顏色濃度和細(xì)節(jié),使其亮度適度減小,合理提升了透射率,復(fù)原結(jié)果亮度得以保真。采用圖像塊亮度保留了傳統(tǒng)圖像塊先驗(yàn)策略局部透射率相似性,通過顏色濃度和細(xì)節(jié)將引入像素特征差異,將透射率從圖像塊級(jí)提升到像素級(jí),使得飽和度和細(xì)節(jié)得到保護(hù)。本文算法復(fù)原結(jié)果更加接近原始場(chǎng)景,也更加符合視覺感知。