景 輝 ,閻志遠(yuǎn),戴琳琳,李貝貝
(中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司 電子計(jì)算技術(shù)研究所, 北京 100081;)
人臉識(shí)別是一種判別人臉圖像是否屬于同一個(gè)人的生物識(shí)別技術(shù)。通過圖像采集器采集人臉圖像,并能自動(dòng)檢測(cè)到人臉的位置和判別人臉圖像之間相似度。人臉識(shí)別技術(shù)具有高可實(shí)施性和高可接受度的優(yōu)點(diǎn)。近年來,人臉識(shí)別技術(shù)的研究趨于成熟,目前在金融、電商、城市安防、移動(dòng)終端等各行業(yè)都不同程度地應(yīng)用了人臉識(shí)別技術(shù)。人臉識(shí)別算法包含2個(gè)階段,第1個(gè)階段是人臉檢測(cè)階段,該階段主要完成人臉的定位和提取;第2階段是人臉識(shí)別階段,該階段首先在檢測(cè)到的人臉圖像上提取人臉特征,并通過特征值之間的歐式距離判斷身份證人像與待檢人像是否屬于同一人。
人臉的檢測(cè)定位是人臉識(shí)別的第1步,其準(zhǔn)確程是人臉識(shí)別算法正確率的基礎(chǔ)。因?yàn)?,人臉特征提取階段是在第1步檢測(cè)人臉位置的基礎(chǔ)上進(jìn)行的。一般來說,人臉的檢測(cè)定位方法可以劃分為基于模板的方法、 基于人為設(shè)計(jì)特征的方法和基于分類器的方法這3類。
基于模板的方法[1-5]是以典型人臉為基礎(chǔ)的人臉檢測(cè)方法。典型的人臉模板是學(xué)者根據(jù)多年的研究經(jīng)驗(yàn)而來的。他們提出典型的規(guī)律進(jìn)行人臉描述,包括人臉的特征和特征之間的關(guān)系。基于模板的人臉檢測(cè)算法適用于只從正面采集人臉的形式,受拍攝角度影響極大,算法魯棒性較低,無法滿足大規(guī)模使用的要求。
基于人為設(shè)計(jì)特征的方法[6-7]與基于模板的方法相反,該方法不是尋找人臉固定的模式,而是尋找人臉固定特征,包括組成人臉的器官和皮膚等通用特征,通常使用邊緣特征、顏色特征和紋理特征等。該方法的問題是人為設(shè)計(jì)的特征魯棒性較差,在光照、遮擋、干擾物等出現(xiàn)時(shí),算法無法較好的進(jìn)行人臉檢測(cè)。故本文采用Faster R-CNN算法,以增強(qiáng)算法的魯棒性。
基于分類器的方法[8-9]首先使用人臉圖像和非人臉圖像對(duì)分類器進(jìn)行訓(xùn)練,使得該分類器能正確判斷圖像是否為人臉圖像。然后,使用該分類器在整幅圖像上按照從上到下從左到右的順序在圖像上進(jìn)行掃描判別,每個(gè)局部圖像都會(huì)得出是否為人臉的置信度。對(duì)于置信度高的位置,可以判定此處包含人臉。該方法的問題是需要對(duì)待檢的圖像進(jìn)行全局掃描,對(duì)于較大的圖像,耗時(shí)較長(zhǎng)。本文采用的Faster R-CNN算法中包含RPN網(wǎng)絡(luò),能在這方面有所改善。
本文使用Faster R-CNN[10]作為人臉檢測(cè)算法。
Faster R-CNN的基本結(jié)構(gòu),如圖1所示。
圖1 Faster R-CNN的基本結(jié)構(gòu)
Faster R-CNN由以下4個(gè)部分組成。
(1)卷積層。作為一種CNN網(wǎng)絡(luò)目標(biāo)檢測(cè)方法[11],F(xiàn)aster R-CNN中的卷積層使用ResNet[12]為特征提取網(wǎng)絡(luò),該層中網(wǎng)絡(luò)提取了圖像的特征圖,該特征圖被共享用于后續(xù)RPN(Region Proposal Networks)層和全連接層。在訓(xùn)練過程中神經(jīng)網(wǎng)絡(luò)可以自動(dòng)學(xué)習(xí)提取人臉特征的卷積核。隨著層數(shù)的加深,卷積核能表示更高級(jí)的人臉特征。其中,低級(jí)的人臉特征為顏色、紋理、邊緣等基礎(chǔ)特征; 隨著特征層的加深,逐漸可以學(xué)習(xí)人臉器官,包括鼻子、眼睛和嘴巴等的特征;由這些特征組合成整張人臉的特征。
(2)RPN網(wǎng)絡(luò)。用于生成目標(biāo)候選區(qū)域,該層通過softmax判斷目標(biāo)候選區(qū)域?qū)儆谀繕?biāo)或背景,再利用目標(biāo)坐標(biāo)框位置回歸修正目標(biāo)候選區(qū)域獲得精確的目標(biāo)候選區(qū)域。其中,坐標(biāo)位置回歸網(wǎng)絡(luò)使用目標(biāo)的左上角坐標(biāo)和長(zhǎng)寬4個(gè)參數(shù)來表示一個(gè)目標(biāo)的位置。
(3)Roi Pooling層。該層收集輸入的特征圖和目標(biāo)候選區(qū)域,綜合這些信息后提取候選目標(biāo)區(qū)域的特征圖,送入后續(xù)全連接層判定目標(biāo)類別。
(4)分類器(Classification)。利用候選目標(biāo)區(qū)域的特征圖計(jì)算候選目標(biāo)區(qū)域的類別,再次通過目標(biāo)的坐標(biāo)框位置回歸獲得目標(biāo)最終的精確位置。
Faster R-CNN的網(wǎng)絡(luò)結(jié)構(gòu),如2圖所示。
圖2 Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
本文采用名人人臉屬性數(shù)據(jù)集(CelebA,Celeb Faces Att-ribute)作為網(wǎng)絡(luò)的訓(xùn)練集和驗(yàn)證集,該數(shù)據(jù)集中共有10 177個(gè)來自全球不同種族的人,共有202 599張圖片。該數(shù)據(jù)集中的圖像均為名人,且每張圖像上僅為一人,臉部區(qū)域較大,所以訓(xùn)練出的人臉檢測(cè)網(wǎng)絡(luò)更傾向于檢測(cè)距離鏡頭近的人臉圖像,使用矩形框進(jìn)行人臉的標(biāo)注。
本文使用車站人臉識(shí)別閘機(jī)和人工窗口真實(shí)拍攝的圖像進(jìn)行算法測(cè)試,共測(cè)試10 000張圖像,包含5 000位旅客。在本文的任務(wù)中,算法的檢測(cè)目標(biāo)為閘機(jī)前和進(jìn)站窗口前待檢的旅客[13]。在統(tǒng)計(jì)正確率時(shí),該位置的旅客人臉檢測(cè)正確,即認(rèn)為本幀圖像檢測(cè)正確。在該測(cè)試數(shù)據(jù)集中,包含多種場(chǎng)景的旅客檢票環(huán)境,包含白天、夜晚、強(qiáng)逆光等人臉檢測(cè)難度較大的場(chǎng)景,各場(chǎng)景的檢測(cè)結(jié)果,如圖3所示。在此數(shù)據(jù)集上本文人臉檢測(cè)算法的檢測(cè)正確率達(dá)98%。
在人臉檢測(cè)階段,本文使用的算法較好的對(duì)人臉部分進(jìn)行了定位提取。在此基礎(chǔ)上需要設(shè)計(jì)人臉識(shí)別算法對(duì)進(jìn)站圖像與身份證圖像是否為同一人進(jìn)行判斷。在人臉識(shí)別階段的算法流程圖,如圖4所示。
圖3 測(cè)試結(jié)果示例
圖4 人臉識(shí)別階段算法流程圖
在人臉檢測(cè)階段檢測(cè)到人臉位置后,需要提取人臉部分的特征值。本文使用VGGNet[14]網(wǎng)絡(luò)提取人臉特征。
2.1.1 VGGNet介紹
VGGNet是牛津大學(xué)計(jì)算機(jī)視覺組和DeepMind公司共同研發(fā)一種深度卷積網(wǎng)絡(luò),該網(wǎng)絡(luò)的創(chuàng)新之處在于使用小卷積核進(jìn)行卷積計(jì)算,加速了網(wǎng)絡(luò)的收斂。
2.1.2 VGGNet網(wǎng)絡(luò)結(jié)構(gòu)
本文所使用的VGGNet網(wǎng)絡(luò)結(jié)構(gòu),如圖5所示。該網(wǎng)絡(luò)共有14層,包含13個(gè)卷積層和1個(gè)全連接層。網(wǎng)絡(luò)的輸入圖像的尺寸為224×224,經(jīng)過13個(gè)卷積層提取特征后,使用全連接層連接作為網(wǎng)絡(luò)特征值的輸出層,共提取人臉特征值2 622維。
圖5 特征提取網(wǎng)絡(luò)圖
經(jīng)過VGGNet后,提取人臉特征值2 622維,特征值維度太高,包含許多冗余信息,需使用一定的方法去除冗余信息,對(duì)特征值進(jìn)行降低維。在特征值降維方法中,使用最多、效果最為突出的是主成分分析(PCA ,Principal Component Analysis)算法,PCA算法是一種通過原始向量中部分維度來最大程度表示原始向量的一種降維算法。在人臉識(shí)別算法中受到很大程度的應(yīng)用,該方法的應(yīng)用主要分為2個(gè)方面,(1)有的人臉識(shí)別算法使用PCA直接對(duì)人臉圖像進(jìn)行降維,經(jīng)過可視化,降維后的圖像表現(xiàn)為一種模糊的,能大致表示人臉輪廓的圖像。(2)本文的應(yīng)用,使用PCA算法對(duì)深度神經(jīng)網(wǎng)絡(luò)提取的人臉特征進(jìn)行降維,以節(jié)省特征值比對(duì)的計(jì)算成本。對(duì)該算法的應(yīng)用:經(jīng)過VGGNet提取的人臉特征為2 622維,在5 000組人臉特征上進(jìn)行PCA分析。對(duì)各維度的特征值對(duì)人臉特征的表達(dá)程度進(jìn)行排序,使用分離程度最大的前400維特征值便可以表達(dá)95%的人臉特征。故本文選擇把人臉圖像2 622維的特征值降低到400維。
降維后使用歐式距離計(jì)算身份證上的人臉圖像和現(xiàn)場(chǎng)采集人臉圖像之間的特征值距離,具體的計(jì)算方式如下公式所示。當(dāng)兩張圖像特征值之間的距離<100時(shí),即認(rèn)為此兩人為同一個(gè)人,當(dāng)兩張圖特征值之間的距離>100時(shí),則判定兩張圖像為不同的兩人。經(jīng)過5 000組圖像的測(cè)試,本文算法的識(shí)別正確率達(dá)95%。
本文設(shè)計(jì)了一種人臉識(shí)別算法,該算法的訓(xùn)練使用caffe框架, GTX-1080P的GPU進(jìn)行計(jì)算,該算法共分兩個(gè)階段。
(1)人臉檢測(cè)階段,使用CelebA數(shù)據(jù)集和Faster R-CNN算法對(duì)圖像中的人臉進(jìn)行訓(xùn)練。對(duì)現(xiàn)場(chǎng)采集的旅客進(jìn)站圖像進(jìn)行測(cè)試,測(cè)試集包含白天、夜晚、強(qiáng)逆光等不同場(chǎng)景,該階段測(cè)試正確率達(dá)98%;
(2)人臉識(shí)別階段,使用VGGNet進(jìn)行人臉部分的特征提取,提取的特征值維度達(dá)2 622維,使用PCA算法對(duì)人臉特征值進(jìn)行降維,以去除人臉特征值中的噪聲和冗余。計(jì)算身份證人像與進(jìn)站人像特征值間的歐氏距離,通過實(shí)驗(yàn)把100設(shè)定為判斷兩幅圖像是否為同一人的閾值。該階段的識(shí)別正確率達(dá)95%。
本文使用先進(jìn)的端到端的檢測(cè)算法和人臉特征提取算法組合的方式進(jìn)行人臉識(shí)別的研究。但是,該網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,在CPU設(shè)備上運(yùn)行時(shí)間超過2 s/幀,接下來希望對(duì)網(wǎng)絡(luò)框架進(jìn)行調(diào)整壓縮,使得網(wǎng)絡(luò)的運(yùn)行時(shí)間降低到1 s內(nèi)。