APP下载

基于单片机与OpenCV的门禁系统

2022-05-27徐杰李捍东

计算机时代 2022年5期
关键词:人脸检测门禁系统人脸识别

徐杰 李捍东

摘  要: 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-),男,贵州贵阳人,硕士,贵州大学电气工程学院教授,主要研究方向:计算机控制技术、嵌入式系统。

猜你喜欢

人脸检测门禁系统人脸识别
基于多种生物特征识别的RFID门禁系统设计
人脸识别 等
揭开人脸识别的神秘面纱
基于AI智慧人脸门禁系统的硬件系统设计
基于单片机的安全门禁系统研究设计
基于人脸特征定位的SNS网站应用组件研究与设计
基于Android平台的人脸识别系统设计与实现
基于Matlab的人脸检测实验设计
基于单片机的小区门禁系统设计
基于类独立核稀疏表示的鲁棒人脸识别