Dolendra/Face-Recognition-and--Attendance-Manager
GitHub: Dolendra/Face-Recognition-and--Attendance-Manager
基于Python和OpenCV的实时人脸识别考勤系统,通过摄像头自动识别人脸并将带有时间戳的考勤记录保存到CSV文件。
Stars: 1 | Forks: 0
# 🎯 人脸识别考勤管理器
一个基于实时人脸识别的考勤管理系统,使用 **Python**、**OpenCV** 和 **face_recognition** 库构建。
系统通过摄像头捕获实时视频,检测并识别人脸,然后自动将带有时间戳的考勤记录保存在 CSV 文件中。
# 🌟 项目预览

# 🚀 功能特性
- 📷 使用摄像头进行实时人脸检测
- 🧠 使用人脸编码进行人脸识别
- ✅ 自动考勤记录
- ⏱️ 保存带有时间戳的考勤记录
- 📁 基于 CSV 的考勤存储
- ⚡ 通过图像缩放优化实现快速识别
- 🖼️ 支持多张已知人脸
- 🔍 使用欧氏距离进行人脸匹配
- 💻 实时摄像头监控
- 🧾 简易数据集管理
# 🛠️ 使用的技术
| 技术 | 用途 |
|---|---|
| Python | 核心编程语言 |
| OpenCV | 图像处理与摄像头控制 |
| face_recognition | 人脸检测与识别 |
| NumPy | 数值运算 |
| Datetime | 考勤时间戳 |
| CSV | 考勤数据存储 |
# 📂 项目结构
```
facerecognition/
│
├── dataset/
│ ├── billgates.jpg
│ ├── dolendra.png
│ └── elon.webp
│
├── screenshots/
│ ├── project-overview.png
│ ├── realtime-face-recognition.png
│ ├── dataset-folder.png
├── dataset-folder1.png
│ └── attendance-csv.png
│
├── attendance.csv
├── attendanceproject.py
├── basics.py
├── requirements.txt
└── README.md
```
# ⚙️ 工作原理
## 1️⃣ 加载数据集图像
加载 `dataset/` 文件夹中的所有图像,并将其转换为人脸编码。
## 2️⃣ 生成人脸编码
`face_recognition` 库从每张图像中提取独特的面部特征。
## 3️⃣ 启动摄像头
摄像头实时捕获实时视频帧。
## 4️⃣ 检测和识别人脸
使用以下方法将检测到的人脸与已知的人脸编码进行比较:
```
face_recognition.compare_faces()
face_recognition.face_distance()
```
## 5️⃣ 记录考勤
如果人脸匹配成功:
- 屏幕上显示姓名
- 考勤记录被写入 `attendance.csv`
- 自动存储时间
# 📸 截图
## 🖥️ 实时人脸识别

## 📁 数据集文件夹


## 📄 考勤 CSV 输出

# 📊 考勤输出示例
```
Name,Time
DOLENDRA,10:14:16
MANOJ,12:01:41
```
# 🧠 人脸识别逻辑
本项目使用了:
- 人脸检测
- 人脸编码
- 人脸匹配
- 欧氏距离比较
**距离最小**的人脸被视为最佳匹配。
# 💻 安装指南
## 🔹 步骤 1:克隆仓库
```
git clone https://github.com/your-username/FaceRecognition-Attendance-Manager.git
```
## 🔹 步骤 2:进入项目文件夹
```
cd FaceRecognition-Attendance-Manager
```
## 🔹 步骤 3:创建虚拟环境(可选但推荐)
### Windows
```
python -m venv venv
venv\Scripts\activate
```
### Linux / Mac
```
python3 -m venv venv
source venv/bin/activate
```
## 🔹 步骤 4:安装依赖项
```
pip install -r requirements.txt
```
如果没有 `requirements.txt` 文件:
```
pip install opencv-python
pip install face-recognition
pip install numpy
```
# ▶️ 运行项目
```
python attendanceproject.py
```
运行后:
- 摄像头自动打开
- 检测人脸
- 考勤被记录到 CSV 文件中
# 📦 requirements.txt
创建一个 `requirements.txt` 文件并添加:
```
opencv-python
face-recognition
numpy
```
# ➕ 添加新人脸
## 步骤 1
将图像添加到 `dataset/` 文件夹中
示例:
```
dataset/john.jpg
```
## 步骤 2
再次运行项目。
系统会自动识别:
```
JOHN
```
# 📈 性能优化
为了提高实时性能:
- 将帧缩小到原始尺寸的 25%
- 在较小的帧上执行人脸识别
- 将边界框坐标按比例放大以进行显示
```
imgsmall = cv2.resize(img,(0,0),None,0.25,0.25)
```
这显著提高了 FPS 和识别速度。
# 🔮 未来改进
- 🗄️ 数据库集成
- 🌐 基于网页的考勤仪表板
- 🔐 管理员与学生身份验证系统
- ☁️ 云端部署
- 📊 考勤分析与报告
- 📧 电子邮件 / 短信通知
- 📱 移动应用程序
- 🎯 基于深度学习的识别
- 🧾 将考勤导出为 Excel / PDF
- 🎥 多摄像头支持
- 🧠 基于人工智能的情感检测
- 🛰️ REST API 集成
- 👥 基于角色的访问控制
- 🔔 实时通知
# 📚 学习收获
通过这个项目,我学到了:
- 计算机视觉基础
- 人脸识别概念
- OpenCV 图像处理
- 实时摄像头控制
- Python 文件处理
- 使用人脸编码
- 优化实时应用程序
# 🤝 贡献
欢迎贡献!
随时可以:
- Fork 该仓库
- 创建功能分支
- 提交 Pull 请求
# ⭐ 支持
如果你喜欢这个项目:
⭐ 给仓库加星
🍴 Fork 本项目
📢 分享给其他人
# 👨💻 作者
## Dolendra
- 🚀 全栈开发者
- 🤖 机器学习爱好者
- ⚡ DevOps 学习者
# 📜 许可证
本项目基于 MIT 许可证授权。
标签:Apex, CSV数据导出, face_recognition库, NumPy, OpenCV, Python, 人脸检测, 人脸识别, 出勤记录, 图像处理, 无后门, 时间戳, 机器学习, 欧式距离, 特征提取, 生物特征识别, 网络摄像头, 考勤管理, 考勤系统, 自动化考勤, 视频流处理, 计算机视觉, 逆向工具