yolov8n 瑞芯微RKNN、地平线Horizon芯片部署、TensorRT部署,部署工程难度小、模型推理速度快

news/2024/7/11 0:07:10 标签: YOLO

  特别说明:参考官方开源的yolov8代码、瑞芯微官方文档、地平线的官方文档,如有侵权告知删,谢谢。

  模型和完整仿真测试代码,放在github上参考链接 模型和代码。

  因为之前写了几篇yolov8模型部署的博文,存在两个问题:部署难度大、模型推理速度慢。该篇解决了这两个问题,且是全网部署难度最小、模型运行速度最快的部署方式。相对之前写的一篇【yolov8 瑞芯微RKNN和地平线Horizon芯片仿真测试部署】将DFL写在后处理中模型加速了,针对后处理进行优化后时耗略微增加。

1 模型和训练

  训练代码参考官方开源的yolov8训练代码。

2 导出 yolov8 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 torch
        dummy_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, "./weights/yolov8_relu_80class_ZQ1.onnx", verbose=False, input_names=input_names, output_names=output_names, opset_version=11)
        print("======================== convert onnx Finished! .... ")

  修改完以上两个地方,运行推理脚本(运行会报错,但不影响onnx文件的生成)。

from ultralytics import YOLO
# 推理
model = YOLO('./weights/yolov8n_relu_ZQ_80class.pt')
results = model(task='detect', mode='predict', source='./images/test.jpg', line_width=3, show=True, save=True, device='cpu')

3 yolov8 onnx 测试效果

  onnx模型和测试完整代码,放在github上代码。
在这里插入图片描述

4 tensorRT 优化前后时耗

  上一篇【yolov8 瑞芯微RKNN和地平线Horizon芯片仿真测试部署】tensorRT部署推理10000次的平均时耗(显卡 Tesla V100、cuda_11.0)
在这里插入图片描述
本篇tensorRT部署推理10000次的平均时耗(显卡 Tesla V100、cuda_11.0)
在这里插入图片描述

5 rknn 板端C++部署

  C++完整部署代码和模型示例参考

  把板端C++代码的模型和时耗也给贴出来供大家参考,使用芯片rk3588。相对之前在rk3588上推理40ms,降到了17ms,后处理稍微有增加。

  上一篇【yolov8 瑞芯微RKNN和地平线Horizon芯片仿真测试部署】部署到rknn3588上的C++时耗
在这里插入图片描述
  本篇部署方法时耗
在这里插入图片描述

  2024年1月12日:后处理代码针对rknn进行了优化,后处理时耗大幅度降低。(检测类别越多效果越明显,检测1个类别就没有优化效果,代码已同步到对应的代码仓中)
在这里插入图片描述


http://www.niftyadmin.cn/n/5326480.html

相关文章

电商API接口|Javascript抓取京东、淘宝商品数据

“ 不知怎么建站?就找怎么建站! ” 背景: EDI许可证网站和ICP许可证网站需要有丰富的商品数据来应付EDI、ICP许可证下证审核。下面介绍的这种方法是我之前主要的抓取数据的方法,大概用了一年多。这几天又对这个方法进行了一些优…

【萤火虫系列教程】3/5-Adobe Firefly 创意填充

003-Adobe Firefly 创意填充 创意填充 登录账号后,在主页点击创意填充的【生成】按钮,进入到创意填充页面 我们可以上传自己的图像 一键抠图 点击【背景】就可以把主图抠出来 点击【反转】就可以把背景抠出来 点击【清除】就可以恢复到图片原来…

C# 学习笔记-001-继承

1,继承类型 继承的类型:实现继承和接口继承 实现继承: 表示一个类型派生于一个基类型,拥有改类型的所有成员字段和函数。 接口继承: 表示一个类型只继承了函数函数签名,没有继承任何实现代码。 2&#xff…

MySQL篇—通过Clone插件进行远程克隆数据(第三篇,总共三篇)

在介绍 Clone 最终篇之前,我们先简要回顾一下前面所讲的内容。在第一篇中,我们探讨了 Clone 的用途、使用的前提条件、存在的限制,以及它的备份原理。Clone 是一种用于复制和备份数据的工具,它能够快速高效地创建数据的精确副本。…

一小时掌握:使用ScrapySharp和C#打造新闻下载器

引言 爬虫技术是指通过编程的方式,自动从互联网上获取和处理数据的技术。爬虫技术有很多应用场景,比如搜索引擎、数据分析、舆情监测、电商比价等。爬虫技术也是一门有趣的技术,可以让你发现网络上的各种有价值的信息。 本文将介绍如何使用…

找不同(Python)

1.题目描述 给定两个字符串 s 和 t ,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例1: 输入:s "abcd", t "abcde" 输出&#xf…

#AIGC##VDB# 【一篇入门VDB】矢量数据库-从技术介绍到选型方向

文章概览: 这篇文章深入探讨了矢量数据库的基本概念、工作原理以及在人工智能领域的广泛应用。 首先,文章解释了矢量的数学和物理学概念,然后引入了矢量在数据科学和机器学习中的应用。随后,详细介绍了什么是矢量数据库&#xff0…

一个人做跨境电商必须知道的6大选品网站!超实用选品灵感网站

简单来说,做跨境电商,最核心的关键点就是选品。选品的正确与否,直接影响着你后面推广的效果和收益。如果产品选择对了,就像找到了赚钱的秘诀,轻轻松松就能获得成功;反之,如果选品出错&#xff0…