高雅昆,張 雷,吳 超,胡永濤,陳慧波
(河南工學(xué)院 電氣工程與自動化學(xué)院,河南 新鄉(xiāng) 453003)
霧天拍攝到的圖像往往面臨顏色、細節(jié)信息丟失、對比度降低等問題,這對戶外視覺任務(wù)如目標檢測、識別、分割等帶來非常大的挑戰(zhàn)。如何有效去除圖像中的霧成為圖像與視覺領(lǐng)域的研究熱點。目前主流的圖像去霧算法主要針對的是單幅圖像,主要分為兩大類:基于人工先驗的去霧方法和基于深度學(xué)習(xí)的去霧方法。
基于人工先驗的去霧方法包括大氣光的估計、透射率圖求取和無霧圖像求取三個環(huán)節(jié),利用基于無霧圖像統(tǒng)計的人工先驗估計透射率圖,然后使用大氣散射模型恢復(fù)無霧結(jié)果。Tan等人[1]認為霧的存在降低了圖像對比度,因此可通過局部對比度最大化來增強模糊圖像的可見性。何等人[2]提出了暗通道先驗(Dark Channel Prior,DCP)來計算透射率圖。李等人[3]改進了暗通道先驗算法并成功應(yīng)用于航拍圖像去霧。Fattal[4]發(fā)現(xiàn)圖像塊的像素通常呈現(xiàn)一維分布,所以引入了色線一致性先驗進行去霧。Zhu等人[5]采用了彩色衰減先驗,開發(fā)了一種有監(jiān)督學(xué)習(xí)的圖像去霧方法。基于人工先驗的方法需要人為憑經(jīng)驗統(tǒng)計大量的有霧或無霧圖像的一般共有先驗特征,先驗特征發(fā)現(xiàn)嚴重依賴于特征設(shè)計者的專業(yè)素質(zhì)水平及經(jīng)驗,然而即使如此,人工先驗特征也不能完美適用所有霧天情況。
隨著深度學(xué)習(xí)中卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)、生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)等結(jié)構(gòu)的發(fā)展,基于深度學(xué)習(xí)的去霧方法取得了顯著的進展。基于深度學(xué)習(xí)的去霧方法大致可以分為兩類:依賴大氣光散射模型(Atmospheric Scattering Model,ASM)的去霧方法和不依賴ASM的去霧方法。在依賴ASM方法中,Cai等人[6]只使用深度神經(jīng)網(wǎng)絡(luò)估計透射率,并使用先驗假設(shè)估計大氣光,同時用L2損失來監(jiān)督訓(xùn)練,嚴格來說,這種方法不是端到端的去霧模型。Ren等人[7]提出多尺度卷積神經(jīng)網(wǎng)絡(luò)(Multi-Scale Convolutional Neural Networks,MSCNN),并實現(xiàn)了端到端的訓(xùn)練。Zhang等人[8]開發(fā)了稠密連接的金字塔去霧網(wǎng)絡(luò),同步學(xué)習(xí)透射率圖、大氣光和無霧圖像,并捕捉它們之間的相互關(guān)系。PANG等人[9]利用生成對抗網(wǎng)絡(luò)來聯(lián)合估計透射率圖、大氣光和無霧圖像,以消除霧。Li等人[10]提出的AOD-Net(All-in-One Dehazing Network)將大氣散射模型重新分解,以繞過透射率圖和大氣光強度的估計,從而簡化了網(wǎng)絡(luò)模型結(jié)構(gòu)。不依賴ASM類型的方法試圖以不求取ASM中的大氣光和透射率的方式直接實現(xiàn)圖像去霧。Ren等人[11]發(fā)現(xiàn)了兩種影響去霧過程的現(xiàn)象:(1)在大氣光的影響下,圖像的顏色有時會失真;(2)場景的能見度由于散射和衰減而降低。基于這兩種觀測結(jié)果,他們提出了融合白平衡、對比度增強和伽瑪校正三種輸入的門控融合網(wǎng)絡(luò)(Gated Fusion Network,GFN)來進行霧的去除。Qin等人[12]提出的特征融合注意力網(wǎng)絡(luò)(Feature Fusion Attention Network,FFA-Net)將注意力機制引入圖像去霧方法,并設(shè)計了一個包括通道注意力和像素注意力的特征注意模塊。Liu等人[13]提出的網(wǎng)格去霧網(wǎng)絡(luò)(Grid-DehazeNet)則是由預(yù)處理模塊、主干模塊和后處理模塊三個模塊組成的端到端可訓(xùn)練CNN圖像去霧網(wǎng)絡(luò)。FFA-Net、Grid-DehazeNet以及NLCA[14](NonLocal Channel Attention)三種方法的提出,證明了注意力機制在特征提取和圖像恢復(fù)過程中具有可靠的能力,為不使用ASM的去霧研究帶來了一種有效的策略。Hong等人[15]提出的知識蒸餾去霧網(wǎng)絡(luò)(Knowledge Distilling Dehazing Network,KDDN)研究了知識從教師網(wǎng)絡(luò)向?qū)W生網(wǎng)絡(luò)遷移的過程,首次將知識蒸餾技術(shù)應(yīng)用于圖像去霧,彌合了圖像去霧和知識蒸餾之間的鴻溝。
雖然監(jiān)督去霧算法已具有很好的性能,但它們高度依賴于成對的數(shù)據(jù)。實際情況要獲得完全匹配對應(yīng)的有霧、無霧圖像困難較大,無疑增加了算法設(shè)計的人工成本;而無監(jiān)督去霧方法更適用于真實世界的去霧任務(wù),能夠有效降低數(shù)據(jù)采集成本。為了擺脫對成對數(shù)據(jù)的依賴,Engin等人[16]、Zhao等人[17]、Liu等人[18]以及Anvari等人[19]相繼提出了依靠循環(huán)生成對抗網(wǎng)絡(luò)方法,以對抗學(xué)習(xí)的方式來合成霧天圖像并進行去霧模型的訓(xùn)練。上述GAN類方法雖然訓(xùn)練時不需要真實無霧圖像做監(jiān)督,但往往需要用無霧圖像來合成有霧圖像后再訓(xùn)練去霧網(wǎng)絡(luò),而Li等人先后提出的ZID(Zero-shot Image Dehazing)[20]和YOLY(You Only Look Yourself)[21]等方法則真正擺脫了對真實無霧圖像的依賴。不管是有監(jiān)督還是無監(jiān)督網(wǎng)絡(luò)都面臨的問題是模型的泛化能力不強,作為數(shù)據(jù)驅(qū)動的方式訓(xùn)練的模型往往都只適用于單一或有限的幾個場景,想要達到好的效果需要針對不同場景重新訓(xùn)練新的參數(shù),這無疑增加了設(shè)計人員的工作量。
基于上述分析,本文提出一種基于多重引導(dǎo)濾波的非深度學(xué)習(xí)單幅圖像去霧算法對霧天圖像進行去霧。本文算法流程結(jié)構(gòu)見圖1。

圖1 基于多重引導(dǎo)濾波的單幅圖像去霧算法流程圖
霧天圖像主要面臨的降質(zhì)有細節(jié)丟失,對比度降低,同時有霧圖像相比于無霧圖像整體的圖像亮度值偏白(無霧圖像應(yīng)當比有霧圖像亮度低)。基于以上先驗知識,基于多重引導(dǎo)濾波的單幅圖像去霧算法思路是:首先要有效降低圖像的亮度,尤其是濃霧區(qū)域的亮度;其次要增強圖像的細節(jié);最后就是保證去霧后的圖像在視覺效果尤其是亮度方面與原始降質(zhì)圖像無明顯區(qū)別。
去霧領(lǐng)域有個公用的假設(shè)或者也可以說是先驗:有霧圖像相比于無霧圖像整體的圖像亮度值偏白(無霧圖像應(yīng)當比有霧圖像亮度低)。所以我們首先利用Gamma變換來生成一幅亮度值有效降低的圖像,并認為該低照度圖像上已經(jīng)將大部分的霧去除了。基于Gamma變換的去霧基底圖像生成計算公式(1)。
GL-base(x)=power(min(I(x),λ1),λ2)
(1)
式中,I代表原始降質(zhì)圖像;GL-base代表Gamma變化后的低亮度去霧基底圖像;x代表每個像素點;min代表最小運算,加上該運算的目的是防止天空的區(qū)域亮度降低后顏色飽和度失真;power為冪函數(shù),其中min(I(x),λ1)為底,λ1為高亮度截斷值,λ2為冪次(Gamma變化當冪次小于1時可以有效增加低亮度像素的灰度值,當冪次值大于1時則可以有效降低高亮度像素灰度值,所以冪次設(shè)置為大于1的值)。圖2展示了灰度限制Gamma變換的去霧基底圖像獲取結(jié)果。

圖2 去霧基底圖像結(jié)果
經(jīng)過1.1節(jié)處理得到了去除了霧的基底圖像,本節(jié)的多重引導(dǎo)濾波處理主要是為了獲得細節(jié)圖像,以此來復(fù)原由于霧的存在而丟失的細節(jié)信息。引導(dǎo)濾波是由何凱明[22]提出,是一種性能十分有益的邊緣保持濾波器,其在模糊圖像的同時能夠較好地保持住圖像的主要邊緣結(jié)構(gòu)信息。鑒于此,我們采用引導(dǎo)濾波來進行圖像平滑,并且其中細節(jié)圖像的獲取主要利用將原始圖像與多次引導(dǎo)濾波后的濾波圖像進行相減而得到,整個過程可以參看圖1。細節(jié)圖像的計算公式為公式(2)。
(2)

(3)


圖3 細節(jié)圖像結(jié)果
在獲得去霧基底圖像與細節(jié)圖像后,接下來就是如何將二者融合以獲得去霧圖像,本文中我們采用了加法操作。具體計算見公式(4)。
GL-dehaze=λ3GL-base+λ4Gdetail
(4)
式中,Gdetail為公式(2)中的細節(jié)圖像;GL-base為公式(1)中的去霧基底圖像;GL-dehaze為低亮度去霧圖像;λ3,λ4為系數(shù)因子,用來調(diào)節(jié)兩部分的大小。圖4展示了低亮度去霧圖像獲取結(jié)果。

圖4 低亮度去霧圖像結(jié)果
在獲得低亮度去霧圖像后,雖然很大程度上對霧進行了去除,但圖像整體亮度卻較低,為了達到較好的視覺效果,我們將低亮度去霧圖像與原始圖像的亮度值進行比較,并利用對數(shù)變化來對圖像整體亮度值進行修正,具體見公式(5)。

(5)


圖5 最終去霧圖像結(jié)果
本文采用的實驗環(huán)境為:Windows10系統(tǒng),AMD R5600G CPU,32g內(nèi)存。測試圖像包括行業(yè)內(nèi)常用的真實場景圖像與合成場景圖像兩大類。實驗參數(shù)設(shè)置見表1。整個過程為了提升算法的運行效率,對于較大尺寸圖像,可以先進行下采樣或變化尺寸操作來降低圖像分辨率,之后再進行去霧操作,最后還要通過上采樣得到原尺寸大小的去霧結(jié)果。下采樣操作位置可見圖1中的黑色虛線框標記。

表1 不同方法讀數(shù)對比結(jié)果
當前對于去霧算法性能的優(yōu)劣評價主要有主觀質(zhì)量評價和客觀質(zhì)量評價兩種評價方法,主觀質(zhì)量評價方面主要是將不同去霧算法對相同圖像處理得到處理結(jié)果后對處理結(jié)果在直觀視覺感受方面的評價。主觀評價能夠在一定程度上反映處理算法的性能優(yōu)劣。圖6為本文算法與He[2]、AOD-net[10]、Meng[23]的主觀比較結(jié)果,五行圖片從上到下依次是原圖、He去霧結(jié)果圖、AOD-net去霧結(jié)果圖、Meng去霧結(jié)果圖和本文方法去霧結(jié)果圖,六幅圖像從左到右分別為遠景、樹林、天安門、玩具、山谷、游客。可以看出在游客與山谷圖像上,與本文算法相比,另外三種方法的去霧結(jié)果明顯顏色過飽和;He方法與Meng方法天安門圖像天空區(qū)域顏色失真較為明顯;AOD-net對樹林、遠景兩幅圖像去霧作用較為微弱;將圖像放大后可以發(fā)現(xiàn)所有去霧結(jié)果中本文方法的圖像細節(jié)更為豐富,圖像整體的清晰度更高。主觀評價可以證明本文算法的優(yōu)越性。

圖6 不同算法去霧結(jié)果主觀對比圖
為了證明本文方法的有效性,除了主觀評價外還需要客觀評價。常用的客觀評價指標有PSNR(Peak Signal to Noise Ratio)、SSIM(Structural Similarity)。其中PSNR被稱為峰值信噪比,作為有參考評價指標,正常評估時有無霧標準參考圖像和去霧后的待評估圖像,待評估圖像的PSNR值越高說明圖像的質(zhì)量越高(去霧結(jié)果與標準無霧圖像越接近)。實際使用時由于沒有標準無霧圖做參考,而是用原始有霧降質(zhì)圖像做參考,所以PSNR值應(yīng)越小越好。
SSIM是衡量兩幅圖像相似度的指標,其取值范圍為[0,1],計算時需要一幅參考圖像,如果參考圖像為真實無霧圖像,SSIM的值越大,表示圖像失真程度越小,說明圖像質(zhì)量越好,但是由于沒有真實無霧圖像,參考圖像實際選取的是有霧降質(zhì)圖像,所以此時也應(yīng)是SSIM值越小越好。
四種去霧方法的客觀評價指標值見表2。從表2可以看出,在四種方法中,本文方法的多項評價指標值均達到了最優(yōu)性能值(其中最優(yōu)值用紅色標識),這說明客觀評價指標上本文方法也要優(yōu)于另外三種方法。綜合主客觀評價指標可知本文算法優(yōu)于另外三種方法。

表2 不同方法去霧客觀評價對比結(jié)果
本文提出了一種基于多重引導(dǎo)濾波的單幅圖像去霧算法。將圖像去霧任務(wù)分成去霧基底圖像獲取、細節(jié)圖像獲取、低亮度去霧結(jié)果獲取與最終去霧圖像獲取四個步驟,利用灰度限制Gamma變換來計算得到去霧基底圖像,利用多重引導(dǎo)濾波來計算得到細節(jié)圖像,利用加權(quán)求和來計算得到低亮度去霧圖像,利用對數(shù)變換計算亮度提升系數(shù)來得到最終去霧結(jié)果。通過對比實驗,驗證了所提去霧算法的有效性與優(yōu)越性。