嚴(yán)輝 邢子昊
(安徽建筑大學(xué)電子與信息工程學(xué)院 安徽省合肥市 230022)
門禁系統(tǒng)又稱出入管理控制系統(tǒng)(Access Control System),用于對人員放行或禁行。傳統(tǒng)的門禁系統(tǒng)使用刷卡認(rèn)證或者指紋認(rèn)證等識別方式,但存在一定的安全隱患且穩(wěn)定性較差。而人臉識別技術(shù)可以有效提取人的面部特征,依次與人臉庫中的數(shù)據(jù)進(jìn)行比對,其對人員身份識別具有非侵犯性、無法取代性等顯著優(yōu)點(diǎn),在門禁系統(tǒng)中得到廣泛應(yīng)用。
門禁系統(tǒng)的軟件功能設(shè)計(jì)分為視頻幀人臉獲取、人臉檢測、人臉跟蹤、人臉特征提取、人臉特征比對等,具體流程如圖1所示。
對視頻中的每一幀人臉圖像進(jìn)行人臉檢測以確定圖像中人臉?biāo)诘膮^(qū)域,使用人臉跟蹤以應(yīng)對人臉區(qū)域的移動(dòng),通過對視頻幀中人臉的特征進(jìn)行提取與人臉庫中的人臉特征進(jìn)行人臉比對,若相似度超過閾值則予以放行,反之禁行。
系統(tǒng)采用Adaboost 算法進(jìn)行人臉檢測操作,Adaboost 算法是一種基于Haar 特征的人臉檢測算法[1],主要使用Haar 特征訓(xùn)練弱分類器,通過對多個(gè)弱分類器進(jìn)行篩選獲取最優(yōu)弱分類器,由多個(gè)最優(yōu)弱分類器進(jìn)行組合得到強(qiáng)分類器,最后將多個(gè)強(qiáng)分類器進(jìn)行組合得到級聯(lián)分類器[2],具體流程如圖2所示。在應(yīng)用時(shí)將每一層分類器分別設(shè)定對應(yīng)的閾值,消除絕大多數(shù)非人臉區(qū)域,提高檢測的準(zhǔn)確率。
系統(tǒng)采用單人臉、攝像頭不動(dòng)的檢測方式。人臉晃動(dòng)時(shí),通過CamShift 算法進(jìn)行人臉跟蹤操作[3]。CamShift 算法是是一種以顏色直方圖為目標(biāo)的跟蹤算法,當(dāng)視頻圖像人臉區(qū)域發(fā)生變化時(shí)可以通過調(diào)整區(qū)域位置進(jìn)行連續(xù)跟蹤操作。
算法操作步驟:
(1)獲取人臉檢測得到的初始人臉區(qū)域。
(2)計(jì)算得到人臉區(qū)域的反向投影。
(3)利用Mean-shift 算法獲取人臉區(qū)域新的位置和大小。
(4)對于下一幀圖像,根據(jù)步驟(3)獲取的人臉區(qū)域位置和大小初始化原人臉區(qū)域,重復(fù)執(zhí)行步驟(2)即可做到連續(xù)跟蹤操作。
采用人臉1:N 比對方式,使用Gabor 小波進(jìn)行人臉特征提取[4]。由于單一人臉框相對較大,此時(shí)對人臉框進(jìn)行分塊處理,從中提取最能反映人臉特點(diǎn)的特征則能有效提取相應(yīng)特征值。通過小波變換方法進(jìn)行多尺度細(xì)化分析,鎖定圖片的低頻分量和高頻分量,將圖像中的某一顯著特征體現(xiàn)在某一頻率上,再對低頻分量進(jìn)行特征提?。ㄈ缪劬?、鼻子、嘴巴等特征),對這些局部特征不同屬性進(jìn)行數(shù)字標(biāo)注,然后從大到小排列形成特征向量。根據(jù)原圖像進(jìn)行Gabor 小波變換操作后,Gabor 提取的特征能夠反應(yīng)諸如眼睛、鼻子、嘴巴等部位人臉圖像的位置、亮度等特征信息。
圖1:門禁系統(tǒng)流程圖
圖2:Adaboost 算法流程
圖3:檢測結(jié)果
系統(tǒng)軟件開發(fā)環(huán)境為Android Studio,編程語言為Java。由于達(dá)成人臉識別算法中的大多數(shù)函數(shù)都為直接調(diào)用OpenCV 的庫函數(shù),所以本系統(tǒng)程序設(shè)計(jì)整體比較整潔。
4.2.1 畫出人臉框
使用函數(shù)onCameraOpened 來打開攝像頭,設(shè)置人臉框的寬和高的取值范圍,并將初始人臉框設(shè)為空。
使用函數(shù)onPreview 規(guī)劃人臉框,其中對攝像頭設(shè)置nv21 原數(shù)據(jù)回調(diào)且清空上一次畫框。具體代碼如下:
4.2.2 人臉對齊
若圖像數(shù)據(jù)寬高不符合要求,使用OpenCV 自帶的getAlignedBitmap 函數(shù)獲取對齊后的圖像。用OpenCV 自帶的Haar函數(shù)執(zhí)行人臉檢測,利用積分圖檢測出人臉上諸如:眼睛、鼻子、嘴巴等主要目標(biāo)的坐標(biāo)進(jìn)行鎖定,規(guī)劃好人臉框位置進(jìn)行人臉檢測操作,具體代碼如下:
4.2.3 人臉特征提取
提取規(guī)劃好的單人臉框的當(dāng)前幀人臉圖像的灰度特征和Gabor小波特征,使用extractFaceFeature 函數(shù)傳入分離的圖像信息數(shù)據(jù),包括圖像數(shù)據(jù)、圖像的寬和高、人臉框位置和圖像的顏色格式。定義FaceFeature 變量來獲取對應(yīng)的人臉特征,并在FaceFeature 的二進(jìn)制數(shù)組中保存獲取到的人臉特征數(shù)據(jù),解析出人臉特征數(shù)據(jù),具體代碼如下:
4.2.4 人臉特征比對
在系統(tǒng)提取出當(dāng)前幀人臉的特征數(shù)據(jù)后,根據(jù)設(shè)置的相似度閾值進(jìn)行人臉庫中的人臉圖像數(shù)據(jù)比對,高于相似度閾值即可確定人臉特征比對成功。
使用compareFaceFeature 函數(shù)來進(jìn)行人臉比對操作,其中定義比對代碼,并在代碼中添加當(dāng)前幀人臉圖像的人臉特征,人臉庫中圖像的人臉特征、比對模型、比對相似度。最后篩選結(jié)果選出最相似的人臉,具體代碼如下:
4.2.5 實(shí)驗(yàn)結(jié)果
本實(shí)驗(yàn)使用的是根據(jù)Android 系統(tǒng)開發(fā)的專用設(shè)備,Android版本為5.1.1,內(nèi)核版本為3.10.0。
檢測結(jié)果如圖3所示,當(dāng)掃描到的人臉與人臉庫中的某張圖片相似度超過95%時(shí),則可以認(rèn)定為身份辨認(rèn)通過,允許通過門禁系統(tǒng)。
本文基于人臉識別技術(shù)設(shè)計(jì)了這款門禁系統(tǒng),相較于以前單純僅通過刷卡就能夠隨意通過的門禁系統(tǒng)來看安全性有了很大的提升。這款門禁系統(tǒng)有著人臉檢測、人臉跟蹤、人臉比對三個(gè)模塊,解決了單一拍照引發(fā)的檢測時(shí)間長的問題和人臉表情變化引發(fā)的誤檢性問題,同時(shí)人臉識別帶來的非接觸性、簡單便捷性、高效率性也深受人員的青睞,因此人臉識別技術(shù)的廣泛推廣必將開啟新的局面。