SpringCloud+MySQL+Vue实现人脸识别智能考勤管理系统_智能考勤系统项目

125 阅读9分钟

信息管理页面如图 5-1 所示,教务管理者可以浏览学生信息、课表信息以及选课页面的内容,通过页面操作来测试模块基本功能,测试结果见表 5-3。

图 5-1 信息管理页面测试图 

②、考勤汇总模块

考勤汇总页面如图 5-2 所示,系统从学生和课程的角度分别展示某教室一学期的签到概况,包含课程应到、实到总数、学生答到状态等。引入 EasyExcel 框架简捷实现固定 sheet 和表头的表格导出功能,导出效果如图 5-3 所示,教务管理者可以根据需求下载考勤数据并导出 EXCEL 格式表。通过页面操作测试模块功能,测试结果见表 5-4。

图 5-2 考勤汇总页面测试图

 

图 5-3 课程汇总概况导出效果图

③、注册登录模块

测试页面如图 5-4 所示,用户在初次注册或者登录时,系统会有账号不能空值、密码必须三位数字以上等错误提示。采用 JWT 框架[36]解决使用者的 token 认证问题,用户每次交互请求时都会附上服务器指定的 token 值,根据值的不同来判断用户信息,故无须在服务端保存认证信息,有利于应用扩展。使用 Shiro框架解决身份验证、权限管理、加密控制等问题。通过页面操作来测试模块功能,测试结果见表 5-5。

图 5-4 注册登录页面测试图 

④、系统配置模块

系统配置页面如图 5-5 所示,教务管理者可以查看日志内容以及设置考勤时间和图像采集次数。采用 Spring 框架来解决定时器时间设置和获取的问题,把设定的时间存储在数据库中并根据定时器状态来实时获取时间、次数等参数。为了保证定时任务的执行,通过设定所有定时器为生效状态来应对课程变化情况,即便是教室无课也会触发定时器但不影响考勤统计结果,从而避免了动态生成定时任务的问题以及频繁设置考勤时间的困扰。对部分功能测试,内容见表 5-6。

 

图 5-5 系统配置页面测试图

 

⑤、图像采集模块

这个模块主要涉及到摄像头控制、定时器触发以及图片获取等,Spring 支持Timer、Quartz 等多定时框架[39],其中 Quartz 复杂性最大、成本高,适用于多变的定时任务,而 Timer 的时间设定不够灵活,本文采用 Spring 自带的 SpringTask 定时器,通过注解的方式引入定时器,传入定时任务( Runnable) 和定时时间(CronTrigger)的参数,定时器启动后,Spring 容器会自动扫描定时任务,根据定时时间来执行指定任务。利用开源视觉库JavaCV[40]来实现摄像头控制和图像获取,通过 JavaCPP 间接调用 OpenCV 的库接口直接获取当前设备信息,相比于多媒体框架 JMF,JavaCV 在摄像头启动时无须预热,使用帧抓捕器直接获取视频帧。核心代码如图 5-6 所示,需要对各部分进行功能测试,测试内容见表 5-7。

⑥、考勤统计模块

这个模块主要涉及数据预处理、统计以及数据库存储。系统后端得到 JSON 格式的数据,通过预处理 Map 格式数据提取学号等有效信息。用字符串数组来存放非重复学号,统计识别的总人数,并与检测总人数比对,根据签到时间、学号、课程号等参数把识别结果记录到数据库中。对部分功能测试,内容见表 5-8。

 

⑦、小人脸识别模块

这个模块主要涉及小人脸检测、人脸识别和服务交互三个部分,检测效果如图5-7 所示,由绿色方框表示检测置信度较低的人脸,黄色窗体表示检测置信度较高的人脸,服务器识别反馈如图 5-8 所示,图中 personID 指识别人员标识,标识下面为阈值,阈值越小,准确度越高。识别反馈主要有人员 ID 及阈值,结果经处理直接存储在数据库中,无须前端页面展示,故用命令行交互窗口展示识别功能测试结果。后端用 Base64 编码采集结果并用 Post 请求方式调用小人脸检测算法,用MultiValueMap(一键多值映射类型)接收检测的结果并提取检测总人数。若有未识别人员的存在,则依次调用人脸对齐、识别算法,最后用 Map(一键单值映射类型)接收识别反馈结果。对部分功能测试,内容见表 5-9。

图 5-7  小人脸检测效果图 

图 5-8  小人脸识别反馈图

四、总结

本文在分析研究微小人脸检测和识别算法以及相关理论基础上,结合传统考勤系统的功能结构,设计并实现了一个基于微小人脸识别的智能考勤管理系统,主要工作如下:

1、设计了一个基于 SpringCloud 的考勤系统框架

为更好的细化系统功能,采用了微服务的思想,而 SpringCloud 是微服务解决方案中功能比较均衡、开发便捷高效的一个框架。因此,用 SpringCloud 框架设计了考勤管理系统:小人脸识别算法独立于系统其他模块,部署于算法服务器,服务器通过 Sidecar 异构的方式注册到 Eureka Server。系统后端可以通过服务交互的形式来请求调用小人脸检测、识别算法,算法和后端的小人脸模块共同完成小人脸识别功能。同时,系统后端也注册到 Eureka 中,算法服务器可以对系统的功能接口进行访问。把算法和系统模块分开,不仅能细化业务功能,也有利于分布式的开发,用不同的编程语言设计实现各部分功能。

2、实现了基于 ResNet 的微小人脸识别算法

通过研究微小人脸检测算法,学习了如何有效的训练一个小脸检测器;再结合现有的部分代码,在 Matlab 上成功的训练了一个基于 ResNet101 基础模型和 Wider Face 人脸数据集的小人脸探测器。历经 2 天时间和 50 次训练迭代,选取了评估效果最好的那组模型(平均精度达到 80%)用于算法中人脸检测功能。同时,使用了在 LFW 人脸数据集和 Inception ResNet V1 基础网络上训练好的人脸识别模型,完成小人脸检测后的识别功能。

3、实现了基于小人脸识别的考勤系统原型

通过框架设计和算法分析,在实现微小人脸算法的基础上,构建了一个考勤管理系统。这个系统包含核心功能模块:图像采集、考勤统计和小人脸识别模块,三者的互相协作完成了自动化考勤方式。还包含了其他功能模块,如注册登录、信息管理、系统配置等模块。系统的管理平台从简单实用的角度出发,用 Vue 前端框架实现了可交互式界面。不仅给教务管理者一个可视化数据展示平台,也能完成对学生、课表、考勤、参数的基本操作。最后,整个系统在测试使用中运行良好。

系统的特点如下:

①、采用微小人脸识别技术,能大规模有效的检测再逐一识别人脸,并且识别的过程是无感知、无约束性的,容易被学生接受;其次,它也是生物识别技术的一种,身份认证可靠,有效避免传统考勤方式中的代打、作假现象。

②、自动化的考勤方式和间断性的认证方式,能够快速完成签到、签退工作,大大节省了上课时间。

五、项目源码

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。 img img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!