人臉考勤管理一體化系統
項目介紹
本項目是基于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 訪問系統。
視頻演示(效果圖)
人臉考勤管理一體化系統(人臉識別,簽到打卡)