当前位置: 首页 > news >正文

yolo系列笔记(v4-v5)

YOLOv4

YOLOv4网络详解_哔哩哔哩_bilibili

网络结构,在Yolov3的Darknet的基础上增加了CSP结构。

CSP的优点

加强CNN的学习能力

去除计算瓶颈。

减少显存的消耗。

结构为:

 其实还是类似与残差网络的结构,保留下采样之前的特征和下采样之后的特征进行拼接,让模型的特征信息能够更全面。

SPP

 PAN结构

 FPN是将特征层向下累加,这样对于任意特征层来说,他是看不到其下面特征层的信息的,PAN在FPN的基础上,采取了个向上加的功能,让特征层包含的信息更全面。 有点类似RNN单向叠加的感觉。  这里注意,Yolov4将叠加操作改成了concat拼接。

优化策略

针对前作中的预测框定位的问题。

     

 如果GT真实框真好落在边界点, 预测值txty想预测这个边界点的话取值需要趋向于无穷,这显然是很难达到的,所以在v4和v5中对做了一点改进:

 问题:这里我个人觉得有点矛盾,因为用sigmoid函数的目的就是为了限制0~1(在一个cell之内)但是这么改进了之后又限制不了了,哪怕是做截断感觉也没啥意义,为啥不用一个简单的函数做映射呢?(下面会做解释)

 正负样本分配:

通过计算GT真实框与预设anchor框的IOU来判断正负样本,对于yolov3来说,只采用与GT的IOU最大的anchor作为正样本,Yolov4改成了只要满足IOU大于阈值,那么都是正样本, 这样做扩充了正样本的数量。

 这里有个改动,Yolov4提出,为了消除grid cell的敏感度,同时也为了扩展正样本数量,落在某个cell内的GT真实框还可能被其周围cell来预测,

因为现在的映射函数改成了:,所以其范围是(-1.5,1.5)相当于以左上角的点作为起点的话,预测框是可以超出一个cell的距离的, 像下图3个cell都可以对黑点这个真实框做预测,相当于扩充了正样本的数量,让预测框不被cell限制的那么死。

 YOLOV5

YOLOv5网络详解_哔哩哔哩_bilibili

 SPP->SPPF

SPP

SPPF

2个k=5的Maxpooling可以等同于一个k=9的Maxpooling,3个k+5等于K=9, SPPF和SPP效果是一样的,但是效率高很多

数据增强

Mosaic:4个拼成一个

copy paste: 将图像抠出来贴到另一张上

Rand affine :随机的缩放,平移等。

 MIXup: 调整透明度后叠加

 Augment HSV: 调整色度,饱和度等

 训练策略

 损失函数

 消除grid敏感度

这个基本和Yolov4中的一样,但Yolov5将长和宽也进行的改动,之前的容易出现指数爆炸,造成BwBh值过大,导致训练不稳定 

匹配正样本

Yolov4匹配正样本是通过IOU的阈值是否大于某个预设值来判断是否为正样本,Yolov5在v4的基础上进一步对框的长宽进行限制,下图Rmax是预测框和真实框长宽比值的最大值,当这个最大值超出限制时则将样本设置为负。

http://www.lryc.cn/news/101945.html

相关文章:

  • 小白如何高效刷题Leetcode?
  • 使用IDEA打jar包的详细图文教程
  • 《MySQL 实战 45 讲》课程学习笔记(二)
  • 微软亚研院提出模型基础架构RetNet或将成为Transformer有力继承者
  • 探索单例模式:设计模式中的瑰宝
  • Bobo String Construction 2023牛客暑期多校训练营4-A
  • 【React学习】React父子组件通讯
  • NASM汇编
  • 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面
  • spring注解驱动开发(一)
  • Vue3搭建启动
  • 阻塞队列(模拟实现)
  • VScode中python的相对路径与绝对路径 FileNotFoundError: [Errno 2] No such file or directory
  • Unity XML2——C#读写XML
  • 带wiringPi库的交叉编译 ---宿主机x86Ubuntu,目标机ARMv8 aarch64(香橙派)
  • 数据仓库基础知识
  • M 芯片的 macos 系统安装虚拟机 centos7 网络配置
  • AcWing 3708. 求矩阵的鞍点
  • web前端开发工程师的具体职责范本(合集)
  • 从源程序到可执行文件的四个过程
  • C++部署学习
  • linux下lazarus开发ide里 BGRAControls控件库comboBox示例
  • Redis学习路线(9)—— Redis的场景使用
  • 糟了,数据库主从延迟了!
  • VUE,子组件给父组件传递参数,props 自定义属性,ref
  • 【Oracle系列】- Oracle数据迁移
  • Linux环境安装MySQL(详细教程)
  • 23. Mysql中的排序规则
  • MongoDB 基础学习记录
  • Visual Studio2022报错 无法打开 源 文件 “openssl/conf.h“解决方式