菜单

树莓派设置

相关源文件

本文档提供在 Raspberry Pi 设备上设置和运行 face_recognition 库的说明。Raspberry Pi 设置允许您以最少的硬件要求构建经济高效的独立人脸识别系统。

有关基于 Docker 的部署,请参阅 Docker 设置。有关常规包安装,请参阅 包安装

硬件要求

face_recognition 库需要 Raspberry Pi 2 或更新型号。早期型号缺乏有效人脸识别处理所需的计算能力。

推荐规格

  • Raspberry Pi 3 Model B+ 或更新型号
  • 至少 2GB RAM
  • MicroSD 卡(建议 16GB+)
  • Raspberry Pi 相机模块或 USB 摄像头
  • 具有足够电流的电源(建议 2.5A+)

来源: README.md113-115

安装过程

在 Raspberry Pi 上安装 face_recognition 需要几个步骤,因为需要从源代码编译 dlib(底层计算机视觉库)。由于 Raspberry Pi 的资源限制,该过程比标准的 pip 安装更复杂。

第一步:系统准备

更新您的 Raspberry Pi 系统并安装所需的构建工具

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install python3-dev python3-pip
sudo pip3 install --upgrade pip

第二步:安装必需的依赖项

安装人脸识别所需的数值和图像处理库

sudo apt-get install python3-numpy
sudo pip3 install numpy
sudo apt-get install libjpeg-dev libpng-dev
sudo pip3 install Pillow

第三步:编译和安装 dlib

由于 Raspberry Pi 的资源限制,您需要使用特定设置编译 dlib

sudo pip3 install dlib --no-cache-dir

注意:此步骤在 Raspberry Pi 设备上可能需要相当长的时间(1-2 小时)。

第四步:安装 face_recognition

安装 dlib 后,即可安装 face_recognition 库

sudo pip3 install face_recognition

第五步:安装相机支持

用于 Raspberry Pi 相机模块

sudo apt-get install python3-picamera
sudo pip3 install "picamera[array]"

来源: README.md113-115 examples/facerec_on_raspberry_pi.py4-7

系统架构

在 Raspberry Pi 上运行 face_recognition 时,系统组件的交互如图所示

Raspberry Pi 上的面部识别流程遵循此顺序

来源: examples/facerec_on_raspberry_pi.py9-48

使用示例

该存储库包含一个适用于 Raspberry Pi 的示例应用程序,该应用程序使用 Pi 相机模块演示实时人脸识别。此示例的关键组件包括:

相机设置

加载已知人脸

识别循环

来源: examples/facerec_on_raspberry_pi.py13-48

性能优化

在 Raspberry Pi 这样资源受限的设备上运行人脸识别需要进行优化。以下是一些提高性能的方法:

分辨率优化

使用较低分辨率的图像可显著提高处理速度

解决方案相对处理速度检测准确度
640x4801x(基线)
320x240约 4 倍速中高
160x120约 16 倍速中等

示例脚本使用了 320x240 的分辨率,这在 Raspberry Pi 硬件上提供了性能和准确性的良好平衡。

算法选择

在 Raspberry Pi 上,务必使用基于 HOG 的检测器而不是 CNN 模型,因为它速度明显更快。

帧跳过

在视频应用中,您可以处理第 N 帧以降低 CPU 负载

来源: examples/facerec_on_raspberry_pi.py16-18

与其他 Raspberry Pi 项目的集成

face_recognition 库可以与各种基于 Raspberry Pi 的系统和应用程序集成

硬件集成

您可以将人脸识别系统连接到各种硬件组件

组件目的集成方法
LED 指示灯视觉反馈GPIO 引脚
继电器模块控制门锁/电器GPIO 引脚
扬声器音频警报USB/3.5mm 音频
伺服电机/电机机器人控制GPIO/PWM/I2C
外部存储数据记录USB/网络

软件集成

面部识别结果可以集成到各种软件系统中

来源: examples/facerec_on_raspberry_pi.py39-47

故障排除

在 Raspberry Pi 上设置人脸识别时遇到的常见问题

问题可能原因解决方案
编译错误内存不足增加交换空间或以较低的并发度进行编译
系统冻结过热确保适当散热或添加散热片/风扇
未找到相机模块未启用raspi-config 中启用相机
性能低下电源不足使用合适的电源(2.5A+)
导入错误缺少依赖项检查所有依赖项是否都已安装
段错误内存问题降低图像分辨率或帧率

内存管理

如果在编译或运行时遇到内存错误,您可以暂时添加交换空间

sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile
# Set CONF_SWAPSIZE=1024
sudo dphys-swapfile setup
sudo dphys-swapfile swapon

来源: README.md113-115

有关在 Raspberry Pi 上使用人脸识别的更多信息,请参阅以下资源

  • 有关在实时应用中优化性能,请参阅 性能优化
  • 有关核心 API 函数的信息,请参阅 核心 API
  • README 中提到了 Adrian Rosebrock 关于 Raspberry Pi 人脸识别的文章,其中提供了额外的指导。

来源: README.md370-371