史昊,陳本彬,陳鑫強
基于人臉識別的防盜系統(tǒng)設(shè)計與實現(xiàn)
史昊,陳本彬,陳鑫強
(廈門理工學院電氣工程與自動化學院,福建 廈門 361000)
基于人臉識別的防盜系統(tǒng)以樹莓派3代B型開發(fā)板為核心,運用Python語言編程調(diào)用OpenCV開源計算機視覺庫,分別采用Haar分類器和Eigenfaces算法實現(xiàn)了人臉檢測和人臉識別的功能,結(jié)合樹莓派攝像頭、HC-SR501人體感應模塊、SG90 9 g舵機模塊和蜂鳴器模塊,實現(xiàn)對已注冊人臉的開鎖功能和對未注冊人臉的報警功能。
人臉識別;樹莓派;OpenCV;Haar分類器
過去幾年,以人臉識別和語音識別為代表的人工智能技術(shù)已展現(xiàn)出了改變世界的力量。人臉識別主要分為人臉檢測和人臉識別兩個過程。人臉檢測是對于輸入的圖像數(shù)據(jù),使用相應的算法判別圖像中是否存在人臉,并檢測人臉的大小和位置等信息;人臉識別是通過計算機對人臉圖像進行檢測、特征提取,并根據(jù)這些特征對個體進行驗證和確認的一種技術(shù)[1]。人臉識別技術(shù)是一個極具應用價值的研究領(lǐng)域,它涉及計算機視覺、人工智能、機器學習、模式識別等技術(shù),并且被廣泛應用于公安刑偵、門禁系統(tǒng)、支付系統(tǒng)等與國計民生密切相關(guān)的領(lǐng)域。
OpenCV中用于人臉檢測的分類器有Haar分類器和LBP分類器兩種。因為Haar分類器相較于LBP分類器的檢測準確率高且假陽性率低,所以本文采用了Haar分類器。該分類器采用了AdaBoost算法[2],將多個強分類器連接在一起形成級聯(lián)分類器。用級聯(lián)分類器檢測樣本是否為正例(面部區(qū)域),如果是正例則送到下一個強分類器繼續(xù)檢測,如果是負例(非人臉區(qū)域)則立即拋棄,這樣可以大大加快檢測人臉圖像的速度[3]。AdaBoost算法如圖1所示。
圖1 AdaBoost算法
OpenCV中最常用的人臉識別算法是特征臉法Eigenfaces[4],Eigenfaces分為4步:①將所有人的訓練圖像視為一個整體,提取其中相關(guān)和有用的特征,并丟棄其余的特征,這些重要的特征被稱為主成分;②將這些特征與訓練過程中存儲的元素列表進行比較;③找到最匹配的特征;④返回與該最匹配特征關(guān)聯(lián)的人員編號。特征臉主成分如圖2所示。
硬件方案包含樹莓派3代B型開發(fā)板、樹莓派500萬像素攝像頭、HC-SR501人體感應模塊、SG90 9 g舵機模塊、蜂鳴器模塊和LED燈。其中樹莓派開發(fā)板用于數(shù)據(jù)的處理及硬件的控制,HC-SR501人體感應模塊用于人體信號的采集,當檢測到有人時則打開攝像頭,樹莓派攝像頭用于人臉圖像的采集,SG90 9 g舵機模塊用于門鎖的開閉,蜂鳴器模塊和LED燈用于系統(tǒng)的報警。系統(tǒng)框架如圖3所示。
圖2 特征臉主成分
圖3 系統(tǒng)框架圖
OpenCV(Open Source Computer Vision Library)是一個開源跨平臺的計算機視覺和機器學習軟件庫,它包含了實時圖像處理和計算機視覺等方面的算法。本軟件部分設(shè)計將Python2.7作為編程語言,通過調(diào)用OpenCV3.3.0中的人臉識別算法來實現(xiàn)基于人臉識別的防盜功能。
本程序主要分為人臉注冊與人臉識別兩部分。人臉注冊部分,首先采集用戶的人臉圖像,然后將經(jīng)過預處理和歸一化后的人臉圖像訓練成一個train.yml識別器。人臉識別部分,首先調(diào)用已經(jīng)訓練好的識別器,將新人臉與已經(jīng)注冊的人臉進行比對,從而返回置信度(confidence)和用戶名稱等信息,如果置信度高于設(shè)定值,則控制舵機開鎖,如果置信度低于設(shè)定值,則控制蜂鳴器和LED燈報警。主程序流程如圖4所示。
圖4 主程序流程圖
在實際場景中對本系統(tǒng)進行測試。Haar分類器采用haarcascade_frontalface_alt2.xml,人臉檢測參數(shù)設(shè)定如下:每個圖像縮減的比例大小scaleFactor=1.2,每個備選矩形框具備的鄰近數(shù)量minNeighbors=5,人臉檢測的最小矩形大小minSize=(20,20),人臉識別采用EigenFaceRecognizer_create()函數(shù),每個用戶的人臉樣本數(shù)量為30個。
人臉識別測試如圖5所示,本設(shè)計可以在較復雜的背景環(huán)境下檢測出圖像中的人臉,辨識出預存的用戶姓名,且達到65.0%的較高置信度。當人臉識別返回的置信度高于50%時,樹莓派自動控制舵機旋轉(zhuǎn),打開門鎖;當返回的置信度低于50%時,蜂鳴器發(fā)出警報且LED燈閃爍。樹莓派控制舵機反應情況如圖6所示。
圖5 人臉識別測試圖
圖6 樹莓派控制舵機
本文設(shè)計與實現(xiàn)了基于人臉識別的防盜系統(tǒng),該系統(tǒng)能夠自動使用樹莓派以及OpenCV進行人臉識別,并根據(jù)識別結(jié)果進行開鎖與報警功能,從而提高安防效率。本設(shè)計體積小、成本低、識別率較高,具有很大的實用價值。
[1]梁文莉.基于獨立主成分分析的人臉識別算法研究[D].西安:西安科技大學,2012.
[2]馬博宇,尉寅瑋.基于AdaBoost算法的人臉識別系統(tǒng)的研究與實現(xiàn)[J].儀器儀表學報,2016(Suppl 1):162-167.
[3]宋西來.基于OpenCV的人臉識別系統(tǒng)研究[D]. 天津:天津科技大學,2017.
[4]Turk M A,Pentland A P.Face recognition using eigenfaces[J].IEEE,1991,3(1):586-591.
〔編輯:嚴麗琴〕
2095-6835(2018)19-0123-02
TP23
A
10.15913/j.cnki.kjycx.2018.19.123