使用 Raspberry Pi 5 的 AI Kit 进行 YOLOv8n 目标检测教程
本文档由 AI 翻译。如您发现内容有误或有改进建议,欢迎通过页面下方的评论区,或在以下 Issue 页面中告诉我们:https://github.com/Seeed-Studio/wiki-documents/issues
简介
YOLOv8(You Only Look Once 第 8 版)是 YOLO 系列中最受欢迎的实时姿态估计和目标检测模型。它基于前代模型的优势,通过引入多项速度、准确性和灵活性方面的改进进一步提升性能。Raspberry-pi-AI-kit 用于加速推理速度,配备基于 Hailo-8L 芯片构建的 13 TOPS 神经网络推理加速器。
本文档将指导您如何使用 YOLOv8n 在 Raspberry Pi 5 上通过 AI Kit 进行目标检测,从训练到部署。
准备硬件
针对 Hailo8L 13 TOPS
针对 Hailo8 26 TOPS
reComputer AI R2130 |
---|
![]() |
安装硬件
请参考此链接
在主机电脑上
我们将安装 Hailo 软件,请确保您拥有一个 Hailo 账户。
安装 Ultralytics 并训练模型:
安装 Python 3.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 套件的 Raspberry Pi 5 上部署。
ls
在 Raspberry Pi5 上
更新系统:
sudo apt update
sudo apt full-upgrade
将 PCIe 设置为 gen2/gen3(gen3 比 gen2 更快):
在 /boot/firmware/config.txt
文件中添加以下内容:
#启用 PCIe 外部连接器
dtparam=pciex1
#强制使用 Gen 3.0 速度
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,这对于大多数应用场景来说非常快。
技术支持与产品讨论
感谢您选择我们的产品!我们致力于为您提供多种支持,确保您使用我们的产品时能够获得尽可能顺畅的体验。我们提供了多种沟通渠道,以满足不同的偏好和需求。