🤖 人脸识别系统 v1.0
一个基于 Python + OpenCV 的人脸识别系统,采用 LBPH(Local Binary Patterns Histograms) 算法实现人脸数据的采集、模型训练与实时识别,支持多用户管理、五官检测校准与识别数据统计。
✨ 功能特性
- 📸 采集人脸数据:通过摄像头自动捕捉多角度人脸图像(正面/左转/右转/抬头/低头),并实时检测五官(左右眼、嘴巴)质量
- 🧠 训练识别模型:使用 LBPH 算法训练多用户人脸识别模型,内置数据增强(灰度、旋转、缩放、平移、亮度/对比度调节)
- 🔍 实时人脸识别:摄像头实时检测并识别人脸身份,显示置信度与中英文标注,支持识别统计(识别时长、总次数、陌生人次数)
- 👥 管理用户数据:查看已注册用户及样本数量,支持单个/批量删除用户数据
- 🎯 五官检测校准:独立的调试工具,可实时调整眼睛/鼻子/嘴巴检测参数(scaleFactor、minNeighbors、minSize)
🛠️ 技术栈
| 组件 | 说明 |
|---|---|
| OpenCV | 计算机视觉库(人脸检测 / 识别 / 图像处理) |
| LBPH | 局部二值模式直方图人脸识别算法 |
| Haar Cascade | 人脸/眼睛/嘴巴检测器 |
| numpy | 数组与矩阵运算 |
| Pillow | 图像处理与中文标注绘制 |
📁 项目结构
main.py:主程序入口(命令行菜单)face_capture.py:人脸数据采集模块face_train.py:LBPH 模型训练模块(含数据增强)face_recognize.py:实时人脸识别模块calibrate_features.py:五官检测参数校准工具
🚀 使用流程
- 采集数据:输入用户名,采集 50~100 张多角度人脸样本
- 训练模型:使用采集的数据训练 LBPH 模型(模型保存为
data/model/face_model.yml) - 实时识别:启动摄像头实时识别人脸,按
ESC退出、S保存当前帧、R重置统计
🎮 操作提示
- 采集时保持光照充足,不要戴墨镜或口罩
- 每人至少采集 20 张样本,推荐 50~100 张
- 删除用户后需重新训练模型
本项目用于计算机视觉与机器学习入门学习,纯本地运行,数据不经过网络上传。