李贞辉 李威
摘要:随着需求的不断增加,日常的考勤系统逐渐凸显出许多问题。该文介绍了一种基于Android的人脸识别的考勤管理系统,利用GPS实行实时定位,同时嵌入Arc Soft人脸识别系统进行人脸识别,实现员工的考勤与管理,提高了考勤的效率和准确性。
关键词:移动考勤;人脸识别;管理系统;Android
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)01-0079-03
Abstract:With the increasing demand, the daily attendance system gradually highlights many problems. This paper introduces an attendance management system based on Android and face recognition. It uses GPS system to implement real-time positioning, embeds arc soft face recognition system for face recognition, and finally completes the attendance and management of employees, which improves the efficiency of attendance.
Key words:mobile attendance;face recognition; management system;Android
1引言
考勤是企业或学校日常管理中必不可少的手段,而企业尤其是学校通常采用的是手工考勤方式,效率低,错误率高。目前市場上也有相关的考勤设备,但这需要企业或者学校购买相关硬件设备,增加成本。针对员工众多,考勤效率低、管理难等问题,为企业设计一套完全符合要求的考勤系统显得尤为重要。本文旨在解决低成本下实现高效考勤的问题,介绍一种基于Android+Arc Soft的考勤系统的设计,具有良好的扩展性,同时提高了考勤管理的效率。
2系统结构描述
2.1 系统的开发工具
通过对国内外考勤系统的调查和研究,经过多方比对,本系统选用Spring Boot框架+JPA和MySQL数据库,实现业务逻辑管理和考勤信息的存储。Spring可以快速创建并运行Spring项目,无须配置XML,无码生成,直接使用。JPA的优点:任何符合JPA标准的框架都遵循同样的框架,提供相同的访问的API,简单易用,集成方便。MySQL数据库体积小、速度快、总体拥有成本低、开放源代码,有着广泛的应用。
2.2 系统模块分析
1)用户登录注册模块:用户通过注册账号和设置密码,然后在登录页输入账号和密码就可以进入考勤系统。
2)公司模块:公司管理员用户通过创建公司来实现部门、人员和加入信息的管理,可查看请假、签到、工资信息这些功能。这些功能具体能做到设置考勤时间、设置考勤方式、设置考勤规则,部门分配、开除员工,同意或加入信息管理,同意或拒绝请假、查看请假月历,查看员工签到月历、员工工资录入、查看工资条等功能。
3)签到模块:员工通过签到打卡来生成个人的考勤月历,公司管理员可以查看员工考勤月历。
4)请假模块:员工提交请假申请,后台生成请假记录后,由管理员审核请假记录并决定是否同意员工请假。
5)工资模块:公司管理员可查看并审核请假信息,查看员工考勤信息,并录入工资信息,从而生成工资条,员工可查看工资条。
2.3系统数据库分析
本系统总共包括用户基本信息表、申请加入记录表、公司表、考勤记录表、工资记录表、部门表6个表:
1)用户基本信息表,主要用来存放用户的基础信息。
2)申请加入记录表,主要用来存储关于用户申请的信息。
3)公司表,主要用来存储记录公司基础信息。
4)考勤记录表,主要用来存储员工打卡时间,更新数据时间等基础信息。
5)工资记录表,主要用来存储员工工资信息。
6)部门表,主要用来存储员工部门规则信息和打卡具体明细。
3系统核心模块的设计与实现
3.1注册登录模块
用户通过账号注册页面注册新的账号,在其中输入用户名、姓名以及密码就可以完成注册。然后再通过登录页面输入用户名以及密码完成登录。如果忘记密码可以申请修改密码。
3.2管理员模块
管理员可以进入公司首页查看部门管理、人员管理、加入申请信息、员工请假信息、员工签到信息以及员工工资信息。在部门管理中可以实现约束具体部门打卡信息。在公司人员管理中可以查看员工列表,并可以处理员工部门的调配工作。在员工工资信息录入页面,可以查看可录入员工并对员工工资明细录入。
3.3员工模块
员工通过签到页面,点击打卡完成自己的签到。员工如遇突发事件不能上班的可以在员工请假页面向公司申请请假并注明请假理由,公司决定是否批准。在工资条页面员工可以查看自己的工资条信息。
3.4人脸识别模块
ArcSoft公司推出的虹软人脸识系统,计算摄影算法十分优秀,它提供开放的免费人脸识别SDK,支持人脸检测、人脸追踪、1:1人脸对比、1:N人脸搜索。虹软的人脸检测技术支持强光、弱光、黑夜、背光等多种复杂环境。并且可检测出正脸,侧脸等多种角度人脸的位置。通过本地离线SDK引擎的调用方式,在本机实现人脸识别,无须将人脸图片传输出去,对网络和流量的要求就不会有云平台那么高,在用户体验和数据安全方面都有很大的保障。
人脸识别关键代码如下:
//FR成功
if(faceFeature != null){
Integer liveness = livenessMap.get(requestId);
//不做活體检测的情况,直接搜索
if(!livenessDetect) {
searchFace(faceFeature, requestId);
}
//活体检测通过,搜索特征
elseif(liveness != null&& liveness == LivenessInfo.ALIVE) {
searchFace(faceFeature, requestId);
}
//活体检测未出结果,或者非活体,延迟执行该函数
else {
if(requestFeatureStatusMap.containsKey(requestId)) {
Observable.timer(WAIT_LIVENESS_INTERVAL, TimeUnit.MILLISECONDS)
.subscribe(new Observer
Disposable disposable;
@Override
publicvoid onSubscribe(Disposable d) {
disposable = d;
getFeatureDelayedDisposables.add(disposable);
}
});
}
}
}
//特征提取失败
else {
if(increaseAndGetValue(extractErrorRetryMap, requestId) > MAX_RETRY_TIME) {
extractErrorRetryMap.put(requestId, 0);
String msg;
// 传入的FaceInfo在指定的图像上无法解析人脸,此处使用的是RGB人脸数据,一般是人脸模糊
if(errorCode != null&& errorCode == ErrorInfo.MERR_FSDK_FACEFEATURE_LOW_CONFIDENCE_LEVEL) {
msg = getString(R.string.low_confidence_level);
} else {
msg = "ExtractCode:" + errorCode;
}
faceHelper.setName(requestId, getString(R.string.recognize_failed_notice, msg));}
}
4测试
在软件使用前对软件测试是排除故障的有效手段,通过测试发现软件BUG,修复BUG让软件变得更完善。测试具体分为两种测试:黑盒测试指通过巨量的测试用例来检测软件的错误程度,减少那些并未发现的缺陷却带来潜在的严重性,甚至导致组织的信誉受损,黑盒测试检查系统的各个功能点最终有没有和软件设计时的需求达成一致,是否能达到理想效果。白盒测试:根据程序的结构,用例测试,一步一步循环测试下去,验证程序逻辑是否通畅。
本次测试针对系统功能以及程序逻辑性,通过对测试报告以及测结论的分析,得出结果:弱网情况下,客户端与服务端通讯正常,只是数据接收比较慢,会影响用户的体验,但不影响,用户正常使用。考勤功能受到影响,在10秒内如果数据包未接收成功,会判定为断网状态,给予断网提示。本系统能满足日常使用的需求,能做到数据实时更新无异常,日常使用无崩溃情况。在数据库数据超过5万条的情况下,服务器也能较快的返回数据给予客户端,保障客户端的平稳运行,在不考虑网络的情况下,数据包的交互都能控制在一秒内,保证整个软件的完美交互。
5结论
本文设计了基于Android的人脸识别的考勤系统,该系统有效地解决了企业考勤的难、效率低的问题,通过该系统可以提高考勤的效率和准确性。在未来可以在此系统基础上,添加更多的功能,以满足企业的其他要求。
参考文献:
[1] 马炳周.基于Android的考勤系统的设计方案[J].中国新通信,2019,21(18):48-49.
[2] 马玉凤.基于Java技术的企业员工考勤系统开发策略[J].电子技术与软件工程,2018(12):30.
[3] 李宏坤,郑光勇,谢舞,等.基于spring boot框架的公司考勤系统的研究与设计[J].电脑知识与技术,2019,15(18):55-56.
[4] 郭冠良,朱堪日,蔡敏.基于Android平台的企业考勤系统设计与实现[J].无线互联科技,2019(1):52-53.
[5] 贾维喆.移动考勤管理系统的研究[J].哈尔滨铁道科技,2016(4):1-4.
[6] 丁一钧.基于安卓操作系统的便携式人员考勤系统设计[J].电脑编程技巧与维护,2018(10):55-56,73.
【通联编辑:代影】