鄒鵬,楊治昆 ,李鍇淞
(1.東北財(cái)經(jīng)大學(xué) 網(wǎng)絡(luò)信息管理中心 遼寧 大連 116025;2.浙江宇視科技有限公司 研究院,浙江 杭州 310051)*
隨著人臉識(shí)別算法的不斷成熟,其在越來(lái)越多的應(yīng)用場(chǎng)景中發(fā)揮積極作用,如證件查詢,出入考勤查驗(yàn),人臉支付等,另外在治理交通痼疾“闖紅燈”問(wèn)題上也大顯身手.早期的人臉識(shí)別典型算法有模板匹配法,PCA(主成分分析法)和LDA(線性判別分析)等,但是這些方法對(duì)訓(xùn)練集和測(cè)試場(chǎng)景、光照、人臉的表情等因素比較敏感,泛化能力不足,不具備太多的使用價(jià)值.之后的人臉檢測(cè)算法普遍采用了人工特征+分類器的思想,常見(jiàn)的描述圖像特征有HOG,SIFT[1],LBP,Gabor等,典型的代表特征是LBP(局部二值模式)特征,這種特征簡(jiǎn)單卻有效,部分解決了光照敏感問(wèn)題,但還是存在姿態(tài)和表情的問(wèn)題.現(xiàn)階段主要的方法是基于深度學(xué)習(xí)的方法,利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)對(duì)輸入的人臉圖片進(jìn)行學(xué)習(xí),提取出區(qū)別不同人的特征向量,替代人工設(shè)計(jì)的特征.DeepFace是CVPR2014上由Facebook提出的方法,使用3D模型來(lái)完成人臉對(duì)齊任務(wù),然后使用深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)對(duì)齊后的人臉進(jìn)行分類學(xué)習(xí),最終在LFW上取得了97.35%的準(zhǔn)確率,由于采用了多層局部卷積結(jié)構(gòu),產(chǎn)生了大量的參數(shù)量,且對(duì)數(shù)據(jù)量要求很大,因此應(yīng)用有很大的局限性.FaceNet是由谷歌公司推出的關(guān)于人臉識(shí)別的算法,其使用三元組損失函數(shù)(Triplet Loss[2]代替常用的Softmax交叉熵函數(shù),同時(shí)使用了Inception[3]模型,產(chǎn)生的參數(shù)量較小,在LFW取得了99.63%的準(zhǔn)確率.可以看出基于深度學(xué)習(xí)的人臉識(shí)別算法已經(jīng)較好地解決了多數(shù)場(chǎng)景中的人臉識(shí)別任務(wù),效果堪比人眼.但是實(shí)際應(yīng)用中總是會(huì)存在人臉受到遮擋(如戴口罩,帽子),導(dǎo)致特征發(fā)生缺失,以上方法在解決這類問(wèn)題時(shí),效果差強(qiáng)人意.
本文以ResNet50網(wǎng)絡(luò)為基礎(chǔ)模型,提出了基于信息熵的權(quán)重特征來(lái)優(yōu)化池化層特征的方法對(duì)卷積層的特征信息進(jìn)行聚合增強(qiáng);同時(shí)提出了一種改進(jìn)型PSO算法對(duì)CNN誤差反傳階段的初始權(quán)值進(jìn)行優(yōu)化,實(shí)驗(yàn)結(jié)果表明改進(jìn)后的模型對(duì)識(shí)別結(jié)果有所提升,尤其是對(duì)于遮擋人臉識(shí)別,效果明顯.
近年來(lái),深度學(xué)習(xí)技術(shù)已經(jīng)在圖像處理,自然語(yǔ)言處理等方面取得了突出的成績(jī),并且在多個(gè)領(lǐng)域的工程應(yīng)用中取得了較大的突破.然而在使用卷積層訓(xùn)練網(wǎng)絡(luò)時(shí),在對(duì)卷積層輸出的特征圖進(jìn)行處理時(shí),往往會(huì)使用池化層對(duì)特征圖進(jìn)行采樣操作,通過(guò)對(duì)不同位置的特征進(jìn)行聚合,從而達(dá)到減少卷積特征的目的.而且對(duì)模型網(wǎng)絡(luò)進(jìn)行設(shè)計(jì)的時(shí)候,對(duì)圖像特征聚合的好壞,也會(huì)直接影響網(wǎng)絡(luò)訓(xùn)練的收斂速度和其魯棒性.在此,本文提出的一種基于信息熵的權(quán)重特征表示的卷積計(jì)算方法.通過(guò)對(duì)需要池化的卷積做類似信息熵的計(jì)算方式,將需要池化的區(qū)域進(jìn)行基于信息熵的方式特征聚合,對(duì)特征的信息進(jìn)行進(jìn)一步的聚合,使得到的新的特征信息表達(dá)與原特征保持一致聯(lián)系,從而保證信息特征表征的最大化.算法流程如圖1所示.
圖1 基于信息熵的權(quán)重特征聚合流程
具體流程如下:
首先得到卷積之后的特征,然后對(duì)卷積之后的每個(gè)特征值,選擇合適的濾波器的大小,對(duì)每一個(gè)特征值先求取特征值所占的概率P(xi),如若卷積之后的特征是一個(gè)2×2的矩陣,里面的特征值分別標(biāo)記為x1,x2,x3,x4,則對(duì)任意一個(gè)特征值的概率值為:
P(xi)=xi/∑(xi)
(1)
故對(duì)卷積之后的特征是任意一個(gè)n×n的矩陣,里面任意一個(gè)特征值概率值為:
(2)
通過(guò)該特征的概率值進(jìn)行信息量的求取.特征值信息量求取如式(3)所示.
(3)
當(dāng)取得特征值信息量后,對(duì)特征值的所有信息作熵處理,信息熵求取公式如式(4)所示.
H(x)=-∑log(P(xi))P(xi)
(4)
得到特征值的信息熵后,將信息熵和特征值信息作進(jìn)一步融合.最后融合到的新的特征值計(jì)算公式如式(5)所示.
Feature(x)=H(x)·xi
(5)
通過(guò)對(duì)卷積后的特征進(jìn)行聚合,結(jié)合了不同特征之間的聚合能力,也充分使用了同一特征的強(qiáng)度信息,使其擁有更充分的表征能力.運(yùn)算效率高,不會(huì)增加新的參數(shù),使提取的網(wǎng)絡(luò)特征更加充分.
一般的CNN 網(wǎng)絡(luò)都采用梯度下降算法,梯度下降法是一種快速的局部搜索算法,它能使得算法快速收斂。PSO是在CNN網(wǎng)絡(luò)優(yōu)化中比較有效的方法之一,它具有信息共享能力和收斂速度快等特點(diǎn),但是全局搜索能力較差.GSA是全局智能搜索算法,實(shí)現(xiàn)了位置的調(diào)整和對(duì)空間中最優(yōu)解的搜索.利用PSO的記憶能力、信息共享能力和GSA的全局搜素能力進(jìn)行融合,形成一種改進(jìn)型PSO優(yōu)化算法,在每次迭代中,計(jì)算利用此優(yōu)化算法計(jì)算粒子的位置,并利用此位置更新CNN的初始權(quán)值,該算法的適應(yīng)度函數(shù)作為CNN的誤差函數(shù),以此對(duì)CNN的誤差反傳階段進(jìn)行改進(jìn).
算法具體實(shí)現(xiàn)流程如圖2所示.
圖2 PSO-GSA 對(duì)CNN算法優(yōu)化流程
算法的主要實(shí)現(xiàn)流程按照以下5步:
(1)樣本數(shù)據(jù)準(zhǔn)備和初始化CNN網(wǎng)絡(luò)參數(shù)
(2)初始化PSO和GSA參數(shù)
初始化PSO和GSA參數(shù)時(shí),設(shè)置α值為20,G0值為1,質(zhì)量和加速度均為0,粒子規(guī)模N為25,迭代次數(shù)為1000, 加速系數(shù)、c1、c2、c3均為1.49,初始質(zhì)量和加速度均為0,慣性權(quán)重w′從0.4~0.9線性增加,初始速度V為[0,1]間有間隔的隨機(jī)值.
(3)更新PSO和GSA參數(shù)
GSA和PSO 在每次迭代中,會(huì)根據(jù)如下步驟更新參數(shù):
①首先計(jì)算引力常量G(t)和歐幾里得距離Rij(t).
G(t)=G0e-αt/tmax
(6)
Rij(t)=||Xi(t)Xj(t)||2
(7)
式中,α為下降系數(shù);G0為初始引力常數(shù);tmax為最大迭代次數(shù);Xi(t)和Xj(t)分別表示第t次迭代中第i個(gè)粒子和第j個(gè)粒子的位置.
②計(jì)算粒子受其它粒子引力合力
(8)
③計(jì)算適應(yīng)度函數(shù)fi(t).
(9)
式中:m表示輸出節(jié)點(diǎn)數(shù);q表示訓(xùn)練樣本數(shù);gi表示經(jīng)訓(xùn)練樣本訓(xùn)練后的預(yù)測(cè)輸出;σ為訓(xùn)練樣本目標(biāo)輸出.
④計(jì)算粒子質(zhì)量Mi(t).
(10)
式中:fi(t)表示粒子i在第t次迭代中的適應(yīng)度函數(shù)值;best(t)表示粒子i在第t次迭代中的最好適應(yīng)度值;worst(t)表示粒子i在第t次迭代中的最差適應(yīng)度.
(11)
(12)
(13)
⑦計(jì)算PSO粒子最優(yōu)位置gi,best.通過(guò)比較粒子i的改進(jìn)最優(yōu)解和原最優(yōu)解的適應(yīng)度值,取兩者適應(yīng)度值較大的作為新的全局最優(yōu)粒子.粒子i的改進(jìn)最優(yōu)解.
(14)
⑧計(jì)算PSO和GSA融合后的粒子的速度V.
(15)
式中:Vi(t)表示粒子i在第t次迭代中的速度;w′為慣性權(quán)重,用于均衡粒子的探索能力與開發(fā)能力;gi,best表示PSO算法在第t次迭代中粒子i最優(yōu)位置的改進(jìn)值,即局部極值的位置坐標(biāo);gbest表示PSO算法在第t次迭代中當(dāng)前群體的最優(yōu)位置,即全局極值的位置坐標(biāo);rand表示[0,1]之間的隨機(jī)數(shù);c1、c2、c3表示加速系數(shù),其數(shù)值被調(diào)整,可以平衡引力和記憶,以及社會(huì)信息對(duì)搜索的影響;a表示粒子i在引力合力作用下的加速度.
⑨計(jì)算PSO和GSA融合后的粒子的位置X.粒子i第t+1次迭代中的位置
(16)
式中:Vi(t+1)表示粒子i在第t+1次迭代中的速度;Xi(t)表示粒子i在第t次迭代中的位置.
(4)更新CNN網(wǎng)絡(luò)參數(shù)
在每次迭代中,根據(jù)步驟(4)對(duì)GSA和PSO進(jìn)行參數(shù)更新,并以得到的粒子位置X去更新CNN的權(quán)值W.
(5)計(jì)算誤差
改進(jìn)核心是將GSA和PSO優(yōu)化方法結(jié)合,各取所長(zhǎng),最終形成一種搜索能力較強(qiáng)的改進(jìn)型GSA算法.它的主要特點(diǎn)在于GSA的最優(yōu)解是通過(guò)PSO的群體最優(yōu)解和個(gè)體改進(jìn)最優(yōu)解共同作用獲得的.
本文中的實(shí)驗(yàn)訓(xùn)練和測(cè)試過(guò)程中主要是在服務(wù)器上進(jìn)行的,顯卡為NVIDIA Tesla P40,深度學(xué)習(xí)框架為Tensorflow.
常用的公開人臉數(shù)據(jù)集有很多,如LFW,PubFig等,LFW數(shù)據(jù)集一共包含了13 233張圖片,包含5749個(gè)人,其中有1 680個(gè)人有2張或者以上的圖片.為了提高模型的檢測(cè)精度,本文的實(shí)驗(yàn)數(shù)據(jù)集有兩個(gè),其中首先是在LFW數(shù)據(jù)集上進(jìn)行模型預(yù)訓(xùn)練,總共訓(xùn)練11萬(wàn)次,每次從訓(xùn)練集中隨機(jī)抽取560張圖片,之后對(duì)自己采集的人臉圖片數(shù)據(jù)集約6 000張,1 000個(gè)id人使用預(yù)訓(xùn)練的模型繼續(xù)訓(xùn)練8萬(wàn)次后進(jìn)行測(cè)試.為了進(jìn)一步檢測(cè)本文方法對(duì)遮擋人臉的檢測(cè)效果,本文使用40×40像素的方塊,對(duì)圖片進(jìn)行隨機(jī)遮擋,并同樣的進(jìn)行訓(xùn)練.
為了方便表示,本文將基于信息熵的權(quán)重特征優(yōu)化方法表示為方法一,將基于改進(jìn)PSO優(yōu)化方法表示為方法二,本文使用傳統(tǒng)ResNet50網(wǎng)絡(luò),同時(shí)分別結(jié)合方法一,方法二在相同測(cè)試集中進(jìn)行測(cè)試,具體結(jié)果如表1所示.
表1 實(shí)驗(yàn)結(jié)果
從表1可以看出相對(duì)于傳統(tǒng)的ResNet50網(wǎng)絡(luò),在同樣的測(cè)試環(huán)境和測(cè)試樣本下,方法一、方法二對(duì)ResNet50網(wǎng)絡(luò)分別有了0.47%,0.25%的提升,由于正面人臉特征較完全,ResNet50網(wǎng)絡(luò)本身效果較好,本文的算法對(duì)其改進(jìn)效果不明顯,對(duì)于遮擋數(shù)據(jù)集,由于自身人臉信息不完整,導(dǎo)致ResNet50網(wǎng)絡(luò)識(shí)別準(zhǔn)確率只有67.15%,結(jié)合本文所提算法后分別有了2.6%,3.08%的提升,最終識(shí)別準(zhǔn)確率可以達(dá)到71.34%,提升結(jié)果較為顯著.
通過(guò)以上結(jié)果看出,對(duì)ResNet50網(wǎng)絡(luò)使用信息熵的權(quán)重特征對(duì)池化層的信息進(jìn)行優(yōu)化,和對(duì)ResNet50網(wǎng)絡(luò)使用改進(jìn)型PSO算法對(duì)誤差反傳階段的初始權(quán)值進(jìn)行優(yōu)化,可以明顯提高模型對(duì)人臉的識(shí)別精度,尤其是當(dāng)目標(biāo)人臉信息不完整時(shí),效果提升更為明顯.同時(shí)本文改進(jìn)算法在原始ResNet50的基礎(chǔ)上再不會(huì)增加額外參數(shù),因此也不會(huì)對(duì)模型的速度產(chǎn)生影響.