AI Kit 与 Raspberry Pi 5 的 YOLOv8n 目标检测教程
简介
YOLOv8(You Only Look Once 第 8 版)是最受欢迎的 YOLO 系列实时姿态估计和目标检测模型。它在前代产品的基础上,在速度、精度和灵活性方面引入了多项改进。Raspberry-pi-AI-kit 用于加速推理速度,配备了基于 Hailo-8L 芯片构建的 13 TOPS 神经网络推理加速器。
本 wiki 将指导您如何在 Raspberry Pi 5 上使用 AI Kit 进行 YOLOv8n 目标检测,从训练到部署的完整流程。
准备硬件
适用于 Hailo8L 13 TOPS
适用于 Hailo8 26 TOPS
安装硬件
请参考此处
在主机上
我们将安装 hailo 软件,请确保您有 hailo 账户。
安装 Ultralytics 并训练模型
安装 python3.11
sudo apt install python3.11
创建 yolo_env 作为您的虚拟环境
python3.11 -m venv yolo_env
激活环境
source yolo_env/bin/activate
安装 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
创建 hailo_env 作为您的虚拟环境
python3.8 -m venv hailo_env
激活环境
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
测试 hailo_model_zoo 是否正常工作。
hailomz -h

安装 hailo_model_zoo github 文件
cd yolomodel/runs/detect/retrain_yolov8n/weights
git clone https://github.com/hailo-ai/hailo_model_zoo.git
安装 coco 数据集以评估/优化/编译 yolov8n 模型
python hailo_model_zoo/datasets/create_coco_tfrecord.py val2017
python hailo_model_zoo/datasets/create_coco_tfrecord.py calib2017
使用 hailo_model_zoo 解析模型
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 kit 的 raspberry pi5 上进行部署
ls

在 Raspberry Pi5 上
更新系统
sudo apt update
sudo apt full-upgrade
设置 pcie 为 gen2/gen3(gen3 比 gen2 更快)
将以下文本添加到 /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
将您的模型复制到 raspberry pi5
创建一个名为 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/
修改代码
在 object-detection-hailo.py 中找到第 105 行和第 106 行,并按如下方式修改代码:
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")
运行代码
bash run.sh object-detection-hailo
结果
这是我们演示训练 YOLOv8n 模型并在 Raspberry Pi 5 上部署的视频。我们将批处理大小设置为 8,输入大小设置为 640x640,输入视频帧率设置为 240 fps。实现的推理速度为 136.7 fps,对于大多数应用场景来说都非常快。
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。






