【目标检测】YOLO系列-yolo v1(2015年)

目录

一、YOLOv1

0. yolo v1创新点

1. YOLOv1 优缺点

1.1 YOLO 模型相对于之前的物体检测方法有多个优点:

1.2 缺点(不足):

2 网络结构及检测流程

2.1 网络结构

3 输入输出、损失函数是什么

4 Loss的权重

5 bbox的置信度

6 MAP结果


IoU(Intersection-over-Union)指标

IoU 简称交并比,顾名思义数学中交集与并集的比例。假设有两个集合 A 与 B, IoU 即等于 A 与 B 的交集除以 A 与 B 的并集,表达式如下:

在目标检测中,IoU 为预测框 (Prediction) 和真实框 (Ground truth) 的交并比。如下图所示,在关于小猫的目标检测中,蓝线边框为预测框 (Prediction),红线边框为真实框 (Ground truth)。

在目标检测任务中,通常取 IoU≥0.5,认为召回。如果 IoU 阈值设置更高,召回率将会降低,但定位框则更加精确。理想的情况,当然是预测框与真实框重叠越多越好,如果两者完全重叠,则交集与并集面积相同,此时 IoU 等于 1。

一、YOLOv1

0. yolo v1创新点

  • 将整张图作为网络的输入,直接在输出层回归 bounding box 的位置和所属的类别(将对象检测作为一个回归问题)

  • 速度快,one stage detection 的开山之作

之前的目标检测方法需要先产生候选区再检测的方法虽然有相对较高的检测准确率,但运行速度较慢。

YOLO 将识别与定位合二为一,结构简便,检测速度快,更快的 Fast YOLO 可以达到 155FPS。

1. YOLOv1 优缺点

1.1 YOLO 模型相对于之前的物体检测方法有多个优点

  1. YOLO 检测物体非常快。
    因为没有复杂的检测流程,只需要将图像输入到神经网络就可以得到检测结果,YOLO 可以非常快的完成物体检测任务。标准版本的 YOLO 在 Titan X 的 GPU 上能达到 45 FPS。更快的 Fast YOLO 检测速度可以达到 155 FPS 。而且,YOLO 的 mAP 是之前其他实时物体检测系统的两倍以上。

  2. YOLO 可以很好的避免背景错误,产生 false positives。
    不像其他物体检测系统使用了滑窗或 region proposal,分类器只能得到图像的局部信息。YOLO 在训练和测试时都能够看到一整张图像的信息,因此 YOLO 在检测物体时能很好的利用上下文信息,从而不容易在背景上预测出错误的物体信息。和 Fast-R-CNN 相比,YOLO 的背景错误不到 Fast-R-CNN 的一半。

  3. YOLO 可以学到物体的泛化特征。
    当 YOLO 在自然图像上做训练,在艺术作品上做测试时,YOLO 表现的性能比 DPM、R-CNN 等之前的物体检测系统要好很多。因为 YOLO 可以学习到高度泛化的特征,从而迁移到其他领域。

1.2 缺点(不足):

  1. 相对于当时state-of-the-art (两阶段)的目标检测算法,YOLO的精度要低很多

  2. YOLO 容易产生物体的定位错误(边框回归不是偏移量,是直接回归坐标值,这样网络比较难训练好)。

  3. YOLO 对小物体的检测效果不好(尤其是密集的小物体,因为一个栅格只能预测 2个物体)。

  4. 召回率低(网络产生的检测框较少,只有S×S×B个检测狂)。

2 网络结构及检测流程

2.1 网络结构

YOLO 网络借鉴了 GoogLeNet 分类网络结构,不同的是 YOLO 使用 1x1 卷积层和 3x3 卷积层替代 inception module。如下图所示,整个检测网络包括 24 个卷积层和 2 个全连接层。其中,卷积层用来提取图像特征,全连接层用来预测图像位置和类别概率值

2.2 检测流程

  • 先将图片缩放到固定尺寸

  • YOLO 将输入图像划分为 S*S (论文中是 7×7)个栅格,每个栅格负责检测中心落在该栅格中的物体。

  • 每一个栅格预测 B (论文中是 B取2 )个 bounding boxes

        每个边界框会预测 5 个值,分别是:(x, y, w, h, scores)

        ① 边界框的中心 x,y(相对于所属网格的边界)

        ② 边界框的宽高 w, h(相对于原始输入图像的宽高的比例))

        ③ 边界框的confidence scores。(即边界框与 ground truth box 的IOU值)

  • 同时每个网格还需要预测 c (论文中的 c=20)个类条件概率 (是一个 c 维向量,表示某个物体 object 在这个网格中,且该 object 分别属于各个类别的概率,这里的 c 类物体不包含背景)

  • 每个网格需要预测 2x5+20=30个值,这些值被映射到一个 30 维的向量

  • YOLO 最后采用非极大值抑制(NMS)算法从输出结果中提取最有可能的对象和其对应的边界框。(下面非极大抑制的流程)

    • 1. 设置一个 Score 的阈值,一个 IOU 的阈值(overlap);

    • 2. 对于每类对象,遍历属于该类的所有候选框,①过滤掉 Score 低于 Score 阈值的候选框;
      ②找到剩下的候选框中最大 Score 对应的候选框,添加到输出列表;
      ③进一步计算剩下的候选框与②中输出列表中每个候选框的 IOU,若该 IOU 大于设置的 IOU 阈值,将该候选框过滤掉(大于一定阈值,代表重叠度比较高),否则加入输出列表中;
      ④最后输出列表中的候选框即为图片中该类对象预测的所有边界框

    • 3. 返回步骤 2 继续处理下一类对象。

当 overlap 阈值越大、proposals boxes 被压制的就越少,结果就是导致大量的 FP (False Positives),进一步导致检测精度下降与丢失 (原因在于对象与背景图像之间不平衡比率,导致 FP 增加数目远高于 TP)

当 overlap 阈值很小的时候,导致 proposals boxes 被压制的很厉害,导致 recall 大幅下降。

3 输入输出、损失函数是什么

  • 输入:论文中输入是 448×448

  • 输出:结果是一个 7 × 7 × 30 = 7 × 7 × ( 2×(4+1) + 20) 的张量。

  • 损失函数

下面图中坐标预测的x式子少了平方.

如上图所示,损失函数分为四个部分:

  1. 坐标预测(蓝色框)
  2. 含有物体的边界框的 confidence 预测(红色框)
  3. 不含有物体的边界框的 confidence 预测(黄色框)
  4. 分类预测(紫色框)。 

4 Loss的权重

1)bbox坐标预测的权重coodd = 5

        由于不同大小的边界框对预测偏差的敏感度不同,小的边界框对预测偏差的敏感度更大。为了均衡不同尺寸边界框对预测偏差的敏感度的差异。作者巧妙的对边界框的 w,h 取均值再求 L2 loss。YOLO 中更重视坐标预测,赋予坐标损失更大的权重,记为 coord,坐标预测的权重coodd = 5 ,类别预测部分的权重取 1。

2)网格中没有物体时,bbox的confidence权重noobj=0.5

        由于一幅图中大部分网格中是没有物体的,这些网格中的边界框的 confidence 置为 0,相比于有物体的网格,这些不包含物体的网格更多,对梯度更新的贡献更大,会导致网络不稳定。为了平衡上述问题,YOLO 损失函数中对没有物体的边界框的confidence error赋予较小的权重,记为 noobj,对有物体的边界框的 confidence error 赋予较大的权重。在 pascal VOC 训练中 noobj=0.5 ,有物体的边界框的 confidence error 的权重设为 1

3)网格中有物体时,bbox的confidence权重为1(系数为1公式中直接省掉)

4)class类别预测权重为1(系数为1公式中直接省掉)

5 bbox的置信度

1)bbox的目标confidence score定义为

        其中,如果有object落在一个grid cell里,第一项取1,否则取0。 第二项是预测的bounding box和实际的groundtruth之间的IoU值。

2)bbox的类别confidence score:

在test的时候,每个网格预测的class信息和bounding box预测的confidence信息相乘,就得到每个bounding box的class-specific confidence score:

 

6 MAP结果

  • MAP比双阶段目标检测低一点,但速度快很多。
  • VOC2007测试结果:
  • yolo_v1(VGG16)         MAP = 66.4     FPS = 21
  • Fast R-CNN(VGG16)  MAP = 73.2     FPS = 7
  • SSD300(VGG16)        MAP = 74.3     FPS = 46     备注:SSD晚出来1年
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值