目标检测之YOLO系列

YOLOV1:

YOLOV2:

YOLOV2总结:

  • Better
  1. Batch Normalization
BN可以提升模型收敛速度,而且可以起到一定正则化效果,降低模型的过拟合
YOLOv2使用BN,不使用dropout
  1. High Resolution Classifier
将分辨率由224*224(ImageNet分类尺寸)增加至448*448
  1. Convolutional With Anchor Boxes
使用先验框提高召回率
  1. Dimension Clusters
使用聚类算法生成先验框
  • Faster
  1. 使用Darknet-19主干网络

YOLOV3:

YOLOV3总结:

  • 数据处理部分
  • Backbones部分
DarkNet53, 网络结构如下:

  • Neck部分
FPN
  • Head部分
见网络结构图
  • 激活函数
LeakyReLU

  • 损失函数
目标类别损失/目标置信度损失 --> 二值交叉熵损失(Binary Cross Entyopy)
目标定位损失 --> Sum of Squared Error Loss(只有正样本才有目标定位损失)
L(loc) = sum(sigmod(tx-gx)**2 + sigmod(ty-gy)**2 + (tw-gw)**2 + (th-gh)**2)
  • 其他

    在yolov3中,关于预测的目标中心点坐标计算公式是:

    见图:

YOLOV4:

YOLOV4总结:

  • 数据处理部分
1. Mosaic data augmentation
2. CutMix data augmentation
  • Backbones部分
CSPDarknet53
  • Neck部分
SPP
PAN
  • Head部分
和YOLOv3的head部分一样
  • 正负样本分配部分
1. 在yolov3中一个GT都只分配一个Anchor, 在ylov4中(以及u版的yolov3-spp)中一个gt可以同时分配给多个anchor

2. 在Bubbliiiing版本的代码中可以描述如下:(3个head分别对应anchor为[0,1, 2, 3, 4, 5, 6, 7, 8])

  a: anchor有9个,gt有10个  每个anchor和gt进行左上角对齐并且计算iou从大到小排序(shape:[10,9])

  b: 例如第一个gt算出来的最大iou的anchor的index=4,但是该层的anchor索引是6,7,8,所以该gt不属于该head

  c: 如果计算出该gt与anchor对应的index=6: 将该gt缩放到该head的大小,该gt的中心点落在网格中的点. 该网格中的
点包含的信息有(x,y,w,h,conf,cls). 然后和预测出来的进行对比和计算(在该版本中计算方式同yolov3) d: 使用sigmod激活函数的取值范围是[0, 1],要想取值0,1那么预测值需要取得无穷(在后续的yolov5中有改进)
  • 损失函数部分
分类损失:
定位损失: CIOU,ciou的计算方式如下:

  • 激活函数
Mish激活函数
  • 其他
Class label smoothing(标签平滑策略)
学习率余弦退火衰减

YOLOV5:

YOLOv5总结:

  • 数据处理部分
yolov5提供的数据增强技术有:
1. Mosaic
2. Copy paste (需要segments数据)
3. Random affine 仿射变换 作者只使用了Scale和Translation(缩放和平移)
4. MixUp
  • Backbones部分
Backbone: new CSP-Darknet53(使用了FCOS模块后面使用6*6大小的卷积替换)
  • Neck部分
spp, pan
  • head:
yolov3 head
  • 损失函数
Classes loss,分类损失,采用的是BCE loss,注意只计算正样本的分类损失
Objectness loss,obj损失,采用的依然是BCE loss
Location loss,定位损失,采用的是CIoU loss
  • 其他
消除网格在断点等取不到值的情况
bx = (2*sigmod(tx) - 0.5) + cx
by = (2*sigmod(ty) - 0.5) + cy
那么就将原来的取值范围有[0, 1]变化到[-0.5, 1.5],也为后面使用相邻的网格预测点作为正样本奠定基础
同时:
bw = pw * (28sigmod(tw))**2
bh = ph * (28sigmod(th))**2
防止梯度爆炸,将范围调整到(0,4)也为后面的正负样本分配奠定基础

YOLOX:

除了YOLOX,yolov1属于anchor-free目标检测方法外,其他的yolo系列都属于anchor-base方法

YOLOX总结

  • 数据增强部分
Mosaic
Mixup
  • Backbone
CSPDarknet53
  • Neck部分
spp + pan
  • Head部分
使用decoupled head(将分类头和回归头分开)

目标检测复习之YOLO系列的更多相关文章

  1. 目标检测复习之Anchor Free系列

    目标检测之Anchor Free系列 CenterNet(Object as point) 见之前的过的博客 CenterNet笔记 YOLOX 见之前目标检测复习之YOLO系列总结 YOLOX笔记 ...

  2. 深度学习与CV教程(12) | 目标检测 (两阶段,R-CNN系列)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...

  3. 目标检测复习之Faster RCNN系列

    目标检测之faster rcnn系列 paper blogs1: 一文读懂Faster RCNN Faster RCNN理论合集 code: mmdetection Faster rcnn总结: 网络 ...

  4. (六)目标检测算法之YOLO

    系列文章链接: (一)目标检测概述 https://www.cnblogs.com/kongweisi/p/10894415.html (二)目标检测算法之R-CNN https://www.cnbl ...

  5. 目标检测复习之Loss Functions 总结

    Loss Functions 总结 损失函数分类: 回归损失函数(Regression loss), 分类损失函数(Classification loss) Regression loss funct ...

  6. 深度学习与CV教程(13) | 目标检测 (SSD,YOLO系列)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...

  7. 第三十五节,目标检测之YOLO算法详解

    Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: You only look once: Unified, real-time object de ...

  8. (七)目标检测算法之SSD

    系列博客链接: (一)目标检测概述 https://www.cnblogs.com/kongweisi/p/10894415.html (二)目标检测算法之R-CNN https://www.cnbl ...

  9. VOC数据集 目标检测

    最近在做与目标检测模型相关的工作,很多都要求VOC格式的数据集. PASCAL VOC挑战赛 (The PASCAL Visual Object Classes )是一个世界级的计算机视觉挑战赛, P ...

随机推荐

  1. CSS3新特性的概述

    CSS3的新特性大致分为以下六类 1.CSS3选择器 2.CSS3边框与圆角 3.CSS3背景与渐变 4.CSS3过渡 5.CSS3变换 6.CSS3动画 下面分别说一说以上六类都有哪些内容 CSS3 ...

  2. C#ASP.NET网站开发步骤

    1. 创建项目ASP.NET Web 应用程序. 2. 选择"Web 窗体"模板,然后单击 "确定" 按钮创建项目. 3. 在解决方案资源管理器中,右键添加we ...

  3. java的内存泄露是如何发生的,如何避免和发现

    java的垃圾回收与内存泄露的关系:[新手可忽略不影响继续学习] 马克-to-win:上一节讲了,(i)对象被置成null.(ii)局部对象(无需置成null)当程序运行到右大括号.(iii)匿名对象 ...

  4. jboss修改内存

    在修改配置文件,在 <JBOSS_HOME> /bin/stadalone.conf中      找到并修改  如图

  5. vue中执行npm run build报错解决方法?

    遇到了执行npm run build 后报错: [build:js ] Module not found: Error: Can't resolve 'scss-loader' in 'D:\work ...

  6. (ICONIP2021)On the Unreasonable Effectiveness of Centroids in Image

    目录 摘要 1.引言 2.提出的方法 2.1 CentroidTripletloss 2.2 聚合表示 3.实验 3.1 数据集 3.2 应用细节 3.3 Fashion检索结果 3.4 行人再识别结 ...

  7. js知识梳理3:创建对象的模式探究

    写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,感谢它们的作者和译者.有发现什么问题的,欢迎留言指出 ...

  8. YC-Framework版本更新:V1.0.6

    分布式微服务框架:YC-Framework版本更新V1.0.6!!! 本文主要内容: V1.0.6版本更新主要内容 V1.0.6版本更新主要内容介绍 一.V1.0.6版本更新主要内容 1.系统例子覆盖 ...

  9. Python入门-迭代器和生成器

    迭代演示 # 传统数据生成缺陷演示,编号操作未全部使用,会占用内存 #合适的做法,是需要的时候再生产,而不是全部生成好了再用 def generator(maxnum): print("[代 ...

  10. IDEA 2022.2.1 Beta 2发布:新增支持Java 18、增强JUnit 5的支持

    近日,IDEA 2022.1的Beta 2版本发布了!下面我们一起来看看对于我们Java开发者来说,有哪些重要的更新内容. Java增强 随着Java 18的正式发布,IDEA也在该版本中迅速跟进.目 ...