(惠州學院 電子信息與電氣工程學院,惠州 516007)
隨著社會的發(fā)展,科學技術(shù)的進步,生活水平的提高,人們的生活出現(xiàn)越來越多的安全隱患,諸如盜竊造成財產(chǎn)損失,丟失證件、遺忘密碼等特征物品的缺失給人們帶來不便的同時也暴露出缺陷。但將每個人的生物特征充分運用,比如人臉,指紋等,則可以避免這個問題,這也使生物識別技術(shù)越來越受歡迎。而人臉識別技術(shù)就是最受歡迎的其中之一。
運用人臉識別的門禁系統(tǒng),將會更靈活,更安全,更便捷。人臉識別是讓機器思考并進行判斷,是機器視覺領(lǐng)域最具有挑戰(zhàn)性的課題之一。其自身容易推廣、安全性高、方便、準確度高、可以自學等優(yōu)勢可以應(yīng)用到公安偵查、安全鑒別、互聯(lián)網(wǎng)等領(lǐng)域。人臉識別具有很大的研究價值。因為它的研究涉及到機器視覺、圖像處理、數(shù)學等多門學科,常用于各種安全級別較高的系統(tǒng),對提高系統(tǒng)安全程度和保障安全起到很大的作用。人臉識別的研究對推動系統(tǒng)安全的提升有著至關(guān)重要的意義。
1)圖像采集
用Open CV打開攝像頭,在屏幕上出現(xiàn)顯示窗口,在窗口中使用Open CV的畫圖工具畫一個正方形的框,只有當人臉在框內(nèi)時才能進行人臉檢測、特征點定位、特征提取和比較。當人臉對準在框內(nèi)時,點擊“樣本采集按鈕”捕捉一幀圖像,然后程序開始執(zhí)行,提取圖像特征數(shù)據(jù),將圖片信息轉(zhuǎn)換成數(shù)據(jù)信息存儲在bin文件中。
2)圖像灰度化
在程序中,首先,用一個if語句判斷圖像是否為灰度圖,是單通道圖像則直接使用;若返回的判斷結(jié)果為多通道圖像,則用cvtColor函數(shù)先把多通道圖像變成單通道的灰度圖后再進行操作。
圖1 灰度化效果圖
3)圖片尺寸縮放
為了縮短計算時間,可以將圖像縮小。圖像縮小有兩種方法:一、使用圖像金字塔改變圖片的像素進行縮放,圖像越小,像素越低;二、用函數(shù)resize改變圖像的長和寬進行縮放,但不改變圖像的像素,是真實意義上的縮放,可以避免因像素降低,圖片變模糊引起的識別率降低。
SeetaFaceEngine-master中的Face Detection模塊,基于一種結(jié)合經(jīng)典級聯(lián)結(jié)構(gòu)和多層神經(jīng)網(wǎng)絡(luò)的人臉檢測方法[1],采用的漏斗型級聯(lián)結(jié)構(gòu)專門針對多姿態(tài)人臉檢測而設(shè)計,其中運用的由粗到精的設(shè)計理念兼顧了精度和速度的平衡。如圖2所示,漏斗型級聯(lián)結(jié)構(gòu)在頂部由多個針對不同姿態(tài)的快速LAB級聯(lián)分類器[2]構(gòu)成,緊接著是若干個基于SURF特征的多層感知機(MLP)級聯(lián)結(jié)構(gòu),最后由一個統(tǒng)一的同樣基于SURF特征MLP級聯(lián)結(jié)構(gòu)來處理所有姿態(tài)的候選窗口,整體上呈現(xiàn)出上寬下窄的漏斗形狀。從上到下,雖然隨著層次的遞增,每個層次的分類器及其所采用的特征逐步變得復(fù)雜,但可以保留人臉窗口并排除難以與人臉區(qū)分的非人臉候選窗口。
圖2 人臉檢測原理
真實場景下的人臉特征點定位會受到姿態(tài)、表情、光照和遮擋等因素的影響。為此,SeetaFaceEnginemaster中的FaceAlignment模塊采用一種由粗到精的自編碼器網(wǎng)絡(luò)來求解復(fù)雜非線性映射過程。如圖3所示,特征點定位模塊從像素低,分辨率較低的圖片開始進行人臉形狀的估算,用自編碼器網(wǎng)絡(luò)進行初步的特征點定位,得到第一級圖像S0;然后提高輸入圖片的像素,進行人臉形狀估算,并將S0中定位的特征進行局部提取,輸入到自編碼器網(wǎng)絡(luò)中進行對齊,得到S1,此時S1的定位精度就遠超過S0了,然后再選取更高像素的圖片進行人臉形狀估算,將S1中定位的特征進行局部提取,輸入到自編碼器網(wǎng)絡(luò)中進行對齊,得到定位精度更高的S2。以此類推,當選取的圖像像素達到最大是,級聯(lián)的自編碼網(wǎng)絡(luò)級數(shù)越多,特征點定位就越準確。
圖3 人臉特征點定位原理
FaceAlignment模塊中的函數(shù)PointDetectLandmarks可以在檢測出人臉并傳回人臉區(qū)域的基礎(chǔ)上標記人臉的五個(眼睛中心、鼻尖和嘴角)特征點。使用cvCircle函數(shù)畫五個點將特征點位置標記出來,可以直觀的看到所標記的地方,并判斷人臉是否在規(guī)定區(qū)域內(nèi),只有人臉在規(guī)定的框內(nèi)才進行下一步的特征提取和比較。該標記可以改變大小,顏色,樣式等。
人臉特征點標記效果如圖4所示。
圖4 特征點定位效果圖
SeetaFaceEngine-master中的FaceIdentification模塊,提取特征向量,將圖片信息轉(zhuǎn)化成數(shù)據(jù)信息存儲在二進制的Identification.bin文件中,留做樣本數(shù)據(jù)。SeetaFace開源的人臉特征提取模塊也是基于卷積神經(jīng)網(wǎng)絡(luò)的,其實現(xiàn)的是深度卷積神經(jīng)網(wǎng)絡(luò):包含7個卷積層與2個全連接層。該網(wǎng)絡(luò)將5×5的卷積核拆分為兩層3×3的卷積核,從而增加了網(wǎng)絡(luò)深度,且沒有增加計算量。人臉特征直接采用VIPLFaceNet FC2層的2048個結(jié)點的輸出,特征比對可簡單采用Cosine計算相似度,如圖5所示,將數(shù)據(jù)庫中的人臉進行特征提取后,得到特征向量,數(shù)據(jù)1,然后將實時檢測的人臉進行特征提取,得到特征向量數(shù)據(jù)2,然后將得到的向量數(shù)據(jù)1與向量數(shù)據(jù)2進行余弦值的比較,通過函數(shù)CalcSimilarity比較兩向量的相似度并輸出。最后進行閾值比較,將輸出的相似度值與預(yù)先設(shè)置好的閾值進行比較,當相似度大于閾值時,判斷識別成功,是管理員或者用戶,若小于閾值則判斷識別失敗。從而達到人臉識別智能門禁的效果。SeetaFace在多數(shù)人臉識別場景下均具有良好的性能。
圖5 人臉識別原理
使用SeetaFaceEngine-maste中的Face Detection模塊和FaceAlignment模塊檢測并定位人臉特征點,采用SeetaFaceEngine-master中的FaceIdentification模塊進行人臉特征點提取和比對,可以達到97.1%的識別正確率。速度方面,在單顆Intel i7-3770 CPU上,開源代碼提取一張人臉之特征的時間約為120ms。
1)檢測速度快:人臉檢測+人臉特征點定位+人臉特征點的提取和比對所用時間僅為120ms。
2)檢測準確率高:對人臉的識別率可達97.1%。
3)檢測范圍:該系統(tǒng)可用于平時生活中門禁,也可用于公安偵查等檢驗身份等領(lǐng)域。