人脸考勤管理一体化系统
项目介绍
本项目是基于Flask、SQLAlchemy、face_recognition库的人脸考勤管理一体化系统。
系统通过人脸识别技术实现员工考勤打卡、人脸信息采集、人脸模型训练等功能。
项目采用前后端分离的技术框架,基于Flask轻量级Web框架搭建后端服务,结合HTML/CSS/JavaScript实现前端用户界面。
主要技术与框架
Web 框架:
Flask:用于构建Web应用,提供用户界面和API接口。
SQLAlchemy:用于数据库操作,管理员工、部门、公告等数据。
人脸识别库:
- face_recognition:用于人脸检测、特征提取和比对。
前端技术:
HTML/CSS/JavaScript:用于构建用户界面。
Jinja2 模板引擎:用于动态生成 HTML 页面。
其他工具:
OpenCV:用于图像处理和摄像头帧捕获。
Pillow:用于图像处理和文字绘制。
NumPy:用于数值计算。
主要功能
功能1:首页看板预览
- 展示系统员工数、部门数、公告数模型已训练人脸数等
功能2:部门管理
- 系统支持对部门信息进行管理,包括新增、编辑、删除部门信息。
功能3:员工管理
- 系统支持对员工信息进行管理,包括新增、编辑、删除员工信息,并支持上传员工照片。
功能4:公告管理
- 系统支持发布和管理公告,公告可以设置为草稿或已发布状态。
功能5:人脸信息采集
- 用户可以通过摄像头采集员工的人脸照片,并保存到系统中,用于后续的人脸识别和模型训练。
功能6:人脸模型训练
- 系统支持基于采集的人脸照片进行模型训练,生成人脸特征值,用于后续的人脸识别。
功能7:人脸实时抓拍
- 系统支持实时抓拍摄像头画面中的人脸,并将抓拍的照片保存到系统中,用于后续的考勤记录。
功能8:人脸视频抓拍
- 系统支持用户上传视频实时抓拍视频画面中的人脸,并将抓拍的照片保存到系统中,用于后续的考勤记录。
功能9:人脸考勤打卡
- 系统通过人脸识别技术实现员工考勤打卡,记录员工的打卡时间和状态(成功/失败)。
功能10:登录、注销
- 使用Flask-Login管理用户登录状态,用户可以通过登录系统使用各项功能。
环境说明
参考以下环境(已跑通),可按顺序安装库的版本:
Windows10及以上(操作系统)
python 3.9.12
flask==3.0.2
flask_sqlalchemy==3.1.1
flask-login==0.6.3
face_recognition==1.2.3
werkzeug==3.1.3
opencv-python==4.4.0
numpy==1.26.4
pillow==10.4.0
cmake==3.31.2
dlib==19.22.1
目录说明
人脸考勤管理一体化系统/
├── instance/
│ ├── face_attendance_sys.db # SQLite数据库文件
├── static/ # 静态资源文件
│ ├── captures/ # 存储抓拍照片(按日期分文件夹存储)
│ ├── images/ # 图片资源
│ └── css/ # CSS 样式文件
├── templates/ # HTML模板文件
│ ├── base.html # 基础模板
│ ├── dashboard.html # 仪表板/首页
│ ├── face_collection.html # 人脸信息采集页面
│ ├── face_training.html # 人脸模型训练页面
│ ├── face_capture.html # 人脸实时抓拍页面
│ ├── face_verification.html # 人脸考勤打卡页面
│ ├── face_video_capture.html # 人脸视频抓拍页面
│ ├── department_management.html # 部门管理页面
│ ├── employee_management.html # 员工管理页面
│ ├── announcement_management.html # 公告管理页面
│ └── login.html # 登录页面
├── app.py # Flask 应用主程序(运行启动项目)
├── README.md # 项目说明文档
└── environment.txt # 项目依赖列表
右键运行 app.py 后,浏览器输入地址:127.0.0.1:2992 访问系统。
视频演示(效果图)
人脸考勤管理一体化系统(人脸识别,签到打卡)