# python_opencvface_recognition **Repository Path**: caixukun66666666/python_opencvface_recognition ## Basic Information - **Project Name**: python_opencvface_recognition - **Description**: 基于Python和OpenCV的人脸识别项目,提供简洁高效的图像处理与识别功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-05 - **Last Updated**: 2025-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 人脸识别签到系统

🎓 智能人脸识别签到系统

基于OpenCV和机器学习的现代化签到解决方案

![Python](https://img.shields.io/badge/Python-3.7+-blue.svg) ![OpenCV](https://img.shields.io/badge/OpenCV-4.8.0-green.svg) ![License](https://img.shields.io/badge/License-MIT-yellow.svg) ![Status](https://img.shields.io/badge/Status-Active-success.svg)
## 📖 项目简介 本项目是一个基于Python和OpenCV开发的智能人脸识别签到系统,专为桂林电子科技大学数字媒体技术专业设计。系统采用现代化的GUI界面设计,集成了人脸检测、识别、用户管理和签到记录等功能,为学校、企业等机构提供高效便捷的考勤管理解决方案。 ## ✨ 功能特点 ### 🎯 核心功能 - **实时人脸识别**: 基于OpenCV的LBPH算法实现高精度人脸识别 - **智能签到系统**: 自动记录签到时间并保存人脸照片 - **用户管理**: 完整的用户注册、删除、搜索功能 - **数据统计**: 实时显示签到记录和用户统计信息 ### 🎨 界面特色 - **现代化UI设计**: 采用Material Design风格的界面 - **多标签页布局**: 签到、用户管理、模型训练三大功能模块 - **实时视频预览**: 高清摄像头画面实时显示 - **中文界面支持**: 完全本土化的中文操作界面 ### 🔧 技术亮点 - **多种人脸检测算法**: 支持Haar和LBP级联分类器 - **自适应图像增强**: 自动调整图像对比度和亮度 - **数据持久化**: JSON和CSV格式的数据存储 - **模型训练功能**: 支持自定义数据集训练人脸识别模型 ## 🛠 技术栈 - **编程语言**: Python 3.7+ - **计算机视觉**: OpenCV 4.8.0 - **机器学习**: LBPH人脸识别算法 - **GUI框架**: Tkinter + TTK主题 - **图像处理**: PIL/Pillow - **数据存储**: JSON、CSV - **数学计算**: NumPy ## 📋 系统要求 ### 硬件要求 - **CPU**: Intel i3或AMD同等性能处理器 - **内存**: 至少4GB RAM - **摄像头**: USB摄像头或内置摄像头 - **存储**: 至少1GB可用空间 ### 软件要求 - **操作系统**: Windows 10/11 (推荐) / macOS / Linux - **Python版本**: 3.7 - 3.11 - **摄像头驱动**: 支持OpenCV的标准摄像头驱动 ## 🚀 快速开始 ### 1. 环境准备 确保您的系统已安装Python 3.7或更高版本: ```bash python --version ``` ### 2. 项目安装 ```bash # 1. 克隆项目 git clone [项目地址] cd python+opencv人脸识别 # 2. 创建虚拟环境(推荐) python -m venv face_recognition_env # 3. 激活虚拟环境 # Windows: face_recognition_env\Scripts\activate # macOS/Linux: source face_recognition_env/bin/activate # 4. 安装依赖 pip install -r requirements.txt ``` ### 3. 启动系统 #### 方法一:使用批处理文件(Windows推荐) ```bash 双击运行 "启动人脸识别系统.bat" ``` #### 方法二:命令行启动 ```bash python main.py ``` ### 4. 首次使用配置 1. **检查摄像头**: 启动后点击"开启摄像头"测试设备 2. **注册用户**: 在"人脸签到"页面点击"注册人脸"添加用户 3. **开始签到**: 注册完成后即可使用"识别并签到"功能 ## 📚 使用说明 ### 🎯 人脸签到模块 1. **开启摄像头**: 点击"开启摄像头"按钮激活视频流 2. **注册新用户**: - 点击"注册人脸"按钮 - 填写用户信息(姓名、学号、部门) - 系统自动采集10帧人脸图像进行训练 3. **执行签到**: - 点击"识别并签到"按钮 - 面向摄像头,系统自动识别并记录签到 ### 👥 用户管理模块 - **查看用户列表**: 显示所有已注册用户信息 - **搜索用户**: 支持按姓名、学号、部门搜索 - **删除用户**: 选中用户后点击删除(会同时删除人脸数据) - **用户详情**: 双击用户查看详细信息 ### 🧠 模型训练模块 - **数据采集**: 通过摄像头采集正负样本 - **标记数据**: 手动标记人脸和非人脸区域 - **模型训练**: 使用采集数据训练识别模型 - **自动采样**: 支持定时自动采集训练样本 ## 📁 项目结构 ``` python+opencv人脸识别/ ├── main.py # 主程序入口 ├── tkgui.py # GUI界面实现 ├── face_recognition.py # 人脸识别核心模块 ├── database.py # 数据库操作模块 ├── requirements.txt # 依赖包列表 ├── 启动人脸识别系统.bat # Windows启动脚本 ├── README.md # 项目说明文档 ├── data/ # 数据存储目录 │ ├── users.json # 用户信息数据 │ ├── face_model.yml # 人脸识别模型 │ ├── face_labels.pkl # 人脸标签映射 │ ├── faces/ # 人脸图像存储 │ └── attendance/ # 签到记录 │ ├── images/ # 签到照片 │ └── *.csv # 每日签到记录 └── resources/ # 资源文件 ├── haarcascade_frontalface_default.xml # Haar分类器 └── simhei.ttf # 中文字体文件 ``` ## 🔧 配置说明 ### 摄像头配置 系统会自动检测可用摄像头,如遇问题请检查: - 摄像头是否正确连接 - 是否被其他程序占用 - 驱动程序是否正常安装 ### 字体配置 系统会自动寻找中文字体: 1. 优先使用系统字体(Windows: `C:\Windows\Fonts\simhei.ttf`) 2. 备用字体位置:`resources/simhei.ttf` ### 数据存储 - 用户数据:`data/users.json` - 人脸模型:`data/face_model.yml` - 签到记录:`data/attendance/日期.csv` - 签到照片:`data/attendance/images/` ## ❓ 常见问题 ### Q1: 摄像头无法开启怎么办? **A**: 请检查以下几点: - 确保摄像头已正确连接 - 关闭其他正在使用摄像头的程序 - 检查摄像头驱动是否正常 - 尝试重启程序 ### Q2: 人脸识别准确率不高? **A**: 可以尝试以下优化: - 确保光线充足 - 保持面部正对摄像头 - 注册时采集多角度人脸图像 - 使用模型训练功能增加样本 ### Q3: 系统运行缓慢? **A**: 优化建议: - 关闭不必要的后台程序 - 调整摄像头分辨率 - 确保系统满足最低配置要求 ### Q4: 中文显示异常? **A**: 解决方案: - 确保系统已安装中文字体 - 检查 `resources/simhei.ttf` 文件是否存在 - 重新安装系统字体 ## 🔄 更新日志 ### v1.0.0 (2025-09-22) - ✅ 完整的人脸识别签到系统 - ✅ 现代化GUI界面设计 - ✅ 多标签页功能模块 - ✅ 用户管理和数据统计 - ✅ 模型训练功能 - ✅ 完善的错误处理机制 ## 🤝 贡献指南 我们欢迎所有形式的贡献!如果您想为项目做出贡献: 1. Fork 本仓库 2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交您的修改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开一个 Pull Request ### 开发规范 - 遵循PEP 8代码风格 - 添加适当的注释和文档 - 确保代码通过测试 - 提交信息要清晰明了 ## 📄 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ``` MIT License Copyright (c) 2025 caixukun666 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` ## 📞 联系支持 如果您在使用过程中遇到任何问题,请通过以下方式联系: - 📧 邮箱:[请填写联系邮箱] - 🐛 问题反馈:[GitHub Issues] - 📚 文档:[项目Wiki] ## 🙏 致谢 感谢以下开源项目的支持: - [OpenCV](https://opencv.org/) - 计算机视觉库 - [Python](https://www.python.org/) - 编程语言 - [Tkinter](https://docs.python.org/3/library/tkinter.html) - GUI框架 - [NumPy](https://numpy.org/) - 数值计算库 ---

⭐ 如果这个项目对您有帮助,请给我们一个星标!

© 2025 caixukun666