yolov5 自训练模型转 tensorrt 及测试

news2024/11/24 3:54:46

文章目录

    • 一、准备yolov5自训练模型
    • 二、下载tensorrtx源码
    • 三、从pt模型生成wts模型
    • 四、修改tensorrtx源码
      • 4.1 修改 yololayer.h
      • 4.2 修改 yolov5.cpp
    • 五、编译运行tensorrt/yolov5

在yolov5训练完模型后,将其转换为tensorrt格式,可以加速推理时间,相关转换及测试步骤如下

一、准备yolov5自训练模型

准备一个自己训练好的yolov5模型,如:

YOLOv5\runs\train\exp_ex_bu_77epoch_x\weights\best.pt

二、下载tensorrtx源码

wang-xinyu/tensorrtx
下载完成后,进入 tensorrt/yolov5 目录
在这里插入图片描述

三、从pt模型生成wts模型

先把 tensorrt/yolov5 目录的 gen_wts.py 文件复制到 yolov5 主目录,然后执行该脚本进行转换,将生成一个wts格式的模型

cp {tensorrtx}/yolov5/gen_wts.py {ultralytics}/yolov5
cd {ultralytics}/yolov5
python gen_wts.py -w runs/train/exp_ex_bu_77epoch_x/weights/best.pt -o yolov5x.wts
// a file 'yolov5x.wts' will be generated.

四、修改tensorrtx源码

进入 tensorrt/yolov5 目录

4.1 修改 yololayer.h

根据实际情况,修改20-22行的类别数目及网络输入尺寸
在这里插入图片描述

4.2 修改 yolov5.cpp

根据实际情况,修改11-16行的量化类型,GPU id号,NMS阈值,置信度阈值等参数
在这里插入图片描述

五、编译运行tensorrt/yolov5

进入 tensorrt/yolov5 目录,需要在 CMakeLists.txt 中设置TensorRT 正确路径。在服务器 ~/.bashrc 中设置的tensorrt 路径是 /usr/local/lib/TensorRT-7.0.0.11/lib,但编译时会出错,提示找不到 NvInfer.h 文件,解决方法是先通过locate全局查找是否存在 NvInfer.h 文件,通过以下命令查看,

locate NvInfer.h

在这里插入图片描述

可以看到该文件在另一个目录,说明此处的tensorrt才是完整的,
因此在CMakeLists.txt中,将TensorRT路径改成这里的

/home/xxx/xxx/YoloV5TernsorRTDemo/TensorRT-7.0.0.11/include/
/home/xxx/xxx/YoloV5TernsorRTDemo/TensorRT-7.0.0.11/lib/

注意,上述路径的xxx要根据自己的情况进行修改。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2ccabafe76b74c38b39230b965783ea9.png

接下来重新进行编译

cd {tensorrtx}/yolov5
mkdir build
cd build
cmake ..
make

执行完后将在build目录生成yolov5可执行文件
然后利用这个可执行文件可以将第三步的wts文件转换成engine文件,并进行推理测试

# 复制wts到当前目录
cp {ultralytics}/yolov5/yolov5x.wts {tensorrtx}/yolov5/build
# 生成engine模型,最后一个x代表yolov5模型尺寸,根据实际情况修改
sudo ./yolov5 -s yolov5x.wts yolov5x.engine x
# engine模型推理测试
sudo ./yolov5 -d yolov5x.engine ./test_imgaes

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

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

相关文章

基于单片机的仔猪喂饲系统设计

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设…

【Authing身份云-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

音频处理学习,部分有代码

操作步骤整理 pip install audiomentations官方文档 audiomentations documentation (iver56.github.io) 官网:Core IO and DSP — librosa 0.10.2 documentation 语音信号处理:librosa-CSDN博客 安装依赖 pip install librosa 加载音频文件 ibro…

走进低代码报表开发(二):高效报表设计新利器

在前面的文章中,我们已经详细介绍了勤研低代码开发平台的报表数据源可视化设计,接下来,让我们一起来继续了解勤研低代码平台的报表设计,在当今数字化快速发展的时代,高效便捷的开发工具对于企业和开发者来说至关重要。…

股票Alpha模型的案例实现

一:股票Alpha模型的介绍 股票Alpha模型是一种量化投资策略,它旨在通过各种数学和统计方法来预测股票或其他金融资产的未来表现,并以此获取超越市场平均水平的超额收益。Alpha模型的核心思想是识别市场中的Alpha,即与市场波动无关…

centos7搭建harbor私有镜像仓库

centos7搭建harbor私有镜像仓库 1.准备工作 1.1更换软件源 #更换阿里yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum makecache#更换阿里docker源 yum install -y yum-utils yum-config-manager --add-repo http://mi…

如何鉴定各类组件未授权情况

kubelet https://10.211.55.7:10250/healthz 存在授权情况 未授权 dockersock 2375开出来就是未授权 etcd apiserver 6443 8080

php+mysql日志审计管理系统

phpmysql日志审计管理系统 一、系统介绍二、系统展示1.用户登陆2.监控日志3.监控规则4.用户管理 四、其他1.其它系统 一、系统介绍 本系统实现了:用户登陆、日志审计、监控规则、用户管理。 二、系统展示 1.用户登陆 2.监控日志 3.监控规则 4.用户管理 四、其他 …

java实现文本相似度计算

需求 **文本推荐:**有多个文本字符串,如何设计一个简单的统计方法(从词频的角度设计),来计算出多个文本字符串两两之间的相似度,并输出大于指定相似度阈值的文本 分析理解 使用Java实现文本相似度计算的…

9月产品更新 | 超10项功能升级,快来看看你的需求上线了吗?

Smartbi用户可以在官网(PC端下载),更新后便可以使用相关功能,也可以在官网体验中心体验相关功能。 接下来,我们一起来看看都有哪些亮点功能更新吧。 ▎插件商城 Smartbi麦粉社区的应用市场新增了“插件”模块&#xf…

Python(PyTorch和TensorFlow)图像分割卷积网络导图(生物医学)

🎯要点 语义分割图像三层分割椭圆图像脑肿瘤图像分割动物图像分割皮肤病变分割多模态医学图像多尺度特征生物医学肖像多类和医学分割通用图像分割模板腹部胰腺图像分割分类注意力网络病灶边界分割气胸图像分割 Python生物医学图像卷积网络 该网络由收缩路径和扩…

《黑神话悟空》四大弟子三十六难解锁方法

在《黑神话悟空》的神秘世界中,探索和战斗是永恒的主题。对于许多玩家而言,解锁游戏中的成就不仅是对技巧的挑战,也是对游戏深度理解的证明。今天,就让我们一起深入探索如何解锁“四大弟子三十六难”这一成就,让你的旅…

基于协同过滤算法+SpringBoot+Vue+MySQL的商品推荐系统

系统展示 用户前台界面 管理员后台界面 系统背景 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔记本的广泛运用,以及…

SmartNews如何赋能日本市场解锁购买力强劲广告营销新篇章

SmartNews如何赋能日本市场解锁购买力强劲广告营销新篇章 在数字化浪潮席卷全球的今天,日本市场以其独特的消费文化和强大的购买力,成为了众多品牌竞相角逐的舞台。而SmartNews,作为一款集新闻聚合、个性化推荐与深度内容分析于一体的智能新…

[Linux]:文件(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. C语言文件操作 C语言文件操作接口如下,详情可参照——C语言文…

零基础国产GD32单片机编程入门(十九)红外避障传感器模块实战含源码

文章目录 一.概要二.红外避障模块主要参数1.模块引脚定义2.模块特点3.模块原理图 三.GD32单片机红外避障模块检测实验四.工程源代码下载五.小结 一.概要 红外避障模块具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测遇到障碍物时&…

HTML5( HTML5 、CSS3) 第一天

HTML5 第一天 HTML5 第一天一、什么是 HTML5二、HTML5 新增标签三、多媒体音频标签四、多媒体视频标签五、新增 input 标签六、新增表单属性七、CSS3 新特性八、CSS3 属性选择器九、结构伪类选择器十、nth-child 参数详解十一、nth-child 和 nt-of-type 的区别十二、伪元素选…

写作翻译两不误!Deepl翻译,我的创意加速器

嘿,朋友们!有没有觉得有时候写论文的摘要、给外国朋友发邮件,或者追剧的时候没有字幕,这些都挺让人头疼的?就像是在猜谜语一样难搞?别担心,我有个好消息要告诉大家,2024年翻译界出了…

azkaban安装

azkaban安装 Azkaban介绍azkaban三大组件 Azkaban安装1、下载地址2、安装前准备3、安装1、分别解压web-server、executor-server2、初始化脚本 4、配置ssl认证5、配置 execServer6、配置web-server7、配置user8、启动、激活 验证 Azkaban介绍 Azkaban是由Linkedin开源的一个批…

【西电电装实习】3. SMT

前言 西电电装实习 定义 SMT,全称为Surface Mount Technology,即表面贴装技术。 是一种将电子元器件直接贴装在印刷电路板(PCB)表面的工艺。 与传统的插针式组装方法相比,SMT技术具有更高的组装密度、更小的电子产品…