梁觀坡 鄒澤華 陳正鑫 葉盛杰,賴芃宇



摘 要:人臉識別是基于人的臉部特征信息進行身份識別的一種生物識別技術。具體來說,指通過電子儀器采集圖像中的人臉,經(jīng)過圖像的檢測和人臉的跟蹤,對捕捉到的人臉進行識別的技術。隨著圖像處理與生物鑒別技術日新月異地進步,大量的安全系統(tǒng)采用了人臉識別技術。本文在研究人臉識別技術現(xiàn)狀的基礎上,結合實際生活中身份認證安全系統(tǒng)的需求,設計了基于OpenCV的人臉識別門禁系統(tǒng)。介紹了如何使用OpenCV進行人臉檢測與識別、如何運用人臉識別控制門禁等,重點探討了不同模型的人臉識別算法識別效果的好壞、光照變化及不同姿態(tài)對人臉識別結果的影響。
關鍵詞:OpenCV;人臉識別;門禁系統(tǒng)
中圖分類號:TP391.41 文獻標識碼:A 文章編號:2096-4706(2018)02-0038-03
Face Recognition Access Control System
LIANG Guanpo,ZOU Zehua,CHEN Zhengxin,YE Shengjie,LAI Pengyu
(Fuzhou University,F(xiàn)uzhou 350108,China)
Absrtact:Face recognition is a kind of biometric recognition technology,which can extract feature information from human face,collect face in image by electronic instrument,detect and track face through image. With the rapid development of image processing and biometric identification technology,a large number of security systems use face recognition technology.On the basis of studying the current situation of face recognition technology according to the requirement of identity authentication security system in real life,a face recognition access control system based on OpenCV is designed. How to use OpenCV to detect and recognize face is introduced.How to control the entrance guard by face recognition is discussed in this paper,and the effects of different face recognition algorithms,illumination variation and different pose on face recognition are discussed.
Keywords:OpenCV;face recognition;access control system
0 引 言
傳統(tǒng)的門鎖只是單純的機械裝置,鑰匙容易遺失和被復制,電磁卡鎖也存在類似的問題。電子密碼鎖也存在密鑰易泄露、被破解或遺忘的問題。基于以上原因,我們希望設計出一套安全便利的智能型門禁系統(tǒng)。現(xiàn)代計算機技術發(fā)展迅速,應用非常廣泛,每個家庭擁有一臺個人計算機、安裝有監(jiān)控系統(tǒng)已是平常事了,加上計算機視覺和圖像處理功能日趨成熟,我們完全可以設計出一套以人臉識別作為身份驗證基礎的門禁系統(tǒng)。
1 緒論
1.1 研究背景與動機
隨著信息時代的到來,信息安全愈顯重要。與此同時,信息識別與檢測顯示出前所未有的重要性。人臉識別與檢測需要用到大量圖像處理的算法,而OpenCV是一種開源的跨平臺計算機視覺庫,具有圖像處理的多種算法與計算機視覺領域的大量通用算法,并且有多種函數(shù)提供給人臉檢測與識別使用。嵌入式系統(tǒng)是門禁系統(tǒng)的重要組成部分,有著功耗低、可靠性高、功能強大、效率高等優(yōu)點,并且可根據(jù)需要靈活制定。
1.2 人臉識別原理
PCA人臉識別的基本原理是:
(1)訓練階段:使用PCA降維算法提取人臉樣本的主要特征,構成特征臉空間。
(2)識別階段:將測試人臉投影到特征臉空間,得到一組投影系數(shù),采用距離函數(shù),求取測試人臉的投影系數(shù)與各個樣本人臉的投影系數(shù)的距離,距離最小的兩張臉判定為同一個人。
1.3 基于LBP和直方圖匹配的人臉識別
其過程分為兩個階段:
(1)訓練階段:提取訓練圖像的LBPH并保存。
(2)識別階段:提取待檢測圖像的LBPH,遍歷訓練圖像的LBPH,逐一匹配待檢測圖像的LBPH與訓練圖像的LBPH,找到與待檢測圖像的LBPH最相近的訓練圖像,將其對應的類別作為識別的類別輸出。同時可設定一個閥值(threshold),當兩者的LBPH匹配值超過或者低于閥值(取決于直方圖匹配算法),即可判定待檢測圖像不在訓練集之中,也就是陌生人。
1.4 基于OpenCV的人臉檢測和眨眼檢測
OpenCV提供了訓練目標檢測器的統(tǒng)一界面,這里我們訓練一個人臉檢測器,整個訓練過程在計算機的E:\boost進行,訓練所需的文檔放在E:\boost目錄下。
具體訓練步驟如下:
(1)建立樣本集:使用MIT人臉數(shù)據(jù)庫作為正樣本,該數(shù)據(jù)庫由麻省理工大學媒體實驗室創(chuàng)建,包含16位志愿者的2592張不同姿態(tài)、光照和大小的面部圖像,大小為20×20;使用不包含人臉、包含各種場景的4382張圖片作為負樣本,大小為20×20。將上述正負樣本分別放在pos檔夾和neg檔夾中。
(2)生成樣本描述檔后再生成正樣本的vec檔。
2 實現(xiàn)方法
系統(tǒng)架構及工作原理:本文專研設計的人臉識別門禁系統(tǒng)主要綜合運用了圖像識別技術和微機控制原理,其中圖像識別用于身份鑒定,微機根據(jù)身份鑒定的結果控制門禁。人臉識別門禁系統(tǒng)框架如圖1所示。
3 實驗過程討論及成果展示
3.1 人臉檢測實驗
人臉檢測是人臉識別的基礎,本實驗的目的在于測試用OpenCv訓練得到的haar級聯(lián)分類器的人臉檢測效果,測試圖像來自百度圖片,平均大小為318×193。
測試圖像及實驗結果圖像,如圖2所示。
分析與結論:總?cè)四様?shù):13,測到臉數(shù):11,誤檢數(shù):0,漏檢數(shù):2,總耗時:130(ms),檢測率:84.62%,誤檢率:0,漏檢率:15.38%,平均耗時(ms/人):10。
從以上數(shù)據(jù)可以看出,實驗表明該系統(tǒng)檢測率較高,誤檢率、漏檢率較低,對大小為318×193的圖像檢測速度較快,可以用于實時監(jiān)測,因此我們可以得出:用OpenCV訓練得到的haar級聯(lián)分類器的人臉檢測效果較好。至于誤檢率會遠低于漏檢率,甚至為0,這是由于每一個子窗口圖像只有通過級聯(lián)分類器的層層考驗,才會被認定為人臉,即“寧缺毋濫”。
3.2 LBP特征提取實驗
特征提取對人臉識別的效果有很大的影響,因此有必要進行深入的了解。雖然OpenCV沒有提供單獨實現(xiàn)LBP算子的函數(shù),但從其提供的LBPH類中可以找到相關的代碼,把這些代碼從OpenCV中分離出來,稍加修改就可以應用于本小節(jié)的實驗。
3.2.1 多種LBP算子的對比試驗及相關參數(shù)作用的探究
本實驗的目的在于比較不同類型的LBP算子的差異及相關參數(shù)的作用,測試圖像使用大小為256×256的lena.jpg。
測試圖像及實驗結果圖像,如圖3所示。
分析與結論:
A.比較(c)圖、(d)圖可以看出,采樣點越多,圖像亮度越大,這是由于更多的采樣點可以獲得更大的LBP特征灰度值;
B.比較(a)圖和(d)圖可以看出兩點,其一,等價模式LBP特征圖像的亮度偏暗,這是由于等價模式的LBP特征像素值模式只有59種,取值范圍不是0-255,而是1-13,其二,等價模式LBP特征圖像的文理特征不變,因為半徑不變;
C.把(b)圖和(d)圖比較可以看出,原始LBP算子不能滿足圖像不同紋理特性的需要,因為它只覆蓋了固定范圍的區(qū)域。
因此我們可以得出:相比于原始LBP,改進版本的LBP能滿足圖像不同紋理特性的需要,其中等價模式LBP使原始圖像變暗,但不影響紋理特性,參數(shù)radius可以調(diào)整圖像紋理,neighbors可以調(diào)整圖像亮度。
4 結論與展望
由于時間倉促,本系統(tǒng)明顯有很多需要改進的地方。例如以下幾點:
(1)本系統(tǒng)的人臉識別方法較為傳統(tǒng),識別效果有一定局限性,時下深度學習如火如荼,可以嘗試使用CNN進行人臉識別(Convolutional NeuralNetworks),進一步提高身份驗證的準確性。
(2)串口通信使用USB連接,且是單向通訊,不利于實際應用。可考慮在門禁系統(tǒng)添加攝像頭用于采集人臉圖像,微機將人臉圖像傳送給計算機,計算機再將識別結果傳送微機作為控制門禁的依據(jù),采用藍牙通信或者socket網(wǎng)絡編程實現(xiàn)計算機與微機的無線雙向通信,或者直接把人臉識別系統(tǒng)運行在樹莓派(Raspberry Pi)上,這樣就免去了通信過程。
參考文獻:
[1] 朱興統(tǒng),習洋洋.基于C++和OpenCV的人臉識別系統(tǒng)的設計與實現(xiàn) [J].自動化與儀器儀表,2014(8):127-128+131.
[2] 毛星云,冷雪飛,等編著.OpenCV3編程入門(第一版)[M].北京:電子工業(yè)出版社,2015.
[3] arduino 百度百科 [EB/OL].http://baike.baidu.com/item/Arduino,2017.
[4] OpenCV官方文檔 [EB/OL].http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/user_guide/ug_traincascade.html,2017.
[5] Opencv目標檢測之級聯(lián)分類器訓練與測試 [EB/OL].http://blog.csdn.net/u012507022/article/details/53981399,2017.
[6] opencv人臉識別--detectMultiScale函數(shù) [EB/OL].http://blog.csdn.net/itismelzp/article/details/50379359,2017.