基于OpenCV的人脸识别考勤系统的研究和实现

2021-06-20 02:22:20缪来瑞顾烨波
科技视界 2021年13期
关键词:考勤人脸识别人脸

缪来瑞 顾烨波

(淮阴师范学院,江苏 淮安 223300)

0 引言

目前,我国高等教育入学的学生规模在不断扩张,2020年我国将新增100万数量的从事职业技能学习的学生,不同于中学教育,高等教育教学环境较为自由宽松,学生逃课已经成为目前高校急需解决的现实问题。为了有效督促学生按时上课,保证教学和学习质量,对学生进行有效签名考勤变得势在必行。然而传统的人工点名的方式进行课堂点名费时费力,难以真正起到有效监督作用。

为了实现上述需求,本文提出了一种结合OpenCV和Dlib的人脸检测器与卷积神经网络在课堂环境下的人脸考勤算法。以轻量级网络作为基础网络模型,通过特征提取构建数据库、图像特征匹配等考勤系统关键部件,完成有效的课堂考勤系统的设计与实现。

1 人脸识别的关键技术

人脸识别技术是基于分析人脸图象,从中提取出有效的识别信息,用来“辨认”身份的一门技术[1]。在深度学习出现之前,人脸识别主要通过提取人脸几何特征等方法,其技术主要基于人脸特征点的间距、比率等参数为特征进行的人脸识别,但这种方式缺陷较多,识别率较低,极易受光线、角度等因素的影响。目前,人脸识别的主流技术是通过深度卷积神经网络进行识别,如CNN、SPLM、CL等[2]。本考勤系统系统围绕人脸识别主要技术展开,增加了相似度计算的环节。

1.1 人脸检测

要想识别人脸,首先需要通过OpenCV的函数读取连续视频帧,并在捕获的图像中找到所有人脸的位置,并将人脸部分的图像切割出来。接着将图片灰度化,因为色彩对于找到人脸位置并无明显作用,接着计算图像中各像素的梯度。通过将图像变换为方向梯度直方图(Histogram of Oriented Gradients)形式,提取图像的特征,从而获取人脸位置[3]。

1.2 人脸矫正

一张图片中的人脸可能是倾斜的,或者仅仅是侧脸。为了方便给人脸编码,需要将人脸对齐成同一种标准的形状。人脸对齐的第一步就是人脸的特征点估计。

Dlib库的人脸矫正过程是在OpenCV取得图像后进 行,通 过Dlib的extract_image_chip(img,dlib::get_face_chip_details(shape,150,0.25),face_chip)函数,能够将人脸的68个人特征点处理成51个特征点。在 找 到 特 征 点 后,通 过get_face_chip_details(shape,150,0.25)函数计算每两个特征点的相似变换人脸区域的旋转角度以及缩放系数。最后通过插值法完成相应的处理,使各个特征点对齐(将眼睛、嘴等部位移到相同位置),实现Dlib的人脸矫正。

1.3 人脸特征提取

Dlib库的人脸特征提取主要是通过其深度神经网络ResNet(Residual Neural Network),对提取的人脸特征数据进行对比分类识别。

ResNet是一种基于残差学习的深度神经网络,其结构包含一个残差支路和short-cut支路,比传统的卷积结构多了一个short-cut支路,用于传递低层的信息。ResNet通过residual mapping被push为0有效地解决了随着网络的加深,梯度的范数急剧下降,即梯度消失以及梯度爆炸现象,使得准确率保持在相对稳定的状态[4]。

最后将人脸的68个特征点坐标带入face_encodings(face_image,known_face_locations=None,num_jitters=1)等函数中,返回一个128维的脸部编码列表。

1.4 相似度计算

预先将所有的人脸图像放入人脸库中,全部用上述的神经网络转化为128维的脸部编码列表并保存。识别时,将人脸编码转换为128维的向量后,与人脸库中的数据进行比对。通过人脸匹配函数compare_faces(known_face_encodings,face_encoding_to_check,tolerance=0.6)比较脸部编码列表和候选编码,看看它们是否匹配,设置一个阈值,若两张人脸特征向量的距离,在阈值范围之内,则认为其是同一个人。

2 考勤系统设计

项目组计划以卷积神经网络作为深度学习框架,以FaceNet为模型进行分类训练,结合已有算法中光照等因素对识别准确度的影响,研究减少识别噪声的方法,并将算法应用到课堂智能考勤系统的设计和开发,系统设计的具体步骤包括以下4步。

2.1 界面设计

仿照通用型软件界面设计的原则,所有的操作都在菜单栏里实现,一部分区域用于展示摄像头实时读取并由程序加工后的视频流信息,另一部分区域做控制台输出,打印相关信息,比如提示学生面部信息添加成功、添加失败及其原因,提示学生打卡成功、打卡失败及其原因;添加面部信息时人是必须和程序进行交互的,比如输入一些相关的信息,这个时候程序是阻塞的;但是在打卡的时候,程序是不阻塞的,如果不点击关闭打卡,它会一直在打卡的模式,等待并识别每一个前来打卡的学生,这比较符合现实的使用场景。

2.2 图像采集

采集的数据通过建表来存储学生信息和考勤信息,每次新建录入学生面部信息时,要求输入学号、姓名,并查无重后方可录入,录入时只取距离屏幕最近的学生的面部信息,这是考虑到实际打卡都是依次进行而不是一群人一群人地打卡,录入时有两种模式可供选择,自动模式:一旦识别到人脸就自动捕获截图,连续截图达到10张就结束录入;手动模式:点击菜单结束录入,不一定要得到10张。结束录入后就开始从刚才捕获的学生面部提取人脸特征数据并连同之前输入的学生姓名等数据作为一行记录保存到数据库中,如果没有捕获到学生面部或者刚才捕获的面部信息不是同一个人,这行记录就被丢弃。

2.3 图像检测与评估

图像识别时将依据特征提取模型和相似度匹配算法对录入的人脸信息进行有效检测和质量评估,达到检测阈值的方可视为通过。考勤时,须满足三个条件:面部信息已录入、在打卡时间段内、未重复打卡,只有打卡成功,打卡人姓名及学号、打卡日期及时间才会被当成一行记录保存到数据库并在控制台输出打卡成功信息,否则会在控制台输出失败及其原因信息。

2.4 考勤统计

系统设计考勤统计模块,计划采用短信通知等方法对旷课或者迟到的学生进行实时预警。

3 测试与分析

为了验证系统运行的准确性以及稳定性,特将该人脸识别考勤系统进行一系列测试,以计算机科学与技术学院学生为测试对象,从中随机抽取8个班(336人)作为样本数据,对每个班级依次进行考勤,测试过程相关数据的统计如表1所示。

表1 不同考勤方式测试对比

由此可以看出,本系统的人脸识别考勤各方面性能均优于其他两种考勤方式,有助于管理者对人员的管理,减轻考勤工作负担。

4 结语

人脸识别经过多年的发展,在社会各界已得到了广泛的应用。传统的人工、指纹考勤的方式费时费力,难以真正起到有效的监督作用。这种非接触,无感知,快捷方便的签到方式不仅有利于疫情防控常态化的管理还可以极大地提高考勤的效率,满足快速考勤的需求。

猜你喜欢
考勤人脸识别人脸
人脸识别 等
作文中学版(2022年1期)2022-04-14 08:00:34
有特点的人脸
揭开人脸识别的神秘面纱
学生天地(2020年31期)2020-06-01 02:32:06
基于人脸识别技术的考勤应用研究
电子制作(2019年12期)2019-07-16 08:45:28
智能人脸识别考勤系统
电子制作(2019年9期)2019-05-30 09:42:00
三国漫——人脸解锁
动漫星空(2018年9期)2018-10-26 01:17:14
便携式指纹考勤信息管理系统设计
基于类独立核稀疏表示的鲁棒人脸识别
计算机工程(2015年8期)2015-07-03 12:19:07
马面部与人脸相似度惊人
长得象人脸的十种动物
奇闻怪事(2014年5期)2014-05-13 21:43:01