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

34
软件开发与应用
Software Development And Application
电子技术与软件工程
Electronic Technology & Software Engineering
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]
。由于单一人脸框相对较大,此时对人脸框进行分块处理,从中
提取最能反映人脸特点的特征则能有效提取相应特征值。通过小波变换方法进行多尺度细化分析,锁定图片的低频分量和高频分量,
基于人脸识别技术的门禁系统软件设计
严辉  邢子昊
(安徽建筑大学电子与信息工程学院  安徽省合肥市  230022)
将图像中的某一显著特征体现在某一频率上,再对低频分量进行特征提取(如眼睛、鼻子、嘴巴等特征),对这些局部特征不同属性进行数字标注,然后从大到小排列形成特征向量。根据原图像进行Ga
bor 小波变换操作后,Gabor 提取的特征能够反应诸如眼睛、鼻子、嘴巴等部位人脸图像的位置、亮度等特征信息。4 软件实现4.1 环境搭建
系统软件开发环境为Android Studio ,编程语言为Java 。由于
摘 要:
人脸识别技术在信息安全领域得到了广泛的应用。文中介绍了人脸识别技术在门禁系统中的应用设计,给出了门禁系统整体软件设计流程,着重介绍了基于人脸识别技术的读卡控制器软件设计。
关键词:门禁控制系统;人脸识别;Adaboost 算法图2:Adaboost 算法流程
图1:门禁系统流程图
图3:检测结果六类网线做法
35
软件开发与应用
Software Development And Application
电子技术与软件工程
Electronic Technology & Software Engineering
达成人脸识别算法中的大多数函数都为直接调用OpenCV 的库函数,所以本系统程序设计整体比较整洁。4.2 实现流程4.2.1 画出人脸框
废橡胶炼油使用函数onCameraOpened 来打开摄像头,设置人脸框的宽和高的取值范围,并将初始人脸框设为空。
使用函数onPreview 规划人脸框,其中对摄像头设置nv21原数据回调且清空上一次画框。具体代码如下:
@Override
public void onPreview(final byte[] nv21, Camera camera) {    if (faceRectView != null) {        faceRectView.clearFaceInfo();    }
List<FacePreviewInfo> facePreviewInfoList = PreviewFrame(nv21);
热熔螺母if (facePreviewInfoList != null && faceRectView != null && drawHelper != null){
drawPreviewInfo(facePreviewInfoList); }
registerFace(nv21, facePreviewInfoList);  clearLeftFace(facePreviewInfoList);4.2.2 人脸对齐
若图像数据宽高不符合要求,使用OpenCV 自带的 getAlignedBitmap 函数获取对齐后的图像。用OpenCV 自带的Haar 函数执行人脸检测,利用积分图检测出人脸上诸如:眼睛、鼻子、嘴巴等主要目标的坐标进行锁定,规划好人脸框位置进行人脸检测操作,具体代码如下:
intcode = faceEngine.detectFaces(bgr24,width,height, FaceEngine.CP_PAF_BGR24, faceInfoList);
if (code == ErrorInfo.MOK && faceInfoList.size() > 0) { Log.i(TAG, "detectFaces, face num is : "+ faceInfoList.size()); } else {
Log.i(TAG, "no face detected, code is : " + code); }4.2.3 人脸特征提取
提取规划好的单人脸框的当前帧人脸图像的灰度特征和Gabor 小波特征,使用extractFaceFeature 函
野战光缆
数传入分离的图像信息数据,包括图像数据、图像的宽和高、人脸框位置和图像的颜格式。定义FaceFeature 变量来获取对应的人脸特征,并在FaceFeature 的二进制数组中保存获取到的人脸特征数据,解析出人脸特征数据,具体代码如下:
FaceFeature[] faceFeatures = new FaceFeature[faceInfoList.size()];int[] extractFaceFeatureCodes = new int[faceInfoList.size()];for (int i = 0; i < faceInfoList.size(); i++) {    faceFeatures[i] = new FaceFeature();
extractFaceFeatureCodes[i] = actFaceFeature (bgr24, width, height, FaceEngine.CP_PAF_BGR24, (i), faceFeatures[i]);}4.2.4 人脸特征比对
在系统提取出当前帧人脸的特征数据后,根据设置的相似度阈值进行人脸库中的人脸图像数据比对,高于相似度阈值即可确定人脸特征比对成功。
使用compareFaceFeature 函数来进行人脸比对操作,其中定义比对代码,并在代码中添加当前帧人脸图像的人脸特征,人脸库中图像的人脸特征、比对模型、比对相似度。最后筛选结果选出最相似的人脸,具体代码如下:
int compareCode = faceEnginepareFaceFeature(previewFaceF eature, idCardFaceFeature, CompareModel.ID_CARD, faceSimilar);
if (compareCode == ErrorInfo.MOK){ int score = Score();}
public void subscribe(ObservableEmitter<CompareResult> emitter) {
CompareResult compareResult = Instance().getTopOfFaceLib(frFace);}4.2.5 实验结果
本实验使用的是根据Android 系统开发的专用设备,Android 版本为5.1.1,内核版本为3.10.0。
检测结果如图3所示,当扫描到的人脸与人脸库中的某张图片相似度超过95%时,则可以认定为身份辨认通过,允许通过门禁系统。5 结语
本文基于人脸识别技术设计了这款门禁系统,相较于以前单纯仅通过刷卡就能够随意通过的门禁系统来看安全性有了很大的提升。这款门禁系统有着人脸检测、人脸跟踪、人脸比对三个模块,解决了单一拍照引发的检测时间长的问题和人脸表情变化引发的误检性问题,同时人脸识别带来的非接触性、简单便捷性、高效率性也深受人员的青睐,因此人脸识别技术的广泛推广必将开启新的局面。参考文献
[1]ViolaP,Jones M.Rapid object detection using a boosted
cascade of simple features[C].Computer Vision and Pattern Recognition,2001.CVPR 2001.Proceedings of the 2001 IEEE Computer Society Conference on IEEE,2001,1(1),511-518.
[2]吴浩,金立左.基于混合级联分类器的人眼检测器[J].工业
控制计算机,2018(6):44-45+47.
[3]翟卫欣,程承旗.基于Kalman 滤波的Camshift 运动跟踪算法
[J].计算机工程与科学,北京大学学报(自然科学版),2015, 51(5):799-804.
[4]刘胜昔,程春玲.改进的Gabor 小波变换特征提取算法[J].
计算机应用研究,2020,37(2):606-610.作者简介
pvc编织地毯
严辉(1962-),男,安徽省合肥市人。安徽建筑大学电子与信息工程学院,副教授。研究方向为嵌入式系统应用。
邢子昊(1995-),男,安徽省蚌埠市人。研究生。研究方向为虚拟现实工程。

本文发布于:2024-09-23 19:21:47,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/235754.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议