yolov4、yolov5优化策略

一、yolov4优化策略

1.Mosaic data augmentation:四张图像拼接成一张进行训练,现在一个batch相当于以前4个batch。

2.Random Erase:用随机值或训练集的平均像素值替换图像的区域。

3.Self-adversarial-training(SAT):引入噪音点来增加难度。

4.DropBlock :(之前的dropout是随机选择点,现在吃掉一个区域)。

5.Label Smoothing自觉不错(过拟合),让它别太自信,标签01改为,0.95,0.05,效果

使用之后效果分析(右图):簇内更紧密,簇间更分离。

 6.CIOU损失:参考上篇文章:区分(GIOU、DIOU、CIOU)(正则化、归一化、标准化)-CSDN博客


 

7.SOFT-NMS:在目标检测中,NMS用于通过选择具有最高置信度得分的框来删除冗余的边界框。然而,当检测算法产生具有类似置信度分数的重叠框时,这有时会导致重要边界框的消除
Soft-NMS通过对重叠框的置信度分数应用衰减函数来解决这个问题,这个函数基于其与最高得分框之间的重叠程度降低较低得分框的得分。其思想是保留较低得分框的信息,同时优先考虑最高得分框。这使得Soft-NMS在重叠框的情况下更加容忍,并有助于提高目标检测的准确性。 

 8.SPPnet(Spatial Pyramid Pooling)空间金字塔:V3中为了更好满足不同输入大小,训练的时候要改变输入数据的大小,V4在最后的卷积层和全连接层之间加入SPP层。具体做法是,在conv层得到的特征图是256层,每层都做一次spatial pyramid pooling。先把每个特征图分割成多个不同尺寸的网格,比如网格分别为44、22、11,然后每个网格做max pooling,这样256层特征图就形成了16x256,4x256,1x256维特征,他们连起来就形成了一个固定长度的特征向量,将这个向量输入到后面的全连接层。

9.CSPNet(Cross Stage Partial Network):CSPNet中的跨阶段部分连接将网络的特征图分成两部分,其中一部分通过多个卷积层进行处理,而另一部分则通过较少的层进行处理。两条路径的输出然后使用连接操作进行组合,生成的特征图再由另一组卷积层进行处理。这种方法允许不同阶段之间更好的信息流动,从而提高准确性并降低计算成本。

10.PAN(Path Aggregation Network):PAN通过一种保留空间和语义信息的方式,将不同层次的特征结合起来。这是通过一种自上而下和自下而上的特征聚合过程实现的。就是融合FPN(a),加了自下而上的路径,p2已经有了全局信息。

 11.激活函数Mish

ReLU函数:f(x)=max(αx,x)

Relu有点太绝对了,Mish更符合实际,但是计算量确实增加了,效果会提升。 

二、yolov5 优化策略

1.Conv模块:由一个Conv2d、一个BatchNorm2d和激活函数构成。如下图所示。Conv模块完成了对特征图的下采样、升维降维、归一化、非线性等。

2.C3模块:C3由三个Conv模块和一个Bottleneck模块组成,得名C3。在backbone中,C3是更为重要的提取特征的模块。其结构图如下使用残差结构,将输入与输出相加,避免梯度消失的问题。

 3.SPPF:SPP是空间金字塔池化,yolov5作者在SPP的基础上改进为SPPF。SPPF在输出相同的情况下速度更快。

 4.FPN+PAN:和Yolov4中一样,都采用FPN+PAN的结构 。

5.Mosaic data augmentation:同v4,四张图像拼接成一张进行训练,现在一个batch相当于以前4个batch。

6.自适应锚框计算
Yolov5每次训练时会自适应的计算不同训练集中的最佳锚框值,从而帮助网络更快的收敛。

7.CIoU loss :同v4.

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

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

相关文章

PTA-6-45 工厂设计模式-运输工具

题目如下: 工厂类用于根据客户提交的需求生产产品(火车、汽车或拖拉机)。火车类有两个子类属性:车次和节数。拖拉机类有1个子类方法耕地,方法只需简单输出“拖拉机在耕地”。为了简化程序设计,所有…

python获取json所有节点和子节点

使用python获取json的所有父结点和子节点 并使用父节点加下划线命名子节点 先展示一段json代码 {"level1": {"level2": {"level3": [{"level4": "4value"},{"level4_2": "4_2value"}]},"level2_…

安卓底部导航栏BottomNavigationView

目录 1. BottomNavigationView (1) 准备BottomNavigationView使用的菜单资源文件 (2) 准备颜色选择器 (3) BottomNavigationView控件设置 (4) 在Java代码中设置OnItemSelectedListener监听器 (5) 与Fragment配合 (6) 标签显示模式 (7) 水波纹特效 (8) 文本外观 2. Bo…

配置 Mantis 在 Windows 上的步骤

配置 Mantis Bug Tracker 在 Windows 上的步骤 Mantis Bug Tracker 是一款开源的缺陷跟踪系统,用于管理软件开发中的问题和缺陷。在 Windows 环境下配置 Mantis 可以帮助开发者更方便地进行项目管理。以下是一个详细的教程,包含了 EasyPHP Devserver 和…

C# Onnx 阿里达摩院开源DAMO-YOLO目标检测

效果 模型信息 Inputs ------------------------- name:images tensor:Float[1, 3, 192, 320] --------------------------------------------------------------- Outputs ------------------------- name:output tensor:Float…

qt-C++笔记之主线程中使用异步逻辑来处理ROS事件循环和Qt事件循环解决相互阻塞的问题

qt-C笔记之主线程中使用异步逻辑来处理ROS事件循环和异步循环解决相互阻塞的问题 code review! 文章目录 qt-C笔记之主线程中使用异步逻辑来处理ROS事件循环和异步循环解决相互阻塞的问题1.Qt的app.exec()详解2.ros::spin()详解3.ros::AsyncSpinner详解4.主线程中结合使用的示…

云时空社会化商业 ERP 系统 gpy 文件上传漏洞复现

0x01 产品简介 时空云社会化商业ERP(简称时空云ERP) ,该产品采用JAVA语言和Oracle数据库, 融合用友软件的先进管理理念,汇集各医药企业特色管理需求,通过规范各个流通环节从而提高企业竞争力、降低人员成本…

SDK emulator directory is missing

要进行uniapp真机测试,不得不安装配置一下安卓开发环境 ,搞一个模拟器。。。然后又是各种坑。。对比来对比去还是IOS的环境使用着舒服,XCODE下载好,一切重点就是在编码了。。 安卓这个脑残货呀,哎,各种安装…

<蓝桥杯软件赛>零基础备赛20周--第8周第1讲--十大排序

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周(读者可以按…

Day58权限提升-网站权限后台漏洞第三方获取

webshell 一般我们的渗透流程就是信息收集,发现漏洞,漏洞利用,一些漏洞成功之后获得一些相应的权限,还有一些是漏洞利用成功之后并没有取得的权限,而这个权限是要通过漏洞利用之后在利用其它地方取货的权限。 权限的获…

手写VUE后台管理系统5 - 整合状态管理组件pinia

整合状态管理组件 安装整合创建实例挂载使用 pinia 是一个拥有组合式 API 的 Vue 状态管理库。 pinia 官方文档:https://pinia.vuejs.org/zh/introduction.html 安装 yarn add pinia整合 所有与状态相关的文件都放置于项目 src/store 目录下,方便管理 在…

python-爬虫(可直接使用)

爬虫(Web Scraping)是指通过编程自动化地获取互联网上的信息的过程。爬虫的目的通常是从网页中抓取数据,进行数据分析、处理或展示。以下是爬虫的基本流程和一些重要的概念: 爬虫基本流程: 确定目标: 确定要…

504. 七进制数

这篇文章会收录到 : 算法通关第十三关-青铜挑战数学基础问题-CSDN博客 七进制数 描述 : 给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。 题目 : LeetCode 504. 七进制数 : 504. 七进制数 分析 : 我们先通过二进制想一下7进制数的变化特…

【python+Excel】读取和存储测试数据完成接口自动化测试

http_request2.py用于发起http请求 #读取多条测试用例 #1、导入requests模块 import requests #从 class_12_19.do_excel1导入read_data函数 from do_excel2 import read_data from do_excel2 import write_data from do_excel2 import count_case #定义http请求函数COOKIENon…

云端导览,数字互动 | 拓世法宝AI数字人一体机助力全新旅游时代

《中国旅行消费趋势洞察白皮书(2023版)》显示,消费者旅行习惯已从“到此一游”变为“深度在地”,更强调在旅游中充实自我、学习新知识。 (《中国旅行消费趋势洞察白皮书(2023版》截图) 从这些资…

Agent举例与应用

什么是Agent OpenAI 应用研究主管 Lilian Weng 在一篇长文中提出了 Agent LLM(大型语言模型)记忆规划技能工具使用这一概念,并详细解释了Agent的每个模块的功能。她对Agent未来的应用前景充满信心,但也表明到挑战无处不在。 现…

csapp深入理解计算机系统 bomb lab(1)phase_4

使用 disas phase_4 查看phase_4的汇编代码 按照惯例,查看一下0x4025cf内存单元存放的字符串的值是什么 所以phase_4的输入应该是两个整数。 下面使用先猜想后验证的方法尝试找出两个整数的值,猜想两个整数为1,2,在ans.txt写入1,2&#xff0…

Linux安装jdk8【十分丝滑】

1.上传安装包到Linux💕💕💕 2.使用命令解压缩💕💕💕 tar -zxvf 压缩文件名 3.重命名💕💕💕 mv 原文件名 新的文件名 4.配置环境变量🤩🤩&…

史上最全前端知识点+高频面试题合集,十二大专题,命中率高达95%

前言: 下面分享一些关于阿里,美团,深信服等公司的面经,供大家参考一下。大家也可以去收集一些其他的面试题,可以通过面试题来看看自己有哪里不足。也可以了解自己想去的公司会问什么问题,进行有针对的复习。…

C# 调用 c++ dll

C# 调用 c dll 首先 c 库 dll 要定义 代码中定义 CPP_EXPORTS #ifdef LASERSDK_EXPORTS #define CPP_EXPORTS __declspec(dllexport) #else #define CPP_EXPORTS __declspec(dllimport) #endif编译器定义 LASERSDK_EXPORTS 普通函数 c extern "C" CPP_EXPORTS …