朱克亮,張?zhí)熘?,石雪梅,張樹濤,陳良鋒
(1.國網(wǎng)安徽省電力有限公司建設(shè)分公司,安徽 合肥 230022;2.國網(wǎng)安徽省電力有限公司,安徽 合肥 230061;3.中國科學(xué)院合肥物質(zhì)科學(xué)研究院,安徽 合肥 230026;4.中國科學(xué)技術(shù)大學(xué),安徽 合肥 230031)
隨著深度學(xué)習(xí)的不斷發(fā)展,人臉識別系統(tǒng)的準(zhǔn)確率越來越高,其被廣泛應(yīng)用于安防監(jiān)控、自助終端、社交和娛樂等領(lǐng)域。但在實際應(yīng)用場景中,人臉識別的準(zhǔn)確率往往會受到光照、表情、遮擋、人臉姿勢等各種因素的影響,其中光照環(huán)境的影響尤為嚴(yán)重。由于環(huán)境光照變化的影響,使得現(xiàn)有大部分人臉識別方法在實際應(yīng)用中受到很大的限制,在惡劣情況下(例如光照不足)常導(dǎo)致人臉識別失敗。
為了提高低照度條件下人臉識別系統(tǒng)的性能,研究者們通常采用圖像增強算法對人臉圖像進(jìn)行光照調(diào)整或補償,增強圖像對比度。例如傳統(tǒng)的圖像增強方法采用直方圖均衡化(histogram equalization,HE)[1]調(diào)整圖像的灰度值,使其均勻分布在圖像灰度空間。Zhou等人[2]提出了基于HE的全局亮度和局部對比度的低照度圖像增強方法。Lin等人[3]改進(jìn)He方法用于提高低照度圖像的對比度。還有研究者提出了基于Retinex理論[4-6]的圖像增強方法,例如Jobson等人[7]提出了單尺度色彩恢復(fù)的Retinex算法(single-scale retinex,SSR),其采用高斯環(huán)繞函數(shù)對圖像的三個色彩通道進(jìn)行濾波,然后將原始圖像與濾波后的圖像相減得到增強后的圖像。之后該研究者又提出了多尺度色彩恢復(fù)算法(multi-scale retinex,MSR)和帶色彩恢復(fù)的MSR算法(multi-scale retinex with color restoration,MSRCR)[8]。近年來,深度學(xué)習(xí)技術(shù)被廣泛應(yīng)用于各種圖像領(lǐng)域[9-11],也有很多研究者提出了基于深度學(xué)習(xí)的圖像增強方法。例如Lore等人[12]首次采用深度學(xué)習(xí)解決圖像增強,其訓(xùn)練深度自動編碼器來學(xué)習(xí)低照度圖像特征和自適應(yīng)地提高亮度。Li等人[13]提出了卷積神經(jīng)網(wǎng)絡(luò)(CNN)圖像增強方法,將低照度圖像作為網(wǎng)絡(luò)輸入,然后將輸出的結(jié)果利用Retinex模型進(jìn)行圖像增強。Liu等人[14]采用卷積自編碼網(wǎng)絡(luò)學(xué)習(xí)低照度圖像特征和圖像增強。Tao等人[15]在卷積神經(jīng)網(wǎng)絡(luò)中加入了殘差學(xué)習(xí)提高圖像增強的效果。
不同于以上的方法,文中從圖像生成的角度解決現(xiàn)實人臉識別場景下的光照過暗的問題,提出一種基于循環(huán)生成對抗網(wǎng)絡(luò)的低照度人臉圖像增強方法。利用循環(huán)生成對抗網(wǎng)絡(luò)提取低照度人臉圖像的底層特征,調(diào)整圖像的亮度,并且保持生成的人臉圖像的真實性。同時針對生成對抗網(wǎng)絡(luò)在訓(xùn)練過程中的收斂問題,對網(wǎng)絡(luò)模型的損失函數(shù)進(jìn)行改進(jìn),加入了梯度懲罰項以穩(wěn)定網(wǎng)絡(luò)模型的訓(xùn)練,提高了圖像生成的效果,使得增強后的人臉圖像更加接近于正常光照條件下的真實人臉圖像。
生成對抗網(wǎng)絡(luò)(generative adversarial network,GAN)由Goodfellow等人[16]在2014年提出,其由一個生成器和一個判別器組成。生成器負(fù)責(zé)從隨機(jī)噪聲學(xué)習(xí)真實圖像樣本的分布并輸出與真實樣本分布相同或者相似的圖像,判別器負(fù)責(zé)判斷生成的圖像和真實圖像是否為真實的樣本分布,并將結(jié)果反饋給生成器和判別器自身,對生成器和判別器的參數(shù)進(jìn)行優(yōu)化,通過生成器和判別器的博弈過程達(dá)到全局最優(yōu)。在生成對抗網(wǎng)絡(luò)的訓(xùn)練階段,首先固定判別器的參數(shù),調(diào)整生成器的參數(shù)使得判別器的判別結(jié)果為真實樣本,然后固定生成器的參數(shù),調(diào)整判別器的參數(shù)使得判別器將生成器的輸出結(jié)果判別為假樣本,而真實樣本判別為真實樣本。重復(fù)進(jìn)行交替訓(xùn)練,此過程的優(yōu)化目標(biāo)如下:
Ez~Pz(x)[log(1-D(G(z)))]
(1)
其中,G為生成器,D為判別器,x為真實圖像樣本,z為隨機(jī)噪聲,G(z)為生成器輸出的圖像,Pdata(x)為真實圖像的分布,Pz(x)為噪聲分布。
近年來,GAN及其變體在計算機(jī)視覺領(lǐng)域取得巨大的成功,在圖像生成、圖像修復(fù)、圖像增強等方面取得了令人矚目的成績,彌補了傳統(tǒng)方法的不足。但是GAN在訓(xùn)練的過程中會存在梯度消失、模式崩潰等問題。Mao等人[17]提出了最小二乘生成對抗網(wǎng)絡(luò)(LSGAN),使用最小二乘損失函數(shù)取代原始的GAN的損失函數(shù),解決了GAN訓(xùn)練不穩(wěn)定的問題。Arjovsky等人[18]提出了Wasserstein GAN(WGAN),使用Wasserstein距離代替JS散度來衡量生成樣本分布與真實樣本分布之間的差異,緩解了出現(xiàn)梯度消失的問題。Gulrajani等人[19]提出了WGAN-GP,增加梯度懲罰項來限制判別器的梯度,使得WGAN的訓(xùn)練過程更加穩(wěn)定,保證了生成樣本的質(zhì)量。
循環(huán)生成對抗網(wǎng)絡(luò)(cycle generative adversarial network,CycleGAN)是GAN的一種變體,在2017年由Zhu等人[20]提出,由兩個GAN組成,即包含兩個生成器和兩個判別器。與GAN不同的是,CycleGAN的輸入是圖像,而不是隨機(jī)噪聲,其實現(xiàn)圖像在不同域之間的轉(zhuǎn)換,例如將馬轉(zhuǎn)換成斑馬,風(fēng)景圖像轉(zhuǎn)換成油畫等。CycleGAN學(xué)習(xí)兩個映射X→Y和Y→X,生成器將圖像從X域轉(zhuǎn)換到Y(jié)域,判別器判斷生成的圖像是否是真實的Y域圖像,同理,生成器將圖像從Y域轉(zhuǎn)換到X域,判別器判斷生成的圖像是否是真實的X域圖像。為了保證生成圖像樣本的多樣性,引入循環(huán)一致性損失函數(shù),將轉(zhuǎn)換到目標(biāo)域后的圖像再轉(zhuǎn)換回源域,構(gòu)成了一個雙向環(huán)狀結(jié)構(gòu)。CycleGAN不需要成對的數(shù)據(jù)集進(jìn)行訓(xùn)練,應(yīng)用十分廣泛。例如Wu等人[21]提出了一種基于CycleGAN的卡通人臉生成模型,其輸入是正常人臉圖像,輸出為卡通風(fēng)格的圖像,采用全局判別器和局部判別器提高生成的卡通人臉圖像質(zhì)量。Lu等人[22]提出了條件CycleGAN用于超分辨率重建,從低像素的圖像生成高像素的圖像,并且可以根據(jù)輸入?yún)?shù)控制生成人臉的屬性。Engin等人[23]采用改進(jìn)的CycleGAN對圖像進(jìn)行去霧,加入循環(huán)感知一致性損失保證圖像的清晰度。
(2)
圖1 基于CycleGAN的低照度人臉圖像增強模型
生成器G1和G2包含3個卷積層、9個殘差網(wǎng)絡(luò)層、2個轉(zhuǎn)置卷積層和1個卷積層,如圖2所示。第一個卷積層Conv 1和最后一個卷積層Conv 4的卷積核大小為7×7,步長為2。卷積層Conv 2和Conv 3的卷積核大小為3×3,步長為1。轉(zhuǎn)置卷積層Deconv1和Deconv2的卷積核大小為3×3,步長為2。每個殘差網(wǎng)絡(luò)層有兩個卷積操作,其卷積核大小均為3×3,步長均為1。在每個卷積結(jié)束后都對卷積結(jié)果進(jìn)行實例歸一化,以及采用LeakyReLU作為激活函數(shù)。
圖2 生成器結(jié)構(gòu)
圖3 判別器結(jié)構(gòu)
判別器D1和D2包含5個卷積層,如圖3所示。前4個卷積層的卷積核大小為4×4,步長為2,最后一個卷積層的卷積核大小為4×4,步長為1。前4個卷積層在每個卷積結(jié)束后都對卷積結(jié)果進(jìn)行實例歸一化,以及采用LeakyReLU作為激活函數(shù)。
為了學(xué)習(xí)式(2)中的兩個映射,對生成器和判別器進(jìn)行交替訓(xùn)練,每次訓(xùn)練中將生成器和判別器的損失函數(shù)的梯度傳遞回生成器和判別器進(jìn)行網(wǎng)絡(luò)參數(shù)的優(yōu)化。
其中生成器的損失函數(shù)為:
LG1=-logD2(G1(x))+λLcycle
(3)
LG2=-logD1(G2(y))+λLcycle
(4)
其中,D2(G1(x))表示生成器G1生成的圖像是正常光照下的圖像的概率,D1(G2(y))表示生成器G2生成的圖像是低照度圖像的概率。此損失函數(shù)由兩部分組成,第一項為生成器的交叉熵?fù)p失,對于生成器G1保證生成的人臉圖像接近真實的正常光照下的人臉圖像,對于生成器G2保證生成的人臉圖像接近真實的低光照下的人臉圖像;第二項為循環(huán)一致性損失,保證生成器G1生成的人臉圖像能夠經(jīng)過生成器G2還原成原始低照度圖像,即G2(G1(x))≈x,同理,生成器G2生成的人臉圖像能夠經(jīng)過生成器G1還原成原始正常照度下的人臉圖像,即G1(G2(y))≈y。循環(huán)一致性損失表示為:
Lcycle=‖G2(G1(x))-x‖1+
‖G1(G2(y))-y‖1
(5)
判別器的損失函數(shù)為:
LD1=-log(D1(G2(y))-1)-logD1(x)+γp1
(6)
LD2=-log(D2(G1(x))-1)-logD2(y)+γp2
(7)
其中,D1(x)表示輸入的低照度圖像是真實低照度圖像的概率,D2(y)表示輸入的正常光照下的圖像是真實正常光照下的圖像的概率。x為低照度條件下的人臉圖像,y為對應(yīng)的正常光照下的人臉圖像,γ為懲罰項系數(shù)。p1和p2為梯度處罰函數(shù),分別表示為:
p1=(‖D1(x+α(x-G2(y)))‖2-1)2
(8)
p2=(‖D2(y+α(y-G1(x)))‖2-1)2
(9)
基于CycleGAN的低照度人臉圖像增強方法的步驟如下:
輸入:低照度人臉圖像和正常光照人臉圖像;
輸出:生成器G1和低照度對應(yīng)的正常光照人臉圖像。
步驟1:圖像預(yù)處理,將輸入的低照度人臉圖像和正常光照人臉圖像裁剪成相同像素大小Φ(x)∈Rh×w×3,其中x為輸入的低照度人臉圖像或正常光照人臉圖像,Φ(x)為預(yù)處理后的人臉圖像,h和w分別為圖像的高度和寬度,并且對像素值的取值范圍進(jìn)行歸一化;
步驟2:訓(xùn)練生成器G1,固定判別器D2的網(wǎng)絡(luò)參數(shù)不變,采用Adam優(yōu)化生成器的損失函數(shù)LG1;
步驟3:訓(xùn)練生成器D2,固定生成器G1的網(wǎng)絡(luò)參數(shù)不變,采用Adam優(yōu)化判別器的損失函數(shù)LD2;
步驟4:訓(xùn)練生成器G2,固定判別器D1的網(wǎng)絡(luò)參數(shù)不變,采用Adam優(yōu)化生成器的損失函數(shù)LG2;
步驟5:訓(xùn)練生成器D1,固定生成器G2的網(wǎng)絡(luò)參數(shù)不變,采用Adam優(yōu)化判別器的損失函數(shù)LD1;
步驟6:重復(fù)步驟2到步驟5,直到達(dá)到設(shè)置的迭代次數(shù)。
文中的實驗硬件環(huán)境配置為Intel(R) Xeon(R) CPU,32 GB內(nèi)存,顯卡NVIDIA TITAN Xp 12 GB,500 GB固態(tài)硬盤和2 TB磁盤。軟件環(huán)境配置為Ubuntu 16.04,Cuda 9.0 GPU并行計算庫,模型訓(xùn)練工具采用TensorFlow-GPU 1.6.0。生成對抗網(wǎng)絡(luò)模型訓(xùn)練的batch size設(shè)置為10,學(xué)習(xí)率為0.000 2,采用Adam優(yōu)化器,其衰減率為0.5,生成器和判別器的損失函數(shù)的損失項參數(shù)λ設(shè)置為10,γ設(shè)置為10。
數(shù)據(jù)集采用低光照圖像數(shù)據(jù)集VV dataset[24],其中包括789張低照度圖像和對應(yīng)的789張正常光照下的圖像,所有圖像都為PNG格式,像素大小統(tǒng)一裁剪為256×256。
為了驗證文中方法的有效性,采用結(jié)構(gòu)相似度(SSIM)、均方誤差(MSE)和峰值信噪比(PSNR)作為評價指標(biāo),對生成的正常光照下的人臉圖像進(jìn)行圖像質(zhì)量評價。
SSIM反映兩幅圖像結(jié)構(gòu)上的相似度,取值范圍為0~1,SSIM值越大,說明圖像的結(jié)構(gòu)越相似,公式為:
(10)
MSE為兩幅圖像之間的均方誤差值,MSE值越小,說明兩幅圖像越相似,公式為:
(11)
其中,M為圖像的高度,N為圖像的寬度,R(i,j)為正常光照下的圖像第i行第j列的灰度值,F(xiàn)(i,j)為增強后的圖像第i行第j列的灰度值。
PSNR是圖像處理中信號重建質(zhì)量的評價指標(biāo),PSNR值越大,說明圖像失真越小,圖像的重建質(zhì)量越高,公式如下:
(12)
其中,n為圖像像素的比特數(shù),MSE為均方誤差。
文中將VV dataset中的低照度圖像和對應(yīng)的正常光照下的圖像輸入CycleGAN中進(jìn)行訓(xùn)練,得到修復(fù)后的無遮擋人臉圖像,如圖4所示。
圖中第1列為低照度條件下的人臉圖像,后面4列為分別采用HE、MSR、MSRCR和文中算法增強后的人臉圖像??梢钥闯鑫闹兴惴ㄉ傻膶咕W(wǎng)絡(luò)模型能夠有效地對低照度條件下的人臉圖像進(jìn)行圖像增強,生成接近真實的正常光照下的人臉圖像。相比較而言,HE算法得到的圖像出現(xiàn)局部亮度過曝,MSR算法得到的增強圖像出現(xiàn)顏色失真,整體色彩偏紅,MSRCR算法得到的圖像同樣存在局部細(xì)節(jié)色彩失真的問題,文中算法得到的圖像更加接近于真實場景下的人臉圖像。
圖4 人臉圖像修復(fù)效果圖
分別采用式(10)~式(12)對生成的人臉圖像進(jìn)行圖像質(zhì)量評價,并且與HE、MSR和MSRCR算法進(jìn)行比較,結(jié)果如表1所示。
表1 不同方法的評價指標(biāo)對比
從表1中可以看出,文中方法相比HE、MSR和MSRCR算法在增強后的圖像質(zhì)量方面有較大提升。文中方法在SSIM指標(biāo)上相比HE算法提高了0.095 3,相比MSR算法提高了0.083 8,相比MSRCR算法提高了0.165 2,平均提升了約25.66%。在MSE指標(biāo)上相比HE算法降低了1 460.01,相比MSR算法降低了9 951.27,相比MSRCR算法降低了8 659.47,平均優(yōu)化了約87.73%。在PSNR指標(biāo)上相比HE算法提高了5.81,相比MSR算法提高了13.05,相比MSRCR算法提高了12.47,平均提升了約75.26%。因此,文中方法的圖像失真相對較小,與正常光照場景下的圖像相似度更高。
針對低照度條件下人臉識別系統(tǒng)準(zhǔn)確率低的問題,提出了一種基于循環(huán)生成對抗網(wǎng)絡(luò)的低照度人臉圖像增強方法,其主要貢獻(xiàn)在于:
(1)將CycleGAN用于人臉圖像增強,相比于傳統(tǒng)方法,CycleGAN生成的圖像效果更加真實,與其他深度學(xué)習(xí)方法相比,CycleGAN不需要成對的數(shù)據(jù)集進(jìn)行訓(xùn)練;
(2)通過改進(jìn)CycleGAN的損失函數(shù),能夠有效地穩(wěn)定網(wǎng)絡(luò)的訓(xùn)練過程;
(3)實驗表明,文中方法能夠?qū)⒌驼斩葪l件下的人臉圖像轉(zhuǎn)換成正常照度下的人臉圖像,并且保證轉(zhuǎn)換后的人臉圖像在結(jié)構(gòu)、亮度和色彩上更加接近于真實場景下的圖像。