当前位置:   article > 正文

yolov5训练pt模型并转换为rknn模型,部署在RK3588开发板上——从训练到部署全过程_yolov5 rknn

yolov5 rknn

目录

一、任务介绍

二、实验过程

2.1 使用正确版本的yolov5进行训练(平台:x86机器windows系统)

2.2 best.pt转换为best.onnx(平台:x86机器window系统)

2.3 best.onnx转换为best.rknn(平台:x86机器Linux系统)

2.3.1 环境准备和工具包安装

2.3.2 onnx转换为rknn

2.4 RK3588部署rknn实现NPU加速(平台:aarch板子Linux系统)

三、总结


一、任务介绍

        瑞芯微RK3588是一款搭载了NPU的国产开发板。NPU(neural-network processing units)可以说是为了嵌入式神经网络和边缘计算量身定制的,但若想调用RK3588的NPU单元进行推理加速,则需要首先将模型转换为.rknn格式的模型,否则无法使用。

        这次我们的任务是将yolov5训练得到的pt模型,一步步转换为rknn模型,并将rknn模型部署在搭载RK3588的StationPC M3主机上,使用NPU推理。(官网NPU教程:NPU使用 — Firefly Wiki)查阅资料和官网后发现转换和使用过程分以下几步,首先总结给大家,后文细说:

1.使用正确版本(v5.0)的yolov5进行训练得到pt模型

2.将pt模型使用yolov5工程中的export.py转换为onnx模型

3.将onnx模型使用rknn-toolkit2中onnx文件夹的test.py转换为rknn模型;

4.在板子上使用rknpu2工具调用rknn模型,实现NPU推理加速。

        接下来进行详细介绍。

二、实验过程

2.1 使用正确版本的yolov5进行训练(平台:x86机器windows系统)

        在这次任务之前,博主本人甚至不知道yolov5有不同的版本(小白落泪),更不知道用不同版本训练得到的pt模型会决定rknn模型转换的成功与否。一开始我使用的是最新版本的yolov5(大概是v7.0)进行训练,最后模型转换自然是不成功。网上也有许多使用新版本yolov5训练,之后修改onnx模型的教程,但都比较麻烦。人菜就要跟着官方教程做,请看官方教程:

rknn-toolkit/examples/pytorch/yolov5 at master · rockchip-linux/rknn-toolkit · GitHub

        需要指出的是,虽然我们后面要使用的是rknn-toolkit2工具进行模型转换,但教程却在rknn-toolkit工程中,github二者的父目录如图:

         进入rknn-toolkit工程,浏览至/example/pytorch/yolov5,在README中赫然写着:

        这就是我们本次要使用的“正确版本的yolov5” ,怕麻烦的读者请一定按照这个id去yolov5官网找到工程并克隆下来。进入yolov5官网【wpsshop】

推荐阅读
相关标签