YOLO详解参见地址:

YOLO1:https://blog.csdn.net/qq_32172681/article/details/99418000

YOLO2:https://blog.csdn.net/qq_32172681/article/details/99482044

YOLO3:https://blog.csdn.net/qq_32172681/article/details/99595621

一、YOLO1

1、目标检测主要思想

与RCNN系列不同,YOLO把目标检测看作一个回归问题,直接用一个网络进行分类和框回归。

具体做法是:将image划分为S*S个网格,每个网格预测B个bbox的位置(x、y、w、h)、置信度(confidence为交并比)、类别概率。输出维度为S*S*(B*5+C),C为类别数。无论网格中包含多少个boxes,每个网格只预测一组类概率。测试时,将条件类概率和预测框的置信度乘起来,表示每个box包含某类物体的置信度,这个分数可以将box中的类别可能性和预测精确度同时表示出来。

2、整体网络结构

基本网络模型为GoogLe Net,但未使用它的inception模块,而是交替使用1*1和3*3卷积层

卷积层提取特征,全连接层预测类别和框位置回归,共24个卷积层,2个全连接层

3、子网络:预训练分类网络,输入图像大小为224*224

前20个卷积层 + 1个全局平均池化 + 1个全连接

4、子网络:目标检测网络,输入图像大小为448*448

前20个卷积层 + 4个卷积层 + 2个全连接 + 1个全连接(预测类别 / 框位置)

5、损失函数(平方和损失函数)

包括4部分:框中心位置x,y损失 + 框宽高w,h损失 + 置信度confidence损失 + 分类loss

公式看不懂,可以戳YOLO1详解:https://blog.csdn.net/qq_32172681/article/details/99418000

6、YOLO1优点:

  • 速度快。看作一个回归问题,不需要复杂的pipeline。
  • 对图像有全局理解。用整个图像的特征去预测bbox,而不是像RCNN,只能候选框的特征预测bbox。
  • 候选框的数量少很多,仅7*7*2=49个。而RCNN的selectlive search有2000个,计算量大。

7、YOLO1缺点:

  • 每个网格只预测2个bbox,限制了模型预测物体的数量。
  • 多次下采样,边界框预测所使用的特征是相对粗糙的特征。

二、YOLO2

1、改进一:检测更多种类的目标

利用大型分类数据集ImageNet扩大目标检测的数据种类,可以检测9000种类别的目标(YOLO1仅20种)

2、改进二:批标准化BN

  • 让梯度变大,避免梯度消失
  • 收敛更快,训练过程更快
  • 不是应用在整个数据集,有噪声,提高模型泛化能力

3、改进三:用高分辨率图像训练分类网络

YOLO1分类网络输入图像大小为224*224,目标检测网络输入图像大小为448*448,因此YOLO1需要同时完成目标检测任务和适应更高分辨率图像的任务。

4、改进四:借鉴RPN的anchor boxes,有先验知识,预测更快

5、改进五:用k-mean聚类算法,得到YOLO2的先验框piror boxes

用k-mean聚类算法,让模型自动选择更合适的先验框长、宽(YOLO1是人工指定的,带有一定的主观性)

自定义聚类算法的距离矩阵:,centroid是聚类时被选为聚类中心的框,box是其他框。

6、改进六:将预测的偏移量限制在一个网格范围内,模型更稳定

预测的是预测框中心相对于网格单元的偏移量,使用logistic将预测值限制到0-1范围内,这样框偏移就不会超过1个网络(RPN预测anchor box和预测框bbox的偏移量,有可能偏移量很大,导致模型不稳定)

7、网格为每个bbox预测5个偏移量:tx,ty,tw,th,to

设网格左上角偏移图像左上角的距离是cx,cy,且piror bounding(模板框)的高、宽为ph、pw。

预测框坐标计算如图:

8、改进七:提出passthrough层,有利于小目标检测

前一层26*26*512特征图分为4份,串联成4个13*13*2048的特征图,再与后一层的13*13*1024特征图串联,得13*13*3072特征图。

9、改进八:多尺度输入图像进行训练

FCN网络,不固定输入大小

10、分类网络模型(YOLO2自己的模型):Darknet-19

类似vgg,最后使用全局平均池化,每个特征图得到1个值,再用全连接会少很多参数。

Darknet19:19个卷积层 + 5个池化层,最后一个全局平均池化层输出1000类别(没有使用全连接层)

11、目标检测网络模型

去掉分类网络最后一个1000类输出的卷积层,再加上3个3*3卷积层,每个3*3后都有1个1*1卷积层,最后1个3*3*512和倒数第2个3*3*1024之间添加一个passthrough层,得到更精细的结果,最后一个1*1层输出结果。网络结构图略。(这里貌似新加了11层)

12、混合分类和检测数据集,联合训练分类、检测网络

YOLO2提出一种联合训练机制,混合来自检测和分类数据集的图像进行训练。当网络看到标记为检测的图像时,基于完整的yolov2损失函数进行反向传播。当它看到一个分类图像时,只从特定于分类的部分反向传播损失。

三、YOLO3

1、多标签检测

每个框中可能有多个类别物体,而softmax只能用于单分类,因此换成sigmoid,sigmoid可以做多标签分类。

2、结合不同卷积层的特征,做多尺度预测

将当前层上采样的特征图,加上上层的特征图,得到一个组合特征图,再添加一些卷积层来处理这个组合的特征图,这样可以预测更细粒度的目标。

3、网络结构(DarkNet53 = DarkNet19 + ResNet)

  • 结合残差思想,提取更深层次的语义信息。
  • 仍然使用连续的3×3和1×1的卷积层。
  • 通过上采样对三个不同尺度做预测。如将8*8的特征图上采样和16*16的特征图相加再次计算,这样可以预测出更小的物体。
  • 采用了步长为2的卷积层代替pooling层,因为池化层会丢失信息。

4、预测更多目标

用k-mean均值聚类算法为每个网格预测9个模版框,样可以提高recall(YOLO2有5个,YOLO1有2个)

5、损失函数

使用交叉熵损失函数进行类别预测(YOLO2用的是平方误差)

YOLO1、YOLO2、YOLO3对比相关推荐

  1. 来自同济子豪兄的无私分享-关于YOLOv1模型的学习(一)

     https://www.bilibili.com/video/BV15w411Z7LG?p=4https://www.bilibili.com/video/BV15w411Z7LG?p=4https ...

  2. 基于yolo4和yolo3(pytorch)的口罩识别的对比

    这是yolov4的(pytorch)目录结构 这个是基于keras yolo3的 目前测试来看pytorch的快 keras速度慢 这两个项目的地址 这里有模型直接就可以使用,感兴趣可以体验一下 py ...

  3. Pytorch搭建yolo3目标检测平台

    学习前言 源码下载 yolo3实现思路 一.预测部分 1.主题网络darknet53介绍 2.从特征获取预测结果 3.预测结果的解码 4.在原图上进行绘制 二.训练部分 1.计算loss所需参数 2. ...

  4. YOLO3+残差网络+FPN详解

    概述 yolo3的论文写的跟个小作文一样,也不知道怎么过的审,里面实质性的东西并不多,做的实验一部分是引用Facebook AI Research的<Focal Loss for Dense O ...

  5. YOLO3实现目标检测(VS2015+OPENCV3.4.2+YOLO3+CUDA10.0+CUDNN7.5)

    本人YOLOv3刚刚入坑,走了不少弯路,自己摸索了一下,首先给大家配置一下yolo3,后续会有具体的算法分析讲解.安装VS2015+opencv3.4.2,这个就不用多说了吧,网上很多教程可以参考,主 ...

  6. TensorFlow YOLO3

    参考: yolo1论文原文 yolo2论文原文 YOLO系列之yolo v1 YOLO系列之yolo v2 yolo系列之yolo v3[深度解析] opencv-yolo3 https://blog ...

  7. FPN与DSSD的对比

    https://zhuanlan.zhihu.com/p/26743074 FPN论文链接:https://arxiv.org/pdf/1612.03144.pdf DSSD链接:https://ar ...

  8. 目标检测学习————Keras搭建yolo3目标检测平台

    Keras搭建yolo3目标检测平台 源码下载 yolo3实现思路 一.预测部分 二.训练部分 训练自己的yolo3模型 参考原文出处 点击进入https://blog.csdn.net/weixin ...

  9. yolo3目标检测平台

    yolo3实现思路 一.预测部分 1.主题网络darknet53介绍 YoloV3所使用的主干特征提取网络为Darknet53,它具有两个重要特点: 1.Darknet53具有一个重要特点是使用了残差 ...

  10. 睿智的目标检测8——yolo3的loss组成详解

    睿智的目标检测8--yolo3的loss组成详解 学习前言 参考源码 计算loss所需参数 1.y_pre 2.y_true loss的计算过程 学习前言 只会预测是不够的,对于只有会了训练才能训练出 ...

最新文章

  1. 105. oracle 经典查询 总结
  2. 解决WINCE500中INTEL编译器无法完全卸载的问题
  3. 能被选为2021最佳开源项目的WEB框架究竟有多棒?
  4. Javascript综合应用小案例(续)
  5. 从uptime、stress、mpstat、pidstat观察CPU密集型、IO密集型、进程密集型切换的系统性能
  6. 适合 Python 入门的 8 款强大工具,赶紧收藏一波!
  7. Markdown--绘制流程图(flowchart)
  8. leetcode力扣46. 全排列
  9. 栈溢出(Stack Overflow)
  10. VidMasta:搜索和观看在线电影、电视剧的神器
  11. Java实现抓取百度识图结果的实现和思路-3-实现断点传输
  12. 《秘密》-- 东野圭吾
  13. hive时间AM PM格式转化为24小时制 按小时分morning,noon 思路+演示
  14. [小样本医学图像]Generalized Organ Segmentation by Imitating One-shot Reasoning using Anatomical Correlation
  15. Android 云游戏实现
  16. Android鬼点子-自定义View就像PS
  17. 特斯拉充电电流设置多大_特斯拉充电时间需要多久?汽车知识介绍
  18. ML—广义线性模型导论
  19. 数据库45道SQL作业题及答案
  20. CGAL笔记之单元格复合体和多面体篇—曲面网格

热门文章

  1. typedef用法详解
  2. 宝马android系统升级,宝马史上最大规模软件升级,换新OS7系统和安卓Auto,您的换了吗...
  3. c51语言编程实验报告,C51单片机实验报告程序.doc
  4. 2016年计算机辅助设计试题,cad考试题「附答案」
  5. WebMagic抓取阿里司法拍卖信息
  6. caffe lmdb
  7. eclipse中添加subclipse插件
  8. 痛惜!浙大一学科带头人病逝,年仅47岁
  9. Native Instruments Maschine 2 v2.14.7 WiN-MAC 节奏音乐制作软件含拓展
  10. 【gazebo要素9】 SDF制作Model文件(2)