500 行 Python 代码打造刷脸考勤系统
需求分析
“
员工刷脸考勤
”
系统,采用
Python
语言开发,可以通过摄像头添加
员工面部信息,这里就涉及到两个具体的个问题,一个是应该以什么
样的数据来标识每一个员工的面部信息,二是持久化地保存这些信息
到数据库中去。更细地,还涉及表的设计
;
另一个基本要求是通过摄
像头识别员工面部信息来完成考勤,这个问题基本可以通过遍历数据
库里的员工面部数据与当前摄像头里的员工面部数据的比对来实现,
但有一个问题就是假如摄像头里有多张人脸改怎么处理。扩展要求是
导出每日的考勤表,可以拆分为两个部分,一个是存储考勤信息,一
个是展示考勤信息。
我们希望达到的目标是:
(1)
仿照通用型软件界面设计的原则,所有的操作都在菜单栏里实现,
一部分区域用于展示摄像头实时读取并由程序加工后的视频流信息,
另一部分区域做控制台输出,打印相关信息,比如提示员工面部信息
添加成功、添加失败及其原因,提示员工打卡成功、打卡失败及其原
因
;
添加面部信息时人是必须和程序进行交互的,比如输入一些相关
的信息,这个时候程序是阻塞的
;
但是在打卡的时候,程序是不阻塞
的,如果不点击关闭打卡,它会一直在打卡的模式,等待并识别每一
个前来打卡的员工,这比较符合现实的使用场景。
(2)
建表来存储员工信息和考勤信息,每次新建录入员工面部信息时,
要求输入工号、姓名,并查无重后方可录入,录入时只取距离屏幕最