项目盖述这是一套基于Python PyQt5 OpenCV scikit-learn开发的轻量级离线人脸识别系统支持用户注册、模型训练、实时人脸识别和未知人员拒识等功能。系统采用SVC支持向量机分类器 MediaPipe 人脸检测技术栈具备强大的非线性分类能力在中小规模人脸识别场景下表现优异。核心功能1. 用户注册分步采集6 个不同角度/表情的动作采集正面、左转、右转、抬头、低头、微笑每个动作自动拍摄 5 张照片共 30 张/人实时预览摄像头画面采集进度可视化支持中文姓名录入2. 模型训练SVC自动提取 LBP HOG 混合特征125 维PCA 降维80 维减少计算量保留核心特征SVC支持向量机分类器训练采用RBF径向基核函数自动将数据映射到高维空间擅长处理非线性可分数据对复杂的脸部特征有更强的区分能力在小样本条件下表现优异适合 2-200 人规模支持多分类一对多策略可扩展至更多用户训练完成后自动保存模型文件model.pkl3. 实时人脸识别MediaPipe 深度学习人脸检测鲁棒性强实时人脸框绘制 姓名/置信度显示置信度过滤机制低于阈值自动标记为未知人员识别日志记录时间 姓名 置信度4. 未知人员拒识基于置信度阈值的陌生人拒识支持动态调整阈值默认 0.55陌生人统一显示为未知人员技术架构前端层PyQt5跨平台 GUI 框架界面美观响应快MediaPipeGoogle 深度学习人脸检测支持侧脸/遮挡Pillow中文文字渲染核心算法层特征提取LBP纹理特征 HOG轮廓特征 统计特征降维PCA 主成分分析80 维分类器SVC支持向量机核函数RBF径向基函数多分类策略一对多OvR优势非线性分类能力强小样本泛化好数据层人脸库本地文件夹存储face_dataset/用户名/*.jpg模型存储pickle 序列化支持增量训练代码优势1. 模块化设计textkaoqin_sys/ ├── core/ # 核心算法特征提取、训练、预测 ├── gui/ # 界面层主窗口、注册对话框 ├── utils/ # 工具函数图像处理、人脸检测 └── config.py # 集中配置摄像头、阈值、路径2. 高可配置性所有关键参数集中在config.py中无需修改核心代码python# 摄像头参数 CAMERA_INDEX 0 CAMERA_WIDTH 640 CAMERA_HEIGHT 480 # 识别参数SVC 核心配置 CONFIDENCE_THRESHOLD 0.55 PCA_COMPONENTS 80 SVC_KERNEL rbf # RBF 核函数非线性映射 SVC_C 1.0 # 正则化参数 SVC_GAMMA scale # 核函数系数 SVC_MAX_ITER 10000 # 最大迭代次数 # 注册参数 SAMPLES_PER_ACTION 5 TOTAL_ACTIONS 63. SVC 核函数优势核函数适用场景特点Linear线性核数据线性可分速度快参数少RBF径向基核数据非线性可分分类能力强适合人脸识别Polynomial多项式核数据有明确多项式关系参数多调参复杂本系统采用 RBF 核函数的理由人脸特征在原始空间中通常是非线性分布的RBF 核自动将数据映射到高维空间使不同类别线性可分小样本条件下泛化能力强参数少仅需调整 C 和 gamma调参简单4. 稳定可靠三级降级方案MediaPipe → OpenCV DNN → Haar Cascade异常处理完善摄像头断开、模型缺失均有友好提示人数检查机制少于 2 人时阻止训练避免模型崩溃5. 用户友好注册流程可视化进度条 动作提示实时状态显示人脸数、检测器类型、置信度识别日志记录中文界面 中文文字绘制性能指标指标数值注册耗时~30 秒/人训练耗时 1 秒10 人识别延迟 80ms含检测 识别支持人数2-200 人准确率 95%光线充足条件下模型大小 10 MBSVC vs 其他算法对比对比维度SVC (RBF)LinearSVCKNN深度学习非线性分类能力⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐小样本表现⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐预测速度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐训练速度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐模型可解释性⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐本系统选择✅ 是备选备选备选适用场景场景适配说明企业考勤离线运行数据本地化无需联网门禁系统支持实时识别 陌生人拒识实验室管理小规模人员管理2-200 人会议签到快速注册 实时识别智能教室学生点名、课堂考勤打包部署一键打包 EXE使用 PyInstaller 打包单文件夹部署无需安装 Python 环境bashpyinstaller main.spec运行环境开发环境Python 3.8运行环境Windows 7/10/11无需 Python硬件要求1 个可用摄像头4GB 内存部署文件结构textFaceRecognition/ ├── FaceRecognition.exe # 主程序 ├── mediapipe/ # MediaPipe 模型文件 ├── face_dataset/ # 用户数据运行时生成 └── model.pkl # 模型文件运行时生成扩展性已预留的优化方向GPU 加速可集成 CUDA 加速推理批量导入支持从图片文件夹批量导入用户云端同步人脸库支持云存储活体检测集成眨眼/转头检测防止照片攻击多线程将检测/识别放入独立线程提升并发能力适用规模扩展建议人数建议方案2-50 人当前 SVC (RBF) 方案 ✅50-200 人当前方案 特征缓存200-1000 人升级为深度学习FaceNet/ArcFace1000 人分布式 GPU 集群技术亮点✅SVC RBF 核函数非线性分类能力强小样本泛化好✅MediaPipe 深度学习检测鲁棒性强支持侧脸/遮挡✅LBP HOG 混合特征125 维特征向量全面描述人脸✅置信度过滤陌生人自动拒识✅离线运行数据本地化无需联网✅一键打包EXE 部署无需 Python 环境