(六)使用Coral USB Accelerator在Raspberry Pi上部署YOLOv5模型

目录

介绍

Raspberry Pi的初始步骤

准备目录并创建虚拟环境

在Raspberry Pi上安装TFLite解释器和PyTorch

在Raspberry Pi上安装Coral USB Accelerator依赖项

在Raspberry Pi板上部署检测器

下一步?


在这里,我们将检测器解决方案部署在具有Coral USB加速器的Raspberry Pi边缘设备上。

介绍

上一篇文章中,我们在常规计算机上测试了口罩检测器。在这一部分中,我们将在带有Coral USB加速器的Raspberry Pi边缘设备上部署我们的检测器解决方案。

这部分的硬件要求是:

  • 具有运行Raspberry Pi OS(以前称为Raspbian)的Internet连接(仅用于配置)的Raspberry Pi 3/4
  • Raspberry Pi HQ摄像头(任何USB网络摄像头都可以使用)
  • Coral USB加速器
  • 与您的Pi兼容的显示器

Coral USB加速器是Google设计的硬件配件。它将边缘TPU处理器添加到您的系统,使其能够以极高的速度运行机器学习模型。我建议您看一下它的数据表。您几乎可以将其插入任何设备。在本例中,我们将其与Pi结合使用,因为该板本身无法在高FPS时进行良好的检测。

具有加速器的Raspberry Pi并不是唯一可以用于此任务的便携式设备。实际上,如果您正在开发商业解决方案,那么最好使用独立的CoralNVidiaJetson硬件系列中的产品

原型制作完成后,这两个都提供了诱人的选择,可用于大规模生产。但是,对于基本的原型设计和实验,带有Coral加速棒的Raspberry Pi 4可以胜任。

最后一点:如果您不需要,则不必将此解决方案部署到Raspberry Pi。如果您希望这样做,那么该模型可以在台式机或笔记本电脑上愉快地运行。

Raspberry Pi的初始步骤

如果Coral 棒已经连接到Pi,请拔下插头。当您可以附加它时,我会通知您。我们必须首先安装几个库才能在其上运行YOLO模型,并利用Coral设备的优势。

首先,让我们更新Raspberry Pi开发板。打开一个终端窗口并运行:

sudo apt-get update
sudo apt-get upgrade

以上几行可能需要几分钟才能完成。通过单击左上方的Raspberry图标>首选项Raspberry Pi配置>接口选项卡,检查相机的界面是否处于活动状态。选择相机的启用单选按钮,然后单击确定。重新启动您的Raspberry Pi开发板。

准备目录并创建虚拟环境

让我们从创建一个隔离的环境开始,以避免将来发生冲突。从现在开始,您应该采用这种做法,因为它可以避免遇到很多问题。要获取虚拟环境的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

Raspberry Pi上安装TFLite解释器和PyTorch

我之前提到过Raspberry Pi板在运行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版本或不同的处理器体系结构,建议您检查此指南,并在仅安装TensorFlow Lite解释器部分中查找LinuxARMAARCH)平台选项。

一旦完成,就该安装PyTorch——一个开放源代码的Python机器学习库,可用于多种类型的应用程序,包括涉及计算机视觉的应用程序。我们的Raspberry Pi没有常规的Intel x86处理器体系结构。相反,它有一个ARM。所以。您要在Pi上安装的所有Python软件包都必须针对此特定体系结构进行编译。

没有用于ARM处理器的官方软件包。我们仍然可以从预编译的滚轮包中安装PyTorch,但是它们可能会因Pi的处理器版本而异。浏览此NVIDIA论坛,以找到正确的版本和安装说明。我还发现此存储库包含用于其他一些ARM构建的软件包。我有带ARMv7l处理器的Raspberry Pi

如果您的Raspberry Pi的处理器相同,则可以使用我使用过的轮子。您可以在我的Git仓库中找到它。

让我们从安装PyTorch依赖项开始,以使其顺利运行:

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

完成后,浏览至Raspberry Pi中的/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

最后一条命令将花费大约两分钟的时间来完成。如果一切顺利,那么恭喜!您已经完成了最难的部分。

Raspberry Pi上安装Coral USB Accelerator依赖项

这不是强制性的——仅在要加快检测速度时才需要执行此步骤。

在同一终端窗口中,导航到项目的文件夹。到达那里之后,将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板插入Raspberry Pi

Raspberry Pi板上部署检测器

确保您的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

这两个选项都将打开网络摄像头并按预期初始化检测:

(六)使用Coral USB Accelerator在Raspberry Pi上部署YOLOv5模型_第1张图片

下一步?

其实没有。我们已经结束了这个具有挑战性的项目!我希望最终结果是您所期望的。

https://www.codeproject.com/Articles/5293079/Deploying-YOLOv5-Model-on-Raspberry-Pi-with-Coral

你可能感兴趣的:(python,人工智能)