邓熠 毕磊 薛甜 范亚江 侯丹
摘 要:文章针对传统考勤效率过低和现有人脸识别技术需要近距离刷脸的弊端,设计了一个基于深度学习的人脸识别课堂实时考勤系统。该系统以树莓派和Intel Movidius神经棒NCS为硬件平台,使用Python和OpenCV实现了基于深度卷积神经网络的人脸识别,并通过设计的考勤系统来保存识别结果和管理考勤数据。这种新型考勤系统在简化考勤流程的同时避免了传统考勤机需要近距离刷脸的弊端,支持远距离多人同时与实时识别,提高了考勤效率。
关键词:人脸识别;考勤系统;卷积神经网络;结构查询语言
0 引言
随着互联网技术、计算机技术、嵌入式技术和生物识别技术的飞速发展,公司、学校和各企事业单位的考勤方法也有了新的转变。课堂考勤是教学过程中的一个重要环节,传统的人工统计方法会造成教学时间的大量浪费。本设计提出了一个基于人脸识别的课堂考勤系统,大大节省了考勤占用的时间。人脸识别目前已经逐渐在各领域得到应用,其对人精准并且便利的辨别特性使得各领域逐渐加大对人脸识别的重视和应用推广。近年来相关政策的频频出台,也为人脸识别技术的发展提供了政策保障,未来人脸识别将会有更大的发展空间和应用市场。由于人工签到和人工统计等传统考勤方法不但浪费时间和人力物力,还存在着容易被忘记、被冒用和被替代等缺点,使得考勤的管理难度增加,人脸识别课堂考勤系统完全可以解决此类问题,具有很大的作用[1]。
1 系统分析
人脸识别课堂考勤系统本着为学校更便捷、高效地管理考勤,借助该系统可快速完成移动课堂的考勤。同时,目前的人脸识别算法已较为成熟,可以保证该系统具有较高的可靠性。该系统运用树莓派的配置、MySQL数据库的使用和部署、利用Python调用OpenCV等技术的研发来打造此系统。
基于图像分类和目标检测的人脸识别有三大模块:第一是采集数据集,第二是模型训练,第三是人脸识别。在人脸识别中使用了卷积神经网络(Convolutional Neural Network,CNN),卷积神经网络是一种深度前馈人工神经网络,可以进行大型图像处理,已成功地应用于图像识别Intel Movidius神经计算棒NCS,可以帮助低性能的设备实时运行CNN,进行一些图像分类等处理。目前的人脸识别算法较为成熟,可以保证该系统具有较高的可靠性。运用树莓派的配置、MySQL数据库的使用和部署、利用Python调用OpenCV等技术的研发来打造此系统。
本文所涉及的系统是一个基于树莓派的小型系统,不用耗费大量的资源。在开发系统时,使用的软件都是开源的,对硬件的配置要求不高[2-3]。
2 系统总体设计
2.1 功能设计
人脸识别考勤系统主要由登录模块、识别模块、考勤签到模块以及后台管理模块组成。
教师端模块:用户可以注册登录,登录后可以对个人信息进行管理,包括修改个人信息,登录密码,创建课程、生成课程二维码,创建签到、取消签到、查看考勤汇总表等。
学生端模块:用户可以注册登录,登录后可以对个人信息进行管理,包括修改个人信息,登录密码以及人脸信息录入,可以加入课程,查看公告和新闻,查看本人签到记录。
管理员模块:查看和删除操作不规范的用户,可以修改人脸识别的精确度,并确保用户的个人信息不被泄露,也可以重置系统,发布新版本,发布公告。
2.2 系统界面设计
系统的界面主要采用PyQt设计。PyQt是一个创建GUI应用程序的工具包,是Python编程语言和Qt库的成功融合。Python快速开发Gui程序,而Qt库是目前最强大的库之一。Qt广泛应用于嵌入式开发中,只要编写一次程序和UI,就能跨不同的桌面与嵌入式系统进行部署,不用修改源代码,从而减少了项目的开发成本。项目的系统界面包括以下3个。
(1)角色登录界面:给用户以及管理员提供登录界面;
(2)考勤展示界面:给学生考勤的时候提供考勤数据以及考勤结果的展示;
(3)后台管理界面:给师生以及管理员提供不同的管理界面,不同的角色有不同的功能界面。
2.3 嵌入式硬件设计
考勤系统以OpenCV视觉库为核心,设计了基于树莓派为硬件基础的人脸识别系统。先将需要的Linux环境经过烧录镜像、配置网络、安装软件、传输文件等流程,将承载系统的Linux环境配置好,再给Linux安装需要的python环境,安装OpenVINO,再配置后期实现人脸算法动态识别的算法神经棒需要的USB规则,最后安装好摄像头[4-5]。
2.4 数据库设计
2.4.1 概念结构设计
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。系统规划出的实体共有5个,分别是管理员实体、学生实体、教师实体、课程表、签到表。
各实体属性如下:
管理员(管理员账号、密码);
学生(学號、密码、班级、课程、考勤次数、缺勤次数);
教师(教师号、密码、负责班级);
课程表(课程号、课程名称、时间、任课教师);
考勤表(学生学号、学生姓名、学生班级、考勤次数、缺勤次数、缺勤课程号、考勤总次数)。
各个实体之间的关系如图2所示。
2.4.2 逻辑结构设计
系统共有5张数据表,分别为管理员表、学生表、教师表,课程表、考勤表。
管理员表:此表用来存储所有管理员的信息;
学生表:此表用来存储所有学生的详细个人信息;
教师表:此表用来存储所有教师的信息;
课程表:用来存储所有学生有课程信息;
考勤表:用来存储学生的课程签到考勤情况。
3 系统设计
该系统的主要功能是提取人脸特征,实现一个人脸识別的考勤系统,分为人脸图像信息采集模块、人脸识别模块、考勤模块。人脸识别模块是将考勤时的人脸图像输入人脸识别模型中进行识别,主要是深度学习算法实现过程;考勤模块是将学生人脸识别结果保存到数据库中的考勤表,即考勤登记,并对考勤信息进行管理。
3.1 人脸图像信息采集模块
人脸图像信息采集模块主要是预先采集学生人脸图像并进行预处理和训练人脸识别模型。
学生入校时都会录入个人信息,包括学号、姓名、人脸图像等,本系统将这些采集好的人脸图像存入人脸图像特征库。预处理过程是需要对一个人脸识别出的图片进行一系列的处理,继而进行下一步的工作。预处理在整个人脸识别系统中占据着重要的地位,只有在预处理过程中达到较高的准确度,才能更好地完成后面人脸定位及特征提取这两大关键模块。预处理模块主要是从图片库中获取图片,获取后的图片可以在软件的界面中显示出来,以便进行识别。
训卷积神经网络是一种前馈神经网络,CNN是一种让权重在不同位置共享的神经网络。该网络先选择一个局部区域去扫描整张图片,进而对人脸进行检测。
3.2 人脸识别模块
本模块是整个系统的核心部分,主要功能是识别人脸检测模块中检测到的人脸图像。首先进行归一化处理,然后进行特征提取并与人脸特征图像库逐一比较,识别身份,同时在本系统中记录出勤情况。人脸识别模块的设计流程如图3所示。
该模块采用深度学习中的卷积神经网络实现人脸识别功能。卷积神经网络(CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法。卷积神经网络主要是由输入层、卷积层、池化层、全连接层和输出层组成,卷积神经网络的典型结构如图4所示[6]。
设第i层的特征图为Hi,则卷积层Hi的生成过程可描述为下式:
式中:为传递至第i层的权值向量:符号为卷积操作,bi为偏移向量。与饱和非线性函数相比,不饱和非线性函数能较好地避免梯度爆炸或者梯度消失问题,也能提高模型训练速度。
下采样层有两个作用:(1)降维;(2)保持特征尺度不变性。原始图像经过卷积层和下采样层交替变换后,再接入一个全连接网络利用所提取的特征对图像分类。分类计算后的结果是一个关于安全概率分布的向量:
式中:H0为原始图像。式(3)为原始图像经过一系列的特征提取、组合变换后,得到标签概率。深度神经网络中权值参数W是利用训练数据反复训练模型,使得损失函数最小化确定好。常见的损失函数有均方误差:
式中:n为类别的数量;Yi为第i个样本的实际类别;Y-i为模型预测的类别。在利用大数据进行模型训练时,可能会导致过拟合现象,为了避免这种情况,需采用模型正则化等技术:
式中:ω用来控制正则化的强度。CNN训练的过程使用的是梯度下降算法。通过训练误差的反向传播,逐层修正网络中的权值参数W和偏值参数b:
式中:学习速率η控制学习步长[7]。
3.3 考勤模块
考勤模块是整个系统中最后一部分。在使用人脸识别进行课堂考勤时,系统会检测到到堂同学的人脸图像,并与人脸图像特征库中的图像逐一比较验证,并将出勤情况记录下来。识别出的人脸登记为出勤,未识别的人脸即为缺勤,最后把出勤情况记录在表格中展示出来,方便管理人员掌握学生上课的出勤情况。
4 结语
本文以人脸识别技术为基础,从学生课堂自动考勤需求出发,设计了基于人脸识别的学生课堂考勤系统。本文主要介绍了基于深度学习的人脸识别课堂考勤系统的设计与实现。该系统除了具有基本的功能外,重点在于该系统在普遍性、稳定性、系统需求分析等方面做了详细设计,并最终完成了该考勤系统。
本文开发的基于人脸识别的学生课堂考勤系统所需硬件简单,性价比高,且性能稳定,所开发出的系统具有较好的工程应用价值。程序完成开发后也经过了一系列测试,整体来说还是没有发现明显的操作逻辑错误。在本次系统的设计过程中,笔者不仅对各项专业知识有了进一步的认识,而且学到了很多GUI页面开发的技术技巧,对以后的工作和学习有很大帮助。
[参考文献]
[1]刘洋.基于人脸识别技术的教室考勤系统的设计和实现[D].成都:西南交通大学,2016.
[2]王静.高校智能化考勤系统的设计与实现[J].信息与电脑(理论版),2015(16):78-79.
[3]礼冬雪,王启民,李源,等.基于嵌入式系统的小型生物质锅炉智能控制器[J].沈阳工程学院学报(自然科学版),2017(1):15-19.
[4]张钰敏,叶传奇,张淑媛,等.树莓派人脸识别系统的开发与研究[J].电脑知识与技术,2020(13):221-222.
[5]陈超,黄佳.基于深度学习的树莓派人脸与表情识别系统研究与设计[J].网络安全技术与应用,2019(12):50-52.
[6]李雄,文开福,钟小明,等.基于深度学习的人脸识别考勤管理系统开发[J].实验室研究与探索,2019(7):115-118,123.
[7]刘杰,孙立民.深度学习人脸识别技术在考勤系统中的应用[J].智能计算机与应用,2020(2):17-22.
(编辑 傅金睿)