目标检测复盘 -- 6. YOLOv4

news2024/11/26 2:48:47

Backbone

YOLOv4的骨干是CSPDarknet53
CSP结构的作用:1. 增强CNN的学习能力 2. 移出计算瓶颈 3. 减少内存开销
CSP首先将输入的特征层分成两个部分,这里以densenet为例,part2分支经过denseblock后,进过一个transition,然后和part1 concat后再经过transition模块。
CSP的两个分支是在通道方向上进行的一个均分操作,但是在YOLOv4中是采用卷积的方式来实现分离(如下图右半部分所示),v4中的transition使用的是1*1的卷积
在这里插入图片描述

SPP

Spatial Pyramid Pooling,分为三路做maxpooling 然后再做类似残差连接,SPP支持任意大小,不管多大都是划分成一样的网格做maxpooling,是resize或者裁剪的一种替换,SPP相当于是多尺度池化,让模型的鲁棒性更强;可以进行多尺度训练,提高模型的泛化能力,减低过拟合

在这里插入图片描述

PAN

图中P5-P2是FPN,FPN是图像特征从高层往底层的一个融合,再将特征由底层往高层进行一个融合,构成最终的PAN模块,PAN=FPN+底层到高层;原始PANnet中采用的是add的方法,这里采用了concat方法
在这里插入图片描述

整体结构

注意,在cspdarknet53中使用的激活函数是mish,但是在PAN中使用的激活函数是leaky,
在这里插入图片描述

优化策略

提高位置敏感性

存在的问题:当预测的xy就在左上角的时候,也就是 σ ( t x ) \sigma(t_x) σ(tx)趋向于0的时候,也就是x趋向于负无穷的时候,但是网络很难输出这么大的值,而且不利于网络收敛。所以针对这点进行了改进
在这里插入图片描述
添加了缩放因子,常见的scale取2,原始数据范围和带scale的范围如下图曲线所示
在这里插入图片描述

Mosaic数据增强

将4张图片拼接在一起,不同尺寸、不同比例,可以增强样本的多样性,提升模型能力

样本策略

在YOLOv3中,样本策略如下图所示,先左上角对齐,大于固定阈值的作为正样本,如果有多个模板都满足阈值要求,则都作为正样本送入网络,以增强正样本数量
在这里插入图片描述
在YOLOv4中,多考虑了gridcell的上方和左方的gridcell, 如下图所示,主要原因是xy的偏移量已经从0-1到了-0.5-1.5

在这里插入图片描述
可能的情况如下:
xy相较于原始的在-0.5-1.5都可以,这里好好理解下
在这里插入图片描述

Loss

使用CIOU loss
在这里插入图片描述

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

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

相关文章

Redis之高可用方案浅析

在工程项目中,系统应用的高可用性越来越重要,业主越来越重视。其实高可用可以分为应用层高可用和数据层高可用,数据层高可用中常见的有关系型数据库mysql的高可用、非关系型NoSQl数据库redis的高可用等,下面聊聊典型的NoSQL数据库…

C# 事件和委托的区别并说明

1.区别 事件是基于委托的,为委托提供了一个发布/订阅机制。可以说事件是一种特殊的委托,他的调用和委托是一样的。 事件的声明 public event 委托类型 事件名称 通常事件的命名以事件名称Event来命名。如public event delegate NotifyEvent; 事件和委…

C++ Primer Plus 第二章习题

目录 复习题 1.C程序的模块叫什么? 2.#include 预处理器编译指令的用处? 3.using namespace std; 该语句是干什么用的? 4.什么语句可以打印一个语句"hello,world",然后重新换行? 5.什么语句可以用来创…

桂院校园导航 导入 与 配置教程

将 静态项目/云开发项目 文件夹下最新版本的 文件夹下的 项目 的整个文件夹 复制到项目路径下(比如 D:\WeChatProjects),强烈建议不要直接扔在桌面上 云开发项目 需开通 云开发 功能(首月免费,次月19.9)&am…

【论文阅读笔记】CRFL: Certifiably Robust Federated Learning against Backdoor Attacks

个人阅读笔记,如有错误欢迎指出! 会议:PMLR 2021[2106.08283] CRFL: Certifiably Robust Federated Learning against Backdoor Attacks (arxiv.org) 问题: 现有的防御算法缺乏健壮性 创新: 证明了所提出框架得稳定性 通过马尔…

Generative AI 新世界 | 走进文生图(Text-to-Image)领域

在之前的四篇 “Generative AI 新世界” 中,我们带领大家一起探索了生成式 AI(Generative AI),以及大型语言模型(LLMs)的全新世界概览。并在文本生成(Text Generation)领域做了一些概…

javascript基础十:说说你对Javascript中this对象的理解

一、定义 函数的 this 关键字在 JavaScript 中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别 在绝大多数情况下,函数的调用方式决定了 this 的值(运行时绑定) this 关键字是函数运行时自动生成的一…

进程控制与进程调度 —— 时间片轮转调度算法(C++版)

目录 实验一 进程控制与进程调度 一、实验目的 二、实验内容 三、数据结构及符号说明 四、运行环境说明 五、代码段 六、 效果展示 实验一 进程控制与进程调度 备注:大二(下)操作系统实验一 一、实验目的 掌握进程状态的转变、…

多次调用java.awt.Toolkit.getDefaultToolkit方法获得是同一个单例的Toolkit

多次调用java.awt.Toolkit.getDefaultToolkit方法获得是同一个单例的Toolkit java.awt.Toolkit.getDefaultToolkit()import java.awt.Toolkit;public class 多次调用Toolkit的getDefaultToolkit方法获得是同一个单例的Toolkit {static public void main (String...arguments)t…

WMS:系统窗口添加过程

WMS:系统窗口添加过程 1、经常使用的两大类窗口2、系统窗口StatusBar2.1 StatusBarWindowView添加流程2.2 简要时序图 android12-release 1、经常使用的两大类窗口 Android中的“窗口”类型有很多,经常使用的“窗口”大致分为两大类:一是,由系…

对于后端Linux的入门知识

为什么使用Linux 文章来自https://librehunt.org/,在这个网站里,你可以根据它提供的选项,最终选出适合你的Linux版本 It’s safe and private. No tracking. No company watching over you, no “big brother is watching you” nonsense. Ju…

article-三自由度机械臂运动学分析+仿真

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rOmeEm3I-1685366971102)(data:image/svgxml;utf8, )] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kCu0JrBB-1685366971103)(data:image/svgxml;utf8, )] 建立坐标系 1…

ROS:创建工作空间和编译功能包

目录 一、工作空间二、创建工作空间三、编译空代码的工作空间四、功能包五、创建功能包六、设置和检查环境变量七、功能包中的两个重要文件 一、工作空间 存放工程开发相关文件的文件夹。类似一个IDE(例如Pycharm)新建一个工程,就是一个工作…

权威认可!腾讯云EdgeOne入选Gartner® DDoS缓解方案市场指南

近日,Gartner发布《Market Guide for DDoS Mitigation Solutions》报告,腾讯云EdgeOne入选Gartner DDoS缓解方案市场指南。 “分布式拒绝服务(DDoS)缓解市场包括检测和缓解DDoS攻击并将其作为专用产品提供的供应商。它包括专业供…

有这个证书,网络安全工程师找工作不用愁

想要成为网络安全工程师,满足企业的用人要求。最基本的,你需要熟悉TCP/IP协议,熟悉sql注入原理和手工检测、熟悉内存缓冲区溢出原理和防范措施、熟悉信息存储和传输安全、熟悉数据包结构、熟悉Ddos攻击类型和原理。并且有一定的ddos攻防经验&…

I2C通信协议MPU6050

目录 I2C通信协议 硬件 软件 I2C时序 MPU6050 I2C通信协议 硬件 为了避免总线没协调好导致电源短路,配置为开漏输出,所有设备输出低电平不输出高电平,即右图。又为了避免高电平造成的引浮空,(第三点)总…

kotlin用CoroutineScope启动协程async等待结果返回

kotlin用CoroutineScope启动协程async等待结果返回 例如: import kotlinx.coroutines.*object MyCoroutineScope {private val coroutineContext Job() Dispatchers.Default CoroutineName("my_context")val coroutineScope CoroutineScope(corouti…

【Redis】聊一下Redis数据同步/复制

在分布式系统中,基本上所有的存储中间件都支持数据同步/复制功能,主要的原因是为实现高可用,单点宕机的故障,必须需要将数据进行共享,而共享的话,就需要将数据进行复制,对于已经学过的MySQL和Ka…

Jdk17中文在线手册(建议收藏)

本身学习技术就比较难,再来一个英文版的API,就难上加难,经过几周的研究翻译,JDK17最新版中文在线手册搞定,不要看错了哈是JDK17不是JDK1.7,全网最新的只有JDK11,JDK17中文在线手册是第一次出现&…

JavaEE进阶(5/29)SpringMVC

目录 1.复习 2.URL传参PathVariable 3.上传文件RequestPart 4.获取Cookie/Session/header 5.传统/维新获取cookies 6.传统/维信获得Header 7.获取Session(非常重要) 8.不加ResponseBody 9.如何获取Json数据,RequestBody 10.想…