Raspberry Pi Face Recognition Unlocking System English
一个基于树莓派的智能人脸识别解锁系统,支持自动识别并解锁 Mac 电脑。
- 🔐 人脸识别解锁:使用 face_recognition 库进行高精度人脸识别
- 🖥️ Mac 远程解锁:支持通过网络解锁 Mac 电脑
- 🌐 Web 控制界面:提供友好的移动端 Web 界面
- 🔧 系统服务:支持开机自启和异常重启
- 📊 实时监控:提供详细的识别统计和日志
- 🎯 多种触发方式:支持手动、Web、定时等多种触发模式
face_unlock_system/
├── README.md # 项目说明
├── DEPLOYMENT.md # 部署指南
├── requirements.txt # Python依赖
├── .gitignore # Git忽略文件
├── config.template.json # 配置模板
├── config.json # 实际配置(需要创建)
├── run.py # 主启动文件
├── web_trigger.py # Web触发服务
├── capture.py # 人脸采集工具
├── train_model.py # 模型训练工具
├── core/ # 核心模块
│ └── main.py # 核心识别程序
├── utils/ # 工具模块
│ ├── mac_trigger.py # Mac解锁工具
│ └── trigger_handler.py
├── models/ # 训练模型存储
├── faces/ # 人脸数据存储
├── logs/ # 日志文件
├── service_manager.sh # 服务管理脚本
├── install_service.sh # 服务安装脚本
└── backup_old/ # 旧版本备份
- 树莓派 4/5(推荐 8GB 内存)
- 树莓派官方摄像头或 USB 摄像头
- Python 3.7+
- Mac 电脑(需要安装对应的解锁服务)
-
克隆项目
git clone <your-repo-url> cd face_unlock_system
-
安装依赖
pip3 install -r requirements.txt
-
配置系统
cp config.template.json config.json # 编辑config.json,填入您的Mac信息 nano config.json -
采集人脸数据
python3 capture.py
-
训练模型
python3 train_model.py
-
测试运行
python3 run.py
-
安装为系统服务(可选)
./install_service.sh
主要配置项:
{
"mac": {
"enabled": true,
"host": "YOUR_MAC_IP_OR_HOSTNAME",
"username": "YOUR_MAC_USERNAME",
"password": "YOUR_MAC_PASSWORD"
},
"authorized_users": ["user1"],
"web": {
"enabled": true,
"port": 5000
}
}启动 Web 服务后,可通过浏览器访问:
http://树莓派IP:5000
功能包括:
- 手动触发人脸识别
- 查看系统状态
- 测试 Mac 连接
- 移动端友好界面
使用服务管理脚本:
# 启动服务
./service_manager.sh start
# 查看状态
./service_manager.sh status
# 查看日志
./service_manager.sh logs
# 重启服务
./service_manager.sh restartpython3 run.pypython3 web_trigger.py
### 训练模型
python3 core/train_model.py
### 拍照采集
python3 core/capture.py
### 测试Mac连接
```bash
python3 utils/mac_trigger.py-
摄像头无法使用
# 测试摄像头 rpicam-hello -t 2000 -
face_recognition 安装失败
# 安装预编译版本 sudo apt update sudo apt install python3-face-recognition -
Mac 连接失败
- 检查 Mac IP 地址和端口
- 确保 Mac 上的解锁服务正在运行
- 检查网络连接
-
服务无法启动
# 查看详细错误 sudo journalctl -u face-unlock-web -f
欢迎提交 Issue 和 Pull Request!
本项目采用 MIT 许可证 - 查看LICENSE文件了解详情。
- 请妥善保管配置文件中的密码信息
- 建议在局域网环境中使用
- 定期更新系统和依赖包
- 不要将包含个人信息的配置文件上传到公共仓库