APP下载

基于人脸识别的实验室考勤系统

2023-02-08朱彦颖赖芝岑黄艳国

物联网技术 2023年1期
关键词:考勤人脸识别人脸

朱彦颖,赖芝岑,李 凡,黄艳国

(江西理工大学 电气工程与自动化学院,江西 赣州 341000)

0 引 言

目前人脸识别作为一种新技术在实际生活中得到了广泛的扩展和应用[1]。由于信息技术的革新,进行人脸识别时对检测到的图像处理有了更深的要求,处理起来也更加复杂。在样本重组背景较为单一的情况下,大部分算法都能取得较高的识别率。实际应用中,如何解决环境因素、人脸表情、姿态变化的影响,成为目前检验各类算法的难题。将人脸识别广泛应用于生活中仍存在发展空间。对人脸进行特征化处理的人脸识别算法是将高维度转化成低维度识别人脸面部特征[2],降低了计算复杂度,但是丢失了细小特征差异。近年来,卷积神经网络在人脸识别领域取得了极大成果。本文将人脸识别应用于实验室的签到考勤,并在实际的实验室中进行测试,避免了纸质签到的不准确性,让签到富有实时性和准确性,使得实验室学习氛围更加浓厚。

1 系统总体设计

1.1 系统总体设计框架

人脸识别是利用摄像机采集现成人脸的静态图像,并通过定点方式等相关技术进行识别。人脸识别主要是检测人脸特征中的关键信息,根据数据库中已存在图片进行区分,实现人类个体的分类以及精准识别。本系统主要利用实验室里的摄像头对人脸信息进行采集,以人脸识别技术为基础采用Dlib库、SQLite数据库实现。系统结构主要包括人脸识别子系统、网页端和微信端,用不同端反馈人脸识别得到的信息并汇总成表格便于查看。总体框架如图1所示。人脸识别子系统包含了实验室人脸识别的代码部分以及相关原始面部数据,通过实验室的摄像头采集现场的人脸数据,再根据事先保存的数据图像进行对比,得到实时签到信息并把信息录入到后台保存,签到信息可以通过微信端和网页端进行查询。

图1 人脸识别考勤系统总体框架

微信端子系统通过进入CVPapers微信公众号输入一系列指令完成操作。网页端子系统通过搭建的虚拟服务器进入并通过图标信息直观看出用户考勤数据,其中包括当日以及当月的数据表格和签到完成情况,还有具体的气泡升降图显示实验室当日签到人员时间排序,便于管理员查看具体数据。

1.2 人脸识别系统设计过程

本系统使用基于OpenCV框架的人脸识别技术,人脸识别是对静态或者动态图像进行人脸检测,检测出人脸之后采集用户的面部信息,提取出人脸的数据特征并进行量化处理,将计算机预先处理的数据与原始数据库进行匹配,对比完成身份识别鉴定[3]。人脸识别子系统包含人脸识别的主要代码,通过实验室的摄像头采集现场的人脸数据再对比数据库,得到实时签到信息并把信息录入到后台保存。微信端子系统通过进入CVPapers微信公众号输入一系列指令完成操作。网页端子系统通过服务器进入,再通过图表信息直观看出用户考勤数据,并通过具体气泡升降图显示实验室当日签到人员时间排序,便于管理员查看具体数据。

2 人脸识别系统实现

2.1 图像信息采集与预处理

直接对人脸的面部特征进行识别时错误率比较高,受环境影响较大,不容易识别出图像,因此用实验室摄像头抓拍人脸图像,然后对这些图像进行预处理等一些操作后再进行人脸识别,完成考勤任务。在采集图像的过程中,由于客观因素的影响,常会导致采集到的图像信息中存在一定误差,故在进行人脸识别之前,需检测出人脸所在位置后获得面部信息,采取灰度化变换实现预处理。本文采用图像处理OpenCV算法以及PyQt5来实现摘要算法计算并做出分离页面,实际后端的人脸图像由数组构成。获取人脸特征向量的过程如图2所示。

图2 得到面部特征向量流程

检测到图片中的人脸,标记出人脸坐标,主要定位包括面部、眉眼、口鼻等关键点[4];然后进行人脸识别的预处理,彩色图像可以通过b,g,r=cv2.split(image)实现分离,通过数组剪切实现通道分离b,g,r=image[:,:,0],image[:,:,1],image[:,:,2];彩色图像调用 cv2.merge([b,g,r])实现通道并合。由于环境条件的干扰是复杂随机的,所以必须对事先采集到的原始图像进行预处理,包括灰度变换,匹配签到时候的图像与数据集中图像的精度(阈值),对人脸图像进行归一化,完成后确认人脸匹配,完成打卡。

2.2 人脸特征提取与识别

人脸定位是将脸部特征(如眼睛、鼻子、嘴唇、眉毛、脸部轮廓等)都标记出来,此特征通常是一个低维度到几百个维度的特征表达[5];接着用不同人脸特征之间的相似度或者距离来进行判断,相似度是越高越好,距离是越小越好,去刻画新图像和数据集存储的各个图像之间的关系。Dlib库的人脸特征提取主要是通过其深度神经网络ResNet(Residual Neural Network),对提取的人脸特征数据进行对比分类识别。调用Dlib库中已经训练好的模型“shape_predictor_68_face_landmarks.dat”进行定位,再用OpenCV进行图像化处理,从而达到特征提取与定位的功能。具体定位结果如图3所示。接着提取原库图像与实际图像相关数据,得到向量值并对这部分向量值求欧氏距离[6]。

图3 Dlib包定位面部器官分布

设两个向量分别为x(x1,x2,...,xn)和y(y1,y2,...,yn),二者的欧氏距离计算公式为:

在检测人脸时,即判断68处标定点与实际人脸的距离。检测选取鼻子、左眼、右眼及上唇部分的基准关键点,同时获取当前图像检测处对应位置的关键点,计算上述两个点集之间的相似变换矩阵,获取当前人脸图像相对于基准人脸间的旋转角度、缩放系数及应该获取的人脸区域的Rect坐标。相似变换即等距变换+均匀缩放,当图像中的点用齐次坐标表示时,变换矩阵为:

当s=1是保向的,s=-1是逆向的,相似变换可以简单地写成:

其中:R是旋转矩阵;t是平移矢量;s是缩放尺度,有4个自由度(1个旋转角θ,2个平移tx、ty,1个缩放尺度),需要两组点四个方程求解,相似变换的不变量是角度、长度的比例、面积的比例。识别出模型特征后再与数据库中已存储的人脸特征逐个进行匹配[7-8],并设定阈值,当相似度大于阈值时,确定识别成功,标记签到成功并输出签到对象的信息。

3 人脸识别考勤系统的实现

3.1 人脸识别端

用户到达签到地点,面对事先准备好的摄像头进行人脸识别,在桌面客户端可以看到人脸识别系统签到页面,如图4所示。

中间大屏幕为主屏,用来识别人像。右侧是签到表,含有提前设定的个人信息和储备图像。左下角有当天开会的通知,此项可由管理者自行设定。对准摄像头识别到人脸,机器对比几秒后会在右侧的签到表中显示签到信息[9],包括签到人姓名等,实现界面如图4所示;人脸识别成功后即结束签到,后台即完成用户签到数据录入。

图4 实际考勤系统签到界面

3.2 网页端设计

网页端主要可以获取图标信息,更加直观,打开网页端可以看到事先设置好的考勤实验室的信息页面,如图5所示。

图5 服务器实时考勤信息页面展示

网页端的核心业务是实现对考勤数据的管理,主要包括出勤记录和统计报表两部分。出勤记录模块主要实现对具体人员的出勤信息按照时间段进行存储,管理员可以直接调取后台数据进行查询,具体信息包括签到人姓名、时间、实验室以及是否签到成功;同时提供了Excel报表,方便打印签到情况,见表1所列。

表1 签到表内容示例

为了更加直观地得到考勤信息,网页端还设置了考勤气泡图,气泡的大小代表累积签到的次数,气泡越大越下沉,也就表示签到的次数越多;横坐标代表了各个人员签到的具体时间段,并将不同人员设置为不同的气泡颜色,方便更加直观地观察具体情况,如图6所示。考勤成功后,会立刻返到网页端数据页面,以供管理者查看。

图6 气泡图结果示例

3.3 微信端设计

利用微信公众号开发工具创立一个新公众号并与远程服务器连接[10],将实时的签到结果导入到微信端口,方便查看当日考勤信息。公众号内预设提示信息,输入实验室标号可以获取到实验室的人员考勤情况,也可以通过多种指令获得某年某月某日的实验室人员考勤情况,如图7所示,得到的结果以表格的形式呈现。

图7 公众号进入页面及指令输入显示结果

4 结 语

本文使用了目前很成熟的人脸检测与人脸识别算法进行系统的设计与实现,保证了该系统的可靠性,将人脸识别技术应用于实验室的考勤管理。依托于实验室摄像头实现了自动化考勤管理,并进一步降低了考勤误检率和误报率。此外还可以通过互联网访问考勤数据分析平台,方便管理员实时查看考勤数据。通过不同时间的调试验证,本系统能高效、准确地进行人脸识别考勤。

猜你喜欢

考勤人脸识别人脸
人脸识别 等
有特点的人脸
揭开人脸识别的神秘面纱
基于人脸识别技术的考勤应用研究
智能人脸识别考勤系统
三国漫——人脸解锁
便携式指纹考勤信息管理系统设计
基于类独立核稀疏表示的鲁棒人脸识别
马面部与人脸相似度惊人
“最严考勤”难留学生心