基于人脸识别和GPS定位的智能考勤系统设计与实现
2020-02-22白磊潘光健杜武龙丁智斌
白磊 潘光健 杜武龙 丁智斌
摘 要:根据目前常用考勤技术,如采用RFID射频卡,指纹或使用人脸考勤机等技术存在替签、代签,或者必须使用硬件签到,教师需在现场监督,并且考勤还存在过程漫长、效率低下等问题,因此设计实现了一个基于虹软人脸识别SDK与高德地图GPS定位的智能考勤系统。系统采用Vue+SSM作为主要框架结构,前端服务器使用Node.js,持久层数据库采用MySQL,Redis做系统缓存,系统以移动端浏览器为平台运行。
关键词:考勤系统;人脸识别;GPS定位;SSM
中图分类号:TP311.52 文献标识码:A 文章编号:2096-4706(2020)18-0095-04
Abstract:The conventional attendance technologies such as RFID radio frequency cards,fingerprints or the use of face attendance machines have problems which can sign in for someone else,or must use hardware,then teachers need to supervise on-site,and the attendance process is long and inefficient. According to this situation,an intelligent attendance system based on face recognition SDK of ArcSoft and GPS positioning of AMAP was designed. The system uses Vue+SSM as the main framework structure,Node.js as the front-end server. The persistence layer database uses MySQL,Redis is used as the system cache,and the system runs on the mobile browser as the platform.
Keywords:attendance system;face recognition;GPS positioning;SSM
0 引 言
目前傳统的教学考勤,通常需要花大量时间,影响了课堂教学计划和进度,同时也加重了教师的教学负担,在考勤数据统计时,容易出现偏差,无法高效地给出学生正确的考勤成绩。在辅导员/班主任日常考勤方面,需要了解学生在校情况,如参加组织活动、晚间查寝等工作,人员较多、情形复杂也给考勤带来很多不便。在教学管理方面,教学管理部门统计学生们出勤情况时,只能依靠教师的统计上报,效率和时效性较低。常规考勤技术,例如课堂点名、签名或使用芯片卡、考勤机签到,存在别人代答、代签、代刷情况,并且考勤过程漫长,当考勤人员较多或集中签到时容易引起混乱和聚集,导致出现意外情况。
本文以华北科技学院物联网工程专业课程教学考勤为研究对象,设计并实现基于人脸识别与地图GPS定位的智能考勤系统,并应用到我校相关专业的课程考勤和日常管理过程中。该系统通过调用虹软人脸识别SDK进行人脸比对,使用高德地图API获取定位信息,前端使用Vue技术,后端使用Spring+Spring MVC+MyBatis(SSM)开发框架,在移动端浏览器中运行。通过该系统可以实现以下目的:
(1)通过考勤系统,实现数字化管理,减轻教师负担,优化学生考勤流程,提高考勤管理效率。
(2)通过人脸识别技术,确定考勤对象,防止代签、替签。
(3)通过GPS定位系统,获取考勤对象位置,防止不在指定区域签到。
(4)通过使用手机浏览器访问考勤系统,可适应不同平台手机,且无需安装APP即可访问。
1 总体设计
智能考勤系统主要包括用户登录别、人脸识别、考勤设置、地理位置、手动考勤、数据导出等模块。系统拥有教师和学生两种用户,主要实现以下功能。
1.1 教师用户功能
教师用户包括考勤设置、地理位置获取、考勤信息查阅、手动考勤、学生请假的处理、考勤信息数据的导出等。
(1)考勤设置:教师可以对考勤参数进行设置,其中包括需要考勤的科目、考勤的截止时间(超过此时间视为迟到)、考勤的最晚截止时间(超过此时间视为缺勤)、学生与教师的地理位置距离范围差。
(2)地理位置信息获取:由于需要使用到教师与学生的地理位置信息进行对比,所以在教师进行考勤参数设置的时候需要同时获取到教师的位置信息。
(3)考勤信息查阅:成功登录的教师可以在教师中心对自己任教的科目进行考勤历史情况查阅操作,其中包含本学期所有本科目的考勤情况,教师可以选择其中任意一次进行详情查阅,其中包括学生的签到情况,学生签到时的地理位置,学生正常签到的人脸信息等。
(4)手动考勤:部分学生的手机可能会存在些许故障,导致无法进行正常的签到,这时可以申请进行手动签到。教师通过学生学号查询此学生的信息,如果检查无误后,教师可以对其进行手动签到操作。
(5)学生请假的处理:学生遇到特殊情况需要请假时,会对此签到课程做出请假的操作。教师在接收到请假的请求后,可以根据此学生提供的请假凭证来决定允许或者不允许此学生请假。
(6)考勤信息数据的导出:可以将考勤记录全部导出为Excel表数据,其中包括学生每次的签到情况可根据学生签到给出的最后的考勤分数。
1.2 学生用户功能
学生用户包括在线人脸识别签到、在线请假、考勤历史记录查询等。
(1)在线人脸识别签到:学生可以在签到界面选择需要签到的课程,如果教师没有发布考勤任务或者学生未选择自己专业的课程,则不允许此学生进行签到。在选择签到课程之后,进行人脸图像采集,然后进行在线签到。
(2)在线请假:如果学生有特殊情况需要请假,可以在请假界面选择需要请假的课程,然后上传请假凭证,提交之后等待教师的审核即可。
(3)考勤历史记录查询:学生用户可以在主界面查看自己所有的考勤历史记录,也可以在个人中心查看专业课程的详细考勤记录即考勤分数。
2 技术架构
为了使系统模块与模块之间相互独立运作且能协调工作,本系统采用前端与后端分离开发的模式,前端使用Vue+axios作为主要框架结构,后端将SSM作为框架支持,持久层数据库采用MySQL,Redis做系统缓存,提高项目的可维护性、可扩展性和健壮性。
3 详细设计与实现
3.1 考勤任务发布模块
考勤任务发布模块,主要的功能是教师设置考勤任务相关参数,向学生发布课程考勤任务,学生在签到界面就可以选择教师发布的考勤任务进行签到。教师登陆考勤系统,进入考勤界面后首先要选择进行考勤的课程,并对其他相关参数进行设置,如考勤截止时间,考勤最晚截止时间(在考勤截止时间之后签到的视为迟到,超过了考勤最晚截止时间,便视为缺勤)。同时要设置范围内允许的地理位置距离差,推荐的误差值是50米,由于手机定位可能存在定位误差,系统实现使用高德地图API对用户进行定位,同时根据API接口返回的数据的定位精度范围作为精度误差,以便后续位置信息计算。考勤发布模块实现效果如图1所示。
3.2 学生在线签到模块
学生在线签到模块主要针对学生角色,同时也是整个系统的核心。学生用户在登陆成功之后,进入在线签到界面,当教师暂时没有发布考勤任务、学生未选择自己专业课程,或者教师发布的考勤任务已经过期,即已经超过考勤任务的最晚截止时间时,系统不会进行考勤,而是向学生发出相应提示信息。在学生正确选择签到课程之后,会进入人脸采集界面,系统首先会调用手机摄像头,捕捉人脸,收集人脸信息,并且将收集到的人脸信息进行一系列的操作,最后将处理过的信息以Base64格式连同一系列其他参数(包括学生的地理位置信息)传送至服务器端。
服务器端将处理过的学生的人脸信息提取出来,并与学生表中此学生之前录入的人脸信息通过虹软人脸识别SDK进行对比,若二者图像特征的相似度小于80%,系统认为不是同一人,将处理结果写进HashMap,然后将其返回至前端,同时将此次签到视为异常签到,添加到学生签到记数据表中;若两者图像特征的相似度大于80%,则认为人脸是匹配的。
验证学生的地理位置与教师的地理位置的差值是否在允许的范围之内时,首先将发布此次考勤任务的教师的地理位置从考勤记录表中查询出来,然后计算签到时系统获取的学生GPS位置信息与教师地理位置之间的距离。由于我们保存的是经度和纬度,所以在计算的时采用计算球体上两点之间曲线距离的方法。然后将求出的距离与教师之前设置的允许的范围的差值进行对比,如果在误差范围内,则认为学生签到成功,反之则视为异地签到。最后将处理结果返回至前端,同时将此次的签到记录添加到学生签到记录表中。学生签到界面如图2所示。
对学生人脸图像信息采集实现如图3所示。
前端的人脸信息采集代码如下:
this.OverlayShow = true;
let img = this.getBase64();
let that = this;
if (localStorage.lng === undefined) {
Dialog.alert({
message: '位置请求失败,请检查后重新尝试'
}).then(() => {
this.OverlayShow = false;
});
}else{
this.$axios({
method: 'post',
url: '/face/check',
data: {
accuracy: localStorage.accuracy,
address: localStorage.address
},
});
后端的处理代码如下:
String studentFaceImage = this.faceService.getStudent FaceImage ( ( String ) session.getAttribute ( "userName" ) );
boolean faceCompare = this.faceService.faceCompare ( checkFaceImageDTO.getImg ( ) , studentFaceImage );
3.3 手动考勤模块
手动考勤模塊包括教师手动考勤模块和教师请假处理模块。当学生的硬件设备出现故障或者有特殊原因无法签到时,学生便可以向教师申请手动考勤。教师在搜索栏中输入学生的学号,然后检验查询到的学生信息是否和实际的学生信息相符。如果符合便可以通过教师手动考勤模块进行手动考勤,即教师直接将此学生的签到状态设置为正常。教师手动考勤实现如图4所示。
教师请假处理模块是在学生发起请假的请求之后,教师端首页就会出现学生的请假请求,教师可以查看学生的请假详情,根据学生提交的请假凭证来决定是否允许此学生请假。在教师做出是否批假选择后,系统会更新学生的考勤信息。请假处理实现如图5所示。
4 结 论
本文针对常规考勤系统存在的问题,结合实际需求,设计并实现了基于人脸识别和GPS定位的智能考勤系统,实现了学生人脸信息的采集,教师及学生地理位置的获取,教师手动考勤,教师请假处理,教师考勤详情数据的导出,学生成绩的查询等功能。通过该系统可以实现实时、在线考勤,并通过地理位置信息和人脸识别技术防止代签、替签等情况,提高了考勤效率和准确性。智能考勤系统作为教学过程考核和评价的一种手段,将会越来越广泛地应用在教育培训等各个领域中。
参考文献:
[1] 周克辉,罗玮,陈泰峰.高校学生考勤管理系统发展现状和需求分析研究 [J].电子测试,2019(22):53-55.
[2] 华兰.基于移动互联网的综合考勤系统的研究与实现 [D].湖南:湖南大学,2019.
[3] 苏婕,王忠.基于NFC技术的智能考勤管理系统设计与实现 [J].测控技术,2015,34(2):129-133.
[4] 刘炳初,赵越岭,王浩,等.智能考勤系统的设计 [J].辽宁工业大学学报(自然科学版),2018,38(6):364-367.
[5] 张心怡,李刚.智能人脸识别考勤系统 [J].电子制作,2019(9):48-49.
[6] 李若玉.基于Android系统的便携式人脸考勤系统 [D].四川:电子科技大学,2019.
作者简介:白磊(1982—),男,汉族,山东高密人,副教授,博士研究生,研究方向:人工智能。