基于人脸识别技术的门禁系统软件设计

2021-01-30 05:29严辉邢子昊
电子技术与软件工程 2020年22期
关键词:库中门禁系统人脸识别

严辉 邢子昊

(安徽建筑大学电子与信息工程学院 安徽省合肥市 230022)

1 引言

门禁系统又称出入管理控制系统(Access Control System),用于对人员放行或禁行。传统的门禁系统使用刷卡认证或者指纹认证等识别方式,但存在一定的安全隐患且稳定性较差。而人脸识别技术可以有效提取人的面部特征,依次与人脸库中的数据进行比对,其对人员身份识别具有非侵犯性、无法取代性等显著优点,在门禁系统中得到广泛应用。

2 系统软件设计流程

门禁系统的软件功能设计分为视频帧人脸获取、人脸检测、人脸跟踪、人脸特征提取、人脸特征比对等,具体流程如图1所示。

对视频中的每一帧人脸图像进行人脸检测以确定图像中人脸所在的区域,使用人脸跟踪以应对人脸区域的移动,通过对视频帧中人脸的特征进行提取与人脸库中的人脸特征进行人脸比对,若相似度超过阈值则予以放行,反之禁行。

3 关键技术

3.1 人脸检测

系统采用Adaboost 算法进行人脸检测操作,Adaboost 算法是一种基于Haar 特征的人脸检测算法[1],主要使用Haar 特征训练弱分类器,通过对多个弱分类器进行筛选获取最优弱分类器,由多个最优弱分类器进行组合得到强分类器,最后将多个强分类器进行组合得到级联分类器[2],具体流程如图2所示。在应用时将每一层分类器分别设定对应的阈值,消除绝大多数非人脸区域,提高检测的准确率。

3.2 人脸跟踪

系统采用单人脸、摄像头不动的检测方式。人脸晃动时,通过CamShift 算法进行人脸跟踪操作[3]。CamShift 算法是是一种以颜色直方图为目标的跟踪算法,当视频图像人脸区域发生变化时可以通过调整区域位置进行连续跟踪操作。

算法操作步骤:

(1)获取人脸检测得到的初始人脸区域。

(2)计算得到人脸区域的反向投影。

(3)利用Mean-shift 算法获取人脸区域新的位置和大小。

(4)对于下一帧图像,根据步骤(3)获取的人脸区域位置和大小初始化原人脸区域,重复执行步骤(2)即可做到连续跟踪操作。

3.3 人脸比对

采用人脸1:N 比对方式,使用Gabor 小波进行人脸特征提取[4]。由于单一人脸框相对较大,此时对人脸框进行分块处理,从中提取最能反映人脸特点的特征则能有效提取相应特征值。通过小波变换方法进行多尺度细化分析,锁定图片的低频分量和高频分量,将图像中的某一显著特征体现在某一频率上,再对低频分量进行特征提取(如眼睛、鼻子、嘴巴等特征),对这些局部特征不同属性进行数字标注,然后从大到小排列形成特征向量。根据原图像进行Gabor 小波变换操作后,Gabor 提取的特征能够反应诸如眼睛、鼻子、嘴巴等部位人脸图像的位置、亮度等特征信息。

图1:门禁系统流程图

图2:Adaboost 算法流程

图3:检测结果

4 软件实现

4.1 环境搭建

系统软件开发环境为Android Studio,编程语言为Java。由于达成人脸识别算法中的大多数函数都为直接调用OpenCV 的库函数,所以本系统程序设计整体比较整洁。

4.2 实现流程

4.2.1 画出人脸框

使用函数onCameraOpened 来打开摄像头,设置人脸框的宽和高的取值范围,并将初始人脸框设为空。

使用函数onPreview 规划人脸框,其中对摄像头设置nv21 原数据回调且清空上一次画框。具体代码如下:

4.2.2 人脸对齐

若图像数据宽高不符合要求,使用OpenCV 自带的getAlignedBitmap 函数获取对齐后的图像。用OpenCV 自带的Haar函数执行人脸检测,利用积分图检测出人脸上诸如:眼睛、鼻子、嘴巴等主要目标的坐标进行锁定,规划好人脸框位置进行人脸检测操作,具体代码如下:

4.2.3 人脸特征提取

提取规划好的单人脸框的当前帧人脸图像的灰度特征和Gabor小波特征,使用extractFaceFeature 函数传入分离的图像信息数据,包括图像数据、图像的宽和高、人脸框位置和图像的颜色格式。定义FaceFeature 变量来获取对应的人脸特征,并在FaceFeature 的二进制数组中保存获取到的人脸特征数据,解析出人脸特征数据,具体代码如下:

4.2.4 人脸特征比对

在系统提取出当前帧人脸的特征数据后,根据设置的相似度阈值进行人脸库中的人脸图像数据比对,高于相似度阈值即可确定人脸特征比对成功。

使用compareFaceFeature 函数来进行人脸比对操作,其中定义比对代码,并在代码中添加当前帧人脸图像的人脸特征,人脸库中图像的人脸特征、比对模型、比对相似度。最后筛选结果选出最相似的人脸,具体代码如下:

4.2.5 实验结果

本实验使用的是根据Android 系统开发的专用设备,Android版本为5.1.1,内核版本为3.10.0。

检测结果如图3所示,当扫描到的人脸与人脸库中的某张图片相似度超过95%时,则可以认定为身份辨认通过,允许通过门禁系统。

5 结语

本文基于人脸识别技术设计了这款门禁系统,相较于以前单纯仅通过刷卡就能够随意通过的门禁系统来看安全性有了很大的提升。这款门禁系统有着人脸检测、人脸跟踪、人脸比对三个模块,解决了单一拍照引发的检测时间长的问题和人脸表情变化引发的误检性问题,同时人脸识别带来的非接触性、简单便捷性、高效率性也深受人员的青睐,因此人脸识别技术的广泛推广必将开启新的局面。

猜你喜欢
库中门禁系统人脸识别
基于多种生物特征识别的RFID门禁系统设计
动物城堡
动物城堡
人脸识别 等
揭开人脸识别的神秘面纱
基于AI智慧人脸门禁系统的硬件系统设计
基于单片机的安全门禁系统研究设计
智能盘库在自动化立体库中的探索和应用
基于单片机的小区门禁系统设计
基于类独立核稀疏表示的鲁棒人脸识别