叢曉峰,章 軍,胡 強
(安徽大學 電氣工程與自動化學院,安徽 合肥 230000)
空氣中的懸浮粒子在光線散射下會造成成像設(shè)備采集到的圖片質(zhì)量退化。近年來霧霾天氣頻發(fā),對道路監(jiān)控、無人駕駛、出行攝影等均造成了不同程度的負面影響,研究人員為此提出了一系列的去霧算法。Zhao[1]提出了基于最大最小光強的偏振去霧方法,Dai[2]采用全局參數(shù)自動估計的偏振方法進行彩色圖像去霧,但它們需要的3 種不同角度下拍攝的偏振圖像無法通過常規(guī)攝像設(shè)備獲取;He[3]提出了基于暗通道的去霧算法,Yang[4]通過實驗證明了He 方法不適用于天空區(qū)域,并通過自適應線性透射率估計對He 方法進行了改進,Borkar[5]將暗通道與鄰近算法結(jié)合提升了算法魯棒性,但是Yang 與Borkar 算法估計參數(shù)方式較復雜,容易產(chǎn)生累積誤差;Zhu[6]根據(jù)有霧圖像的顏色信息的規(guī)律提出了顏色衰減先驗,由于其未根據(jù)特定數(shù)據(jù)進行建模導致它容易出現(xiàn)去霧殘留?;谏疃葘W習的方法主要利用神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)分布學習能力,Cai[7]采用深度卷積網(wǎng)絡(luò)實現(xiàn)了端到端的透射圖估計并結(jié)合物理模型設(shè)計了DehazeNet,Ren[8]通過結(jié)合不同尺度特征提出了多尺度卷積神經(jīng)網(wǎng)絡(luò)去霧,Wei[9]采用引導濾波與深度卷積網(wǎng)絡(luò)結(jié)合提出了低色彩失真的去霧算法,但是Ren、Cai和Wei 方法在訓練過程中均需要成對數(shù)據(jù)導致應用范圍受限;Engin[10]從圖圖轉(zhuǎn)換的角度實現(xiàn)了不需要成對數(shù)據(jù)作為監(jiān)督的域轉(zhuǎn)換網(wǎng)絡(luò),但是實驗結(jié)果表明該方法容易造成圖像整體色調(diào)偏暗。
針對現(xiàn)有去霧方法容易造成圖像顏色失真、容易引入噪聲信號并造成圖像結(jié)構(gòu)形變的問題,提出了基于對偶學習的對偶去霧網(wǎng)絡(luò),通過在3 個公開數(shù)據(jù)集上的實驗證明了算法的優(yōu)越性。
對偶學習機制最初在機器翻譯領(lǐng)域中被提出,它的核心思想是將原始任務(wù)和對偶任務(wù)作為兩個相互輔助的模塊。比如將英語到法語的翻譯視為是原始任務(wù),將法語到英語的翻譯作為對偶任務(wù),借此形成的閉環(huán)過程稱為對偶學習。提出的對偶去霧網(wǎng)絡(luò)將去霧與形成霧的過程視為對偶過程,采用兩個過程相互輔助訓練的迭代模式。對偶去霧網(wǎng)絡(luò)的核心子網(wǎng)絡(luò)為Yi[11]借助對偶學習設(shè)計的風格遷移網(wǎng)絡(luò)DualGAN(Dual Generative Adversarial Network)。為了進一步提高去霧表現(xiàn),引入了預訓練特征提取網(wǎng)絡(luò)[12]網(wǎng)絡(luò)以及感知損失[13](用預訓練模型計算歐式距離)用于提高峰值信噪比并減小色差。對偶去霧網(wǎng)絡(luò)首先將重構(gòu)圖片送入用于特征提取的預訓練網(wǎng)絡(luò),然后最小化去霧圖片和真實無霧圖片的特征之間的距離以實現(xiàn)特征層面的約束。
提出的對偶去霧網(wǎng)絡(luò)包含DualGAN 以及一個預訓練特征提取網(wǎng)絡(luò)。假設(shè)U 和V 分別表示有霧圖片域和無霧圖片域。DualGAN 包含圖1 中的GU、GV、DU 和DV4 個子網(wǎng)絡(luò)。其中GU 和GV 分別表示域U 和域V 的生成器,GU 負責學習有霧到無霧圖像之間的映射,也就是原始任務(wù),GV 負責學習無霧圖像到有霧圖像的映射,即為對偶任務(wù),通過原始任務(wù)與對偶任務(wù)聯(lián)合訓練實現(xiàn)對偶學習模式;DU 和DV 分別表示域U 和域V 的判別器,DU用于判別其輸入來自GU 的去霧圖像還是來自真實的無霧圖像,DV 用于判別其輸入來自GV 合成霧的圖像還是真實有霧圖像。
圖1 對偶去霧網(wǎng)絡(luò)的整體結(jié)構(gòu)Fig.1 Overall structure of dual defogging network
生成器GU 與GV 的結(jié)構(gòu)完全相同,其卷積和反卷積操作的卷積核尺寸均5×5,步長均為2,首先通過連續(xù)的卷積操作降低維度,然后通過連續(xù)的反卷積獲得與輸入有霧圖像(尺寸為256×256 像素,通道數(shù)為3)相同維度的無霧輸出,箭頭表示在通道上進行拼接操作;每一層都采用卷積網(wǎng)絡(luò)中普遍采用的BN(batch normalization,批正則化)和ReLU(rectified linear unit,線性整流單元)作為非線性映射函數(shù)。判別器DU 和DV 結(jié)構(gòu)完全相同,卷積層采用尺寸為5×5 且步長為2 的卷積核進行所有的卷積操作。計算感知損失的預訓練特征提取網(wǎng)絡(luò)為分類網(wǎng)絡(luò),具體參數(shù)見文獻[12],對偶去霧網(wǎng)絡(luò)利用了它的第2 個池化層(pooling layer)和第5 個池化層的輸出作為特征提取模塊,并采用其在ImageNet[14]上的參數(shù)版本。
在網(wǎng)路訓練中,首先在有霧圖像域U 中進行采樣得到樣本u,通過GU 可以獲得轉(zhuǎn)換后的圖像u-v,實現(xiàn)有霧圖像到無霧圖像的轉(zhuǎn)換;然后將uv送入生成器GV 獲得重構(gòu)的有霧圖像,這種方式可以使得網(wǎng)絡(luò)不需要監(jiān)督信息并且快速地學習數(shù)據(jù)分布。最后,將重構(gòu)圖像與原始圖像同時送入預訓練特征提取網(wǎng)絡(luò)中計算二者的特征向量,并使用特征向量計算歐幾里得距離,也就是感知損失。網(wǎng)絡(luò)盡管訓練過程比較復雜,但是訓練完成以后只需要保存生成器GU 的參數(shù)用于測試階段的去霧。在每次輸入數(shù)據(jù)時以小批量輸入的方法來減少計算開銷;實驗中采用每次一張有霧圖像與一張無霧圖像作為輸入,二者并不需要為同一場景,學習率設(shè)置為0.000 1,采用隨機梯度下降算法對損失函數(shù)進行優(yōu)化。
基本的GAN[15]包含一個用于學習數(shù)據(jù)分布的生成器G(generator)和一個用于鑒別樣本真?zhèn)蔚呐袆e器D(discriminator),通過G 和D 的梯度交替更新實現(xiàn)二者的相互博弈。GAN 的損失函數(shù)可以表達如下:
式中:x為從數(shù)據(jù)集采樣得到的樣本;z需要符合某種分布(比如高斯分布),對偶去霧網(wǎng)絡(luò)通過對偶的圖片域代替了原始GAN 的z。
作為對偶去霧網(wǎng)絡(luò)的核心組件,DualGAN 包含兩個基本的GAN 網(wǎng)絡(luò)以實現(xiàn)對偶的訓練方式。訓練過程中從域U 和域V 隨機采樣得到樣本u和樣本v。其判別器的損失函數(shù)表示為
整體的判別器算為(2)式和(3)式的線性疊加:
DualGAN 采用L1 范數(shù)約束圖像的重構(gòu)(rec 為reconstruction 簡寫)過程為(v的重構(gòu)損失與u同理)
結(jié)合對抗損失可以得到它的整體生成器損失為
式中 λu與 λv為 權(quán)重參數(shù),為了保證單一變量的對比,實驗中其值與文獻[11]保持一致。通過(4)式與(6)式得到DualGAN 的整體損失函數(shù):
對偶去霧網(wǎng)絡(luò)結(jié)合了原始DualGAN 的損失以及從特征空間進行計算的感知損失作為整體的損失函數(shù)。為了結(jié)合不同尺度的特征信息,對偶去霧網(wǎng)絡(luò)選擇了圖1 中的第2 和第5 個pooling 層作為特征提取器并分別表示為?(x) 和ψ(x),通過計算特征提取器輸出的L2 距離得到感知損失如下:
最終得到的對偶去霧網(wǎng)絡(luò)整體損失函數(shù):
對生成器A 和生成器B 均采用最小最大化博弈:
實驗中將對偶去霧網(wǎng)絡(luò)與以下幾種算法進行了比較,各種方法的核心原理為:He[3]認為在非天空室外圖像的局部區(qū)域中,至少存在一個顏色通道具有非常低的像素值,通過假設(shè)這些像素值趨近于零,得到透射圖與大氣光的估計,最后借助大氣散射模型實現(xiàn)圖像去霧;Zhu[6]提出的顏色衰減先驗認為圖像的深度與亮度、飽和度之間存在線性的關(guān)系,通過線性建模估計深度圖并結(jié)合大氣散射模型去霧;Engin[10]提出了循環(huán)一致性的深度生成對抗去霧網(wǎng)絡(luò),其核心網(wǎng)絡(luò)采用了殘差連接,通過深度卷積神經(jīng)網(wǎng)絡(luò)將有霧圖像映射到無霧圖像;Yi[11]方法為對偶去霧網(wǎng)絡(luò)的基礎(chǔ)網(wǎng)絡(luò)DualGAN。
峰值信噪比(peak signal-to-noise ratio,PSNR)可以通過均方誤差(mean square error,MSE)計算得到。它用于衡量目標圖像X相對于參考圖像Y的噪聲比例,值越大表示圖像質(zhì)量越高,有用信號得到更好的保留。其中MSE 的計算如下:
式中:i和j分別表示像素的橫縱坐標;H和W是圖像的高度和寬度。通過對數(shù)計算可以得到PSNR:
為了分析去霧結(jié)果與原圖的結(jié)構(gòu)相似性(structural similarity index,SSIM),需要首先計算亮度L、對比度C與結(jié)構(gòu)S:
式中X和Y分別表示目標圖像和參考圖像(SSIM中L、C與S計算方式參見文獻[16])。SSIM 的值越大,表示去霧結(jié)果與真實無霧圖像的結(jié)構(gòu)越相似,取值范圍為0~1 之間。
CIEDE2000 是國際照明委員會于2000 年提出的色彩評價公式,值越小代表目標圖像與參考圖像間色彩差異越小,計算方式涉及諸多公式推導與證明過程,故不做具體介紹,具體請參考文獻[17]。實驗表格中將CIEDE2000 用CD(color difference)代表。
本節(jié)實驗首先證明了對偶去霧網(wǎng)絡(luò)在數(shù)據(jù)量較小的情況下仍然具有較好的去霧性能,隨后根據(jù)實驗結(jié)果估算了保證模型泛化能力所需最少數(shù)據(jù)量的大致區(qū)間。I-HAZE[18](indoor haze images)包含35 對室內(nèi)場景(僅30 對公開),實驗中選取訓練集25 對,測試集5 對;O-HAZE[18](outdoor haze images)包含45 對室外場景,選取訓練集35 對,測試集10 對。它們所提供的不同場景的圖像尺寸互不相同,將所有的圖像尺寸統(tǒng)一縮放到256×256 像素,用于后續(xù)計算。實驗結(jié)果見表1、表2、圖2、圖3。
表1 I-HAZE 實驗結(jié)果Table 1 Results of I-HAZE
表2 O-HAZE 實驗結(jié)果Table 2 Results of O-HAZE
圖2 I-HAZE 數(shù)據(jù)集上的視覺效果對比Fig.2 Visual effect comparison of I-HAZE data set
圖3 O-HAZE 數(shù)據(jù)集上的視覺效果對比Fig.3 Visual effect comparison of O-HAZE data set
表1 中I-HAZE 數(shù)據(jù)集上的結(jié)果顯示對偶去霧網(wǎng)絡(luò)得到的峰值信噪比(PSNR)較高,保證了圖像的有用信號在去霧以后得到充分的保留,防止由于去霧引入更多新的噪聲信號而導致圖像的視覺效果降低;對偶去霧網(wǎng)絡(luò)在結(jié)構(gòu)相似性(SSIM)上的表現(xiàn)證明了它可以完整地保留圖像的結(jié)構(gòu)信息;CIEDE2000 的值越低代表去霧得到的圖片和真實無霧圖片之間的色彩越接近,更符合人類感官體驗。對偶去霧網(wǎng)絡(luò)與其他去霧算法相比獲得了最低的色差值,即最好的顏色恢復效果。表2 提供的在O-HAZE 數(shù)據(jù)集上的3 種指標值再次證明了上述結(jié)論。從室內(nèi)數(shù)據(jù)集I-HAZE 與室外數(shù)據(jù)集O-HAZE 上得到的結(jié)果中可以看出,網(wǎng)絡(luò)在數(shù)據(jù)量較小的情況下仍然能學習出有霧圖像與無霧圖像之間的映射,原因就在于對偶學習過程充分利用了數(shù)據(jù)間的雙向映射關(guān)系。同時,對偶去霧網(wǎng)絡(luò)獲得了比核心子網(wǎng)絡(luò)DualGAN(Yi 方法)更高的PSNR 值與更低的CIEDE2000 值,證明了添加預訓練模型計算的感知損失能有效提升模型的去霧表現(xiàn)。
從圖2 以及圖3 中可以看出,He 的暗通道先驗造成了圖像的顏色加深,這與Li[19]方法對暗通道的分析一致;Zhu 的顏色衰減先驗(CAP)同樣出現(xiàn)了顏色失真現(xiàn)象,而且并沒徹底地去除場景中的霧,這是由于遵循統(tǒng)計規(guī)律而不是針對特定數(shù)據(jù)建模,造成其適應性較差;Yi 方法得到的去霧圖像出現(xiàn)了較多的斑點;對偶去霧網(wǎng)絡(luò)不僅完全地去除了不同場景中的霧,而且完整地保留了圖像的邊緣和輪廓,去霧后的圖像和地表真實圖像之間的顏色差異也較小。
圖2 中I-HAZE 去霧結(jié)果顯示出對偶去霧網(wǎng)絡(luò)與Li 方法均出現(xiàn)輕微的模糊現(xiàn)象,也就是模型的泛化能力沒有達到應有的水平,然而在圖3 中當數(shù)據(jù)量增加到35 對時則無模糊情況出現(xiàn),這是由于神經(jīng)網(wǎng)絡(luò)算法所需的數(shù)據(jù)量與其網(wǎng)絡(luò)的深度及復雜度有關(guān),但是這種關(guān)系并不能嚴格地通過計算得到,僅能推算一個大致的區(qū)間。從實驗結(jié)果可以推知對偶去霧網(wǎng)絡(luò)所需的數(shù)據(jù)量在35 對左右(最小值)。
D-HAZE[20](depth haze images)數(shù)據(jù)集有1 449個有霧與無霧圖像對。實驗中設(shè)置為訓練集1 007對,驗證集362 對,測試集80 對。實驗結(jié)果如表3、圖4 所示。表3 證明了對偶去霧網(wǎng)絡(luò)在大型室內(nèi)數(shù)據(jù)集上仍然具備良好的性能。圖4 展示了對偶去霧網(wǎng)絡(luò)在顏色恢復上的優(yōu)越性。He 的暗通道先驗和Zhu 的顏色衰減先驗得到的結(jié)果都造成了圖像的整體顏色加深,并且亮度和對比度都有不同程度的降低;Engin 方法造成圖像整體偏暗,灰度分布不均勻,這是由于其使用的殘差連接導致輸入與輸出過度相關(guān);Yi 出現(xiàn)過度去霧的情況,造成圖像的亮度增加與細節(jié)丟失;He 方法因為使用了預先定義的濾波器造成了輪廓的模糊。對偶去霧網(wǎng)絡(luò)兼顧了完整去霧與顏色恢復以及結(jié)構(gòu)完整性。
表3 D-HAZE 實驗結(jié)果Table 3 Results of D-HAZE
圖4 D-HAZE 數(shù)據(jù)集上的視覺效果對比Fig.4 Visual effect comparison of D-HAZE data set
本文將去霧與合成霧作為對偶模式實現(xiàn)輔助訓練,采用對偶對抗網(wǎng)絡(luò)學習有霧與無霧數(shù)據(jù)的雙向域映射關(guān)系,并借助預訓練模型在特征空間計算感知損失,最后將對偶對抗網(wǎng)絡(luò)的損失函數(shù)與感知損失相加進行聯(lián)合優(yōu)化得到了對偶去霧網(wǎng)絡(luò)。實驗得到的峰值信噪比值表明了對偶去霧網(wǎng)絡(luò)能有效保留圖像中的有用信號,防止去霧過程引入新的噪聲;結(jié)構(gòu)相似性指標值體現(xiàn)了對偶去霧網(wǎng)絡(luò)在結(jié)構(gòu)恢復上具有優(yōu)越的性能;網(wǎng)絡(luò)得到的去霧結(jié)果與真實無霧圖像相比具有較低的色差值,有效地降低了去霧算法產(chǎn)生的顏色失真。