【目标检测】YOLO系列总结
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.1xx>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的讲解
- 能够比较直接简单的理解YOLOv2模型,但是还是需要进一步看一些其他博客和原文进行补充。
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
- 输入端:这里指的创新主要是训练时对输入端的改进,主要包括Mosaic数据增强、cmBN、SAT自对抗训练
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的方式。
- **输入端:**Strong augmentation数据增强
【目标检测】YOLO系列总结相关推荐
- 目标检测YOLO系列------YOLO简介
目标检测YOLO系列------YOLO简介 1.为什么会出现YOLO算法 2.YOLO算法会逐渐成为目标检测的主流吗 YOLO以及各种变体已经广泛应用于目标检测算法所涉及到的方方面面,为了梳 ...
- 目标检测——YOLO系列算法(YOLOv4、YOLOv5)的学习笔记
目录 1 前言 2 致谢 3 YOLO模型列表 4 模型结构 2.1 Backbone Focus--网格下采样 CSPDarknet53 2.3 Neck -- SPP & PAN SPP: ...
- 目标检测 | YOLO系列超全讲解v1,v2,v3
前言 一.YOLOv1 1. 网络结构 2. 实现方法 3. 损失函数 4. 缺点 二.YOLOv2 1. 网络结构 2. 改进方法 3. YOLO9000 4. 网络训练细节 三.YOLOv3 1. ...
- 目标检测 YOLO系列算法
文章目录 1. YOLO算法 1.1 Yolo算法思想 1.2 Yolo的网络结构 1.2.1 网络输入 1.2.2 网络输出 1.7X7网格 2x30维向量 1.3 Yolo模型的训练 1.3.1训 ...
- 目标检测yolo系列
出自科技猛兽知乎专栏,地址:科技猛兽目标检测专栏 前言 本文目的是用尽量浅显易懂的语言让零基础小白能够理解什么是YOLO系列模型,以及他们的设计思想和改进思路分别是什么.我不会把YOLO的论文给你用软 ...
- 目标检测YOLO系列算法的进化史
本文中将简单总结YOLO的发展历史,YOLO是计算机视觉领域中著名的模型之一,与其他的分类方法,例如R-CNN不同,R-CNN将检测结果分为两部分求解:物体类别(分类问题),物体位置即bounding ...
- 目标检测 YOLO 系列模型
前言 YOLO (You Only Look Once) 系列模型追求实时目标检测,因此会在一定程度上牺牲精度,以实现更高的检测速度. 如果你对这篇文章感兴趣,可以点击「[访客必读 - 指引页]一文囊 ...
- 目标检测——YOLO系列(一网打尽)
YOLO系列算法 1. 基本概念 2. 目标检测算法分类及流程 2.1 算法分类 2.2 基本流程 2.3 Two-stage与One-stage基本流程比较 3. YOLO系列目标检测模型 3.1 ...
- 目标检测YOLO系列总结
目标检测 目标检测 一.YOLO系列 YOLOv1: YOLOV2 Darknet-19 Batch Normalization Anchor Dimension Clusters Direct lo ...
- 【目标检测·yolo系列】YOLOV1目标检测论文(参考 同济子豪兄的解读)笔记
YOLO V1 目标检测 object detection YOLOV1 预测阶段 前向推断 用图展示过程 预测阶段 后处理 NMS Non-Maximum Suppression 非极大值抑制 训练 ...
最新文章
- 在 M1 芯片 Mac 中使用原生 Java 优雅地玩 Minecraft
- 【转】C#正则表达式小结
- 【杂谈】有三AI秋季划火热进行中,如何深入学习模型优化,人脸算法,图像质量等研究方向...
- awk学习实战-原创
- python的learn_python_learn1
- 一个银行客户经理的“变形记”
- Matches UVA - 11375 递推+大数 Ingenuous Cubrency UVA - 11137 递推
- 计算机中的微信无法启动,微信电脑版无法直接打开EXCEL:为什么电脑打不开excel表格...
- c#取消word修订痕迹_C# 操作Word批注(一) 插入、修改、删除Word批注
- 使用Envato Elements Sketch插件立即创建惊人的原型
- 18.06.27 POJ百练 4124海贼王之伟大航路
- Laravel Database——查询构造器与语法编译器源码分析 (上)
- Python中使用pickle库进行数据的序列化存储
- html 轮播图自适应,JavaScript 自适应轮播图
- 07-19 解决灰鸽子新变种 Rootkit Vanti gen等及www 58111 com劫持 第5版
- 通信系统建模与仿真 笔记2
- CMMI3级认证和CMMI5认证有什么区别?
- html下拉列表初始值为空,html 里select 下拉列表中设置默认值怎么写?
- 中国矿业大学算法概论作业一 D、沙子的质量
- 在linux上剪视频,在Linux系统上安装和使用Video Trimmer快速修剪视频
热门文章
- 第09课:一网打尽神经序列模型之 RNN 及其变种 LSTM、GRU
- 阿里云 linux mysql数据库_mysql 导入数据库 linux
- 鸿蒙中文翻译,华为鸿蒙出世,“鸿蒙”应该怎样翻译?这些古语才是中国人的浪漫!...
- 产品设计学习(三)——用户画像与特征工程
- 墨刀原型设计工具学习体会——临摹网易云音乐App
- 小蚂蚁学cURL笔记(1)
- javascript中map和filter的区别
- 5个免费商用音频素材网站
- 手机备忘录里的东西突然没有了怎么办
- UBUNTU 7.04安装后的配置