朱靖娴 白文娟 张砺心 刘克楠
摘 要:文章针对当前常用考勤方式中普遍存在的代签到、考勤数据整合较慢等问题,利用人脸识别技术实现了一种基于Java的在线考勤系统。该系统可大大提高考勤效率,满足各类场环境景下的考勤需求,具有识别度高、检测速度快、操作简单的特点,能够为用户提供更多便利帮助。
关键词:人脸识别;考勤系统;Java语言;face++
当今高校对培养学生能力、提高学生知识储备的重视度与日俱增,因此,高校课堂教育的重要性不言而喻。但如今的高校普遍存在缺勤率高、代签严重等问题,传统的考勤方式如指纹签到、打卡签到、点名签到等都存在很多漏洞。指纹签到虽然成本较低,但它的可复制性使这种方法不够可靠;打卡签到需要学生随身携带磁卡,但磁卡容易丢失,且携带不便,补办困难;点名签到更是存在代答道、效率低的问题,这些缺点都给学校的日常考勤带来了困难。因此,设计出一种高效、便捷、易于统计数据的考勤系统就成了当务之急。
近几年,生物特征识别技术获得快速发展。人脸作为一种生物特征,具有很强的自身稳定性和个体差异性,是进行身份验证的最理想依据,主要方法包括步态识别、虹膜识别、皮肤芯片、脸像识别、多模态(即多生物特征融合)識别技术等[1]。其中,人脸识别技术因为具有方便、直观、易于普及等优点尤为受到关注与研究。
早在20世纪50年代,认知科学家就已着手对人脸识别展开研究。20世纪60年代,人脸识别工程化应用研究正式开启,我国从20世纪80年代开始了对人脸识别技术的研究,虽然起步较晚,但我国科研人员奋起直追,一些领军人物已经在人脸识别领域建立了属于自己的行业地位。随着当今世界大数据时代的到来和人脸识别技术商业价值的显现,这项技术研究前景十分光明,具有极大的市场需求。
1 系统总体设计
1.1 系统功能与模块
人脸识别签到系统主要由登录模块、识别模块、签到模块和后台管理模块4个部分组成(见图1),其中各模块作用如下。
(1)登录模块是授课老师或后台管理者通过账号和密码登录,查看考勤信息。
(2)识别模块主要实现的功能是接收一张人脸图片,调用系统应用程序编程接口(Application Programming Interface,API)对图片进行人脸识别,得到一个唯一确定此图片的标识码。
(3)签到模块接收识别模块中得到的标识码与数据库中的学生信息比对,查找确认学生信息;通过查询当前时间和数据库中的课程安排表信息,获取当前所上课程信息。得到学生和课程信息后,通过逻辑判断该学生这节课是否已经签到,若已签到,忽略;若未签到,将签到信息添加到数据库签到表。该模块会返回签到信息,包括:是否签到成功;学生姓名;学生学号;所签到课程;若签到未成功,原因是什么。
(4)后台管理模块由后台管理员负责,主要包括统计签到信息、录入或删除学生信息等功能。
1.2 系统工作流程
本系统总体使用流程介绍如下:打开系统后,首先在后台根据当前时间与地点判断课程与班级人员信息;然后出现人脸识别登录界面,登录成功后通过摄像头捕捉学生面部信息,从摄像头获取照片。照片框动态显示摄像头所拍摄照片,点击“签到”,从摄像头获取照片后锁定图片,对照片进行识别,得到一个照片标识,将标识传给签到模块进行签到,得到签到信息,并在下方显示签到信息[2]。
本系统将人脸识别技术应用在高校课堂考勤中,实现学生签到功能并统计出当前课堂学生的出勤率,主要流程为:教师登录、学生刷脸考勤、考勤识别、考勤统计和考勤结果几个部分,其具体工作流程(见图2)介绍如下。
打开本系统软件后,首先根据当前时间和输入的专业班级判断当前课程和老师,进入人脸识别登录界面;使用本系统的老师需要登录到系统中,登录完成后,打开摄像头进行学生签到工作,通过摄像头拍摄识别学生面部实现学生签到,并在所有学生签到完成后统计出当节课学生出勤率和未出勤学生名单,完成签到[3]。
签到完成后,授课教师可登录系统查看本节课程信息,根据年级、专业、班级、课程、学号等信息进行筛选所查看数据,以表格形式显示,包括学生到课率和缺勤情况。
数据库中信息通过管理员录入学生照片信息。数据库中存储数据为采集的学生照片通过face++的API后得到的JSON格式标识码。
2 人脸识别的软件设计
2.1 考勤签到模块流程
基于人脸识别实现的考勤签到系统,就是将采集的人脸信息通过识别模块转换为标识码,与数据库中已有的学生图片标识码进行对比,查找出最相近的标识码,输出对应信息,并显示签到成功界面;若不存在相似度高的标识码,则显示签到失败,具体流程如图3所示。
图3 考勤签到流程
2.2 考勤系统算法实现
(1)该系统采用Java开发语言。首先,Java语言的平台可移植性使该系统能够满足不同高校的要求,使应用程序不用修改就可在不同的软硬件平台上运行;其次,Java语言具有调用灵活的特点,通过简单操作就能实现某功能在不同位置的使用;除此之外,Java语言的安全性与可靠性保证了学生私人信息安全和运行的稳定。
(2)该系统算法主要分为3部分:与face++ API的接口实现、课程信息的获取和标识码对比。
①接口实现。
首先将采集到的图片通过Base64算法进行编码,再通过post方法向face++服务器发送HTTP请求,获得face++ API函数的使用权限;然后对采集到的图片进行处理,得到JSON格式标识码,再从JSON码中提取所需关键信息,即标识码、耗时和错误信息;最后将得到的标识码传给下一模块,完成对数据库中学生的查找。
②课程信息获取。
在数据库中设置一个专用模块,用于存放某高校各专业本学期的课程表。通过计算具体日期和利用时间获取函数及当前准确时间,得到所在周数和第几节课信息,查找该专业本节课所上科目,与数据库中对应的上课学生信息进行对比,完成签到。
③标识码对比。
将从JSON格式标识码中提取出的关键信息与数据库中存储的该专业学生标识码信息进行一一对比,若存在相似度最高的学生说明该学生存在,在显示界面显示该学生信息与签到成功界面,否则显示签到失败界面。
(3)数据库设计:该系统采用MySQL数据库进行设计,数据库中包括学生信息表、教师信息表、课程表、签到表等信息,表格之间通过外码进行联系。在数据库交互方面,本系统采用封装操作,将与数据库相关的操作封装进函数,每个表都是一个数据表类的子表,封装了数据库连接及增删查改功能。
3 人臉识别考勤系统的设计与实现
3.1 测试步骤
(1)登录模块:管理员登录系统,查看系统能否正常运行,并协助后面签到工作。
(2)识别模块:抽取已录入信息学生样本进行测试,在摄像头捕获学生面部并进行识别后,对比显示出的信息和数据库中已录入的信息是否一致,并统计正确率。
(3)签到模块:在完成识别后,查看数据库当前课程签到表中添加的学生信息和抽取的学生样本从签到人数和签到信息两个方面判断是否一致,并统计正确率。
(4)重复以上步骤,将样本人数不断增多至班级人数,统计在更大输入下系统的可靠性。
3.2 测试目标
对系统小数量输入(10~20人)时,识别正确率应为85%以上,签到正确率应为80%以上;对系统大数量(20~50人)时,识别正确率和签到正确率应不低于80%。
3.3 测试环境
该系统使用Dell电脑作为测试机,处理器为Inter i5核处理器,Windows版本为Win10。
3.4 测试结果与分析
经反复测试,系统在不同测试样本数量下测试结果如下:当输入学生为10~20人时,识别和签到正确率均为85%;当输入学生为20~50人时,正确率为80%。该测试结果中存在20%左右的错误率,其中大部分错误是由于学生面部信息出现改变,如医疗整形、饰物、化妆及环境光线等造成的面部特征变化,导致无法从图片中提取出正确标识码;另一主要原因是标识码对比时的准确性问题,即系统未能正确判断两个标识码是否足够相似。
4 结语
本系统利用人脸识别算法实现考勤功能,并通过电脑进行实验,能达到预期实验结果,充分体现了算法和总体设计的可行性。系统完成了快速签到完成学生考勤任务,摆脱了繁杂的点名签到,实现了快捷签到的操作和功能。本系统对往后考勤系统的形式转变作出了很大创新,大大提高了考勤的效率和可靠性,是值得进一步探索和实现的。
[参考文献]
[1]霍妍,李长明.基于人脸识别考勤系统的设计与实现[J].通化师范学院学报,2016(6):1-3.
[2]吴美香,邓园园,裴枫华,等.基于人脸识别的移动课堂考勤系统的设计与实现[J].软件,2018(1):5-8.
[3]陈鸿飞,严忱君,俞宝福.基于人脸识别的中学课堂考勤系统的设计[J].科技传播,2015(8):91-92.