【目标检测】yolov1基本思想和网络结构以及论文补充

论文题目:You Only Look Once

1.RCNN系列缺点和YOLOv1的优缺点:

1.RCNN系列缺点:

1.两阶段目标检测方法,速度很慢【第一阶段:提取候选框;第二阶段:用分类器筛选候选框】
2.因为随机候选框是不能看到全景,所以会丢失很多东西(背景和前景的关系,不同物体之间的关系)

2.YOLOv1引入

YOLOv1是单阶段目标检测方法,不需要像Faster RCNN这种两阶段目标检测方法一样,需要生成先验框(下边会解释)。Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测。
在这里插入图片描述

3.创新点

1.引进新参数confidence
2.yolov1中没有anchor的概念,yolo是直接预测4个坐标信息
3.单阶段预测模型

4.YOLOv1的3个优点:

1.快,每秒处理45帧,实现实时处理
2.对图像全景有上下文关联
3.泛化能力强,在艺术作品上进行测试得到好的结果

将目标检测问题当作回归问题解决
不需提取候选框(单阶段)端到端、快速、捕捉全图上下文信息、recall高、迁移泛化好

5.YOLOv1的缺点:

1.每个网格只对应两个bounding box,当物体的长宽比不常见或是新的(也就是训练数据集覆盖不到时),效果较差。
2.原始图片只划分为7x7的网格,当两个物体靠的很近时,效果比较差。
3.最终每个网格只对应一个类别,容易出现漏检(物体没有被识别到)。
4.对于图片中比较小的物体,效果比较差。这其实是所有目标检测算法的通病。
5.定位误差高(因为没有anchor,分类正确但定位误差大是yolo误差的主要来源)

2.预测阶段(前向推断)过程:

YOLO目标检测:首先将输入图片resize到448x448×3,然后送入CNN网络,最后处理网络预测结果得到检测的目标。相比R-CNN系列算法,其是一个统一的框架,其速度更快,而且Yolo的训练过程也是end-to-end的。

具体来说,YOLO将全图划分为S × S的格子, 每个格子负责对落入其中的目标进行检测,一次性预测所有格子所含目标的边界框、置信度、以及所有类别概率向量

1.论文思想

1.将一幅图像分成SxS个网格,如果某个物体的中心落在这个网格中,则这个网络就负责预测这个物体
2.每个网格要预测B个bounding box,每个bounding box,除了要预测位置之外,还要附带预测一个confidence值。每个网格还要预测c个类别的分数

对于每个网格单元cell
1.YOLOv1会预测两个边界框
2.每个边界框包含5个元素:( x , y , w , h ) 和 边界框的置信度得分(box confidence score)
3.只负责预测一个目标
4.预测 C个条件概率类别(conditional class probabilities)

具体细节
输入4484483的图像,输出7730(5+5两个框+20类别)的张量grid cell还包含每个类别的概率,用grid cell的类别概率 * grid cell自己生成的bounding box的置信度,就获得该bounding box对应各个类别的概率(不再是条件概率了)。这里和rcnn系列不同
在这里插入图片描述
如果网格中有目标,Pr(object) = 1,confidence 就等于 IoU;如果网格中没有目标,则 Pr(object) = 0,confidence 也为 0。
注意:在 YOLO v1 中是没有 Anchor 这个概念的。所以网络预测的值直接就是坐标信息。在测试的时候,预测的类别分数乘上 confidence 值就可视为最终的目标类别预测概率。

ss个grid cell,每个gridcell生成b个bounding box,每个gridcell包含2个bounding box,和20个类别。这里是77*2=98个框,最后设定一个阈值,把概率太低的删去。
每个bounding box又包含5个参数分别是。置信度参数,四个坐标参数 [中心坐标。宽高]。

因为每个gird cell最多只能预测一个物体,所以7*7最多只能预测49个物体,所以这是yolov1预测小目标或者密集目标差的原因。
在这里插入图片描述

2.网络结构

在这里插入图片描述
YOLO输入图像的尺寸为448 × 448,经过24个卷积层,2个全连接的层(FC),最后在reshape操作,输出的特征图大小为7 × 7 × 30。

1.YOLO主要是建立一个CNN网络生成预测 7 × 7 × 1024的张量,
2.然后使用两个全连接层执行线性回归,以进行7 × 7 × 2边界框预测。将具有高置信度得分(大于0.25)的结果作为最终预测。
3.在3 × 3的卷积后通常会接一个通道数更低1 × 1的卷积,这种方式既降低了计算量,同时也提升了模型的非线性能力。
4.除了最后一层使用了线性激活函数外,其余层的激活函数为 Leaky ReLU(下边有解释)
5.在训练中使用了 Dropout 与数据增强的方法来防止过拟合。(下边有解释)
6.对于最后一个卷积层,它输出一个形状为 (7, 7, 1024) 的张量。 然后张量展开。使用2个全连接的层作为一种线性回归的形式,它输出个参数,然后重新塑形为 (7, 7, 30) 。

3.预测阶段后处理、NMS极大值抑制

置信度过滤,非极大值抑制
对预测框筛选过滤,把重复的预测框只保留一个,最终保留预测的结果(包含把低置信度的框过滤掉,重复的框去掉,这个过程叫做nms,非极大值抑制)
注意
每个bb的类别概率有一个概率排序,从大到小。从最大的开始,后边的全部与之做IOU值比较,若小于某个阈值就直接置0,以此类推。
在这里插入图片描述

4.训练阶段(反向传播)

深度学习和监督学习的训练是通过梯度下降和反向传播迭代的去微调神经元中的权重来使得损失函数最小化的过程,目标检测是一个典型的监督学习的过程。

YOLO使用预测值和GT之间的误差平方的求和(MSE)来计算损失。

1.损失函数

localization loss -> 坐标损失(预测边界框与GT之间的误差)
classification loss -> 分类损失
confidence loss -> 置信度损失(框里有无目标, objectness of the box)

在这里插入图片描述
红框代表的是““好孩子”,绿框代表的是“坏孩子”,紫框代表的是“好的学习小组””
grid cell分为两类:一种负责检测物体的(包括一类负责物体检测的bb好孩子,另一类被淘汰的bb坏孩子),另一种不负责检测物体的(不负责物体检测的bb坏孩子
FPS
每秒处理多少张图片
mAP
平均准确度

2.为什么宽和高都要进行开根号处理呢?

以下图为例,假设绿色为真实目标边界框,蓝色为预测的目标边界框。假设小物体和大物体预测的偏移是一样的,则对于小目标而言预测结果比较差,而对于大目标而言预测结果还算比较好。所以要提升小目标的损失。如果不取根号,损失函数往往更倾向于调整尺寸比较大的预测框。例如,20个像素点的偏差,对于800×600的预测框几乎没有影响,此时的 IoU 数值还是很大,但是对于80×60的预测框影响就很大。开根号是为了尽可能的消除大尺寸框与小尺寸框之间的差异。
在这里插入图片描述

3.如何解决目标检测正负样本数目不均衡问题?

在这里插入图片描述

4.YOLO和fast rcnn各类错误比例分析

在这里插入图片描述
前者的区分背景能力差
原因:因为它只识别了候选框中的图像,所以丧失了全图的信息,会把很多背景误判为目标
后者的精准定位差
原因:1.输入图片尺寸小
2.一个网络干了整个目标检测的事(一般情况下速度和性能是不能兼得的)
在这里插入图片描述

5.论文细节补充

1.一般每秒处理30张图片就算得上是实时监测了( in real-time at 45 frames per second)
2.AP(PR曲线围成的面积,面积越大越好)
3.PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系
4.训练阶段:ground truth框中心点落到哪个grid cell里哪个grid cell就应负责检测这个物体。检测这个物体的bbox就应由这个grid cell生成。
5.bb分为3类:①负责预测bb的预测框②不负责预测物体的bb,iou值小③不负责预测物体,不在同一个grid cell中
6.leaky ReLu(yolov1中提到)在这里插入图片描述
7.平方和误差:回归问题损失函数,易于优化
但对于定位和分类误差一视同仁、对包含物体和不包含物体的bb一视同仁、对大框和小框一视同仁
解决办法:增大负责预测物体bb的权重,减小不负责检测物体的bb的权重
求根号来减少大框误差
8.yolov2初始化都带有anchor,固定长宽;yolov1初始框都是随机的(yolov1无anchor机制,B个框逐渐特化,每个框都聚焦至特定形状或长宽比)
9.集成模型要“好而不同”优势互补,避免“近亲繁殖”

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jul7_LYY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值