基于人脸识别的智能考勤系统研发
2020-02-22李鑫林少强吴文英温有娣余文森
李鑫 林少强 吴文英 温有娣 余文森
摘 要:随着人工智能的迅速发展,智能化在许多领域得到了广泛的应用。针对目前传统课堂考勤方式技术手段滞后的问题,文章采用人脸智能识别技术,研究开发了一套基于人脸识别的智能考勤软硬件系统。此系统采用树莓派和摄像头作为硬件,利用深度模型CNN中的ResNet模型,来实现人脸智能识别,最终实现了课堂考勤的自动化,提升了课堂勤技术水平,节省了大量的课堂时间,方便实用。
关键词:人脸识别;智能考勤系统;智能识别;树莓派
中图分类号:TP391.41 文献标识码:A 文章编号:2096-4706(2020)17-0013-04
Abstract:With the rapid development of artificial intelligence,intelligence has been widely used in many fields. Aiming at the problem that the traditional classroom attendance method is lagging behind,a set of intelligent attendance software and hardware system based on face recognition is developed by using face intelligent recognition technology. The system uses Raspberry Pie and camera as hardware,and uses ResNet model of CNN to realize intelligent face recognition. `Finally,it realizes the automation of class attendance,improves the level of classroom attendance,saves a lot of classroom time,and is convenient and practical.
Keywords:face recognition;intelligent attendance system;intelligent identification;Raspberry Pie
0 引 言
目前,高校課堂点名方式还是以传统的方式为主,科技含量不高。这种方式不仅会浪费大量的课堂教学时间,还可能出现冒名顶替上课的现象。其中有个重要的原因在于高校老师与学生接触的时间相对较少,且教师往往需要给多班级学生授课,因此无法认识每位同学,点名时容易出现冒名顶替现象。
人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术[1]。人脸识别具有唯一性和难复制性,为其作为身份认证提供了必要的基础。人脸识别被认为是生物特征学乃至人工智能领域最困难的研究课题之一[2],随着科技的进步,目前其已被广泛的运用到政府机关、银行、军队、安防、教育等领域,而且随着技术的进一步发展和民众的认同,势必会在将来应用到更多的领域。本文研发了一套基于人脸识别的智能考勤软硬件系统,利用人脸识别技术来解决传统的考勤方式容易出现的冒名顶替现象。该系统由作者跟同学、老师联合开发,已在武夷学院的数学与计算机学院的物联网工程专业实验室部署。
1 系统概述
系统的硬件方面,选择树莓派3B+,与一般单片机相比,树莓派能完成更复杂的任务管理与调度;与计算机相比,它体积小,成本低。摄像头选择树莓派官方摄像头Camera V2,索尼IMX219感光芯片,800万像素,拍摄静态图片可以达到3 280×2 464像素[3],摄像头的分辨率也影响着人脸识别的准确度。
系统的软件方面,在树莓派上选择基于Python语言的开发工具Thonny,该开发工具简单易用。在计算机上选择集成开发工具Visual Studio 2019,数据库工具为SQL Server 2008数据库管理系统,因其灵活的数据库管理功能和优越的可伸缩性以及与相关软件的高集成程度等优点[4]。
系统的工作流程:通过树莓派摄像头采集人脸图像,在树莓派终端上获取采集到到人脸图像,然后提取人脸的128D特征值与预存的人脸特征均值进行欧式距离的对比,当对比结果的阈值小于等于0.4时,即认为为同一个人;最后通过通信模块将考勤人员的学号、考勤时间和教室名称等考勤信息发送给后台服务器;后台服务器接收到考勤信息后对数据进行处理,并放入SQL Server数据库中进行保存,以备客户端的考勤记录查询与提取。系统工作流程如图1所示。
2 系统的功能模块
系统包含树莓派人脸识别、后台服务器数据处理、客户端数据访问三个模块。
2.1 树莓派人脸识别模块
本模块分为预存特征均值和人脸识别两个部分。第一部分为预存特征均值,主要的功能是为人脸识别部分提供人脸库。
首先,读取事先准备好的每个同学的人脸图片,利用dlib.get_frontal_face_detector()函数去正向人脸检测。
其次,检测到人脸后,通过dlib.shape_predictor("shape_predictor_5_face_landmarks.dat")人脸预检器,去获取人脸的图像。
最后,通过dlib.face_recognition_model_v1("dlib_face_recognition_resnet_model_v1.dat")模型中的compute_face_descriptor函数,将人脸映射成128D矢量,最后将获取到的128D特征值写入CSV文件中,作为人脸库。
第二部分为人脸识别,主要的功能是识别人脸成功后,将考勤数据传输给后台服务器。
首先,设置好当前树莓派所在的教室,如图2所示。点击“开始考勤”后,系统会调用socket.socket()的connect来连接后台服务器。
其次,连接成功后,当屏幕被点击时,通过cv2.imwrite()函数截取当前界面的一张图片并保存在本地,然后通过cv2.imread()读取图片,进行跟预存特征均值一样的处理。
最后,将得到的特征均值,与事先存放好的人脸库中的特征值进行欧式距离的对比。当对比的阙值小于0.4时,即人脸识别成功,如图3所示。此时将对应的考勤数据发送给后台服务器,继续循环考勤。
2.2 后台服务器数据处理模块
本模块包括服务器端口监听以及账号、学生数据、教师数据、教室数据、教室课程表等管理功能,如图4所示。模块登录界面如图5所示,登录成功后,开启监听程序,每当有客户端请求连接时,会创建一个新的套接字与线程来进行单独的数据传输。
当接收到树莓派客户端传来的数据时,要进行以下几个处理:
第一,根据得到的学号对比学生信息数据库,获取到学生姓名与班级名称。
第二,根据日期、时间以及教室名称来确定当前所上的课程名称。
第三,依照考勤机制来确定是否迟到。首先,确认签到时间前80分钟内是否已有签到,以此来避免重复签到。其次,将日期、时间、学号、姓名、班级、课程考勤情况等信息存入考勤数据表中。对于缺勤情况,系统设置了一个Timer计时器,当当前时间超过迟到时间时,系统开始对本次课堂的缺勤人员进行统计,将缺勤的数据也存放进考勤数据表中。
因账号、学生数据、教师数据、教室数据等管理功能基本一致,下面以学生数据为例进行介绍,如图6所示。除了基本的增删改查功能外,学生数据管理加入了批量导入的功能,只要是符合格式的XLSX文件,即可将文件的内容全部一次性导入,提高数据导入的效率。
2.3 客户端数据访问模块
本模块包括查询考勤记录、导出考勤记录等功能。该模块系统地完成对学生考勤信息的收集与整理,并提供详细的考勤记录报告。登录成功后,用户可以依据条件查询自己需要的考勤记录,如图7所示。
3 系统数据库设计
3.1 数据库的概念结构设计
概念结构设计就是对信息世界进行建模,常用E-R模型来描述概念结构[5]。概念结构设计的任务是按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。本系统的E-R图如图8-11所示。
如图8所示,学生这个实体有学号、姓名、学院、班级四个属性。
如图9所示,这个实体有编号、姓名、电话、性别、职称五个属性。
通过图10可以看出教室这个实体有编号、名称、类型、容纳最大人数四个属性。
通过图11可以看出学生跟教室是多对一的联系,教室和老师是一对一的联系。
3.2 数据库的逻辑结构设计
数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本实体-关系图转换为与选用的数据库管理系统产品所支持的数据模型相符合的逻辑结构。通过上面概念结构设计,本系统的数据库逻辑结构设计如下:
学生(学号,姓名,学院,班级,教室编号)
教室(编号,名称,类型,容纳最大人数)
老师(编号,姓名,性别,职称,电话,教室编号)
3.3 数据库的物理结构设计
数据库物理设计:就是对数据表的数据类型、主键等数据进行设计[6],本系统所用到的主要有四个数据表。
通过图12可以看出考勤记录表有date、time、place、id、name、college、class、curriculum、Lateness九个数据。
通过图13可以看出学生信息表有id、name、college、class四个数据。
通过图14可以看出教师信息表有id、name、gender、title、telephone五个数据。
通过图15可以看出教室表有id、name、type、capacity四个数据。
4 结 论
目前,人工点名方式依然主导着高校课堂考勤方式,即使也有物联网技术的考勤系统的应用,但仍不能够做到真正的自动化,不能很好地满足课程考勤需求、从根本上减少教学人员的工作量。本文基于人脸识别技术,研发一套智能考勤软硬件系统,实现课堂考勤的自动化,提升了课堂考勤技术水平,方便实用。
参考文献:
[1] 刘依林,周淦钏,周恒锐.人脸识别技术在治安管理中的应用现状与趋势分析 [J].无线互联科技,2019,16(11):133-134.
[2] 白玉彬.人脸识别技术在AFC系统中的应用 [C]//第三十三届中国(天津)2019IT、网络、信息技术、电子、仪器仪表创新学术会议论文集.天津:天津市电子学会、天津市仪器仪表学会,2019:163-166.
[3] 郭文强,张筱,侯勇严,等.基于树莓派和PI Camera V2的动态目标检测 [J].电脑知识与技术,2017,13(25):182-184.
[4] 张凤来.项目教学法在SQL数据库教学中的应用 [J].电脑迷,2017(5):121+57.
[5] 于国华,邹红文.数据库结构的设计与实现 [J].洛阳工业高等专科学校学报,2004(1):38-40.
[6] 陈红艳.数据库中表设计原则分析 [J].无线互联科技,2015(18):53-54.
作者简介:李鑫(1997—),男,漢族,贵州遵义人,本科在读,研究方向:前端、机器学习。