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 文件中。 # 🌟 项目预览 ![人脸识别考勤管理器](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b756a9fee8000211.png) # 🚀 功能特性 - 📷 使用摄像头进行实时人脸检测 - 🧠 使用人脸编码进行人脸识别 - ✅ 自动考勤记录 - ⏱️ 保存带有时间戳的考勤记录 - 📁 基于 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` - 自动存储时间 # 📸 截图 ## 🖥️ 实时人脸识别 ![人脸识别](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5ed4089eca000218.png) ## 📁 数据集文件夹 ![数据集文件夹](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/81b3175b32000225.png) ![数据集文件夹](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/3e0fd65096000231.png) ## 📄 考勤 CSV 输出 ![考勤 CSV](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8d733ff5cf000237.png) # 📊 考勤输出示例 ``` 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, 人脸检测, 人脸识别, 出勤记录, 图像处理, 无后门, 时间戳, 机器学习, 欧式距离, 特征提取, 生物特征识别, 网络摄像头, 考勤管理, 考勤系统, 自动化考勤, 视频流处理, 计算机视觉, 逆向工具