yolov5-6.0网络添加小目标检测头 TensorRT部署

news2024/11/16 0:11:41

小目标检测使用TPH-YOLOv5 中的yolov5l-xs-tph.yaml模型;对其中的C3STR替换为C3模块;本文的TensorRT部署是基于yolov5l-xs-tph修改后的模型训练部署,其精度一般主要学习如何TensorRT部署,都是在wang-xinyu基础上简单修改;

TPH-YOLOv5 :https://github.com/cv516Buaa/tph-yolov5
yolov5l-xs-tph.yaml模型修改后:tensorrt-nyy: ​yolov5-6.0网络添加小目标检测头 TensorRT部署;​

1、模型训练
具体修改在head 部分 anchors改为4; C3STR改为C3

anchors: 4
# YOLOv5 v6.0 head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)

   [ -1, 1, Conv, [ 128, 1, 1 ] ],
   [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
   [ [ -1, 2 ], 1, Concat, [ 1 ] ],  # cat backbone P2
   [ -1, 2, C3, [ 128, False ] ],  # 21 (P2/4-xsmall) #C3STR

   [ -1, 1, Conv, [ 128, 3, 2 ] ],
   [ [ -1, 18, 4], 1, Concat, [ 1 ] ],  # cat head P3
   [ -1, 2, C3, [ 256, False ] ],  # 24 (P3/8-small)

   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14, 6], 1, Concat, [1]],  # cat head P4
   [-1, 2, C3, [512, False]],  # 27 (P4/16-medium) #C3STR

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 2, C3, [1024, False]],  # 30 (P5/32-large) #C3STR

   [[21, 24, 27, 30], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)

yolov5l-xs-tph.yaml模型修改后训练60epoch后的模型,其精度一般,训练数据使用VisDrone2019。按照大神wang-xinyu的步骤转换即可。

2、模型转换

主要修改的地方:具体细节参考:tensorrt-nyy: ​yolov5-6.0网络添加小目标检测头 TensorRT部署;​
CHECK_COUNT=3 修改为 CHECK_COUNT=4;
TensorRT 层的添加主要在第17层以后的18-31层添加修改;
在scale = 8  修改为 scale = 4;
修改后测试图片如下:


3、存在的问题

现在转换的模型对大目标检测不准;原因有待分析,可能与tensorrt转换有关,待以后分析

 

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

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

相关文章

中科大2008年复试机试题

中科大2008年复试机试题 文章目录中科大2008年复试机试题第一题问题描述解题思路及代码第二题问题描述解题思路及代码第三题问题描述解题思路及代码第四题问题描述解题思路及代码第一题 问题描述 一个十进制正整数转换成二进制有多少个1 示例1 输入:10 输出:2解题思路及代码…

数据分析之Excel

自定义格式 一、自定义格式的结构 方式一: 代码结构组成代码码分为四个部分,中间用”;”号分隔,具体如下: 正数格式;负数格式;零格式;文本格式 两个代码部分,则第一部分用于正数和零, 第二部分用于负数 一个代码部分,则该部分将用…

【跟彤砸学编程】——第二课(上)

嗨害嗨大家好,这里是彤砸! 今天我们来看看——编程到底是个啥? 上节课滴链接~【跟彤砸学编程】——第一课 程序是什么? 程序数据算法; 数据 生活中到处都是数据—— 1,2,3,是数据 A,B,C是数据 图片是由像素构成&…

【CSDN年度总结】一个四线城市的程序员-苟延残喘

个人简介 首先本人从事软件开发工作近8年,在北京工作5年,2020年1月13号回来老家工作,已经整整3年了!!! 现在做工业大数据方面工作,曾就职于华为做手机系统研发工作。 在一个四线城市坚守做一个…

速看|低代码平台公司流辰信息为实现企业高效办公积极赋能!

流辰信息,历经多年的砥砺奋斗,终于在低代码开发行业斩获越来越多的市场份额,是一家专注于研发低代码产品的低代码平台公司。在持续奋斗的年月中,流辰信息将持续增强研发创新能力,为各企业实现高效办公协作效率强劲赋能…

XC-15媒资管理系统集成

学习页面查询课程计划 需求分析 到目前位置,我们已经可以编辑课程计划信息并且上传课程视频,下一步我们要是心啊在线学习页面动态获取章节对应的视频并且进行播放,在线学习页面所需要的信息有两类,一类是课程计划信息,一类是课程学习信息(视频地址,学习进度等),如下图 在线学…

我与CSDN相识的一年

一、保持初心,笃定前行,回首2022 1、1 保持初心 回想起与CSDN的相识也是有一年多了。最初的相识也是我刚进入大学的时候。那个时候我还是懵懂无知的一个计算机类的大学生。在老师留下的一次任务中,我发现自己有点解决不了,想上网…

如何处理mybatis处理数据库关系中的多对一关系呢?

测试环境的搭建: 导入lombok: 不懂得小伙伴可移步这篇文章 新建实体类: 拿我们日常生活中最常见的举例:多个学生对应一个老师 对于学生这边而言,关联… 多个学生关联一个老师[多对一] 对于老师而言,集…

BGP(边界网关路由协议)小实验

目录实验要求ospf协议启动关于BGP基本知识点BGP关系建立的配置BGP的宣告实验要求 如下实验拓扑,各个自治系统区域和网段已经标注 基本的ip配置,环回配置就不再展示。 要求:除了R5的环回外,其他环回均可以互相访问 ospf协议启动…

C语言进阶——自定义类型——位段、枚举、联合

结构体 目录 一. 位段 1.概念 2.位段的内存分配 3.位段的跨平台问题 4.位段的应用 二. 枚举 1.枚举类型的定义 2.枚举的优点 3.枚举的使用 三. 联合(共用体) 1.联合类型的定义 ​编辑 2.联合的特点 3. 联合大小的计算 一. 位段 1.…

Git 合并多条commit

文章目录修改前开始修改第一种方式: 命令行第二种方式: Android Studio遇到冲突的解决办法第一种:修改到底,干就完事了第二种:回滚吧,有点慌修改前 开始修改 第一种方式: 命令行 git rebase -i 01fc32484fb2d2229aa20 // 这里对应的是init的…

osg fbo(四),将颜色缓冲区图片中的牛通过shader变绿

osg fbo&#xff08;三&#xff09;中&#xff0c;把整个屏幕变绿了&#xff0c;因为是把shader添加到了颜色缓冲区图片上了。如果只想把牛变绿&#xff0c;就需要把shader添加到原始场景根中。 即 osg::ref_ptr<osg::StateSet> statset_SceneRoot sceneRoot->getOr…

一、Java框架之Spring配置文件开发

文章目录1. 基础概念1.1 Spring Framework1.2 核心概念产生背景IoC、Bean、DI2. 入门案例2.1 普通Maven项目2.2 IoC入门案例2.3 DI入门案例3. bean配置3.1 bean基础配置bean的基础配置bean的别名配置bean的作用范围3.2 bean实例化实例化方法1&#xff1a;构造方法实例化方法2&a…

Chrome浏览器http访问跨越问题与解决方法

一、Chromium 内核&#xff08;<93版本&#xff09;跨越问题解决方法 设置Chrome浏览器的 disable-web-security, 实现跨域访问后端的接口。这个参数可以降低chrome浏览器的安全性&#xff0c;禁用同源策略&#xff0c;利于开发人员本地调试。 解决办法&#xff1a; 新建一…

【区间合并】AcWing 803. 区间合并

803. 区间合并 文章目录题目描述输入格式&#xff1a;输出格式&#xff1a;数据范围输入样例输出样例方法&#xff1a;区间合并解题思路代码复杂度分析&#xff1a;题目描述 给定 nnn 个区间 [li,ri][l_i,r_i][li​,ri​]&#xff0c;要求合并所有有交集的区间。 注意如果在端…

按键精灵免字库本地识别OCR

按键精灵免字库识别—基于百度飞桨PaddleOCR的RapidOCR前言为什么为什么有大漠了还要使用其它OCR为什么要使用RapidOCR开发PaddleOCR介绍PaddleOCR使用衍生项目版——小白方案按键精灵post调用图片转base64方法转json方法post调用JVM版改为mavenOcrEngine路径idea Run配置网页版…

Hudi系列7:使用SparkSQL操作Hudi

文章目录一. SparkSQL连接Hudi1.1 Hive配置1.2 SparkSQL连接Hudi二. 创建表2.1 常规的建表2.2 CTAS三. 插入数据四. 查询数据五. 更新数据5.1 普通5.2 MergeInto六. 删除数据七. Insert Overwrite参考:一. SparkSQL连接Hudi 1.1 Hive配置 我们需要将Hive 的 metastore服务独立…

【Ubuntu18.04系统开启防火墙】

【Ubuntu18.04系统开启防火墙】1 查看防火墙状态2 开启防火墙3 关闭防火墙4 允许开启防火墙时&#xff0c;ssh连接和22端口许可4.1 允许tcp 22端口通过防火墙4.2 允许SSH服务4.3 防火墙规则重启4.4 验证端口号是否开启1 查看防火墙状态 sudo ufw status2 开启防火墙 sudo ufw…

如何重装windows10系统(超详细图文版)

目录1.&#xff08;制作装机盘&#xff09;准备好装机U盘2. (下载驱动软件&#xff09;(※这步很重要&#xff09;3.&#xff08;下载镜像&#xff09;准备好要安装的新操作系统镜像4.&#xff08;查询bios快捷键&#xff09;查询你的主板品牌&#xff0c;找到你主板品牌进入bi…

医用球囊和导管制造中的精确压力控制

摘要&#xff1a;在医用导管和球囊成型过程中对压力控制有非常严格要求&#xff0c;如高精度和宽量程的控制能力&#xff0c;需具备可编程、自动手动切换和外接压力传感器功能&#xff0c;还需具备可用于球囊泄漏、爆破和疲劳性能测试的多功能性。本文介绍了可满足这些要求的压…