0
点赞
收藏
分享

微信扫一扫

基于opencv和dlib人脸识别的员工考勤系统

已打包生成可执行文件exe,可直接下载运行,exe文件及代码均已上传到我的github,点击传送门,打包的具体过程及教程可见pyinstaller简明教程

WorkAttendanceSystem

一个基于opencv人脸识别的员工考勤系统,作者某双一流A类大学里的~一流(二流)~~~不入流学生,写于2018/09/,python课程设计期间。

作者 inspurer
QQ交流群 861016679
个人博客 https://inspurer.github.io/

V1.0版本

项目结构

mainui.py是主界面,调用face_img_register.py和face_recognize_punchcard.py 其中face_img_register.py主要实现录入人脸信息功能,face_recognize_punchcard.py主要实现刷脸考勤功能,face_feature_storage.py属于鸡肋文件,是在调试代码,没什么用,舍不得删,毕竟还有点参考价值。
face_recognize_punchcard_lib.py和face_recognize_punchcard.py本质上差不多,
但是前者是给face_img_register.py专有的依赖。防止录入两个同样的人脸建不同数据库的风险。

运行效果

1. 主界面

2. 人脸录入

3. 刷脸考勤

这是通宵后的我,发现熬夜真的能让人变丑。发誓再也不熬夜了。(。ò ∀ ó。)


其余的就不多做展示了,有什么问题欢迎2391527690@qq.com联系


更新

2018/9/23更新

mainui.py-->myapp.py
face_recognize_punchcard_lib.py等鸡肋文件放到useless文件夹里
运行效率显著提高

2018/9/25更新

解决同步性问题,新录入的人脸能立即被识别
代码的运行速度少许下降

V2.0版本

老师看了我的V1.0版本后给的建议,第一,不能有太多弹窗界面,一些操作应该放到工具栏中,而不是弹窗实现;第二,数据保存在csv文件容易被窃读,应该保存到数据库熊;第三,显示考勤日志时应该由自己的电子表格实现而不是直接调用excel。基于以上的问题和算法优化的需要,我把代码优化成了V2.0,同时所以的代码合在一个WorkAttwndanceSystem.py文件里,就人脸识别这部分代码而言,提高了代码复用度。

1. 全新设计的UI,更人性化的操作


这也是通宵后的我(づ ─ )づ


2. 数据更加安全,用户不可见

人脸特征和签到日志数据全部保存在inspurer.db数据库文件里,更加安全;而且对人脸数据进行了压缩,存储占用更小。

3. 注意事项

  1. 打开摄像头后请保持人脸正对摄像头,确保人脸识别开始。
  2. 人脸识别时做了拒绝处理,多张人脸时,只取距离屏幕最近的人脸。
  3. 新建录入时会自动录入十张人脸照片,也可手动点击完成录入立即完成,之后就会计算人脸数据并存储到数据库中,左边的信息栏会有相应的信息打印。
  4. 开始签到后,如不点击结束签到,程序就会一直对屏幕前的人脸进行识别签到,签到状态分三种,未识别的人脸,签到成功,
    签到成功但是迟到了(9.00后签到),重复签到(此时签到日志不会写入到数据库中)。
  5. 为确保程序稳定性,每一个菜单里的按钮尽量成对操作。
  6. 模型的问题,没有用到tensorflow训练,因为人脸识别的模型训练这件事,一方面已经非常成熟了,可以利用官方的模型;另一方面,需要海量的数据,甚至数据增强;所以在这里,我直接利用官方的模型,自己编写算法对数据进行处理。

源代码及详细的文档说明地址

传送门

举报

相关推荐

0 条评论