单次目标检测器之YOLO I

系列文章目录


第一章 目标检测综述
第二章 基于候选区域的目标检测方法之R-CNN
第三章 基于候选区域的目标检测方法之Fast R-CNN
第四章 基于候选区域的目标检测方法之Faster R-CNN
第五章 基于候选区域的目标检测方法之R-FCN
第六章 单次目标检测器之SSD
第七章 单次目标检测器之YOLO I
第八章 单次目标检测器之YOLO II
第九章 单次目标检测器之YOLO III
第十章 单次目标检测器之YOLO IV
第十一章 单次目标检测器之YOLO V
第十二章 单次目标检测器之TOLO X



YOLO系列概述

在这里插入图片描述
YOLO系列之前的目标检测方法,
对于一张Image,基于滑窗的方法需要设置不同的滑窗去滑动来遍历整个Image, 基于区域的方法需要首先确定潜在的候选区域(即所谓的ROI),然后通过分类器来评估这些ROI,在通过Post-processing来进一步改善Bounding box, 这些过程都是分开执行的。

YOLO(Youy Only Look Once)系列方法可以将上述过程融为一体:直接把整个Image送入网络, 然后模型输出可能的bounding boxes以及对应的置信度值Confidence score, 以及每个栅格所属类别概率向量。

具体一点,分三个步骤:

  1. 将Image先Resize到指定尺寸248 x 248;
  2. 将其送入网络,即可得到一些bounding boxes及其对应的Confidence socre, 以及类概率向量;
  3. 进行非极大值抑制(Non-Maximum Supression, NMS)以去粗冗余的bunding boxes;
    如下图所示,
    在这里插入图片描述

YOLO I

YOLO模型输出

在这里插入图片描述
如上图所示YOLO将每张Image划分为S x S (此处S=7)的栅格, 每个栅格称为一个Cell, 其作用是检测中心包含在栅格内的物体。

每个栅格做B (=2)次预测,对应B个bounding boxes及其相应的COnfidence score, 另外还输出每个栅格属于各个类别的后验概率向量, 假设类别数为C (C=20), 则每个栅格的预测结果由长度为(4+1)B+C (=30) 的向量组成,最终的输出结果实际上就是尺寸为:S x S x (5B+C)的Tensor.

bounding boxes信息如下图所示:
在这里插入图片描述
可以看到bounding boxes由一系列的(x, y, w, h, c) 组成, 其中:
坐标(x,y)表示预测的bounding box 相对于栅格边界的Offset;
w,h 分别表示bounding box的width, height相对于整个Image的比例;
c表示该bounding box是否包含物体以及边界框的准确度,c实际上就是该预测的bounding box与所包含物体的真实bound ing box的IOU值。正式的,c = p r ( o b j e c t ) ⋅ I O U p r e d p r e d pr(object) \cdot IOU_{pred}^{pred} pr(object)IOUpredpred.

类概率信息如下图所示:
在这里插入图片描述

注: 置信度值c是依赖于bounding box的,用来估计bound ing box的准确度,而类概率向量是依赖于栅格的,也可以看成是栅格的所有bounding box所共享的,二者不是一个层面的东西

那么上述这二者(bounding box的置信度与栅格的类条件概率向量) 是怎么关联起来的呢?

在测试的时候, 将每个bounding box的置信度值与对应的类概率相乘,公式如下:
P r ( c l a s s i ∣ o b j e c t ) ⋅ c = P r ( c l a s s i ⋅ I O U p r e d t r u t h ) Pr(class_{i}|object) \cdot c=Pr(class_{i}\cdot IOU_{pred}^{truth}) Pr(classiobject)c=Pr(classiIOUpredtruth)
这样一来,对每一个bounding box都可以得到其属于特定类的置信度值,这些值一方面反映了bounding box的准确度,同时也反映了各类别物体出现在该box的概率。
具体操作示意图如下:
在这里插入图片描述
最终可以得到Cx(SSB)的map, 后面的NMS等步骤就是在这个map上进行的。

损失函数

YOLO将物体检测任务建模为回归问题,下图为损失函数的组成。
可以看到前4项为bounding box相关的损失(包括bounding box坐标预测损失以及置信度值预测损失), 第5项为类别损失。

损失函数设计的几个思路:
(1) Localization loss 和classifcation loss的损失尺度显然不同,Localization loss 是4B=8维的, 而classifcation loss是C=20维的, 因此增加了系数 λ c o o r d \lambda_{coord} λcoord;
(2) 不包含物体的bounding boxes数量肯定远远比包含物体的bounding boxes的数量多, 更严重的是一旦不包含物体,则置信度值c=0, 导致其在更新时对梯度的贡献更大, 因此需要平衡这二者的损失,引入参数 λ n o o b j \lambda_{noobj} λnoobj;
(3) 对不同尺寸的bounding boxes, 小的bounding box对偏移更为sensitive, 因此在w,h有关的损失项中加入了开方操作;

损失函数设计的最终目的是为了实现localization loss, confidence loss, classification loss三者之间的平衡。
在这里插入图片描述

非极大值抑制NMS

由于每个栅格有多个predictions,最终有SxSxB个bounding boxes, 然而一个Image中物体有限,并且每个物体的中心位置必然属于一个栅格。 因此bounding box存在大量冗余, NMS的作用就是去掉冗余,确定每个物体的最佳的predicted bounding box及该物体的类别

下图展示了去冗余的全部过程:
(1) 首先逐行检查类概率矩阵,将小于指定阈值Threshold的类概率置零
在这里插入图片描述
(2)紧接着执行NMS,
对每个类别Class (对应图中的一行),先确定类概率最大的bounding box (记为box_best), 然后分别计算该bounding box与其他bounding box (记为box_cur)的IOU值,如果IOU(box_best, box_cur) > threshold, 则将box_cur的该类别位置的概率置零 (这也是NMS的含义由来),

整个过程完成以后, 最佳的bounding boxes以及bounding box所属的类别也就确定了,最理想的情况是所有的物体都已经检测到,并且每个bounding box的类概率向量中只有一个为1.
如下图所示。
在这里插入图片描述

网络结构

如下图所示, YOLO检测网络由24 个convolution layer, 和2个fully-connected layer组成,
具体:
YOLO基于GoogleNet进行改进: 用1x1+3x3卷积替换了Inception module, 经过GoogleNet后,feature map分辨率减小为原来的1/32, 最终输出的尺寸为:14 x 14 x 1024,
后面再连接4个convolution layers, 输出尺寸为7x7x1024,
再经过两个Fully-connected layer 并进行Reshap之后尺寸变为7x7x30。

后边再调用detection procedure (主要是NMS)即可得到结果。
在这里插入图片描述

在这里插入图片描述

训练过程

总结

YOLO优点很多:

  1. 最显著特点是速度快 <-one stage,
  2. 很好的避免background error (false positive), 即Precision高, 最根本的原因是能够看到整张Image, 因此更好地利用了上下文信息;
  3. 能学到泛化性强的Features;

当然YOLO也有缺点:

  1. YOLO的物体检测准确度低,召回率低;
  2. 密集的小目标识别效果不好, 由于每个栅格制作2次预测,
  3. 容易产生定位错误;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MasterQKK 被注册

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

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

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

打赏作者

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

抵扣说明:

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

余额充值