这是一个使用 Rust 和 OpenCV 开发的人脸识别相机系统,能够实现实时人脸检测、人脸注册(训练)和人脸识别功能。
- 人脸检测:使用 Haar 级联分类器实时检测摄像头中的人脸
- 人脸注册:允许用户注册新的人脸,并为其命名
- 人脸识别:能够识别已注册的人脸,并显示其姓名和相似度
- Rust 编程环境
- OpenCV 4.x(带有 face 模块)
- 摄像头
- 确保已安装 Rust 和 Cargo
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- 安装 OpenCV 依赖(以 macOS 为例)
brew install opencv
- 克隆本仓库
git clone <repository-url>
cd my-camera
- 编译项目
cargo build --release
可以通过修改 .env
文件来配置程序:
FACE_SIZE=160 # 人脸尺寸
CAMERA_INDEX=0 # 摄像头索引(0通常为默认摄像头)
MODEL=haarcascade_frontalface_default.xml # 人脸检测模型
FACE_THRESHOLD=70.0 # 人脸识别阈值
- 运行程序
cargo run --release
-
键盘快捷键
d
: 切换到仅人脸检测模式r
: 切换到人脸识别模式n
: 切换到人脸注册模式(需要输入姓名)q
或Esc
: 退出程序
-
人脸注册步骤
- 按
n
键进入注册模式 - 确保画面中只有一个人脸
- 输入姓名后按回车
- 成功注册后会自动切换到人脸识别模式
- 按
- 人脸图像存储在
faces/
目录中 - 人脸数据库存储在
faces_db.json
文件中 - 训练模型存储在
face_model.yml
文件中
MIT License