馬學(xué)條
(杭州電子科技大學(xué)電子信息學(xué)院,杭州 310018)
常用的圖像去霧算法有基于對比度增強、基于物理模型和基于卷積神經(jīng)網(wǎng)絡(luò)等?;趯Ρ榷仍鰪姷娜レF算法和基于物理模型的去霧算法,兩種傳統(tǒng)數(shù)字圖像去霧算法比較依賴參數(shù)的估計,并且無法調(diào)用硬件設(shè)備進(jìn)行算法加速,當(dāng)圖像尺寸較大、樣本數(shù)量較多時,圖像去霧處理效率會顯著下降。
基于變形大氣散射模型的快速去霧網(wǎng)絡(luò)AODNet,是一種使用卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建的端到端的圖像去霧模型,通過將大氣散射模型需要分別計算的大氣光值和投射率整合為一個中間未知量,簡化了去霧模型,大幅度提升了去霧的處理速度,但是該算法進(jìn)行去霧處理時容易出現(xiàn)圖像色調(diào)丟失和圖像偏暗等現(xiàn)象[1]。隨著深度學(xué)習(xí)在圖像處理領(lǐng)域的快速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)憑借高效的特征提取效率,使其在圖像去霧領(lǐng)域得到了廣泛的應(yīng)用。
本文針對AOD-Net去霧圖的細(xì)節(jié)信息丟失問題,提出一種基于改進(jìn)AOD-Net 的端到端圖像去霧算法,從網(wǎng)絡(luò)結(jié)構(gòu)和損失函兩個方面對算法進(jìn)行了改良,擬有效提升了霧圖細(xì)節(jié)的處理能力。
Mc Cartney提出的大氣散射模型由入射光衰減模型(attenuation model)和大氣光成像模型(airlight model)兩部分組成[2]。
(1)入射光衰減模型
式中:E0為入射光在距離為0 的地方的光照強度;d為場景深度;β為單位體積內(nèi)大氣中的微粒對光線散射的能力,即散射系數(shù)。
(2)大氣光成像模型
式中,A表示大氣光值,通常是全局上的常量。
大氣光值模型也為有霧圖像的成像退化模型,其表達(dá)式為2 個衰減模型的總和,即:
式中,N為有霧圖像素點個數(shù)。為方便,定義EN=I(x),E0=J(x),e-βd=t(x),可得:
式中:I(x)為有霧圖像;J(x)為待恢復(fù)的無霧圖像;t(x)為投射率。
將式(4)進(jìn)行變形整理,得到待恢復(fù)的無霧圖像表達(dá)式為
將式(4)中的大氣光值和投射率整合為1 個中間未知量K,定義為K值估計模型,其表達(dá)式為
式中,b為常數(shù)偏置,默認(rèn)值為1。
根據(jù)大氣散射模型原理,將估計得到的K(x)代入式(5),可得清晰無霧圖片生成模型
AOD-Net去霧模型算法由K值估計模型和清晰無霧氣圖片生成模型2 部分組成,AOD-Net 算法的去霧框架如圖1 所示。
圖1 AOD-Net去霧框架
K值估計模型的網(wǎng)絡(luò)結(jié)構(gòu)由5 個卷積層和3 個連接層組成,如圖2 所示。
圖2 K值估計模型的網(wǎng)絡(luò)結(jié)構(gòu)
K值估計模型中,卷積層采用不同大小的卷積核來獲取圖像特征,每個卷積層都使用了3 個卷積核[3]。為了將不同卷積層獲取到的特征相結(jié)合,網(wǎng)絡(luò)結(jié)構(gòu)在不同的卷積層間加入了連接層。第1 個連接層將第1 個和第2 個卷積層提取到的特征相結(jié)合,第2個連接層將第2 個和第3 個卷積層提取到的特征相結(jié)合,第3 個連接層將第1 個、第2 個、第3 個和第4 個卷積層提取到的特征相結(jié)合[4]。網(wǎng)絡(luò)模型利用連接層實現(xiàn)了從低層特征到高層特征的平滑轉(zhuǎn)換,又補償了在卷積過程中的信息損失[5]。
AOD-Net算法采用單尺度的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行特征提取,對圖像的紋理和細(xì)節(jié)恢復(fù)程度較差[6]。本文采用高斯圖像金字塔模型設(shè)計了3 個尺度圖像的網(wǎng)絡(luò)結(jié)構(gòu),提升去霧圖像的邊緣細(xì)節(jié)質(zhì)量,使其更加符合人眼視覺感受,改進(jìn)AOD-Net 多尺度網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 改進(jìn)AOD-Net多尺度網(wǎng)絡(luò)結(jié)構(gòu)
多尺度網(wǎng)絡(luò)結(jié)構(gòu)中將原尺度輸入圖片B1進(jìn)行2次下采樣操作,獲得2 倍下采樣圖片B2和4 倍下采樣圖片B3,B1、B2、B3的尺寸分別為640 ×480、160 ×120、40 ×30。將B3輸入到小尺度網(wǎng)絡(luò)結(jié)構(gòu)的K值估計模型得到該尺度的特征圖,結(jié)合無霧圖片生成模型提取該尺度的無霧圖S3[7]。將S3進(jìn)行2 倍上采樣,恢復(fù)至與中尺度網(wǎng)絡(luò)結(jié)構(gòu)輸入圖一致的尺寸,將恢復(fù)后的S3與B2進(jìn)行通道合并后輸入到中尺度網(wǎng)絡(luò)結(jié)構(gòu)的K值估計模型,類似操作得到無霧圖S2[8]。最后,將進(jìn)行2 倍上采樣S2的與B1合并輸入到大尺度網(wǎng)絡(luò)結(jié)構(gòu),獲得最終的無霧圖S1。由于小尺度、中尺度的輸出圖會合并到中尺度、大尺度K值估計模型的輸入端,因此這2 個尺度網(wǎng)絡(luò)結(jié)構(gòu)的輸入通道數(shù)為6。
常見的損失函數(shù)一般是基于L1和L2進(jìn)行設(shè)計,它們也被稱為MAE和MSE。L1損失函數(shù)是比較像素差異后將像素相減取絕對值,L2損失函數(shù)是比較像素差異后將對應(yīng)像素相減取平均值,L1損失函數(shù)和L2損失函數(shù)的表達(dá)式分別為:
式中:P為圖像塊;p為圖像塊中的像素點;N為圖像塊中的像素數(shù);x(p)表示生成的無霧圖的像素值;y(p)表示有霧圖的像素值。
本文在設(shè)計網(wǎng)絡(luò)損失函數(shù)時將結(jié)構(gòu)相似性(Structural Similarity,SSIM)的差異值作為損失函數(shù)的一部分加入網(wǎng)絡(luò)訓(xùn)練[9]。由于SSIM 值是越大越好,因此取1-SSIM 的值作為損失函數(shù),其損失函數(shù)表達(dá)式為
由于損失函數(shù)通常配合卷積網(wǎng)絡(luò)使用,因此計算損失函數(shù)時只需要計算中央像素的損失,其表達(dá)式為
式中:α為損失函數(shù)的權(quán)重系數(shù);G為像素的高斯分布系數(shù)。
(1)SSIM 評價指標(biāo)。SSIM是衡量2 幅圖像相似度的指標(biāo),其指標(biāo)越大代表對比圖的3 個指標(biāo)越接近標(biāo)準(zhǔn)清晰圖。給定2 個圖像x和y,其結(jié)構(gòu)相似性。
式中:μx為x的平均值;μy為y的平均值;為x的方差;為y的平均值;σxy為x和y的協(xié)方差;c1和c2為用來維持穩(wěn)定的常數(shù)。
(2)PSNR評價指標(biāo)。峰值信噪比(Peak Signal to Noise Ratio,PSNR)代表了圖像峰值信號的能量與圖像噪聲的平均能量之比,用來衡量處理圖的失真程度,兩幅圖像間的PSNR越大,則越相似[10]。它是原圖像與被處理圖像之間的均方誤差相對于(2n-1)2的對數(shù)值,其表達(dá)式為
(3)Entropy評價指標(biāo)。圖像熵Entropy表示圖像信源的平均信息量,Entropy 值越大圖像去霧效果越好,圖像灰度值的出現(xiàn)概率pij和圖像熵Eij表達(dá)式分別為:
式中:f(i,j)為灰度圖像在坐標(biāo)(i,j)處的灰度值;pij為每一灰度級出現(xiàn)的概率;M為圖像尺度。
(4)BRISQUE 評價指標(biāo)。BRISQUE 是一個經(jīng)典的利用自然場景統(tǒng)計進(jìn)行無參考圖像評價的模型,其值越小圖片質(zhì)量越高。算法總體原理是從圖像中提取均值減去對比度歸一化(MSCN)系數(shù),將MSCN系數(shù)擬合成非對稱性廣義高斯分布,提取擬合的高斯分布的特征,輸入到支持向量機(jī)中做回歸,從而得到圖像質(zhì)量的評估結(jié)果。
(5)圖像均值Mean 評價指標(biāo)。圖像均值反映圖像的亮度,均值越大反應(yīng)圖像亮度越大,均值越大說明圖像的質(zhì)量越好,其表達(dá)式為
式中:xi為像素值為圖像像素均值;N為像素個數(shù)。
本文選用NYU 霧氣數(shù)據(jù)集進(jìn)行訓(xùn)練[11],數(shù)據(jù)集含有1449 張清晰圖和27531 張合成霧圖,訓(xùn)練時將合成霧圖按8∶1∶1的比例分為訓(xùn)練集、測試集和驗證集。為了確定本文設(shè)計的混合損失函數(shù)的權(quán)重系數(shù)α,采用了一種范圍縮小的方法進(jìn)行取值確定,訓(xùn)練迭代次數(shù)為1000。設(shè)置α=0.1 ~0.9,間隔為0.1,使用式(11)混合損失函數(shù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,計算改進(jìn)AOD-Net算法生成圖與標(biāo)準(zhǔn)圖之間的SSIM 和PSNR值,如圖4 所示為其圖像指標(biāo)變化曲線。由圖4 可知,權(quán)重系數(shù)α=0.7 ~0.8,SSIM 和PSNR 的值同時為最大值,因此,可確定最優(yōu)取值在0.7 ~0.8 之間,繼續(xù)以0.01為間隔,使用式(11)混合損失函數(shù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。改進(jìn)的AOD-Net 算法SSIM 和PSNR 曲線如圖5所示。
圖4 α為0.1 ~0.9時改進(jìn)AOD-Net算法圖像指標(biāo)變化曲線
圖5 α為0.71 ~0.79時改進(jìn)AOD-Net算法圖像指標(biāo)變化曲線
由圖5 可知,綜合SSIM和PSNR兩種評價指標(biāo),α的取值為0.77 最適合本文霧氣數(shù)據(jù)集的訓(xùn)練。
α=0.77 時,式(11)的混合損失函數(shù)對改進(jìn)AODNet網(wǎng)絡(luò)模型訓(xùn)練時的Loss走勢曲線如圖6 所示。由圖可知,當(dāng)訓(xùn)練1000 輪時曲線已處于收斂狀態(tài)。
圖6 改進(jìn)AOD-Net算法損失函數(shù)曲線
本文所提出的基于改進(jìn)AOD-Net 的端到端去霧算法與幾種經(jīng)典的去霧算法進(jìn)行了主觀視覺質(zhì)量和客觀評價指標(biāo)的對比,包括2 種傳統(tǒng)數(shù)字圖像去霧算法(CAP 和DCP)、1 種基于卷積神經(jīng)網(wǎng)絡(luò)去霧算法(AOD-Net)。
在合成有霧數(shù)據(jù)集上進(jìn)行去霧效果實驗,通過主觀視覺感受分析各算法的優(yōu)劣,再結(jié)合SSIM 和PSNR 2 個評價指標(biāo)從客觀數(shù)值上系統(tǒng)性的評價各算法的去霧效果[12]。如圖7 所示為4 種去霧算法在室內(nèi)辦公室、室內(nèi)廚房、室外馬路和室外建筑物4 幅合成霧圖上的去霧效果。表1 所示為4 種去霧算法在室內(nèi)辦公室、室內(nèi)廚房、室外馬路和室外建筑物4 幅合成霧圖上的SSIM和PSNR指標(biāo)平均值。
表1 4 種去霧算法在4 幅合成霧圖上的SSIM和PSNR平均值
圖7 展示了各算法在NYU 合成霧圖上的去霧效果。由圖7(c)可見,CAP算法處理的圖像去霧效果不佳,圖像對比度過高;由圖7(d)可見,DCP算法處理的圖像略微偏暗,圖像細(xì)節(jié)存在一定的失真情況;由圖7(e)可見,AOD-Net算法處理的圖像整體偏暗,過于簡單的損失函數(shù)使得圖像細(xì)節(jié)恢復(fù)效果不理想;由圖7(f)可見,改進(jìn)的AOD-Net 算法去霧后的圖像較為清晰,去霧圖的細(xì)節(jié)和色調(diào)均與清晰無霧圖十分接近[13]。
由表1 可見,改進(jìn)的AOD-Net算法在合成霧圖上的SSIM 和PSNR 平均數(shù)值相較CAP、DCP、AOD-Net算法均有一定幅度的提升,實驗數(shù)據(jù)表明改進(jìn)的AODNet算法去霧后的圖像與標(biāo)準(zhǔn)清晰圖像的相似度更接近,同時也驗證了本文所提出的改進(jìn)方式是有效的。
對自然環(huán)境中拍攝的真實霧圖進(jìn)行去霧實驗,通過主觀視覺感受分析各算法的優(yōu)劣,再結(jié)合Entropy、Brisque、Mean 3 個數(shù)值從客觀上分析各算法的去霧效果[14]。如圖8 所示為CAP、DCP、AOD-Net、改進(jìn)AODNet 4 種算法在室外建筑群、室外景點、室外山水和室內(nèi)餐廳4 幅真實霧圖上的去霧效果。表2 所示為各去霧算法在室外建筑群、室外景點、室外山水和室內(nèi)餐廳4 幅真實霧圖上的Entropy、Brisque和Mean指標(biāo)平均值。由圖8 可見,各算法在真實霧圖上去霧效果與合成霧圖上的效果基本類似。由圖8(b)可見,CAP算法去霧效果不佳;由圖8(c)可見,DCP 算法容易出現(xiàn)圖像失真情況;由圖8(d)可見,AOD-Net 算法處理的圖像整體亮度偏暗,圖像細(xì)節(jié)恢復(fù)質(zhì)量不佳;由圖8(e)可見,改進(jìn)的AOD-Net算法較為有效地去除了圖像中的霧氣,去霧后的圖像也較為清晰。
表2 去霧算法在4 幅真實霧圖上的Entropy、Brisque和Mean平均值
圖8 3種去霧算法對4幅真實霧圖的去霧效果對比(從左到右依次為室外建筑群、室外景點、室外山水和室內(nèi)餐廳)
由表2 可知,改進(jìn)的AOD-Net 算法在真實霧圖上的Entropy和Mean平均數(shù)值相較DCP、CAP、AOD-Net算法均有一定幅度的提升,表明改進(jìn)的AOD-Net 算法在圖像去霧效果、圖像細(xì)節(jié)保留程度和圖像對比度等方面有著更好的表現(xiàn)[15]。改進(jìn)的AOD-Net 算法在真實霧圖上,Brisque 平均數(shù)值較DCP 算法雖然有小幅的上升,但從圖8 展示的去霧效果分析可知,該算法出現(xiàn)了嚴(yán)重的圖像失真;改進(jìn)的AOD-Net算法在真實霧圖上,Brisque平均數(shù)值相較CAP 和AOD-Net 算法均有一定幅度的下降,實驗數(shù)據(jù)表明改進(jìn)的AOD-Net 算法在圖像去霧效果、圖像細(xì)節(jié)保留程度和圖像對比度等方面有著很好的表現(xiàn),再次驗證了本文所提出的改進(jìn)方式是有效的[16]。
本文從網(wǎng)絡(luò)結(jié)構(gòu)和損失函數(shù)兩部分對AOD-Net去霧算法進(jìn)行了改進(jìn),提出了改進(jìn)AOD-Net 去霧算法,該算法在合成霧圖上的SSIM和PSNR平均數(shù)值分別為0.9401 和24.6914,在真實霧圖上的Entropy、Brisque和Mean平均數(shù)值分別為7.2693、39.5154 和168.2491,相比其他算法,在圖像去霧效果等方面有著更優(yōu)秀的表現(xiàn)。后續(xù)將繼續(xù)增加數(shù)據(jù)集的圖片數(shù)量和更多的霧天場景,進(jìn)一步提高去霧效果,為應(yīng)用于霧天環(huán)境的智能輔助駕駛奠定基礎(chǔ)。