基于树莓派的面部口罩检测系统部署

在本文中,将学习如何在树莓派上部署面部口罩检测系统。这种系统可以用于检测人们是否正确佩戴口罩,这对于当前的公共卫生安全至关重要。将使用Coral USB加速器来提高检测速度。

硬件需求

为了在树莓派上部署检测器解决方案,需要以下硬件:

  • 树莓派3/4,带有互联网连接(仅用于配置),运行树莓派操作系统(之前称为Raspbian)
  • 树莓派高清摄像头(任何USB网络摄像头应该都可以工作)
  • Coral USB加速器
  • 与Pi兼容的显示器

Coral USB加速器是谷歌设计的一种硬件配件。它为系统增加了一个边缘TPU处理器,使其能够以非常高的速度运行机器学习模型。建议查看其数据表。在案例中,将与Pi一起使用它,因为这块板本身并不能在高FPS下进行良好的检测。

带有加速器的树莓派并不是唯一可以用于此任务的便携设备。实际上,如果正在开发商业解决方案,使用独立的Coral板或NVidia的Jetson硬件系列会是更好的选择。这两种都为量产提供了吸引人的选择,一旦完成了原型设计。对于基本的原型设计和实验,树莓派4加上Coral加速器就足够了。

最后一点:如果不想将此解决方案部署到树莓派上,也可以。这个模型也可以在桌面或笔记本电脑上运行,如果更喜欢这样做的话。

树莓派上的初始步骤

如果Coral棒已经连接到Pi,请先拔下它。会告诉何时可以连接它。首先需要安装几个库,以便在它上面运行YOLO模型,并利用Coral设备。

首先,让更新树莓派板。打开一个终端窗口并运行:

sudo apt-get update sudo apt-get upgrade

上述命令可能需要几分钟才能完成。检查摄像头接口是否激活,点击左上角的树莓派图标 > Preferences > Raspberry Pi configuration > Interfaces标签。选择摄像头的Enable单选按钮,然后点击OK。重启树莓派板。

准备目录和创建虚拟环境

让从创建一个隔离环境开始,以避免将来的冲突。这是一个应该从现在开始采用的做法,因为它将帮助避免遇到很多问题。要获取虚拟环境的pip包,请运行:

sudo pip3 install virtualenv

安装完成后,运行以下命令以准备一切:

mkdir FaceMaskDetection cd FaceMaskDetection git clone https://github.com/zldrobit/yolov5.git cd yolov5 git checkout tf-android git clone https://github.com/sergiovirahonda/FaceMaskDetectionOnPi.git cd FaceMaskDetectionOnPi mv customweights detect4pi.py requirements4pi.txt /home/pi/FaceMaskDetection/yolov5 cd ..

现在,是时候在项目目录中创建隔离环境并激活它,以便可以安装依赖项:

python3 -m venv tflite1-env source tflite1-env/bin/activate

最后,运行以下命令:

pip install -r requirements4pi.txt

在树莓派上安装TFLite解释器和PyTorch

之前提到过,树莓派板在运行TensorFlow模型方面并不擅长,因为它们根本没有所需的处理能力。为了使这个项目可行,需要采取TFLite的变通方法,然后安装PyTorch,因为脚本仍在使用它的一些方法。请注意,不会在PyTorch上运行模型,只会使用它的一些功能。让开始确定Pi的处理器架构:

uname -a

如果它显示处理器架构是ARM7L,让安装相应的TFLite版本。

如果Pi安装了Python 3.6:

pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp36-cp36m-linux_armv7l.whl

如果Pi安装了Python 3.7:

pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-linux_armv7l.whl

如果Pi有其他Python版本,或者有不同的处理器架构,建议查看这个指南,并在"Install just the TensorFlow Lite interpreter"部分,寻找Linux (ARM或AARCH)平台选项。

一旦完成,是时候安装PyTorch了——这是一个开源的Python机器学习库,用于多种类型的应用程序,包括涉及计算机视觉的那些。树莓派没有常规的Intel x86处理器架构。相反,它有一个ARM架构;因此,想要在Pi上安装的所有Python包都必须为此特定架构编译。

没有ARM处理器的官方包。仍然可以从预编译的wheel包中安装PyTorch,但它们可能因Pi拥有的处理器版本而异。探索这个NVIDIA论坛,以找到适当的版本和安装说明。还发现了这个仓库,它包含了一些其他ARM构建的包。有树莓派,带有ARMv7l处理器。如果树莓派处理器相同,可以使用使用的wheel。会在Git仓库中找到它。

让开始安装PyTorch所需的依赖项,以便它能够顺利运行:

sudo apt install libopenblas-dev libblas-dev m4 cmake cython python3-dev python3-yaml python3-setuptools

完成后,在树莓派的/Documents中浏览,并发出此命令以获取.whl文件:

cd /home/pi/Documents git clone https://github.com/sergiovirahonda/PyTorchForRPi.git

完成后,运行此命令以开始安装:

cd /home/pi/Documents/PyTorchForRPi pip3 torch-1.0.0a0+8322165-cp37-cp37m-linux_armv7l.whl

最后一个命令大约需要两分钟才能完成。如果一切顺利,恭喜!已经完成了最困难的部分。

在树莓派上安装Coral USB加速器依赖项

这不是强制性的——只需要这个步骤,如果想加速检测速度。

在同一个终端窗口中,导航到项目的文件夹。一旦到达那里,使用下一行将Coral包仓库添加到apt-get发行版列表:

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-get update

现在终于可以安装Edge TPU运行时了,这是使用USB加速器的唯一要求。通过运行安装libedgetpu库(标准库,不会使Coral过热):

sudo apt-get install libedgetpu1-std

现在可以将Coral USB板插入树莓派了。

在树莓派板上部署检测器

确保Coral USB加速器和网络摄像头已经插入。打开一个终端窗口,导航到项目的目录:

cd /home/pi/FaceMaskDetection source tflite1-env/bin/activate cd yolov5

通过运行安装项目的要求:

pip3 install -r requirements4pi.txt

要初始化没有Coral USB加速器的检测器,请发出:

!python detect4pi.py --weights customweights/best-fp16.tflite --img 416 --conf 0.45 --source 0 --classes 0 1

否则,需要运行这个命令:

!python detect4pi.py --weights customweights/best-fp16.tflite --img 416 --conf 0.45 --source 0 --classes 0 1 --edgetpu
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485