当前位置:   article > 正文

RKNN:yolov8模型转换与板端推理流程_yolov8 rknn

yolov8 rknn

近期,在研究瑞芯微的RKNN模型推理时,遇到一些坑,现记录下来,以备忘,亦供同道者参考。

目录

1. 模型转换

1.1. 宿主机环境配置

1.2. onnx模型准备

1.3. onnx转rknn

2. 模型推理

2.1. 推理环境配置

2.2. 推理验证

2.2.1. 输入格式报错

 2.2.2. 需要使用torch


本文主要内容包括两块,一是在宿主机进行onnx-->rknn的模型转换,二是在SOC上利用转换好的rknn模型进行推理。

1. 模型转换

这一步需要在x86宿主机上进行,并配置相关环境。

1.1. 宿主机环境配置

主要就是在python环境中安装RKNN-Toolkit2。

构造环境这一步,建议在docker里面进行,这样可以避免和宿主机环境产生冲突,或者因为宿主机环境和需要的环境不匹配而导致的模型转换出现问题。

PS:之前博主在宿主机的python环境中直接pip安装的rknn-toolkit2,然而用一样的代码进行模型转换,最后推理结果总是出现错乱或者直接所有结果置信度特别低(接近0),最后放弃挣扎,转用docker才没有问题。

这里使用的版本是1.6.0,下载地址:

https://codeload.github.com/rockchip-linux/rknn-toolkit2/zip/refs/tags/v1.6.0icon-default.png?t=N7T8https://codeload.github.com/rockchip-linux/rknn-toolkit2/zip/refs/tags/v1.6.0下载解压之后的目录如下所示:

.
├── CHANGELOG.md
├── doc
├── LICENSE
├── README.md
├── res
├── rknn-toolkit2
├── rknn_toolkit_lite2
└── rknpu2

进到“rknn-toolkit2/docker/docker_file/ubuntu_20_04_cp38”目录下,并利用提供的Dockerfile构建一个docker镜像:

docker build -t rknn_toolkit2_1.6.0 . -f Dockerfile_ubuntu_20_04_for_cp38

等待镜像构建完毕,就会在里面自动安装模型转换所需的所有软件环境。然后,就可以启动一个容器,进到docker系统中:

  1. # 注意:我们上一步构造的镜像命名为rknn_toolkit2_1.6.0,需要改为你的镜像名字;
  2. # 同时,这里作了一个主机和容器之间的路径映射,以便于文件共享,需要将“ /data/projects/other/rknn_test/share_dir”改为你自己的路径
  3. docker run -v /data/projects/other/rknn_test/share_dir:/workspace/ -it rknn_toolkit2_1.6.0

至此,就构建好了所需的环境。

1.2. onnx模型准备

这一步是为了从我们训练的torch模型转为onnx中间格式的模型。这里不能直接使用ultralytics官方的库,需要作一定的改动,使其最后的detect部分改为rknn支持的方式:

 可以参考rknn修改后的ultralytics版本:

https://www.wpsshop.cn/w/你好赵伟/article/detail/854449

推荐阅读
相关标签
  

闽ICP备14008679号