2021-03-10

yolov系列

基于候选框检测的R-CNN系列方法主要是通过region proposal产生大量的可能包含待检测目标的默认框 ,再用分类器去判断每个bounding box里是否包含有物体,以及物体所属类别的概率。YOLO将目标检测任务当做一个回归(regression)问题来处理,使用单个神经网络,直接从一整张图像来预测出 bounding box 的坐标以及 box 中包含目标类别的概率(class probabilities)。

一.yolov1

1.1yolov1的功能

输入一张图片,输出其中所包含的对象,以及每个对象的位置(包含该对象的矩形框)。

1.2yolov1的检测过程

(1)首先YOLOv1将输入图片分成 S x S 大小的网格

(2)每个网格预测一个类别信息和 B 个 bounding boxes的信息:

注意:训练开始阶段,YOLO并没有预先设置B个bounding box的大小和形状,也没有对每个bounding box分别输出一个对象的预测。网络预测的bounding box可能都是乱来的,但总是选择IOU相对好一些的那个,随着训练的进行,每个bounding box会逐渐擅长对某些情况的预测。

           类别信息:该网络内的目标预测为每个类别的概率,如果有C类,就是一个c维向量,

                                              P(C_{^{1}}|Object),\cdots P(C_{^{i}}|Object),\cdots ,P(C_{^{c}}|Object)

          每个bounding boxes要预测坐标位置和一个confidence

                    坐标位置:(Center_x,Center_y,width,height)

                   confidence含有所预测的box中含有object的置信度和这个box预测有多准的两重信息:

Confidence=P_{^{r}}(obiect)\ast IOU\tfrac{true}{pred}

           P_{^{r}}(obiect) 表示box中含有object的置信度,   IOU\tfrac{true}{pred}     表示box与真实位置的IOU

注意:IOU是在训练阶段计算的,测试阶段不需要(也无法)计算IOU。

一个bounding box的置信度Confidence意味着它 是否包含对象且位置准确的程度。置信度高表示这里存在一个对象且位置比较准确,置信度低表示可能没有对象 或者 即便有对象也存在较大的位置偏差。

(3) 根据(2)可以预测出S x SxB个目标窗口

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

P(C_{^{i}}|Object)\ast P_{^{r}}(obiect)\ast IOU\tfrac{true}{pred}= P_{^{r}}(C_{^{i}})\ast IOU\tfrac{true}{pred}

然后根据阈值去除可能性比较低的目标窗口;

(4)最后NMS去除冗余窗口即可

1.3网络结构

网络结构借鉴了 GoogLeNet 。24个卷积层,2个全链接层。并且使用了大量的1x1的卷积用来降低上一层的layer到下一层的特征空间。最后输出层用线性函数做激活函数,最后输出层用线性函数做激活函数。

举例说明

注意:训练前最重要的一步,将标签decode到7×7×30的向量

在PASCAL VOC中,图像输入为448x448,取S=7,B=2,一共有20个类别(C=20)。则输出就是7x7x30的一个tensor。

30=20+2*(4+1)

输入与输出的映射关系:

输出的每一维上向量的内容:

1.4损失函数

损失就是网络实际输出值与样本标签值之间的偏差。

YOLOv1全部使用了均方差(mean squared error)作为损失(loss)函数。由三部分组成:坐标误差、IOU误差和分类误差。

其中1^{_{ij}^{obj}}=\left \{ 1,0 \right \}代表第i个cell的第j个Bounding Box 对检测该物体负责。在论文的例子里,只有三个物体,因此只有3个该项为1;

1^{_{i}^{obj}}意味着存在对象的网格才计入误差,只有3。

对于相等的误差值,大物体误差对检测的影响应小于小物体误差对检测的影响。这是因为,相同的位置偏差占大物体的比例远小于同等偏差占小物体的比例。YOLO将物体大小的信息项(w和h)进行求平方根来改进这个问题,但并不能完全解决这个问题。

1.5优缺点

(1)优点

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

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

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

(2)缺点

(2.1) YOLO的物体检测精度低于其他state-of-the-art的物体检测系统。
(2.2) YOLO容易产生物体的定位错误。
(2.3) YOLO对小物体的检测效果不好(尤其是密集的小物体,因为一个栅格只能预测2个物体)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值