張愛(ài)民
(中共渦陽(yáng)縣委黨校,安徽 亳州 233600)
人臉識(shí)別是基于人的臉部特征進(jìn)行身份識(shí)別的方法,人臉識(shí)別技術(shù)在日常交通運(yùn)輸、門(mén)禁管理、信息安全等領(lǐng)域應(yīng)用越來(lái)越廣。人臉識(shí)別算法是目前人臉識(shí)別技術(shù)熱門(mén)的研究領(lǐng)域之一[1-2]。傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法也用于人臉識(shí)別技術(shù),但存在人臉識(shí)別率偏低的問(wèn)題。隨著人工智能的不斷發(fā)展,深度學(xué)習(xí)作為一個(gè)新的研究方向被引入機(jī)器學(xué)習(xí),使其更接近人工智能目標(biāo)。隨著深度學(xué)習(xí)的發(fā)展,傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)人臉識(shí)別方法逐漸被基于卷積神經(jīng)網(wǎng)絡(luò)的方法所替代??傮w而言,雖然基于深度學(xué)習(xí)算法的人臉識(shí)別方案得到了科學(xué)界的研究,但現(xiàn)階段人臉識(shí)別技術(shù)依舊需要改進(jìn)和提升效果[3-5]。
FaceNet是谷歌公司推出的采用深度卷積神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別算法。目前,二維FaceNet算法的研究比較廣泛,采用深度卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)將人臉圖像信息映射到歐式空間??臻g距離直接與圖片的相似度相關(guān):當(dāng)識(shí)別的兩張人臉在距離十分接近,即說(shuō)明兩張圖像上的人相似程度很高,進(jìn)而算法判斷為同一個(gè)人。
在實(shí)際的人臉識(shí)別過(guò)程中,機(jī)器首先要采集到待判定的圖像或者視頻信息,此時(shí)的圖像或視頻信息往往包含一定量的無(wú)用背景信息。為提升準(zhǔn)確率,先利用MTCNN網(wǎng)絡(luò)完成人臉的快速檢測(cè),并對(duì)檢測(cè)出來(lái)的人臉信息進(jìn)行裁剪,以達(dá)到快速去除無(wú)用信息提升人臉識(shí)別準(zhǔn)確率的作用。然后,將前述處理后的圖像放入訓(xùn)練好的模型以實(shí)現(xiàn)人臉識(shí)別功能。人臉識(shí)別算法采用FaceNet算法,最終輸出人臉識(shí)別結(jié)果[6-8]。本文以圖像人臉識(shí)別為分析對(duì)象,提出了一種改進(jìn)人臉識(shí)別的并行FaceNet框架,以提升模型識(shí)別的準(zhǔn)確率。
人臉標(biāo)定是人臉識(shí)別的重要處理步驟之一,其核心思想是通過(guò)檢測(cè)照片中的信息,進(jìn)而對(duì)圖像中的人臉進(jìn)行定位,獲得框坐標(biāo)信息。人臉框坐標(biāo)信息可以幫助人臉識(shí)別算法進(jìn)一步獲取重要的數(shù)學(xué)信息。考慮到每個(gè)人獨(dú)特的人臉身份特征,可以通過(guò)細(xì)節(jié)對(duì)比的方法,識(shí)別出圖像中人臉的身份結(jié)果[9]。實(shí)踐中,人臉識(shí)別應(yīng)用越來(lái)越廣泛,人臉檢測(cè)技術(shù)與識(shí)別技術(shù)已經(jīng)從單一場(chǎng)景發(fā)展到多場(chǎng)景,從室內(nèi)的攝像設(shè)備發(fā)展到室外的儀器,可見(jiàn),人臉識(shí)別的環(huán)境條件及設(shè)備越來(lái)越復(fù)雜。與此相對(duì),人臉檢測(cè)與識(shí)別技術(shù)仍有一些問(wèn)題亟待解決,如人臉的表情信息變化幅度過(guò)大,人臉基數(shù)過(guò)多,強(qiáng)光陰暗等條件的影響,口罩等遮面工具的阻礙,濃妝等的影響甚至連人眼都很難分辨。
實(shí)踐上在人臉檢測(cè)和人臉識(shí)別中應(yīng)用比較廣泛的算法是多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)(Multi-task Cascaded Convolutional Neural Networks, MTCNN),它是一種基于深度學(xué)習(xí)的人臉檢測(cè)和人臉對(duì)齊方法,可同時(shí)完成人臉檢測(cè)和人臉對(duì)齊的任務(wù)。和傳統(tǒng)的算法相比較而言,MTCNN具有性能更好,檢測(cè)速度更快的特點(diǎn)。MTCNN采用多任務(wù)處理,使用3個(gè)串行CNN級(jí)聯(lián)網(wǎng)絡(luò)(P-Net、R-Net、O-Net)提取人臉的相關(guān)信息,進(jìn)而實(shí)現(xiàn)人臉檢測(cè)由繁化簡(jiǎn)的過(guò)程??紤]到實(shí)際應(yīng)用場(chǎng)景中,機(jī)器獲取到的圖像大小并不完全一致,并且人臉大小也不盡相同。為此,需要將圖像進(jìn)行預(yù)處理,即將輸入圖像大小統(tǒng)一尺寸。將處理后的圖像通過(guò)P-Net網(wǎng)絡(luò)進(jìn)行處理。P-Net網(wǎng)絡(luò)的作用是通過(guò)分析圖像生成多種人臉候選框。此后,采用非極大值抑制(Non-Maximum Suppression, NMS)處理后的數(shù)據(jù)進(jìn)行計(jì)算,并刪除重復(fù)的候選框。接下來(lái)將經(jīng)過(guò)P-Net網(wǎng)絡(luò)截取出來(lái)的圖像片段進(jìn)行尺寸處理并經(jīng)由R-Net結(jié)構(gòu)進(jìn)行計(jì)算,并再經(jīng)由NMS算法計(jì)算,進(jìn)而獲得相對(duì)準(zhǔn)確得人臉框。最后將圖像經(jīng)過(guò)O-Net網(wǎng)絡(luò)進(jìn)行計(jì)算,直到最終輸出正確的人臉候選框和人臉特征關(guān)鍵點(diǎn)坐標(biāo),至此人臉快速檢測(cè)算法MTCNN結(jié)束。圖1所示為MTCNN的算法訓(xùn)練流程圖。
圖1 MTCNN算法訓(xùn)練流程圖
為了訓(xùn)練好上述的網(wǎng)絡(luò)模型,需要保證以下三個(gè)任務(wù)的損失函數(shù)值達(dá)到最小。
(1)人臉二元分類(lèi)任務(wù):考慮到人臉檢測(cè)問(wèn)題的特殊性,可以將人臉檢測(cè)問(wèn)題理解為“需要判斷檢測(cè)框內(nèi)是否存在真實(shí)的人臉的信息”,即轉(zhuǎn)變?yōu)槎诸?lèi)問(wèn)題,以交叉熵作為人臉識(shí)別損失函數(shù)。其計(jì)算公式如下:
Loss1=-(yilogpi+(1-yi)(1-logpi))
(1)
式中:yi為真實(shí)標(biāo)簽,存在人臉為1,不存在人臉為0;pi為經(jīng)過(guò)模型輸出預(yù)測(cè)為存在人臉的概率(可行性)。
(2)BB回歸任務(wù):針對(duì)任意一個(gè)候選窗口,均需要計(jì)算其到標(biāo)注框之間的偏離量,其目的是為了更好地實(shí)現(xiàn)位置回歸操作,損失函數(shù)如下:
(2)
(3)標(biāo)記定位任務(wù):此項(xiàng)任務(wù)需要對(duì)人臉的標(biāo)記點(diǎn)進(jìn)行位置標(biāo)記,包括左眼、右眼、左嘴角、右嘴角、鼻子等部位。同平方差損失函數(shù)類(lèi)似,臉部位置標(biāo)記損失函數(shù)如下:
(3)
根據(jù)上述任務(wù)損失函數(shù)設(shè)置完成后,考慮到MTCNN模型的三個(gè)網(wǎng)絡(luò)結(jié)構(gòu)需要完成不同的功能,僅需要設(shè)置不同的權(quán)重分別乘以三個(gè)損失函數(shù)并進(jìn)行加和運(yùn)算,即可完成MTCNN人臉識(shí)別模型的訓(xùn)練。
FaceNet的設(shè)計(jì)理念是驗(yàn)證所給的圖像中的人臉是否為已經(jīng)存儲(chǔ)至數(shù)據(jù)庫(kù)的人臉,并且通過(guò)人臉識(shí)別算法分析并判斷該人臉的姓名信息等[10]。其核心是將人臉圖像映射到一個(gè)多維空間,并比較計(jì)算所得歐式距離的數(shù)值來(lái)評(píng)判識(shí)別人臉的相似與否,最后以矩陣形式顯示出來(lái),給出直觀的識(shí)別結(jié)果。由于長(zhǎng)相差距較小人臉的圖像映射距離短,而不同人臉信息的映射距離長(zhǎng),于是采用算法計(jì)算人臉圖像的空間映射即可實(shí)現(xiàn)人臉識(shí)別功能。圖2所示為FaceNet人臉識(shí)別驗(yàn)證流程圖。
圖2 FaceNet人臉識(shí)別驗(yàn)證流程圖
基于傳統(tǒng)串行的卷積神經(jīng)網(wǎng)絡(luò)對(duì)于復(fù)雜的人臉信息獲取信息不足問(wèn)題,在前述工作基礎(chǔ)上提出了并行卷積網(wǎng)絡(luò)模型架構(gòu),其示意圖如圖3所示。
圖3 并行卷積網(wǎng)絡(luò)結(jié)構(gòu)示意圖
由圖3可知,并行網(wǎng)絡(luò)模型架構(gòu)由m(m≥2)個(gè)分支的串行神經(jīng)網(wǎng)路模型構(gòu)成,并經(jīng)由全連接層進(jìn)行輸出參數(shù)合并。通過(guò)修改各個(gè)分支網(wǎng)絡(luò)模型的中的卷積核大小,令不同分支的網(wǎng)絡(luò)分別保存不同的特征提取網(wǎng)絡(luò)模型參數(shù),進(jìn)而可以更為精準(zhǔn)地獲得輸入圖像更多特征信息??梢?jiàn),和單分支的網(wǎng)絡(luò)模型相比較而言,并行卷積網(wǎng)絡(luò)結(jié)構(gòu)具有更好的人臉信息表征能力。為了進(jìn)一步提升FaceNet人臉識(shí)別準(zhǔn)確率,基于前述工作,本文在并行卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上提出了一種并行FaceNet的人臉識(shí)別框架模型結(jié)構(gòu),如圖4所示。
圖4 并行FaceNet模型結(jié)構(gòu)示意圖
根據(jù)圖4,并行FaceNet的人臉識(shí)別框架模型先采用MTCNN算法所得到的人臉裁剪后的圖片樣本,而后將樣本輸入并行FaceNet網(wǎng)絡(luò)模型中,圖像經(jīng)過(guò)并行FaceNet網(wǎng)絡(luò)輸出為特征信息,接下來(lái)對(duì)特征信息進(jìn)行深度連接(加和求均值)操作。和標(biāo)準(zhǔn)的FaceNet網(wǎng)絡(luò)相比較,并行FaceNet網(wǎng)絡(luò)可以學(xué)習(xí)到更多的人臉圖像特征,進(jìn)而可以更好的進(jìn)行人臉識(shí)別。經(jīng)深度連接操作后,再經(jīng)L2特征歸一化生成特征向量,隨后選擇三元組損失函數(shù)對(duì)模型計(jì)算調(diào)整。三元損失函數(shù)的計(jì)算公式如下:
Loss=max(d(a,p)-d(a,n)+argmin,0)
(4)
式中:a為原人臉特征;p為與a同類(lèi)別的人臉特征;n為與a不同類(lèi)別的人臉特征;argmin為樣本容量為N的數(shù)據(jù)集的各種三元組。該損失函數(shù)能夠更好學(xué)習(xí)到人臉的Embedding,即使得相似人臉信息的特征距離盡量趨于無(wú)限小,不同人臉信息之間的特征距離趨于無(wú)限大。
為了驗(yàn)證并行FaceNet的人臉識(shí)別框架模型的有效性,采用Python3.7進(jìn)行驗(yàn)證實(shí)驗(yàn)。采用的數(shù)據(jù)集為L(zhǎng)FW人臉數(shù)據(jù)集,LFW人臉數(shù)據(jù)集的人臉圖片如圖5所示,該數(shù)據(jù)集共有13000多張人臉圖像,總計(jì)5700多人。為使實(shí)驗(yàn)結(jié)果更加可靠,共選取了20組人臉進(jìn)行實(shí)驗(yàn)。考慮到實(shí)驗(yàn)數(shù)據(jù)的真實(shí)差異性以及為了方便統(tǒng)計(jì),對(duì)人臉數(shù)據(jù)進(jìn)行了擴(kuò)充處理,處理方式包括鏡像復(fù)制,旋轉(zhuǎn)復(fù)制以及加噪復(fù)制等方法。處理后的人臉圖像總共10000張,每一組人臉圖像為500張,尺寸大小統(tǒng)一轉(zhuǎn)變?yōu)?4×64×3(3表示3原色)。人臉數(shù)據(jù)訓(xùn)練集與測(cè)試集按照9∶1的比例進(jìn)行劃分,即9000張人臉圖像為訓(xùn)練集,其余的1000張為測(cè)試集。
圖5 LFW人臉數(shù)據(jù)集部分人臉圖片
為了更好的進(jìn)行人臉識(shí)別準(zhǔn)確率實(shí)驗(yàn),先利用MTCNN計(jì)算方法進(jìn)行快速人臉檢測(cè),并對(duì)檢測(cè)出來(lái)的人臉圖像信息分切,裁剪過(guò)程如圖6所示。由圖6可見(jiàn),經(jīng)過(guò)MTCNN計(jì)算裁剪的圖像樣本可以去除多余的背景信息。
圖6 MTCNN裁剪示例
將裁剪后的圖片制作成訓(xùn)練集去訓(xùn)練人臉識(shí)別模型。為方便比較,除了標(biāo)準(zhǔn)FaceNet人臉識(shí)別算法外,也采用了DeepFace人臉識(shí)別方法[11]進(jìn)行了對(duì)比實(shí)驗(yàn),所得實(shí)驗(yàn)結(jié)果如表1所示。根據(jù)表1的實(shí)驗(yàn)結(jié)果可知,目前的人臉識(shí)別效果(DeepFace方法)已經(jīng)達(dá)到了較高的水平,識(shí)別準(zhǔn)確率為95.2%。標(biāo)準(zhǔn)FaceNet人臉識(shí)別算法的準(zhǔn)確率高于DeepFace算法。而并行FaceNet的人臉識(shí)別框架模型算法準(zhǔn)確率是最高的:相比于標(biāo)準(zhǔn)的FaceNet方法準(zhǔn)確率提高了1.1%;相比于DeepFace算法準(zhǔn)確率提高了1.9%。這說(shuō)明并行FaceNet的人臉識(shí)別框架模型可以識(shí)別出更多的人臉特征信息,同時(shí)也進(jìn)一步證明了優(yōu)化后的并行FaceNet模型可以學(xué)習(xí)到人臉面部的更多表征信息,進(jìn)而更好提升人臉識(shí)別準(zhǔn)確率。同時(shí),并行卷積FaceNet方法的普適性很好,同樣可以用于其他網(wǎng)絡(luò)模型中。
表1 對(duì)比實(shí)驗(yàn)結(jié)果
人臉識(shí)別的目標(biāo)是依據(jù)不同人臉的面部信息特征不同這一差異進(jìn)行身份識(shí)別。通常情況下,人臉采集設(shè)備會(huì)通過(guò)攝像裝置收集含有人臉的視頻信息流。利用對(duì)應(yīng)的識(shí)別算法,計(jì)算機(jī)能夠自動(dòng)捕獲人臉并對(duì)其進(jìn)行人臉檢測(cè)、面部識(shí)別等操作。本文對(duì)人臉監(jiān)測(cè)算法MTCNN和人臉識(shí)別算法FaceNet進(jìn)行深度分析,并在此基礎(chǔ)上提出了一種能夠有效提升人臉識(shí)別準(zhǔn)確率的方法。該方法并且在LFW人臉數(shù)據(jù)庫(kù)中識(shí)別準(zhǔn)確提升幅度達(dá)到了1%,與傳統(tǒng)算法相比優(yōu)化后的算法有助于幫助人臉檢測(cè)技術(shù)的發(fā)展與推廣。但本文所提出的方法仍存在一定的不足,需要進(jìn)一步進(jìn)行研究:需要額外占用一定的計(jì)算機(jī)內(nèi)存;算法運(yùn)行速度仍然較慢。因此還需探索新方法來(lái)解決上述問(wèn)題。