徐杰 李捍東










摘? 要: OpenCV作為一個廣為人知的跨平臺計算機視覺庫,應用于各種領域,但是其在門禁系統上的應用還比較罕見[1],本文主要研究了Adaboost與MTCNN算法,并以OpenCV視覺庫與STC89c51單片機作為核心,采用MFC構建了整個人臉識別門禁系統,實現了實時的人臉檢測與識別功能,使用單片機開發板模擬門鎖的運轉。
關鍵詞: OpenCV; 單片機; MFC; 人臉檢測; 人臉識別; 門禁系統
中圖分類號:TP317.4? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2022)05-63-03
Access control system based on MCU and OpenCV
Xu Jie, Li Handong
Abstract: As a well-known cross-platform computer vision library, OpenCV is used in various fields, but its application in access control systems is relatively rare. In this paper, Adaboost and MTCNN algorithms are studied. With the OpenCV vision library and STC89c51 microcontroller as the core, the face recognition access control system is built with MFC, and the real-time face detection and recognition function is realized. A simulation system was developed.
Key words: OpenCV; MCU; MFC; face detection; face recognition; access control system
引言
21世紀,傳統的門鎖已不能滿足人們對于安防的需求,且隨著生物特征識別技術與計算機視覺技術的發展,可以通過特征提取算法提取人臉的信息,人臉檢測與識別成為門禁系統的一種實現方案[2,3]。
生物特征提取即通過相應的光、聲音傳感器,采集生物的視覺與聲音信息,并用一組能特征向量來表示它的特征信息,方便計算機進行識別。目前由特征提取發展而來的識別方式有:虹膜識別、掌形識別、指紋識別、視網膜識別、基因識別、人臉識別等。其中指紋識別、虹膜識別成本較高,不利于商業化,人臉識別作為一個高效且低成本的方式被廣泛接受。而單片機作為一個低成本的控制器,支持各種復雜外設,是門禁控制的不二選擇[4]。
本文通過FERET人臉數據庫來分析研究Haar、MTCNN算法,比較它們的檢測率與實時性,選擇一個最優的算法,并配合MFC框架與STC89C51核心板實現人臉識別門禁系統。
1 人臉檢測分析與研究
人臉檢測就是對任意給定的一副圖像,通過某種算法對它進行檢索,查找其中是否含有人臉,如果含有人臉,就裁剪出人臉區域并返回該人臉區域圖像。如今最流行的人臉檢測算法有基于Haar特征的Adaboost算法與基于神經網絡的MTCNN算法。
1.1 Haar-Adaboost算法
Adaboost算法是一種多項式級的算法,將弱分類器疊加成為一個強分類器。這種方法是將大量的弱分類器集成在一起,并給每個分類器增加權重值,使得分類器能夠自動調整預設假設的錯誤率,從而使得系統能夠自動選擇最優的檢測路徑。經過多次迭代之后,把弱分類器集成為一種強分類器。該算法有較高的實時性和精確度,其性能已經在某些商業系統中得到證實[5]。
1.2 Haar-Adaboost算法原理
1.2.1 初始化樣本與分類器
分配給每個樣本相同的權值。例如有N個樣本,那么分配給每個樣本的初始權值為1/N,并使樣本集通過學習訓練得到初始的弱分類器,初始弱分類器為:
⑴
1.2.2 訓練弱分類器
將樣本分類,被正確分類的樣本權值會下降,而沒有被正確分類的樣本權值會上升。權值越高的樣本在下一次訓練中權重就越高,相反就越低。如前述,要訓練許許多多的弱分類器。在第一個弱分類器訓練完成后,第二個弱分類器就根據改變了的樣本權值繼續訓練分類器,如此迭代下去。公式⑵、公式⑶分別表示被錯誤分類的權值與被正確分類的權值:
⑵
⑶
1.2.3 構造強分類器
將各個弱分類器組合在一起,構建最終的決策分類器。訓練弱分類器時,生成的弱分類器被分配了相應的話語權。如果一個分類器的錯誤率高,那么它的話語權就低,如果一個分類器的錯誤率低,那么它的話語權就高。話語權決定了該弱分類器在構造強分類器時占的比例,其構造方法為:
⑷
1.3 MTCNN算法
MTCNN算法,全稱Multi-task Convolutional neural Networks,多任務卷積神經網絡。將人臉的區域檢測和人臉檢測集成在一起,能夠同時實現人臉檢測和人臉對齊,是一種基于cascade框架的算法。采用了P-Net、R-Net、O-Net三個級聯網絡與許多卷積神經網絡模型,用較小的卷積核代替了最初使用的大卷積核,擁有較好的運算速度[6]。
1.4 MTCNN算法原理
1.4.1 P-Net
把圖像金字塔傳入該建議網絡,使用FCN對圖像進行粗略的邊框標定與特征提取,并進行Bounding-Box Regression與NMS,對窗口調整并過濾掉大部分不準確的邊框,把特征信息與三個卷積核卷積初步判斷該區域是否存在人臉,生成人臉候選框,并把數據傳入改進網絡R-Net。
1.4.2 R-Net
圖像經過P-Net后,留下了許多預測窗口。把這些預測窗口輸送到R-Net,進行候選框的過濾,R-Net擁有128個全連接層,能夠更加細致地過濾掉非人臉區域。過濾后再繼續Bounding-Box Regression與NMS,進一步對候選框進行優化,并將結果傳給O-Net。
1.4.3 O-Net
Output Network,輸出網絡,是MTCNN算法的最后一個步驟。它是一個比較復雜的卷積神經網絡,用于甄選出最終的人臉框與人臉特征。甄選結束后依然進行Bounding-Box Regression與NMS進行窗口過濾與調整第三層輸出網絡O-Net,作為最終輸出層網絡,它的卷積核是最為復雜的,通過人臉判別、人臉區域邊框回歸、人臉特征定位,最終輸出左上角和左下角的兩個坐標與五個人臉區域的特征點,作為最終輸出。
1.5 人臉檢測算法的選取
根據人臉識別門禁系統的需要,我們必須甄選出一個合適的檢測算法。只有保證了人臉檢測的準確性,才能為下一步的人臉識別打好基礎。Haar算法是傳統的人臉檢測算法,一直被當做人臉檢測的一個核心算法。而MTCNN是近年來發展起來的一種新型的神經網絡算法。以下將在這兩種算法中甄選出一個比較優等的算法。
這里用FERET人臉數據庫的部分圖片進行測試,比較兩種算法哪一種速度更快、準確率更高。FERET是由FERET項目創建的,這個圖像集合包含了大量的人臉圖。在圖像中,每個人的姿態、年齡、光照情況都不同。FERET是目前人臉識別領域應用比較廣泛的一種人臉數據庫。圖1、圖2為同一張圖片用兩種算法分別檢測的結果。
MTCNN算法的檢測精度優于Haar算法的,幾乎整張圖片人臉數據都能被檢測到,所以本設計選擇MTCNN算法來進行人臉檢測。
2 人臉識別門禁系統軟件設計
2.1 上位機軟件設計
本設計基于MFC構建GUI頁面,并配合OpenCV實現人臉的檢測與識別,人臉檢測與識別流程圖如圖3所示,先做圖像的預處理,并根據人臉檢測算法檢測出人臉區域,并提取特征,與數據庫數據特征進行對比,如果檢測到人臉數據庫里的人臉數據,則發送數據給底層單片機控制器。
2.2 單片機軟件設計
單片機主要用來控制門禁的運行。本設計通過步進電機來模擬門禁的運行。通過串口接收程序,接收PC上位機發來的識別數據,識別成功則控制步進電機運轉,多次識別失敗,則啟動報警程序,軟件設計流程如圖4所示。
[開始][串口,變量初始化][等待][結束][串口中斷開始][保存串口數據,
標志位清零
] [如果接收數據
等于“1”] [如果接收數據
等于“0”][串口中斷結束][步進電機運行][FLAG++] [if(FLAG>2)][報警,FLAG清零] [是] [是] [是]
3 系統測試與結果分析
選擇寢室室友作為測試對象,檢測系統的實時性與穩定性,上位機應用與門禁的模擬測試結果如圖5、圖6所示。
經實驗,該設計能夠實現人臉檢測與識別,精確度達到基本要求,識別時間大約為2秒,報警與開關門功能均正常運行。
4 結束語
基于FERET人臉數據庫研究對比了Adaboost與MTCNN的檢測識別率,選擇MTCNN作為人臉檢測算法,采用MFC設計GUI界面,實現了人臉檢測與識別,并把檢測結果傳輸給STC89C51開發板,模擬了門禁的旋轉與報警。經過系統測試,驗證了該套系統的可行性,可以滿足日常對門禁系統的基本需求。
參考文獻(References):
[1] 李丕峰,付光健,朱光亞,等.智能門禁群控系統[J].市場周刊
(理論研究),2013(10):132
[2] 孔令釗,唐文靜.基于PCA的人臉識別系統的研究與實現[J].
計算機仿真,2012,29(6):27
[3] 楊明中,楊平先.基于低秩特征臉與協同表示的人臉識別
算法[J].液晶與顯示,2017,32(8):650
[4] 王靜霞.單片機應用技術(第4版)[M].電子工業出版社,2019
[5] 邢益銘,野瑩瑩,程立英,等.基于Haar-AdaBoost人臉檢測
算法的研究[J].裝備制造技術,2020(3):67
[6] 賈小碩,曾上游,潘兵,等.基于改進MTCNN網絡的目標人臉
快速檢測[J].計算機工程與科學,2020,42(7):1262
收稿日期:2021-10-27
作者簡介:徐杰(1995-),男,貴州安順人,貴州大學電氣工程學院碩士研究生,主要研究方向:圖像處理。
通訊作者:李捍東(1966-),男,貴州貴陽人,碩士,貴州大學電氣工程學院教授,主要研究方向:計算機控制技術、嵌入式系統。