参考:https://www.bilibili.com/video/BV15w411Z7LG?p=4&vd_source=de203b26ba8599fca1d56a5ac83a051c
一、计算视觉解决的问题
主要可以解决:Classification(分类),Localization(定位),Object Detection(目标检测),Segmentation(分割)。

其中分割任务又分为Semantic Segmentation(语义分割),Instance Segmentation(实例分割)。

二、YOLO对于传统模型的优点
(1)无需提取候选区域
(2)无复杂的上下游处理工作
(3)端到端的训练优化
(4)一次前项推断得到bbox定位及分类结果,所以YOLO是单阶段模型。

三、YOLOV1目标检测算法
理解YOLOV1目标检测算法的核心在于:分清预测和训练阶段

(1)网络结构

YOLO网络首先需要将输入图片缩放至448x448x3的大小,再通过一系列的卷积,池化,全连接层,最终得到7x7x30的块。这里可以粗略的将模型理解成黑盒子,也就是暂时不关心盒子内部具体的网络结构,只需要知道我们输入一张符合要求的图片,最终可以得到一个7x7x30大小的矩阵的就可以了。

(2)YOLO网络是如何预测的

YOLO网络最终要完成的任务是定位+分类
首先我们来阐述在预测阶段,是怎么对黑盒网络生成的7x7x30的矩阵进行处理的。
①7*7代表我们最终将图片分割为7x7也就是49个方块(如左图所示)。
②一个方块我们叫做Grid cell(网络单元)
③每一个Grid cell将会预测2个Bounding box(边界框)每一个边界框需要由4个变量进行定位
④每一个边界框,都自带置信度,可视化中通过线的粗细来表示。
最终生成的就是如中间上图所示的情况(可视化)。

而每一个Grid cell都还要自带对20种分类结果的可能性大小(类似于回归中的概率大小)。
最终我们可以算出来,一个Grid cell需要有2x5+20=30个变量去定义。
所以这也就是最终输出的7x7x30的矩阵中每一个元素的含义。

(3)预测阶段的后处理
从上述的预测中,我们可以知道,最终我们可以得到98个不同置信度,不同类别的BBox,所以我们最终的任务就是挑选出最好的BBox,删除其他不需要的BBox。所以在预测阶段的后处理中,我们主要进行NMS(非极大值抑制)


上图主要介绍了整个过程,首先我们将负责处理概率的部分拿出来,也就是有98个竖条,分别代表98个BBox,每个BBox中有20个标签的概率。我们要进行如下几步操作:
①设定阈值,将低于阈值的概率置0。
②从高到低排序
③非极大值抑制。


以上图为例,介绍非极大值抑制的过程。
首先将第一大概率和第二大概率的BBox进行IOU对比。IOU的全称为交并比(Intersection overUnion)。如果最后的结果大于某个阈值,我们就认为,这两个BBOX识别了一个物体,这个时候我们就将低置信度的BBox的概率置0。
将第一名和后续所有的对比一轮。再将第二个不为零的与后续的所有进行对比,以此类推。这样就可以得到所有的结果。当然这是对一个类别的操作。
我们需要将所有类别都进行这样的对比,这样最后得到了一个大的稀疏矩阵,将得到的结果可视化就能得到最后的定位和分类的结果。

**这个故事告诉我们的道理是:
①我们要有实力,才能在挑选中幸存下来。
②很多情况下,都是赢者通吃。
③不要动别人的蛋糕太多,否则会被更有实力的人吃掉。 **

(4)YOLOV1是如何训练模型的
在传统深度学习中,训练模型的过程就是使用梯度下降和反向传播方法,不停的迭代网络中的神经元,最终不停的降低损失函数的过程。YOLOV1也是类似的,我们需要有一些已经被分类和定位的图片进行训练。

首先上图中的绿框(gound truth)有一个中心点,而由上面的论述可以知道,一个GC会生成两个BBox,所以要做的就是用这两个BBox中的一个去尽量的拟合这个已经确定好的绿框。而用哪一个BBox去拟合gound truth,这也要用到IOU交并比。这里值得注意的是,剩下的框(这里包含没有被选中的BBox,也包含那些没有被gound truth选中GC所生成的两个BBox)均不会参与预测,但是这并不意味着这些框没有作用,这些框会在损失函数中参与运算。

当然每一个框也包含了这个框所预测物体的标签,所以一个图片中最多能被预测7x7=49个物体,这也是YOLOV1的一些弊端,也就是没法很精准的预测很多小的物体。

如上图所示,YOLOV1的训练误差函数由五块组成,分别是:
①负责检测物体的BBOX的中心点定位误差。
②负责检测物体的BBOX的宽高定位误差。
③负责检测物体的BBOX的Confidence误差。
④不负责检测物体的BBOX的Confidence误差。
⑤负责检测物体的GC的分类误差。

具体的就不仔细解释了。这里有两个简单逻辑,负责检测物体的BBOX,它对应的GC也是负责检测物体的。一个BBOX负责检测物体,则它对应的另一个BBOX就不负责检测物体。

四、YOLOV1的一些问题
在YOLOV1中有一些显而易见的问题,比如:
(1)为什么一个GC要设定两个BBOX,如果只设定一个BBOX,然后让他去拟合gound truth不就行了吗?
(2)在预测阶段中,最初始的框是怎么生成的?
……
这些问题都将在YOLOV2中得到解释。

YOLOV1-目标检测综述相关推荐

  1. Yolov1目标检测算法详细分析

    Yolov1目标检测算法详细分析 Yolov1介绍 这是继RCNN,fast-RCNN 和 faster-RCNN之后,rbg(Ross Girshick)大神挂名的又一大作,起了一个很娱乐化的名字: ...

  2. 【目标检测】(5) YOLOV1 目标检测原理解析

    各位同学好,今天和大家分享一下YOLOV1目标检测的原理. 1. 预测阶段--前向传播 预测阶段就是在模型已经成功训练之后,输入未知图片,对图片预测.此时只需要前向传播运行这个模型. 流程如下图,模型 ...

  3. 【百度飞浆】目标检测综述

    目标检测综述 什么是目标检测 应用场景 商品检测 智慧交通 巡检:安全生产 巡检:输电通道本体及缺陷识别 存在的挑战 垂类细分领域 算法进展 传统目标检测算法 深度学习的优势 两阶段之RCNN:深度学 ...

  4. Deep Learning for Generic Object Detection: A Survey -- 目标检测综述总结

      最近,中国国防科技大学.芬兰奥卢大学.澳大利亚悉尼大学.中国香港中文大学和加拿大滑铁卢大学等人推出一篇最新目标检测综述,详细阐述了当前目标检测最新成就和关键技术.文章最后总结了未来8个比较有前景的 ...

  5. 后 R-CNN时代, Faster R-CNN、SSD、YOLO 各类变体统治下的目标检测综述:Faster R-CNN系列胜了吗?,(知乎ChenJoya大佬,讲的挺好的,记录一下)

    我们检测到你可能使用了 AdBlock 或 Adblock Plus,它的部分策略可能会影响到正常功能的使用(如关注). 你可以设定特殊规则或将知乎加入白名单,以便我们更好地提供服务. (为什么?) ...

  6. 2020年最全目标检测综述(完结篇)

    点击蓝字关注我们 computerVision 计算机视觉战队 ● 扫码关注,回复:目标检测 ● 获取目标检测相关下载链接 今天我们的目标检测综述最后一章,也是这个系列的完结,希望有兴趣的同学可以从中 ...

  7. 2022目标检测综述

    目录 0.引言 1.背景 1.1.问题描述 1.2.目标检测的核心问题 1.3.目标检测中的关键挑战 2.关于损失函数 3.关于IOU 4.数据集以及评价指标 4.1.评价指标 4.2.数据集 5.目 ...

  8. 目标检测综述——单阶段检测器

    文章目录 一.SSD((Single Shot MultiBox Detector)) 1.Default box 2.训练过程 3.数据增强 4.其他变体 (1)DSSD (2)DSOD (3)FS ...

  9. 深度学习之目标检测综述

      这里是自己这几天读过的几篇论文的笔记,美其名曰为"综述".   当年AlexNet 掀起 CNN 网络热潮,深度学习也逐渐被应用到目标检测(object detection)中 ...

  10. 基于深度学习的目标检测综述

    基于深度学习的目标检测算法归类和总结 整体框架 目标检测算法 主要包括:[两阶段]目标检测算法.[多阶段]目标检测算法.[单阶段]目标检测算法 什么是两阶段目标检测算法,与单阶段目标检测有什么区别? ...

最新文章

  1. java中定义类的关键字为_在Java中,定义类的关键字是__________________.
  2. 利用python3.x实现小爬虫下载贴吧内图片
  3. B. Lynyrd Skynyrd(倍增 + 区间最小值)
  4. java 启动内存参数_请问该如何设置Java虚拟机JVM启动内存参数?
  5. It's a beautiful world!
  6. Android之JNI① AS3.0以下DNK下载配置和第一个JNI程序
  7. 关于table固定宽高以及td内容过长换行的解决办法
  8. 《云边有个小卖部》的优秀读后感作文2100字
  9. dpdk 多进程共享内存描述信息的机制
  10. linux下iso文件的制做和解压
  11. IE浏览器CSS hack方式一览
  12. NC65点击单据按钮打开web窗口
  13. 跨平台键鼠共享synergy和常见问题
  14. 赛灵思Xilinx可用资源的获取途径
  15. linux运维工程师面试题和笔试题大全(*大学生必看)
  16. 2023第十六届“认证杯”数学建模网络挑战赛第一阶段比赛经历分享
  17. 所谓的世纪迷题,连大名鼎鼎的爱因斯坦也曾为此题大伤脑筋?
  18. 比较器Comparable跟Comparator
  19. 6108v9c卡刷包_wc6108v9c线刷包_wc6108v9c刷机包_wc6108v9c固件包_wc6108v9c救砖包 - 线刷宝ROM中心...
  20. Win10闹钟没有声音问题的解决

热门文章

  1. jQuery中的end()方法
  2. 平稳/非平稳信号举例
  3. 斐波那契问题——上台阶问题
  4. 「雕爷学编程」Arduino动手做(23)——矩形脉冲发生器
  5. visual Studio Code(VS code)软件中HTML超级好用的一个插件 liveserver,vs code浏览网页
  6. win10 系统更新服务器出错怎么办,win10系统更新出错的两种解决方法
  7. 为什么说期货交易者依靠程序化交易系统接口才能获得成功
  8. Excel中计算个人所得税的公式
  9. win7通过远程桌面连接win10失败解决方法
  10. C++中的字符串的定义方式