玩转rk3588(二):rknn模型转换、部署及性能测试,解决视频流处理高延时问题(二)

目录

1、环境准备

2、模型转换

虚拟机环境准备

生成onnx模型

生成rknn模型

3、rk3588部署

4、解决opencv读取RTSP进行图像处理时,高延迟

5、相关错误

1、xxx.onnx 模型转xxx.rknn模型时报错: E build: ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found

6、参考


1、环境准备

开发板环境 

开发环境 软件版本/配置
开发板 firefly rk3588J 
操作系统

openEuler 20.03 LTS

python版本 3.9.18

虚拟机环境 

开发环境 软件版本/配置
操作系统

Ubuntu 18.04.6 LTS

(查看命令:lsb_release -a)

python版本 3.6
rknn-toolkit版本 rknn-toolkit2-1.4.0

2、模型转换

思路:在虚拟机上将pt模型转化成onnx模型,然后通过rknn-toolkit将onnx模型转换成rknn模型

虚拟机环境准备

下载 rknn-toolkit2-1.4.0.zip,yolov5-v5.0

# 创建python环境
conda create -n rk3588 python=3.6
conda activate rk3588

pip install numpy
git clone https://gitcode.net/mirrors/rockchip-linux/rknn-toolkit2.git (下载rknn-toolkit2)
cd ../rknn-toolkit2/doc
pip install -r rknn-toolkit2/doc/requirements_cp36-1.4.0.txt
pip install pandas pyyaml matplotlib seaborn

# 安装rknn-toolkit2工具包
cd ../rknn-toolkit2/packages
pip install rknn_toolkit2-1.4.0_22dcfef4-cp36-cp36m-linux_x86_64.whl

python环境验证是否安装成功

from rknn.api import RKNN

下载yolov5v6.0 

GitHub - ultralytics/yolov5: YOLOv5 in PyTorch > ONNX > CoreML > TFLite

GitCode - 开发者的代码家园 该工程不包含预训练模型yolov5s.pt

git clone https://gitcode.com/mirrors/ultralytics/yolov5.git -b v6.0

下载yolov5s.pt,下载地址如下,可浏览器或迅雷直接下载

 https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt

(Releases · ultralytics/yolov5 · GitHub) 

将 yolov5s.pt 放在 yolov5/weights下

生成onnx模型

(1)修改 yolov5/emodels/yolo.py 脚本

玩转rk3588(二):rknn模型转换、部署及性能测试,解决视频流处理高延时问题(二)_第1张图片

改为

def forward(self, x): 
    z = []  # inference output
    for i in range(self.nl):
        x[i] = self.m[i](x[i])  # conv
    return x

改后只能用于模型转换,模型训练训练时需要改回来

(2)修改yolov5/export.py脚本

--- opset_version=opset 
+++ opset_version=12

玩转rk3588(二):rknn模型转换、部署及性能测试,解决视频流处理高延时问题(二)_第2张图片

(3)生成onnx

python export.py --weights weights/yolo

你可能感兴趣的:(rk3588,python,linux,开发语言)