李曉戈 薛倩茹
(西安郵電大學(xué)計算機(jī)學(xué)院 陜西 西安 710121)
近年來,天氣成為了影響圖片質(zhì)量的重要因素,太陽、霧或灰塵中的浮動顆粒導(dǎo)致圖片褪色、模糊,對比度和柔和度都降低,這是由于在傳播過程中光被混濁介質(zhì)(例如顆粒和水滴)吸收和散射的事實。這些降級的圖像不僅影響照片質(zhì)量,還限制了圖像分類[1-2],視頻分析和識別[3]、城市交通[4]、視覺監(jiān)控、航空圖像[5-6]等的應(yīng)用。因此,圖像去霧成為了一個很有前途的研究領(lǐng)域?,F(xiàn)有的圖像去霧方法主要分為兩類,分別是非模型算法和模型算法[7]。非模型算法是通過物理方法調(diào)整圖像灰度對比度或是用濾波器過濾低頻信息保留圖像的高頻信息,比如直方圖均衡化[8]、Retinex算法[9]、同態(tài)濾波算法[10]等。這些方法從光學(xué)成像原理進(jìn)行去霧,使圖像顏色之間的對比度間更加均衡,圖像效果更加柔和,但得到的圖像在對比度上得不到有效的增強(qiáng),弱化了原圖中暗或亮的區(qū)域,模糊了圖片中的重點。模型算法則是通過逆圖像成像的原理來進(jìn)行圖像去霧的。如Zhu等[11]對場景深度進(jìn)行建模,并利用監(jiān)督學(xué)習(xí)調(diào)整模型參數(shù)以恢復(fù)深度信息,再利用深度圖通過大氣散射模型估計透射率來達(dá)到去霧效果,但是在大氣散射模型中的散射系數(shù)在非均勻大氣條件下不能被視為常數(shù),所以在某些傳輸情況下容易低估傳輸。He等[12]通過暗通道先驗來估計霧度的厚度,并通過大氣散射模型恢復(fù)無霧度圖像,但不能很好地處理天空中的圖像。Meng等[13]用高效的正則化消除模糊,對傳輸函數(shù)的固有邊界進(jìn)行約束,并與L1正則化相結(jié)合,通過建模對結(jié)合后的函數(shù)求最優(yōu)化問題以估計未知場景的傳輸,來達(dá)到去霧效果,但由于有些干凈的像素可能具有與有霧的像素相同的顏色,會導(dǎo)致場景的過度或者不充分的增強(qiáng)。Ling等[14]開發(fā)簡單的霧密度評估器,并通過評估器恢復(fù)圖像透射率和霧密度之間的數(shù)學(xué)關(guān)系,把去霧作為恢復(fù)霧密度的最小化問題,以達(dá)到去霧效果,但會加重圖像的顏色,導(dǎo)致與原圖顏色出現(xiàn)誤差。
隨著卷積神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,越來越多的學(xué)者通過深度學(xué)習(xí)進(jìn)行圖像去霧來改善已有圖像去霧方法中的缺陷。通過構(gòu)建具有多種層次的機(jī)器學(xué)習(xí)模型和海量的訓(xùn)練數(shù)據(jù), 學(xué)習(xí)圖像中更有用的特征。如徐巖等[7]通過多尺度特征融合提升對圖像細(xì)節(jié)的重建,將淺層卷積得到的輪廓信息和深層卷積得到的細(xì)節(jié)信息進(jìn)行融合,以提升去霧效果,但是對原圖中白色區(qū)域的去霧不徹底,會出現(xiàn)灰色區(qū)域。Ren等[15]提出的運(yùn)用粗細(xì)卷積神經(jīng)網(wǎng)絡(luò)的級聯(lián)對圖像中的場景和細(xì)節(jié)進(jìn)行全面系統(tǒng)的提取,使得得到的清晰圖像更接近原圖,但該模型對于夜間的有霧圖像的去霧效果卻一般,得到的圖像仍然朦朧。任靜靜等[16]提出的快速神經(jīng)網(wǎng)絡(luò)模型,用物理方法與神經(jīng)網(wǎng)絡(luò)方法相結(jié)合,在數(shù)據(jù)集上先用傅里葉變換在頻域上對霧化圖像做預(yù)處理得到新的數(shù)據(jù)集,再用快速神經(jīng)網(wǎng)絡(luò)模型處理此時新的數(shù)據(jù)集,已達(dá)到對圖像的清晰度恢復(fù)。本文根據(jù)霧化圖像的特征得知霧痕不但留在圖像的高頻信息中,而且影響圖片的細(xì)節(jié)特征,但是圖像中的低頻信息受到的影響卻很小,由此發(fā)現(xiàn)不需要通過物理方法對圖片預(yù)處理也可以達(dá)成效果,并且在時間上大大節(jié)省了前期工作,所以對圖像的去霧可以看成是對霧化圖像高頻信息的提取,和與低頻信息的合并。本文提出了一個20層的深度卷積神經(jīng)網(wǎng)絡(luò),獲取到圖像上的高頻信息,并與霧化圖像的低頻信息相結(jié)合,實現(xiàn)去霧圖像的重建。
圖像去霧是指從霧霾、霧或煙霧引起的單個嘈雜幀中恢復(fù)清晰圖像,這是計算機(jī)視覺中的經(jīng)典問題。 我們可以將有霧圖像的公式表達(dá)為:
I(x,y)=J(x,y)t(x,y)+A[1-t(x,y)]
(1)
式中:I(x,y)和J(x,y)是觀察到的模糊圖像和清晰圖像的場景輻射,A是全局大氣光強(qiáng)度,t(x,y)是描述該部分的場景傳輸。假設(shè)霧度是均勻的,我們可以表達(dá)為:
t(x,y)=e-βd(i,j)
(2)
式中:β是消光系數(shù),不同程度的霧對應(yīng)的β是不同的;d(i,j)是場景深度。
CNN是深度學(xué)習(xí)的方法之一,是一種多層神經(jīng)網(wǎng)絡(luò),擅長處理圖像特別是大圖像的相關(guān)機(jī)器學(xué)習(xí)問題。卷積網(wǎng)絡(luò)通過一系列方法,成功將數(shù)據(jù)量龐大的圖像識別問題不斷降維,最終使其能夠被訓(xùn)練。一個最典型的卷積網(wǎng)絡(luò),由卷積層、池化層、全連接層組成,網(wǎng)絡(luò)構(gòu)架如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)框架圖
其中卷積層與池化層配合,組成多個卷積組,逐層提取特征,最終通過若干個全連接層完成分類。卷積層完成的操作,可以認(rèn)為是受局部感受野概念的啟發(fā),而池化層主要是為了降低數(shù)據(jù)維度。綜合起來說,CNN通過卷積來模擬特征區(qū)分,并且通過卷積的權(quán)值共享及池化,來降低網(wǎng)絡(luò)參數(shù)的數(shù)量級,最后通過傳統(tǒng)神經(jīng)網(wǎng)絡(luò)完成分類等任務(wù)。
為了實現(xiàn)圖像去霧,本文提出了基于深度卷積網(wǎng)絡(luò)的模型,主要分為三個步驟:特征提取、深度卷積特征融合以及高頻與低頻特征融合。
本文的網(wǎng)絡(luò)模型,由于卷積次數(shù)多,為了避免因為池化層導(dǎo)致圖像信息丟失,去掉所有池化層,采用的是全卷積網(wǎng)絡(luò)結(jié)構(gòu)。通過端到端的網(wǎng)絡(luò)結(jié)構(gòu),使輸入的有霧圖像和清晰圖像通過網(wǎng)絡(luò)模型建立出圖像的細(xì)節(jié)和輪廓的學(xué)習(xí)模型,使最終輸出的為清晰圖像。本文的算法框架模型如圖2所示。
圖2 深度卷積神經(jīng)網(wǎng)絡(luò)的模型
其中A代表霧化圖像,B代表清晰的無霧圖像,C代表去霧后的清晰圖像。我們從大量文獻(xiàn)得知,霧化圖像中的信息主要為低頻信息,而清晰圖像中的信息主要為高頻信息,根據(jù)本文的網(wǎng)絡(luò)模型得到的清晰圖像,我們發(fā)現(xiàn)的確是高頻信息居多,所得到的細(xì)節(jié)信息的確變得清晰了,但是圖像的輪廓信息的變化并沒達(dá)到理想效果。所以針對霧化圖像對低頻信息保留完整的優(yōu)點,本文將經(jīng)過深度卷積網(wǎng)絡(luò)的高頻清晰圖片與霧化的低頻信息圖像進(jìn)行特征融合,使得最終得到的清晰圖像,不論在具體細(xì)節(jié),還是在大體輪廓上都得到更好的效果。
根據(jù)模型的深度為20層卷積,由感受野的公式2d+1可以得到,該模型的感受野為41,因此將圖像的輸入尺度定為41×41。所以模型中特征提取的部分為第一個卷積層,每次用來提取圖像中一個小塊的細(xì)節(jié)及信息輪廓,該卷積核大小為3×3,卷積核數(shù)量為64。模型通過卷積進(jìn)行特征提取,計算公式為[7]:
Gl(Y)=Wl×Fl-1(Y)
(3)
式中:Wl為第l層卷積層,Gl為輸出的特征圖。Wl由nl×fl×fl個參數(shù)組成,其中fl為卷積核的尺寸,nl為卷積核的數(shù)量。
本文所選取的激活函數(shù)是修正線性單元(Rectified Linear Unit,ReLU),使用ReLU得到的收斂速度會比 sigmoid/tanh 快很多,使得我們的模型速度提升明顯。加入激活函數(shù)后的卷積層輸出公式為:
Fl(Y)=ReLU[Wl×Fl-1(Y)+Bl]
(4)
式中:Fl為最終的特征輸出圖,Bl為第l層的偏置。
要使有霧圖像變成清晰圖像,不但要處理小尺度的紋理信息,還要處理大的輪廓信息,為了使這些信息可以更好地被學(xué)習(xí),輸出的圖像更加接近清晰的圖像,本文采用深度的神經(jīng)網(wǎng)絡(luò)進(jìn)一步提取和學(xué)習(xí)圖像的特征。該方法由18層的卷積網(wǎng)絡(luò)構(gòu)成,卷積核大小和數(shù)量都分別為3×3和64,該方法步驟如下:
第一步:把第一個卷積層得到的圖片,復(fù)制成18個大小及細(xì)節(jié)都相同的圖片;
第二步:分別輸入到18層中,每層分別獲取圖片中的不同特征,并對所選取的細(xì)節(jié)特征和輪廓特征進(jìn)行學(xué)習(xí),在合理的時間范圍內(nèi)充分學(xué)習(xí),提高卷積層的學(xué)習(xí)效率。
第三步:將前18層所得的特征信息經(jīng)過一個卷積核大小為3×3,卷積核數(shù)量為1的卷積層進(jìn)行加權(quán)合并,更好地實現(xiàn)霧天圖像的去霧重建。
本文在網(wǎng)絡(luò)訓(xùn)練時采用的損失函數(shù)是均方誤差(Mean Squared Error,MSE)和L2正則化。L2正則化可以防止模型過擬合,得到的解比較平滑,且更小,輸出結(jié)果更加接近原始圖像,所以最終損失函數(shù)公式為:
(5)
式中:MSE代表均方誤差,ω代表權(quán)重,n代表訓(xùn)練樣本大小,λ代表正則系數(shù)。學(xué)習(xí)率為0.000 1,學(xué)習(xí)率所采用的指數(shù)衰減為0.1,訓(xùn)練輪數(shù)為10輪,其中每兩輪學(xué)習(xí)率變?yōu)樵瓉淼?.1倍。
本文采用的是VOC2012數(shù)據(jù)集,選取其中的1 475幅圖片利用大氣散射模型與清晰圖像用MATLAB建立霧天圖像庫,并選取其中的1 375幅作為原始的訓(xùn)練樣本,100幅作為原始的測試樣本。實驗在Windows 10環(huán)境下完成,用1080 Ti的顯卡,采用的是深度學(xué)習(xí)中的TensorFlow框架。
因為我們的圖片輸入尺寸為41×41,所以對原始的1 475幅圖片進(jìn)行樣本的分割及增強(qiáng),把原始樣本都分割為41×41的小圖片,舍棄分割后不足輸入尺寸的圖片,再對分割后的圖片進(jìn)行0°、90°的旋轉(zhuǎn)和0°、90°的翻轉(zhuǎn)變成4倍,最終我們得到的訓(xùn)練集為539 296幅圖片,測試集為34 670幅圖片。
最后為了驗證本文網(wǎng)絡(luò)模型的有效性和性能測試,采用處理一幅有霧圖像的時間和PSNR作為結(jié)果評價標(biāo)準(zhǔn)。
為了驗證本文算法對于圖像去霧的有效性,將本文的算法和已有的去霧算法進(jìn)行比對(Meng算法[13]、Zhu算法[11]、He算法[12]、Ling算法[14]中的最優(yōu)OTSFDE模型)。圖3-圖5分別是對人物,物體近景和遠(yuǎn)景比對的實驗結(jié)果。
(a) 霧天圖像 (b) Meng算法
(c) He算法 (d) Zhu算法
(e) Ling算法 (f) 本文算法圖3 人物圖像的去霧效果對比
(a) 霧天圖像 (b) Meng算法
(c) He算法 (d) Zhu算法
(e) Ling算法 (f) 本文算法圖4 近景景物圖像的去霧效果對比
(a) 霧天圖像 (b) Meng算法
(c) He算法 (d) Zhu算法
(e) Ling算法 (f) 本文算法圖5 遠(yuǎn)景景物圖像的去霧效果對比
可以看出:Meng算法中,由于遠(yuǎn)處天空的顏色和霧的顏色太過相似,使得建立的模型有偏差,得到的清晰圖像被過度增強(qiáng),在顏色上相比較原圖過于亮麗,甚至在以白色為主體的物體上嚴(yán)重曝光,影響了圖片整體的視覺吸引力。He算法在天空和白色物體的處理上效果不理想,顏色不清晰,有出現(xiàn)馬賽克的情況,并且在近景圖像中白色物體與其他顏色物體的交界處會有白色的暈圈,邊界效果不好。用Zhu算法去霧后的圖像與本文算法去霧后的圖像對比,可以明顯看出Zhu算法去霧的效果不是很理想,去霧不徹底,圖像看上去仍然有一層薄霧的感覺,尤其在遠(yuǎn)景情況下,遠(yuǎn)處的去霧效果變化不大。Ling算法在對于圖像顏色處理時,會加重圖像本來的顏色,使圖片的整體效果偏冷色,甚至在大面積的顏色上會改變圖像原有的顏色,圖片的整體觀感不好,影響了圖片的視覺吸引力。本文的算法,在近景上對于圖像顏色的恢復(fù)更加符合原圖的顏色,在白色為主的區(qū)域上去霧更加徹底,在遠(yuǎn)景上對圖形整體的色調(diào)更加均勻,不會產(chǎn)生某個地方過度曝光,整體對圖像去霧效果顯著。
為了顯示本文算法的優(yōu)勢,我們對處理一幅有霧圖像的時間進(jìn)行對比,如表1所示。可以明顯看出文本的方法在進(jìn)行圖像去霧時間比其他算法有明顯的提高,與Meng算法的時間差距最大,在人物、近景、遠(yuǎn)景上分別提高了3.726 s、2.265 s、3.763 s。在人物上與He算法的時間差距最小也有0.621 s,在近景上與Ling算法的時間差距最小為0.643 s,在遠(yuǎn)景上與Ling算法的時間差距最小為0.909 s??梢钥闯?,模型的優(yōu)越性更好一點,尤其在處理分辨率越高的圖片上速度的提升會更加的明顯。
表1 不同算法在處理圖片時間上的比較 s
為了進(jìn)一步驗證本文算法的優(yōu)勢,用PSNR對去霧效果進(jìn)行對比。這種量化實驗采用常用的PSNR,表示信號最大可能功率和影響它表示精度的破壞性噪聲功率的比值,可以對圖像恢復(fù)的整體性能進(jìn)行評價[16]。當(dāng)PSNR值越高時,代表圖像的去霧效果更好,公式可表示為:
式中:T表示圖像像素強(qiáng)度的最大值。
圖6-圖8所示為人物、近景景物、遠(yuǎn)景景物在不同的算法下PSNR值的對比??梢钥闯觯瑹o論是在人物、近景景物、遠(yuǎn)景景物,本文的PSNR值都是最優(yōu)的,比其他算法都有大幅度的提升,尤其在對人物的處理上是Ling算法PSNR值的1.5倍,在遠(yuǎn)景景物的處理上是Meng算法PSNR值的1.5倍,這都得益于卷積神經(jīng)網(wǎng)絡(luò)對圖像特征的自動提取效果很好,使其能夠從霧天的圖像中得到重要的信息,實現(xiàn)圖像更加精準(zhǔn)的重建。
圖6 人物圖像去霧后的PSNR值比較
圖7 近景景物圖像去霧后的PSNR值比較
圖8 遠(yuǎn)景景物圖像去霧后的PSNR值比較
為了進(jìn)一步驗證本文算法的優(yōu)勢,把它與多特征融合的卷積神經(jīng)網(wǎng)絡(luò)模型(文獻(xiàn)[7]算法)和快速卷積神經(jīng)網(wǎng)絡(luò)模型(文獻(xiàn)[6]算法)進(jìn)行比較,分別選取文獻(xiàn)[7]算法中用到的美國明德大學(xué)的圖像庫中的Teddy圖片和文獻(xiàn)[16]算法ILSVRC2012數(shù)據(jù)集中的圖片進(jìn)行去霧比較,圖9-圖10是兩種神經(jīng)網(wǎng)絡(luò)模型的去霧實驗對比結(jié)果。
(a) 原始圖像 (b) 霧化圖像
(c)文獻(xiàn)[7]算法 (d) 本文算法圖9 與多特征融合神經(jīng)網(wǎng)絡(luò)模型的去霧效果對比
(a) 原始圖像 (b) 霧化圖像
(c) 文獻(xiàn)[16]算法 (d) 本文算法圖10 與快速神經(jīng)網(wǎng)絡(luò)模型的去霧效果對比
通過圖片可以直接看出經(jīng)過本文算法去霧后的圖片在輪廓線條上比文獻(xiàn)[7]算法更加清楚,對于原圖中左側(cè)的白色畫布顏色處理更加準(zhǔn)確,保持了畫布的原本的白色主體,但是在文獻(xiàn)[7]算法上,只有在畫布上與其他顏色的過渡有白色線條,但整體的白色畫布上呈現(xiàn)的是分布不均勻的灰色陰影。兩幅圖在PSNR上,文獻(xiàn)[7]算法為27.719 dB,本文算法為28.742 dB。
同時,本文算法和文獻(xiàn)[16]算法相對比,可以看出在狗的頭部,本文的算法對于顏色的恢復(fù)更加接近原圖,對圖像去霧在效果上更加徹底,而對于草叢部分的去霧效果,經(jīng)過本文算法處理后的圖像,在草叢效果上的輪廓更加清晰,一些細(xì)節(jié)上的處理,比如狗鏈的部分也更加的突出。兩幅圖在PSNR上,文獻(xiàn)[16]算法為27.362 dB,本文算法為26.569 dB。
根據(jù)以上對比實驗可以得出,盡管驗證的圖片是其他數(shù)據(jù)集的圖片,但是無論在直觀效果,還是數(shù)據(jù)對比上,本文算法都具有一定的優(yōu)勢,對圖片的處理更加的注重細(xì)節(jié)性。
前文提到的Ren算法在處理夜晚或者黑暗條件下的有霧圖像時有一定的局限,本文針對這個缺點所設(shè)計的算法同時對夜間有霧圖像的處理效果也很好。圖11-圖12是Ren算法與本文算法在夜間圖像去霧后的效果對比圖。可以看出本文對夜間圖像去霧效果要優(yōu)于Ren算法,對于圖片的右邊的車站牌上的文字恢復(fù)得更加清晰,對黃色的地標(biāo)線的輪廓也恢復(fù)得更加清楚。同時也可以看到,對于左上角的黑框中,本文算法的去霧更加徹底,在夜間燈光處不僅對輪廓保留清晰,而且對細(xì)節(jié)的把控也更加細(xì)致。在PSNR上Ren算法為18.452 7 dB,本文算法為25.362 7 dB,也可以得出本文的算法更適合對夜間有霧的圖像做去霧處理。
圖11 Ren算法去霧效果
圖12 本文算法去霧效果
本文利用CNN學(xué)習(xí)參數(shù)少、自動提取特征值的特性,提出了一種新的CNN網(wǎng)絡(luò)結(jié)構(gòu)——深度CNN模型,把通過深度卷積網(wǎng)絡(luò)得到的高頻圖像和原始有霧圖像的低頻圖像相結(jié)合,彌補(bǔ)了原來圖像去霧算法的顏色處理過度和天空顏色太接近霧的顏色而造成處理模糊等缺點和粗細(xì)CNN網(wǎng)絡(luò)對夜間和黑暗圖像去霧不徹底等缺點,在提高視覺效果的情況下,也提高了計算速度。實驗結(jié)果表明,本文算法重建得到的去霧圖像,在PSNR上平均增長了7~8 dB,更適合應(yīng)用到實際中。