这是大三下学期的计算机系统综合课程设计。可复现版本使用树莓派摄像头、OpenCV Haar 级联分类器和 LBPH 识别器,完成采集、训练与实时识别。

返回项目实践 · 课程资料(提取码:3ezu

1、项目概览

项目 内容
学习阶段 大三下学期
硬件 树莓派 3B/3B+、CSI 摄像头、TF 卡、显示器
软件 Raspberry Pi OS、Python、OpenCV、Pillow、NumPy
核心算法 Haar 人脸检测、LBPH 人脸识别
代码内容 3 个 Python 脚本和 Haar 分类器 XML

2、实际实现链路

1
2
3
4
5
6
摄像头画面
-> Haar 检测人脸区域
-> 采集约 30 张灰度人脸样本
-> LBPH 训练并生成 trainer.yml
-> 实时检测与身份预测
-> 显示姓名和置信度

课程材料中还讨论了残差网络、PCA、SVM、活体检测等扩展方向,但当前能稳定对应到源码和演示流程的是 Haar + LBPH 版本。因此这组文章主要记录这一条可复现链路。

3、三篇实操记录

  1. 硬件组装与镜像烧录:准备硬件、烧录系统、连接摄像头并完成首次启动。
  2. 环境搭建与相机测试:安装 OpenCV 依赖,确认摄像头能够稳定读取画面。
  3. 检测、训练与识别:采集数据、训练 LBPH 模型并运行实时识别。

4、源码结构

文件 作用
01_face_dataset.py 检测人脸并保存训练样本
02_face_training.py 读取样本,训练 LBPH 模型
03_face_recognition.py 加载模型并进行实时识别
haarcascade_frontalface_default.xml Haar 人脸检测器

5、测试与局限

课程测试主要覆盖摄像头读取、样本采集、模型生成、已登记人员识别和未知人员显示。这个轻量方案适合演示完整流程,但有明显限制:

  • 光照、角度、遮挡和摄像头画质会显著影响识别结果。
  • 样本数量较少,不能据此给出可靠的通用准确率。
  • LBPH 适合小规模本地实验,不等同于现代深度学习人脸识别系统。
  • 没有完善的活体检测、权限控制、隐私保护和模型评估。

6、复盘

这个项目的价值在于把操作系统、硬件接口、摄像头、图像处理和算法程序连接起来。之后如果重做,我会增加统一的数据划分、识别阈值实验、混淆矩阵、不同光照测试,并加入明确的隐私授权和本地数据清理机制。