YOLO系列总结反思

回顾了一下之前看过的YOLO系列,本来想自己从头写一个博客,后来发现大佬都写的极其好了,就变成了阅读笔记。

深度学习论文学习流程:

  • 首先搜索一下相关的论文讲解
  • 在对原论文进行学习
  • 代码核心部分:
    • 网络搭建
    • 数据处理
    • loss

YOLO系列理论:

各个系列的YOLO资源如下:

01 YOLOV1

  • YOLO系列-霹雳吧啦Wz

    • 很好的初步理解,并且可以结合原文有一下补充讲解。
  • YOLOV1-木盏

    • 输入图片划分为7×77 \times 77×7网格,对每个网格单独进行检测,但是这里有一个问题就是YOLO为什么能够检测比Grid_Cell(网格)大很多的物体?

      • 其实YOLO的做法并不是把每个单独的网格输入到模型,而是在训练阶段通过网格对物体的中心点位置进行划分之用,没有对网络进行切片(网格没有脱落整体关系)
    • 网络结构基本思想是:预测位置、大小及物体分类都是通过CNN暴力Predict预测出来的。

    • YOLOV1总体价值

      • Leaky−ReLULeaky-ReLULeaky−ReLU:不会直接让负数为0,但会衰减负数的输出

        ​ y={xx>00.1xotherwisey = \begin{cases} x &x>0 \\ 0.1x&otherwise \\ \end{cases}y={x0.1x​x>0otherwise​

      • 分而治之:用网络来划分图片区域,每块区域独立检测目标

      • 端到端的训练:损失函数的反向传播可以贯彻整个网络,这本身也是One-Stage检测方法的游戏

  • YOLOv1-小小小绿叶

    • YOLOV1的思路:直接在输出层回归Bouding box的位置和Bounding Box所属的类别(整张图作为Inputs,将目标检测问题转换为一个回归的问题)
    • 最后输出7×7×307 \times 7 \times 307×7×30 是因为每个网格预测2个bounding box 的(x, y, w, h, confidence)及20个概率类别(通用公式: SxS个网格,每个网格要预测B个bounding box还要预测C个categories,输出就是S x S x (5×B+C)的一个tensor。 注意:class信息是针对每个网格的,confidence信息是针对每个bounding box的)

02 YOLOV2

  • YOLO系列-霹雳吧啦Wz

    • 能够比较直接简单的理解YOLOv2模型,但是还是需要进一步看一些其他博客和原文进行补充。
  • YOLOV2-木盏

    • Batch Normalization:模型收敛带来显著的提升,并且同时消除其他正则化的必要。
    • High Resolution Classifier:输入图形分辨率的提升问题,显著来看是必然的。
    • Anchor机制的引入:但是对其理解还是需要在看一下其他博客(主要是看看Faster-Rcnn的讲解)
    • Direct location prediction: 可以参照霹雳吧啦的视频讲解
  • YOLOv2-小小小绿叶

    • PassThrough:

03 YOLOV3

  • YOLO系列-霹雳吧啦Wz

    • 能够比较直接简单的理解YOLOv2模型,但是还是需要进一步看一些其他博客和原文进行补充。

      • 附带了IOU系列和 Focal Loss的讲解
  • YOLOV3-江大白

  • YOLOV3-木盏

    • YOLO系列的每一代提升,很大一部分取决于BackBone网络的提升
    • BackBone:整个V3的结果是没有池化层和全连接层的
      • 前向传播过程,张量的尺寸变换是通过改变卷积核的步长来实现(充当池化层的作用,相较于YOLOV2)
    • OutPut:预测头的改进
      • YOLOV3每个网格预测3个Box,所以每个Box需要(x, y, w, h, confidence)五个基本参数和80个类别概率,所以3×(5+80)=2553 \times(5+80) = 2553×(5+80)=255
      • YOLOV1的输出头是(7×7×30)(7\times7 \times30)(7×7×30) ,只能识别20个物体,每个网格只能预测2个box
  • YOLOv3-小小小绿叶

04 YOLOV3-SPP

  • YOLO系列-霹雳吧啦Wz

    • 可以结合其的代码配套解析,进一步深入理解YOLOV3-SPP

05 YOLOV4

  • YOLOv4-小小小绿叶
  • YOLOV4-江大白
    • 输入端:这里指的创新主要是训练时对输入端的改进,主要包括Mosaic数据增强、cmBN、SAT自对抗训练

      • ​ Augmentation for small object detection一文中对大中小目标进行了区分
    • **BackBone主干网络:**将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数、Dropblock
    • Neck:目标检测网络在BackBone和最后的输出层之间往往会插入一些层,比如Yolov4中的SPP模块、FPN+PAN结构
      • 在YOLOV4中76×7676 \times 7676×76、38×3838 \times 3838×38 及 19×1919 \times 1919×19 分别对应最小、中等及最大的Anchor Box
    • Prediction:输出层的锚框机制和Yolov3相同,主要改进的是训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms

06 YOLOV5

  • YOLOv5-小小小绿叶

    • Focus:是不是和YOLOV2中的PassThrought类似?
  • YOLOV4-江大白

    • 自适应锚框:Yolov5中将此功能嵌入到代码中,每次训练时,自适应的计算不同训练集中的最佳锚框值。

    • 小目标检测问题(这里有个感受野计算的问题):

      • 以网络的输入608*608为例,yolov3、yolov4,yolov5中下采样都使用了5次,因此最后的特征图大小是19*19,38*38,76*76。

      • 三个特征图中,最大的7676负责检测小目标,而对应到608608上,每格特征图的感受野是608/76=8*8大小。

      • 再将608608对应到76802160上,以最长边7680为例,7680/608*8=101。

        即如果原始图像中目标的宽或高小于101像素,网络很难学习到目标的特征信息。

07 YOLOX

  • YOLOX-江大白

    • **输入端:**Strong augmentation数据增强

      • 最后几个epoch时Moasic、Mixup增强都会被关掉(由于采取了更强的数据增强方式,作者在研究中发现,ImageNet预训练将毫无意义,因此,所有的模型,均是从头开始训练的。
    • **BackBone主干网络:**主干网络没有什么变化,还是Darknet53。
    • Neck:没有什么变化,Yolov3 baseline的Neck层还是FPN结构。
    • Prediction:Decoupled Head、End-to-End YOLO、Anchor-free、Multi positives
      • Decoupled Head:只是概率Head部分的网络结构就可了吗?
      • Anchor-Free:
        • 同样输入大小下,参数量减少了2/32/32/3
        • 怎么实现预测的?需要反复去理解
    • Yolov5s和Yolox-s主要区别
      • **输入端:**在Mosa数据增强的基础上,增加了Mixup数据增强效果;
      • **Backbone:**激活函数采用SiLU函数;
      • **Neck:**激活函数采用SiLU函数
      • **输出端:**检测头改为Decoupled Head、采用anchor free、multi positives、SimOTA的方式。

【目标检测】YOLO系列总结相关推荐

  1. 目标检测YOLO系列------YOLO简介

    目标检测YOLO系列------YOLO简介 1.为什么会出现YOLO算法 2.YOLO算法会逐渐成为目标检测的主流吗     YOLO以及各种变体已经广泛应用于目标检测算法所涉及到的方方面面,为了梳 ...

  2. 目标检测——YOLO系列算法(YOLOv4、YOLOv5)的学习笔记

    目录 1 前言 2 致谢 3 YOLO模型列表 4 模型结构 2.1 Backbone Focus--网格下采样 CSPDarknet53 2.3 Neck -- SPP & PAN SPP: ...

  3. 目标检测 | YOLO系列超全讲解v1,v2,v3

    前言 一.YOLOv1 1. 网络结构 2. 实现方法 3. 损失函数 4. 缺点 二.YOLOv2 1. 网络结构 2. 改进方法 3. YOLO9000 4. 网络训练细节 三.YOLOv3 1. ...

  4. 目标检测 YOLO系列算法

    文章目录 1. YOLO算法 1.1 Yolo算法思想 1.2 Yolo的网络结构 1.2.1 网络输入 1.2.2 网络输出 1.7X7网格 2x30维向量 1.3 Yolo模型的训练 1.3.1训 ...

  5. 目标检测yolo系列

    出自科技猛兽知乎专栏,地址:科技猛兽目标检测专栏 前言 本文目的是用尽量浅显易懂的语言让零基础小白能够理解什么是YOLO系列模型,以及他们的设计思想和改进思路分别是什么.我不会把YOLO的论文给你用软 ...

  6. 目标检测YOLO系列算法的进化史

    本文中将简单总结YOLO的发展历史,YOLO是计算机视觉领域中著名的模型之一,与其他的分类方法,例如R-CNN不同,R-CNN将检测结果分为两部分求解:物体类别(分类问题),物体位置即bounding ...

  7. 目标检测 YOLO 系列模型

    前言 YOLO (You Only Look Once) 系列模型追求实时目标检测,因此会在一定程度上牺牲精度,以实现更高的检测速度. 如果你对这篇文章感兴趣,可以点击「[访客必读 - 指引页]一文囊 ...

  8. 目标检测——YOLO系列(一网打尽)

    YOLO系列算法 1. 基本概念 2. 目标检测算法分类及流程 2.1 算法分类 2.2 基本流程 2.3 Two-stage与One-stage基本流程比较 3. YOLO系列目标检测模型 3.1 ...

  9. 目标检测YOLO系列总结

    目标检测 目标检测 一.YOLO系列 YOLOv1: YOLOV2 Darknet-19 Batch Normalization Anchor Dimension Clusters Direct lo ...

  10. 【目标检测·yolo系列】YOLOV1目标检测论文(参考 同济子豪兄的解读)笔记

    YOLO V1 目标检测 object detection YOLOV1 预测阶段 前向推断 用图展示过程 预测阶段 后处理 NMS Non-Maximum Suppression 非极大值抑制 训练 ...

最新文章

  1. 在 M1 芯片 Mac 中使用原生 Java 优雅地玩 Minecraft
  2. 【转】C#正则表达式小结
  3. 【杂谈】有三AI秋季划火热进行中,如何深入学习模型优化,人脸算法,图像质量等研究方向...
  4. awk学习实战-原创
  5. python的learn_python_learn1
  6. 一个银行客户经理的“变形记”
  7. Matches UVA - 11375 递推+大数 Ingenuous Cubrency UVA - 11137 递推
  8. 计算机中的微信无法启动,微信电脑版无法直接打开EXCEL:为什么电脑打不开excel表格...
  9. c#取消word修订痕迹_C# 操作Word批注(一) 插入、修改、删除Word批注
  10. 使用Envato Elements Sketch插件立即创建惊人的原型
  11. 18.06.27 POJ百练 4124海贼王之伟大航路
  12. Laravel Database——查询构造器与语法编译器源码分析 (上)
  13. Python中使用pickle库进行数据的序列化存储
  14. html 轮播图自适应,JavaScript 自适应轮播图
  15. 07-19 解决灰鸽子新变种 Rootkit Vanti gen等及www 58111 com劫持 第5版
  16. 通信系统建模与仿真 笔记2
  17. CMMI3级认证和CMMI5认证有什么区别?
  18. html下拉列表初始值为空,html 里select 下拉列表中设置默认值怎么写?
  19. 中国矿业大学算法概论作业一 D、沙子的质量
  20. 在linux上剪视频,在Linux系统上安装和使用Video Trimmer快速修剪视频

热门文章

  1. 第09课:一网打尽神经序列模型之 RNN 及其变种 LSTM、GRU
  2. 阿里云 linux mysql数据库_mysql 导入数据库 linux
  3. 鸿蒙中文翻译,华为鸿蒙出世,“鸿蒙”应该怎样翻译?这些古语才是中国人的浪漫!...
  4. 产品设计学习(三)——用户画像与特征工程
  5. 墨刀原型设计工具学习体会——临摹网易云音乐App
  6. 小蚂蚁学cURL笔记(1)
  7. javascript中map和filter的区别
  8. 5个免费商用音频素材网站
  9. 手机备忘录里的东西突然没有了怎么办
  10. UBUNTU 7.04安装后的配置