当前位置: 首页 > news >正文

yolov11 部署瑞芯微rk3588、RKNN部署工程难度小、模型推理速度快

   yolov8还没玩溜,yolov11又来了,那么部署也又来了。

特别说明:如有侵权告知删除,谢谢。

完整代码:包括onnx转rknn和测试代码、rknn板端部署C++代码
【onnx转rknn和测试代码】
【rknn板端部署C++代码】

1 模型训练

  yolov11训练官方开源的已经非常详细了,参考官方代码。

2 导出 yolov11 onnx

   导出onnx修改以下几处。
第一处:修改导出onnx的检测头
在这里插入图片描述

        # 导出 onnx 增加y = []for i in range(self.nl):t1 = self.cv2[i](x[i])t2 = self.cv3[i](x[i])y.append(t1)y.append(t2)return y

第二处:增加保存onnx代码
在这里插入图片描述

        print("===========  onnx =========== ")import torchdummy_input = torch.randn(1, 3, 640, 640)input_names = ["data"]output_names = ["reg1", "cls1", "reg2", "cls2", "reg3", "cls3"]torch.onnx.export(self.model, dummy_input, "/root/zhangqian/ultralytics-main/yolov11n_80class_ZQ.onnx",verbose=False, input_names=input_names, output_names=output_names, opset_version=11)print("======================== convert onnx Finished! .... ")

修改完以上两处,运行以下代码:

from ultralytics import YOLO
model = YOLO(model='yolov11n.pt')  # load a pretrained model (recommended for training)
results = model(task='detect', source='./test.jpg', save=True)  # predict on an image

***特别说明:***修改完以上两处后运行会报错,但不影响onnx的生成;生成onnx后强烈建议用from onnxsim import simplify 处理一下再转rknn。

3 测试onnx效果

pytorch效果
在这里插入图片描述
onnx效果(测试onnx代码链接)
在这里插入图片描述

4 onnx转rknn

onnx转rknn代码链接

转rknn后仿真结果
在这里插入图片描述

5 rk3588板子测试yolov11模型

使用的 rknn_toolkit 版本:rknn_toolkit2-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
C++代码中的库和工具链的版本注意对应适配。

1)编译

cd examples/rknn_yolov11_demo_dfl_openbash build-linux_RK3588.sh

2)运行

cd install/rknn_yolo_demo_Linux./rknn_yolo_demo 

注意:修改模型、测试图像、保存图像的路径,修改文件为src下的main.cc


int main(int argc, char **argv)
{char model_path[256] = "/home/zhangqian/rknn/examples/rknn_yolov11_demo_dfl_open/model/RK3588/yolov11n_80class_ZQ.rknn";char image_path[256] = "/home/zhangqian/rknn/examples/rknn_yolov11_demo_dfl_open/test.jpg";char save_image_path[256] = "/home/zhangqian/rknn/examples/rknn_yolov11_demo_dfl_open/test_result.jpg";detect(model_path, image_path, save_image_path);return 0;
}

3)板端效果和时耗

在这里插入图片描述

在这里插入图片描述


http://www.mrgr.cn/news/43687.html

相关文章:

  • 从零开始构建大型语言模型——实现注意力机制
  • 各省份农林牧渔业总产值统计数据(2000-2022年)
  • Cisco Catalyst 9000 交换产品系列 IOS XE 17.15.1 发布下载,新增功能概览
  • 隐喻的使用及误用
  • InnoDB 磁盘结构 - Binlog
  • MySQL 管理
  • 鸿蒙harmonyos next flutter混合开发之开发plugin(获取操作系统版本号)
  • 资产管理系统建设方案,资产盘点,rfid,出入库,消耗品管理,系统方案,系统源码(word原件)
  • C++——用类实现输入和输出时间。要求:(1)私有数据成员包括时、分、秒。(2)输入输出功能改为由成员函数实现。(3)在类体内定义成员函数。
  • 父类的final方法能不能够被子类重写?
  • ChatGPT的150个角色提示场景实测(16)瑜伽师
  • AI学习指南深度学习篇-学习率衰减在深度学习中的应用
  • 华为OD机试 - 几何平均值最大子数(Python/JS/C/C++ 2024 E卷 200分)
  • vue实现token的无感刷新
  • 振动分析-30-振动信号的幅值概率密度函数CWRU西楚大学轴承数据(实战)
  • rk3568 LTE(EC20 Android14)
  • C语言 | Leetcode C语言题解之第459题重复的子字符串
  • PMP--冲刺题--解题--11-20
  • Anaconda的安装与环境设置
  • 【AI自然语言处理应用】通过API调用通义晓蜜CCAI-对话分析AIO应用