史昊,陳本彬,陳鑫強
基于人臉識別的防盜系統設計與實現
史昊,陳本彬,陳鑫強
(廈門理工學院電氣工程與自動化學院,福建 廈門 361000)
基于人臉識別的防盜系統以樹莓派3代B型開發板為核心,運用Python語言編程調用OpenCV開源計算機視覺庫,分別采用Haar分類器和Eigenfaces算法實現了人臉檢測和人臉識別的功能,結合樹莓派攝像頭、HC-SR501人體感應模塊、SG90 9 g舵機模塊和蜂鳴器模塊,實現對已注冊人臉的開鎖功能和對未注冊人臉的報警功能。
人臉識別;樹莓派;OpenCV;Haar分類器
過去幾年,以人臉識別和語音識別為代表的人工智能技術已展現出了改變世界的力量。人臉識別主要分為人臉檢測和人臉識別兩個過程。人臉檢測是對于輸入的圖像數據,使用相應的算法判別圖像中是否存在人臉,并檢測人臉的大小和位置等信息;人臉識別是通過計算機對人臉圖像進行檢測、特征提取,并根據這些特征對個體進行驗證和確認的一種技術[1]。人臉識別技術是一個極具應用價值的研究領域,它涉及計算機視覺、人工智能、機器學習、模式識別等技術,并且被廣泛應用于公安刑偵、門禁系統、支付系統等與國計民生密切相關的領域。
OpenCV中用于人臉檢測的分類器有Haar分類器和LBP分類器兩種。因為Haar分類器相較于LBP分類器的檢測準確率高且假陽性率低,所以本文采用了Haar分類器。該分類器采用了AdaBoost算法[2],將多個強分類器連接在一起形成級聯分類器。用級聯分類器檢測樣本是否為正例(面部區域),如果是正例則送到下一個強分類器繼續檢測,如果是負例(非人臉區域)則立即拋棄,這樣可以大大加快檢測人臉圖像的速度[3]。AdaBoost算法如圖1所示。

圖1 AdaBoost算法
OpenCV中最常用的人臉識別算法是特征臉法Eigenfaces[4],Eigenfaces分為4步:①將所有人的訓練圖像視為一個整體,提取其中相關和有用的特征,并丟棄其余的特征,這些重要的特征被稱為主成分;②將這些特征與訓練過程中存儲的元素列表進行比較;③找到最匹配的特征;④返回與該最匹配特征關聯的人員編號。特征臉主成分如圖2所示。
硬件方案包含樹莓派3代B型開發板、樹莓派500萬像素攝像頭、HC-SR501人體感應模塊、SG90 9 g舵機模塊、蜂鳴器模塊和LED燈。其中樹莓派開發板用于數據的處理及硬件的控制,HC-SR501人體感應模塊用于人體信號的采集,當檢測到有人時則打開攝像頭,樹莓派攝像頭用于人臉圖像的采集,SG90 9 g舵機模塊用于門鎖的開閉,蜂鳴器模塊和LED燈用于系統的報警。系統框架如圖3所示。

圖2 特征臉主成分

圖3 系統框架圖
OpenCV(Open Source Computer Vision Library)是一個開源跨平臺的計算機視覺和機器學習軟件庫,它包含了實時圖像處理和計算機視覺等方面的算法。本軟件部分設計將Python2.7作為編程語言,通過調用OpenCV3.3.0中的人臉識別算法來實現基于人臉識別的防盜功能。
本程序主要分為人臉注冊與人臉識別兩部分。人臉注冊部分,首先采集用戶的人臉圖像,然后將經過預處理和歸一化后的人臉圖像訓練成一個train.yml識別器。人臉識別部分,首先調用已經訓練好的識別器,將新人臉與已經注冊的人臉進行比對,從而返回置信度(confidence)和用戶名稱等信息,如果置信度高于設定值,則控制舵機開鎖,如果置信度低于設定值,則控制蜂鳴器和LED燈報警。主程序流程如圖4所示。

圖4 主程序流程圖
在實際場景中對本系統進行測試。Haar分類器采用haarcascade_frontalface_alt2.xml,人臉檢測參數設定如下:每個圖像縮減的比例大小scaleFactor=1.2,每個備選矩形框具備的鄰近數量minNeighbors=5,人臉檢測的最小矩形大小minSize=(20,20),人臉識別采用EigenFaceRecognizer_create()函數,每個用戶的人臉樣本數量為30個。
人臉識別測試如圖5所示,本設計可以在較復雜的背景環境下檢測出圖像中的人臉,辨識出預存的用戶姓名,且達到65.0%的較高置信度。當人臉識別返回的置信度高于50%時,樹莓派自動控制舵機旋轉,打開門鎖;當返回的置信度低于50%時,蜂鳴器發出警報且LED燈閃爍。樹莓派控制舵機反應情況如圖6所示。

圖5 人臉識別測試圖

圖6 樹莓派控制舵機
本文設計與實現了基于人臉識別的防盜系統,該系統能夠自動使用樹莓派以及OpenCV進行人臉識別,并根據識別結果進行開鎖與報警功能,從而提高安防效率。本設計體積小、成本低、識別率較高,具有很大的實用價值。
[1]梁文莉.基于獨立主成分分析的人臉識別算法研究[D].西安:西安科技大學,2012.
[2]馬博宇,尉寅瑋.基于AdaBoost算法的人臉識別系統的研究與實現[J].儀器儀表學報,2016(Suppl 1):162-167.
[3]宋西來.基于OpenCV的人臉識別系統研究[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