树莓派5 AI套件YOLOv8n目标检测教程
介绍
YOLOv8(You Only Look Once version 8)是最受欢迎的YOLO系列实时姿态估计和目标检测模型。它在前代产品的基础上,在速度、精度和灵活性方面引入了多项改进。树莓派AI套件用于加速推理速度,配备了基于Hailo-8L芯片构建的13 TOPS神经网络推理加速器。
本wiki将指导您如何在树莓派5上使用AI套件进行YOLOv8n目标检测,从训练到部署的完整过程。
准备硬件
适用于Hailo8L 13 TOPS
适用于 Hailo8 26 TOPS
reComputer AI R2130 |
---|
![]() |
安装硬件
请参考此文档
在主机上
我们将安装 hailo 软件,请确保您有一个 hailo 账户。
安装 Ultralytics 并训练模型
安装 python3.11
sudo apt install python3.11
Create yolo_env as your virtual environment
python3.11 -m venv yolo_env
Activate the environment
source yolo_env/bin/activate
Install ultralytics
pip install ultralytics
使用 COCO 数据集训练 YOLOv8n。如果您想训练自己的数据集,可以参考此处获取相关操作说明。
mkdir yolomodel && cd yolomodel
yolo detect train data=coco128.yaml model=yolov8n.pt name=retrain_yolov8n epochs=100 batch=16
训练完成后,您将获得 best.pt
模型,如下所示:
cd ./runs/detect/retrain_yolov8n/weights/
ls
将 .pt
模型转换为 .onnx
。
yolo export model=./best.pt imgsz=640 format=onnx opset=11
结果如下所示:
安装 hailo 软件
安装 python 3.8
cd ~
sudo apt install python3.8
Create hailo_env as your virtual environment
python3.8 -m venv hailo_env
Activate the environment
source hailo_env/bin/activate
安装 Hailo Dataflow Compiler 3.27,这里您需要注册 Hailo 并登录,然后下载软件。
pip install hailo_dataflow_compiler-3.27.0-py3-none-linux_x86_64.whl
安装 Model zoo,这里你需要注册 Hailo 并登录,然后下载软件。
pip install hailo_model_zoo-2.11.0-py3-none-any.whl
Test whether hailo_model_zoo
is functioning correctly.
hailomz -h
安装 hailo_model_zoo
github 文件
cd yolomodel/runs/detect/retrain_yolov8n/weights
git clone https://github.com/hailo-ai/hailo_model_zoo.git
Install coco dataset for evaluate/optimize/compile the yolov8n model
python hailo_model_zoo/datasets/create_coco_tfrecord.py val2017
python hailo_model_zoo/datasets/create_coco_tfrecord.py calib2017
Use hailo_model_zoo
to parse the model
hailomz parse --hw-arch hailo8l --ckpt ./best.onnx yolov8n
使用 hailo_model_zoo
优化模型
如果您执行以下命令,可能会遇到一些错误。但是,您可以将 ./hailo_model_zoo/hailo_model_zoo
复制到您的本地库中。如果错误提示找不到数据集,您可以导航到 ~/.hailomz
,找到数据集,并将其复制到您的本地数据集目录中。
hailomz optimize --hw-arch hailo8l --har ./yolov8n.har yolov8n
使用 hailo_model_zoo
编译模型
hailomz compile yolov8n --hw-arch hailo8l --har ./yolov8n.har
完成后,您将获得一个 hef
模型,您可以使用它在配备 AI 套件的 Raspberry Pi5 上进行部署
ls
在 Raspberry Pi5 上
更新系统
sudo apt update
sudo apt full-upgrade
Set pcie to gen2/gen3(gen3 is faster than gen2)
Add following text to /boot/firmware/config.txt
#Enable the PCIe external connector
dtparam=pciex1
#Force Gen 3.0 speeds
dtparam=pciex1_gen=3
如果您想使用 gen2
,请注释掉 dtparam=pciex1_gen=3
安装 hailo-all 并重启
在 Raspberry Pi 5 上打开终端并输入以下命令来安装 Hailo 软件
sudo apt install hailo-all
sudo reboot
检查软件和硬件
在 Raspberry Pi5 上打开终端,输入以下命令检查是否已安装 hailo-all。
hailortcli fw-control identify
正确的结果如下所示:
在 Raspberry Pi5 上打开终端,输入以下命令检查 hailo-8L 是否已连接。
lspci | grep Hailo
正确的结果如下所示:
克隆项目
git clone https://github.com/Seeed-Projects/Benchmarking-YOLOv8-on-Raspberry-PI-reComputer-r1000-and-AIkit-Hailo-8L.git
cd Benchmarking-YOLOv8-on-Raspberry-PI-reComputer-r1000-and-AIkit-Hailo-8L
Copy your model to the raspberry pi5
Make a directory named hailomodel
mkdir hailomodel
下面的命令应该在您的主机电脑上运行,而不是在您的 Raspberry Pi 5 上运行。请确保您的主机电脑和 Raspberry Pi 5 都连接到同一个网络。
scp -r ./yolomodel/runs/detect/retrain_yolov8n/weights/yolov8n.hef username@ip /home/pi/Benchmarking-YOLOv8-on-Raspberry-PI-reComputer-r1000-and-AIkit-Hailo-8L/hailomodel/
Change code
Find line 105 and 106 in object-detection-hailo.py
, and change the code like below:
elif args.network == "yolov8n":
self.hef_path = os.path.join(self.current_path, './hailomodel/yolov8n.hef')
在 object-detection-hailo.py
中找到第 172 行,并将代码修改如下:
parser.add_argument("--network", default="yolov8n", choices=['yolov6n', 'yolov8s', 'yolox_s_leaky'], help="Which Network to use, defult is yolov6n")
Run the code
bash run.sh object-detection-hailo
结果
这是我们演示在 Raspberry Pi 5 上训练 YOLOv8n 模型并部署的视频。我们将批处理大小设置为 8,输入尺寸设置为 640x640,输入视频帧率设置为 240 fps。实现的推理速度为 136.7 fps,对于大多数应用场景来说都是非常快的。
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。