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

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

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

  yolov8、v9还没玩热乎,这不yolov10又来了,那么部署也又来了。

1 模型和训练

  老规矩,训练代码参考官方开源的yolov10代码。

2 导出 yolov10 onnx

   导出onnx增加以下几行代码:
在这里插入图片描述

        # 导出onnx增加y = []for i in range(self.nl):t1 = self.one2one_cv2[i](x[i])t2 = self.one2one_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, "./weights/yolov10_zq.onnx", verbose=False, input_names=input_names, output_names=output_names, opset_version=11)print("======================== convert onnx Finished! .... ")

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

from ultralytics import YOLOv10# 推理
model = YOLOv10(r'./weigths/yolov10n.pt')
results = model(task='detect', mode='predict', source='./test.jpg', line_width=3, show=True, save=True, device='cpu')

3 yolov10 onnx 测试效果

pytorch效果
在这里插入图片描述
onnx效果
在这里插入图片描述

4 时耗

模型输入640x640,检测类别80类

tensorRT 时耗(显卡 Tesla V100、cuda_11.0)
在这里插入图片描述
rk3588时耗
在这里插入图片描述
本示例用的是yolov10n,模型计算量6.7G,看到这个时耗觉得可能是有操作切换到CPU上进行计算的,查了rknn转换模型日志确实是有操作切换到CPU上进行的,对应的是模型中 PSA 模块计算 Attention 这部分操作。

在这里插入图片描述

5 rknn 板端C++部署

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tomcat--安全配置多虚拟机

端口8005/tcp 安全配置管理 8005是Tomcat的管理端口,默认监听在127.0.0.1上。无需验证就可发送SHUTDOWN (大小写敏感)这个字符串,tomcat接收到后就会关闭此Server。此管理功能建议禁用,可将SHUTDOWN改为一串猜不出的字符串实现或者port修改成…

Python开发——os与os.path的使用

1. os的一般用法 使用dir()列出库的属性与方法 # 使用dir()列出库的属性与方法 print(dir(os)) 使用os.getcwd()打印当前目录 # 使用os.getcwd()打印当前目录 print("当前目录为:"os.getcwd()) # 打印表示当前工作目录的字符串 获取指定路径下的目录和文件列表 #…

Java进阶学习笔记26——包装类

包装类: 包装类就是把基本类型的数据包装成对象。 看下API文档: deprecated:极力反对、不赞成的意思。 marked for removal:标识为去除的意思。 自动装箱:基本数据类型可以自动转换成包装类。 自动拆箱:…

前端怎么使用svg格式的图片

目录 第一步,找到图标 第二步,使用 第一种,SVG下载 第二种,粘贴SVG代码 第一步,找到图标 以阿里巴巴矢量图标库为例,随便找一个图标,如下图 第二步,使用 第一种,SV…

二维OTSU(二维大津法)matlab实现(复制粘贴即可)

二维OTSU(二维大津法),matlab实现,(复制粘贴即可),二维熵 我发现CSDN搜索故意屏蔽调免费、公开的代码,特别推荐的 都是收费,收币的代码或项目。我分享的都是开源的&…

AI开发工程师的学习路线

学习人工智能(AI)是一个广泛且深入的过程,涵盖了多个领域的知识和技能。以下是对AI学习路线的总结,旨在提供一个清晰的学习方向和步骤概览。 一、基础知识 数学基础:AI的核心是算法和数学模型,因此数学基础…

如何查看Linux kernel用哪个版本的gcc编译的?

查看内核是使用哪个版本的 GCC 编译的,可以使用 modinfo 命令来查看内核模块信息,其中包括使用的编译器版本。但请注意,并不是所有的内核模块都包含了这些信息。如果内核模块提供了,则你可以通过以下方式查看: modinf…

利用AI办公工具类API,大幅提高办公效率

AI办公工具类API是一项革命性的技术,利用人工智能的力量为办公场景提供了许多创新的解决方案。借助AI办公工具类API,用户可以实现自动化的文档处理、语音转文字、图像识别、数据分析等多种功能,大大提高了办公效率和工作质量。此外&#xff0…

突发!某大厂机房掉电,MySQL数据库无法启动,紧急恢复过程...

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

正则表达式的匹配

正则表达式的语法总结 正则表达式的语法因不同的编程语言或工具而略有差异,但基本的结构和概念是相似的。下面是一个正则表达式的基本语法概述: 字符类 .:匹配除了换行符之外的任何单个字符。 [abc]:匹配方括号中的任何一个字符。例如,[aeiou] 匹配任何元音字母。 [^ab…

【算法】梦破碎之地---三数之和

相信大家都有做过两数之和, 题目链接: 15. 三数之和 - 力扣(LeetCode) 在文章的开始让我们回顾一下三数之和吧! 题目描述: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], …

Hololens2关闭软件自动校对人眼

原 因 :软件进入后总是提示需要校对人眼,对演示有很大的不方便,需要使用人进行处理。 处理效果:更换使用人员,不进行校对人眼。

mysql数据表名称区分大小写

mysql数据表名称区分大小写 MySQL数据库在Windows平台上的表名和列名默认不区分大小写,而在Linux上默认是区分大小写的。想在任何平台上都实现区分大小写的表名和列名,可以通过设置lower_case_table_names系统变量来完成。 lower_case_table_names系统变量的取值 这个变量…

【量算分析工具-获取高程】GeoServer改造Springboot番外系列八

【量算分析工具-概述】GeoServer改造Springboot番外系列三-CSDN博客 【量算分析工具-水平距离】GeoServer改造Springboot番外系列四-CSDN博客 【量算分析工具-水平面积】GeoServer改造Springboot番外系列五-CSDN博客 【量算分析工具-方位角】GeoServer改造Springboot番外系列…

Ubuntu18 配置FFmpeg开发环境 (Vscode+CMake)

关于Vscode插件安装不再赘述,本文主要讲解如何配置FFmpeg的开发环境以及CMake文件写法,如果不知道该安装什么插件请看本文: Ubuntu配置Vscode 文章目录 1.安装FFmpeg开发包2.配置Vscode项目3.使用C语言验证FFmpeg版本 1.安装FFmpeg开发包 更新…

宝塔部署前后端分离项目手册

文章目录 安装宝塔安装环境开始部署1. 前端Vue项目1.先本地启动前端项目(记住端口号)2.打包前端项目3.上传前端项目4.创建PHP站点5.安全里开放端口号6.测试前端 2. 后端boot项目1. 先在本地跑起来2.修改数据库的配置信息3. 项目打包4. nohup启动项目4.1 …

聊天软件鼻祖 ICQ 将于 6 月 26 日关闭;40 光年外发现一颗潜在宜居的类地行星丨 RTE 开发者日报 Vol.212

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

Android签名()和key hashes获取方法

1.Android获取keystore.debug文件签名。 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android2.Android 获取.jks文件签名。 keytool -list -v -keystore /Users/fuzhenwen/AndroidStudioProjects/rab-ev-cha…

Vue3项目练习详细步骤(第一部分:项目构建,登录注册页面)

项目环境准备 工程创建 安装依赖 项目调整 注册功能 页面结构 接口文档 数据绑定和校验 数据接口调用 解决跨域问题 登录功能 接口文档 数据绑定和校验 数据接口调用 项目演示 项目的后端接口参考:https://blog.csdn.net/dafsq/category_12646722.html…

flutter使用dbus插件时,在终端无法使用“dart-dbus”命令

不用flutter的人,可能都不会找到这儿,遇到这个问题,所以这里默认flutter已经装过了,且对flutter如何使用插件也有所了解了。 由于我在项目中用到了dbus插件,用法如图所示,我需要使用这条命令来生成一个sou…