陳清江, 張 雪*, 柴昱洲
(1.西安建筑科技大學 理學院, 陜西 西安 710055; 2.空間電子信息技術研究院,陜西 西安 710000)
由于大氣的散射作用,在霧天采集的圖像通常細節(jié)模糊,色彩偏移,對比度較低,能見度較低,給交通系統(tǒng)、戶外視覺系統(tǒng)以及人們的生活帶來了嚴重的影響。因此,圖像去霧的研究在計算機視覺以及計算機圖像領域有著重要的現(xiàn)實意義。近年來,單幅圖像去霧技術取得了重大突破,這些方法的成功得益于強有力的先驗知識與假設。目前對于有霧圖像去霧的算法主要有3類:基于非模型的圖像去霧算法,基于模型的圖像去霧算法和基于學習的去霧算法?;诜悄P偷膱D像去霧算法是從人類視覺感受出發(fā),直接增強圖像對比度,修正圖像色彩對比度以改善圖像質量。Fan等[1]提出了一種基于Retinex的圖像去霧算法。Kim等[2]提出了一種用于對比度增強的直方圖均衡化算法。基于模型的圖像復原算法從圖像退化的物理模型出發(fā),恢復出盡可能逼真的清晰圖像。Tan等[3]使用馬爾可夫隨機場(MRF)模型拉伸圖像對比度,然而,輸出的去霧圖像顏色通常趨于最大飽和度,所以復原結果在場景深度突變處易產生光暈效應。Fattal等[4]提出了基于獨立分量分析的方法(ICA),使用MRF模型推斷整幅圖像的顏色,由于該方法基于局部小方塊的統(tǒng)計獨立假設,處理濃霧圖像復雜度高。He等[5]提出了一種基于暗原色先驗知識統(tǒng)計的方法,該方法具備物理有效性,但是當場景目標在很大的區(qū)域時,暗原色先驗知識統(tǒng)計可能無效,并且修補的傳輸圖層次不夠明顯,不能有效區(qū)分距離的遠近。Meng等[6]提出了一種有效的正則化方法,從對傳輸函數固有邊界約束的探索中恢復出了無霧圖像。Li等[7]提出了一種聯(lián)合估計場景深度和從有霧視頻序列中恢復清晰圖像的方法。Zhu 等[8]在對場景深度建模之前提出了顏色衰減,利用恢復的深度信息,對給定的有霧圖像進行去霧處理。盡管上述算法取得了很大的進步,但它們仍然依賴于各種先驗知識,并且仍然有局限性。目前,隨著深度學習理論的不斷發(fā)展,將該理論用于圖像去霧領域獲得了較好的效果,因此,基于學習的去霧算法可以被認為是第3類去霧算法。Ren等[9]利用卷積神經網絡估計了場景的透射率,根據大氣散射模型,恢復出無霧圖像。
本文提出了一種不需要基于先驗知識和假設的去霧算法,避免了對大氣光值和傳輸圖的估計。網絡設計分為兩個部分:第一部分進行特征提取,在多尺度映射的基礎上,使用反卷積增加圖像的空間維度;第二部分則是淺層與深層的合并,避免了圖像信息的丟失。
用大氣散射模型描述霧天圖像[10-12]的形成,大氣散射模型首先由McCartney[13]提出,由Narasimhan和Nayar[14]進一步發(fā)展。大氣散射模型為:
L(x)=t(x)H(x)+a(1-t(x)),
(1)
式中:x為像素點的空間坐標;L(x)為輸入圖像(即觀察到的有霧圖像)像素值;H(x)為輸出圖像(即恢復的無霧圖像)像素值;a為全局常量,表示全球大氣光值;t(x)為透射率圖,即傳輸圖。式中右邊第一項為直接衰減項,描述了場景輻射率在介質中衰減的結果;第二項為大氣光照,大氣光照反應了全局大氣光的散射導致場景顏色的偏移。傳輸圖t(x)描述的是光線通過大氣媒介傳播到達成像設備的過程中沒有被散射的部分,它能反映圖像上目標場景的遠近層次。當大氣同質時,傳輸圖t(x)可以定義為:
t(x)=e-βd(x),
(2)
圖1 霧天圖像形成Fig.1 Fog image formation
式中:β為散射率,當大氣均勻時,在一定時刻對于整幅圖像來說β是一個定值,d(x)為場景對象到傳感器的距離,即場景深度。
因此,去霧的目的是從有霧圖像L(x)中估算出大氣光值a和傳輸圖t(x),從而恢復出無霧圖像H(x),因此,這是一個病態(tài)問題。霧天圖像的形成過程如圖1所示。
卷積神經網絡是一種前饋型人工神經網絡,提供了一種端到端的學習模型,本文提出了一種多尺度卷積神經網絡,即通過不同尺度的濾波器進行卷積運算自動學習輸入圖像的特征,并通過反向誤差傳播不斷修正特征參數。卷積神經網絡相較于傳統(tǒng)的圖像處理算法的優(yōu)點之一在于,避免了對圖像復雜的前期預處理過程如人工提取特征等,可以直接輸入原始圖像。
本文網絡結構是一個端到端的系統(tǒng),它直接學習和估計霧天圖像與其無霧清晰圖像之間的映射關系,輸入霧天圖像,輸出估計的無霧清晰圖像。網絡結構主要分為特征提取層,多尺度映射層,反卷積重建層以及淺層特征與深層特征合并層。網絡結構如圖2所示。
圖2 本文網絡結構Fig.2 Network structure of this paper
3.1.1 特征提取
特征提取層包括3個卷積層,直接從原始霧天圖像中提取特征,設置每層濾波器尺寸都為3×3,個數都為12,逐步提取霧天圖像的細節(jié)信息。卷積操作進行特征提取的計算公式為
Gi(Y)=Wi*Gi-1(Y),
(3)
式中,Gi(Y)為輸出的第i層的特征圖,Wi為第i層的卷積核,Gi-1(Y)為i-1層的特征圖。*表示卷積操作。
本文選用參數修正線性單元(PReLU)作為網絡結構的激活函數,除了最后一層,其余每個卷積層與反卷積層的末端都接入此激活函數。Relu梯度在大多數情況下是一個常數,因此,在一定程度上避免了梯度消失問題,參數修正線性單元(PReLU)不僅具有以上優(yōu)點,而且還可以加快網絡的收斂速度。因此,PReLU比Relu更加有效。PReLU公式為
KPReLU(xi)=max(xi,0)+aimin(0,xi),
(4)
式中:xi為第i層的正區(qū)間輸入信號,ai為第i層的負區(qū)間的權系數。PReLU克服了ReLU的“特征死亡”缺點。所以卷積層的最終輸出為
Gi(Y)=KPReLU(Wi*Gi-1(Y)+Bi),
(5)
式中:Gi(Y)為最終輸出的第i層的特征圖,Bi為第i層的偏置值。
3.1.2 多尺度映射
在網絡結構的第四層采用多尺度映射,提取多尺度規(guī)模結構信息。通過4種尺寸分別為1×1,3×3,5×5,7×7的濾波器進行特征提取,濾波器是平行的,它們每一個都輸出4個特征圖,然后連接成16個特征圖,由于霧天圖像恢復通常依賴于短尺度和長尺度的紋理信息,因此使用不同尺度的濾波器提取特征。然后將16個特征圖輸入第五層,采用12個1×1的濾波器進行卷積,達到維度收縮,降低計算復雜度。詳細參數記錄如表1所示。(其中,Conv4-1表示第四層的濾波器大小為1×1的卷積層)
表1 網絡模型參數Tab.1 Network model parameters
續(xù) 表
3.1.3 反卷積
反卷積層(Deconvolution)在本網絡結構中起著一個重要作用,目的是增加圖像的空間維度,實現(xiàn)重建過程, 該層相當于上采樣。當步長s和濾波器尺寸k相等時,卷積將輸入圖像縮小k倍,而反卷積則會將輸入圖像放大k倍。因此,本文采用反卷積來擴展圖像空間尺寸,將進行淺層特征與深層特征的合并。如果將反卷積換為卷積,則會降低網絡的非線性性。使用濾波器尺寸分別為3×3,5×5,7×7的反卷積核大小進行反卷積,得到當濾波器尺寸為5×5去霧質量最好,所以本文采用尺寸為5×5×12的濾波器來聚合先前的特征向量,該過程可以表示為
Gi(Y)=σ[Wi*Gi-1(Y)+B],
(6)
式中:Gi(Y)為第i層反卷積層的輸出,Wi為反卷積層的權重參數,Gi-1(Y)為第i-1層卷積層的輸出特征圖。因此,該層輸出圖像塊的大小可以表示為
o=s(I-1)+R-2p,
(7)
式中:I為輸入的反卷積層圖像的大小,R為反卷積核的大小,s為步長,p為零填充大小。
3.1.4 淺層與深層特征合并
淺層網絡恢復出的圖像較為粗糙,缺少高頻細節(jié),相反,深度網絡可以更精確地恢復高頻細節(jié),因此,將反卷積層與第二層卷積層的特征圖進行合并,共有24個特征圖,如此進行連接,將刪除特征圖中的偽像素,減少細節(jié)信息的損失。最后,輸入3×3×3的卷積層,輸出清晰無霧圖像。整個網絡結構實現(xiàn)了精細的去霧效果。
在網絡訓練過程中,使用EuclideanLoss作為損失函數,用來計算輸入霧天圖像與預測的無霧圖像兩者差值的平方和,公式為
(8)
其中:yi表示第i組清晰圖像值,xi表示網絡結構的第i組輸出值,N為樣本訓練數目。對于網絡結構的訓練,需要收集大量的標簽數據,而現(xiàn)實中的大量的霧天圖像和對應的清晰圖像是不可用的,因此,我們使用通過大氣散射模型得到的霧天圖像來訓練網絡。利用隨機梯度下降法(SGD)和反向傳播算法進行網絡優(yōu)化得到最優(yōu)的網絡參數。
本節(jié)描述了實驗步驟與設置,實驗數據的獲取,并且將本文算法的去霧結果與其它算法的去霧結果進行主觀與客觀的對比分析。采用結構相似度(SSIM)[15]和峰值信噪比(PSNR)[16]兩個重要的圖像評價標準對合成霧天圖像去霧結果進行對比。
本文實驗步驟為:
(1)獲取霧天圖像數據集;
(2)進行網絡模型的訓練與測試;
(3)基于合成霧天圖像數據集的去霧結果與分析;
(4)基于真實霧天圖像數據集的去霧結果與分析。
本文實驗設置為:利用Caffe框架實現(xiàn)網絡,每層的權重均采用均值為0,方差為0.001的高斯分布進行隨機初始化。網絡模型采用固定的學習率,設置為0.000 01,動量參數設置為0.9,迭代次數為105次,本文提出的網絡結構其訓練速度快,去霧效果優(yōu)越。
本文實驗數據分為兩類,第一類來源于自然場景下的霧天圖像,第二類來源于Middlebury Stereo Datasets,選出58幅清晰圖像以及所對應的深度圖,將這58幅圖像通過大氣散射模型式(1)與式(2)建立霧天圖像數據集。散射率β隨機設置為(0.75,1.5),因為如果散射率β太小,形成的霧圖存在噪聲,太大會使得傳輸圖變成0。大氣光值a隨機設置為(0.7,1.0)。每組圖像隨機選取兩個散射率β值和兩個大氣光值a,得到232幅霧天圖像,將200幅霧天圖像作為訓練樣本,32幅作為測試樣本。為擴大數據的樣本與提高訓練數據的有效性,將訓練樣本與測試樣本的每組圖像首先分別進行90°,180°,270°的旋轉,然后進行2,3,4,5倍的放大,分別得到4 000幅和640幅霧天圖像作為最終的訓練樣本與測試樣本。圖3所示為形成的部分霧天圖像。
圖3 部分霧天圖像Fig.3 Part of the fog image
為驗證本文算法對合成霧天圖像的去霧效果,將本文算法與He 算法[5]、Meng 算法[6], Li 算法[7]、Zhu 算法[8]、Ren 算法[9]進行了比較。合成霧天圖像通過大氣散射模型進行合成。在圖4~圖6中,展示了部分合成霧天圖像的去霧結果對比。
圖4 不同算法對霧天圖像Cones的去霧結果Fig.4 Defogging results of fog image cones with different algorithms
圖5 不同算法對霧天圖像Dolls的去霧結果Fig.5 Defogging results of fog image dolls with different algorithms
圖6 不同算法對霧天圖像teddy的去霧結果Fig.6 Defogging results of fog image teddy with different algorithms
由圖4~圖6可看出,He 算法[5]和Meng 算法[6]產生了過度強化和過度飽和的結果。例如,He 算法在圖dools和teddy上產生了偽影現(xiàn)象,Meng 算法在圖dools中整體背景顏色偏白。Li 算法[7]、Zhu 算法[8]和Ren 算法[9]方法仍然可以在幾個區(qū)域去霧,并且去霧圖像較為清晰。本文的去霧圖像更加平滑,可以去除輸入霧天圖像中的薄霧,細節(jié)和紋理更加明顯,可以恢復顏色和外觀,而且接近真實清晰圖像。
為了定量地評價這些方法,我們選取Middlebury Stereo Datasets的合成有霧圖像作為測試集,使用結構相似度(SSIM)[15]和峰值信噪比(PSNR)[16]兩個重要的圖像評價標準來衡量每一對無霧圖像和去霧結果之間的差異。
首先,KPSNR是評價圖像質量最廣泛使用的客觀標準之一。它是一種全參考評價方法,需要參考圖像。給定兩個圖像,它們之間的PSNR定義為:
(9)
式中:fin為清晰無霧圖像,fout為去霧圖像。如果PSNR值越大,圖像的失真就越小。這意味著圖像質量越高,去霧性能越好。
KSSIM被認為與人類視覺系統(tǒng)的質量感知有關,它衡量圖像亮度、對比度和結構的相似性。KSSIM的定義如下:
(10)
合成霧天圖像不同算法的客觀指標對比結果如表2所示,本文算法的PSNR值和SSIM值相對其他經典算法都比較高,和Ren 等[9]利用卷積神經網絡所恢復的去霧圖像相比,無論是PSNR值還是SSIM值,都有較大提高。因此,說明本文的網絡模型具有明顯的優(yōu)勢且有良好的去霧能力。
表2 不同算法的PSNR與SSIM的對比結果Tab.2 Comparison results of PSNR and SSIM with different algorithms
本文討論了有霧圖像的一些去霧算法,以驗證本文所提供算法的有效性。首選現(xiàn)實世界中經常使用的霧天圖像,將所提出的方法與He 算法[5]、Meng算法[6]、Li 算法[7]、Zhu算法[8]、Ren 算法[9]進行比較,如圖7與圖8所示。在圖像恢復中,信息熵(Entropy)表示圖像的信息量;平均梯度(Average gradient)表示圖像層次的豐富程度,指標越大,圖像細節(jié)信息越明顯,獲取圖像信息越豐富,圖9與圖10展示了不同算法在真實霧天圖像上的去霧評價指標的結果。
圖7 自然霧天圖像pumpkin的去霧結果對比Fig.7 Comparison of defogging results of natural foggy images of pumpkin
圖8 自然霧天圖像girls的去霧結果對比Fig.8 Comparison of defogging results of natural foggy images of house girls
圖9 不同算法的平均梯度的對比結果Fig.9 Comparison results of the average gradient with different algorithms
圖10 不同算法的信息熵的對比結果Fig.10 Comparison results of information entropy with different algorithms
由圖7~圖8可看出,He 算法[5]、Meng 算法[6]與Li 算法[7]高估了霧霾的厚度,對天空區(qū)域敏感,因此出現(xiàn)過度增強的區(qū)域,恢復的圖像顏色存在失真情況,如He 算法對于自然霧天圖像Pumpkin的去霧,天空區(qū)域顏色較深,變成了深藍色,在圖像girls中面部顏色也有所加深,Li 算法在圖pumpkin中,天空區(qū)域變成了綠色,Meng 算法在圖像Girls中,面部和頭發(fā)處顏色偏白;Zhu 算法[8]與Ren 算法[9]的結果在天空區(qū)域都有顯著改善,可以增加圖像細節(jié),提高圖像的可見性;然而,在稠密的霧霾區(qū)域仍有一些殘留的霧霾。因為卷積神經網絡能夠學習天空區(qū)域來保持顏色,并保證在其他區(qū)域有良好的去霧效果,其中塊屬性可以在網絡結構的隱藏層中學習,它有助于在天空中達到良好的去霧效果。因此,本文方法在具有挑戰(zhàn)性的天空區(qū)域產生了良好的除霧性能,在沒有顏色扭曲或偽影的稠密霧霾區(qū)域更加直觀,結果具有良好的對比度、生動的色彩和視覺效果,并且由圖9~圖10可看出評價指標值都相對較高,表明本文去霧算法的效果較為優(yōu)越。
現(xiàn)有的圖像去霧方法的性能受到人工提取特征的限制,如暗通道,色差和最大對比度,去霧方法復雜,本文提出的基于多尺度的卷積神經網絡去霧算法,克服了傳統(tǒng)的去霧算法需要人工提取特征,對比度低的缺點。實驗結果表明,本文提出的去霧算法的PSNR值和SSIM值都相對較高,去霧效果相對于現(xiàn)有的一些算法有一定改進。