引言
继上次开发yolov10穿插了其它项目,过了好几个月后才继续开发,且更新了硬件
前面的开发流程可参考前一篇文章,本文章主要介绍yolo模型训练好的后续环节
参考大纲

以上为之前整理的大纲,可以参考实现,以下记录一些坑
参考连接
yolov10模型训练
yolov10模型训练项目文件
- 具体使用可参考之前的文件介绍
-
pt转onnx
- 与第一个项目文件同名,重命名项目名 yolov10pt2onnx
- main分支
- 项目环境与第一个相同
- 将训练得到的*.pt(best.pt)文件,放入 yolov10pt2onnx 文件夹下,无需其它修改
- 执行命令得到best.onnx模型
yolo export model=best.pt format=rknn opset=13 simplify- 可参考项目文件夹下的RKNN_README_CN.md
- 使用 在线模型查看工具Netron查看模型输出
- 1×3×640×640(三种类别,训练模型图像输入640×640,OUTPUST 6个成功,否则失败)

onnx转rknn
- vm虚拟机 安装miniconda 创建toolkit2环境
conda create -n toolkit2 python=3.8 - 激活toolkit2环境
conda activate toolkit2 - 进入文件夹
cd ./rknn-toolkit2/packages/x86_64(若直接部署到板端arm,则进rknn-toolkit2/packages/arm64下) - 终端配置环境
pip install -r requirements_cp38-2.3.0.txt -i https://pypi.tuna.tsinghua.edu.cn/simplepip install rknn_toolkit2-2.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- rknn_model_zoo v2.3.0下载
- 进入rknn_model_zoo/examples 拷贝文件夹yolov10,重命名为yolov10_my
- 将转换好的*.onnx模型放入examples/yolov10_my/model文件夹下
- 阅读文件夹下
R
E
A
D
M
E
.
m
d
README.md
README.md
-
cd python python convert.py <onnx_model> <TARGET_PLATFORM> <dtype(optional)> <output_rknn_path(optional)> # such as: python convert.py ../model/yolov10n.onnx rk3588 # output model will be saved as ../model/yolov10.rknn cd pythonpython convert.py best.onnx rk3588- 同级目录下查看输出的模型文件best.rknn
-
rknn模型使用
使用虚拟机adb连接板端,推送生成的文件,可节省板端空间,比起直接板端部署复杂,各有优劣
板端直接布署
- 文件修改
-
修改标签或自定义标签

-
修改标签数量、可修改阈值

-
修改标签地址

-
修改生成文件附加文件

-
🆗
-
进入rknn_model_zoo目录
-
# 编译yolov10_my sudo bash ./build-linux.sh -t rk3588 -a aarch64 -d yolov10_my # 进入目录 cd install/rk3588_linux_aarch64/rknn_yolov10_my_demo # 使用模型推理图片 cd .. && cd rknn_yolov10_my_demo && export LD_LIBRARY_PATH=./lib && ./rknn_yolov10_demo model/trybest.rknn bus.jpg -
查看out.png
-
以上已可以实现图片推理
adb部署
- 基本流程同板端直接布署一至
- vm ubuntu 下载rknn_model_zoo v2.3.0
- usb接板端连接到vm ubuntu
- 安装使用adb,登录orangepi5plus
# 具体使用就不详细说明了,可自行搜索 # 安装adb sudo apt update sudo apt -y install adb # 查看 abd设备及服务 adb devices lsusb # 推送生成的模型到板端 adb push install/rk3588_linux_aarch64/rknn_yolov10_my_demo /rknn/rknn_yolov10_my_demo # 可通过adb shell登录板端ubuntu系统 adb shell # 使用模型推理图片 cd /rknn/rknn_yolov10_my_demo cd .. && cd rknn_yolov10_my_demo && export LD_LIBRARY_PATH=./lib && ./rknn_yolov10_demo model/trybest.rknn bus.jpg # 剩余步骤相同
opencv视频推理
- orangpei5plus 镜像包含opencv4.5
板端直接编译推理
- 下载鲁班猫
git clone https://gitee.com/LubanCat/lubancat_ai_manual_code.git - 具体使用可参考野火官方的文档
- 修改yolov10 main文件
- 移除yolov10 项目中的DMA相关代码(orangepi5plus不支持–官方文档无DMA)
- 同之前一样修改 标签、数量、cmakelists.txt等文件
- 编译处理
- 使用模型视频推理
vm ubuntu 编译推理
PS
- 板载编译opencv直接使用rknn_model_zoo 下修改编译,可能会有rga与芯片兼容问题,据rknn群里大佬说有一成左右,所以直接使用野火的修改,没有这个问题。或许是版本问题导致的。
- 下班回老家过年了,来年再写,相信到这里,基本差不多了。
- 提前祝大家新年快乐
984





