yolov5 自训练pt模型转onnx,再转rknn,并部署 注意事项

本文详细指导了如何将Yolov5模型转换为rknn格式并在RK3588开发板上部署,涉及版本一致性、激活函数替换、量化设置、anchors修改以及在AndroidStudio项目中的适应性调整,包括conda虚拟环境管理和ANCHORS参数配置。
摘要由CSDN通过智能技术生成

yolov5 部署到rk3588 教程来自

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

1.通过android studio  部署代码在rk3588板子上运行代码

项目来源

rknn-toolkit2/rknpu2/examples/rknn_yolov5_android_apk_demo at master · rockchip-linux/rknn-toolkit2 (github.com)

在这个教程中

2.yolov5版本和onnx版本必须一致

3.激活函数

根据此教程中的yolov5最好是修改为rule激活函数所训练的,yolov5更换激活函数教程:

更换YOLOv5激活函数_yolov5中silu改成relu-CSDN博客

4.在上文的教程中,test.py文件里的量化不可以关闭, anchors需要修改为训练模型的python代码里 anchors

如果是rk3588板子则记得修改test.py 中的

rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]],target_platform='rk3588')

anchors   在test.py文件的  yolov5_post_process(input_data) 函数

5. 在android studio的项目中同样也要修改anchors

在 post_process.cc 这个文件中,在211行左右,修改anchors

例如:

    int anchor0[6] = {25, 59, 18, 99, 57, 76};
    int anchor1[6] = {32, 164, 62, 217, 147, 165};
    int anchor2[6] = {85, 388, 179, 457, 421, 368};

6.除了第一个教程里所说的test.py里需要修改CLASS分类,我们部署到android studio 的项目也需要修改CLASS参数

 post_process.cc 文件第29行左右

define OBJ_CLASS_NUM     1

7 如何寻找conda创建的虚拟环境

conda env list

source activate rknn

计算anchors:

anchor_grid = (self.anchors[i].clone() * self.stride[i]) \
    .view((1, self.na, 1, 1, 2)).expand((1, self.na, ny, nx, 2)).float()

i为0  1 2 分别为3组anchors。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值