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