【YOLOv1】《You Only Look Once: Unified, Real-Time Object Detection》

13人阅读 评论(0) 收藏 举报
分类:

YOLO v1

《You Only Look Once: Unified, Real-Time Object Detection》
论文地址


1 核心思想:

  “We frame object detection as a regression problem to spatially separated bounding boxes and associated class probabilities.”

  从R-CNN到Fast R-CNN一直采用的思路是先生成region proposal,然后再对proposal进行分类和回归,精度已经很高,但是速度还不行。 YOLO提供了另一种更为直接的思路: 直接在输出层回归bounding box的位置和bounding box所属的类别(整张图作为网络的输入,把 Object Detection 的问题转化成一个 Regression 问题)。

2 特点:

这里写图片描述

2.1 优点

  1. YOLO is extremely fast – no complex pipeline
  2. Twice the mean average precision of other real-time systems
  3. YOLO reasons globally about the image – less background errors
  4. YOLO learns generalizable representations of objects – new domain and unexpected input (art works).

2.2 缺点

  1. 识别物体位置精准性差。
  2. 召回率低。
  3. YOLO对相互靠的很近的物体(挨在一起且中点都落在同一个格子上的情况),还有很小的群体(落在一个格子里)检测效果不好,这是因为一个网格中只预测了两个框(两个目标),并且只属于一类
  4. 测试图像中,当同一类物体出现的不常见的长宽比和其他情况时泛化能力偏弱。
  5. 对于小物体,Yolo的表现会不如人意。这方面的改进可以看SSD,其采用多尺度单元格。也可以看Faster R-CNN,其采用了anchor boxes。

3 网络结构和流程

3.1 网络流程

这里写图片描述

3.2 网络的结构

这里写图片描述

这里写图片描述

input: 448×448
output: S × S × (B * 5 + C)

这里写图片描述

  把图片分为S × S个grid,每个grid里面有B个(YOLOv1中B为2)bounding box和C个类别,每个bounding box 由5个参数构成,分别是p,x,y,w,h

  p: These confidence scores reflect how confident the model is that the box contains an object and also how accurate it thinks the box is that it predicts.

P=Pr(Object)IOUpredtruth

  Pr(Object): bounding box中有目标的时候为1,没有为0
  IOUpredtruth: predict 的 bounding box 与 ground truth的IOU

  x,y :bounding box的中心坐标,在某个grid中,所以是相对每个grid的,grid的左上角为(0,0),右下角为(1,1)
  w,h:bounding box的长宽,是相对整张图的
  所以x,y,h,w都是0~1之间的

  eg :下图把图片分为 7×7 个grid,每个grid两个bounding box 是 2*5,二十个类别是20
output: 7×7×(2*5+20) = 7×7×30

这里写图片描述
这里写图片描述

4 训练

  预训练分类网络: 在 ImageNet 1000-class competition dataset上预训练一个分类网络,这个网络是图The architecture of network中的前20个卷机网络+average-pooling layer+ fully connected layer (此时网络输入是224*224)。

  训练检测网络:转换模型去执行检测任务,《Object detection networks on convolutional feature maps》提到说在预训练网络中增加卷积和全链接层可以改善性能。在他们例子基础上添加4个卷积层和2个全链接层,随机初始化权重。检测要求细粒度的视觉信息,所以把网络输入也又224*224变成448*448。见图The architecture of network

  损失函数

这里写图片描述

  • 首先区分定位误差分类误差
  • 然后其区分不包含目标的边界框含有目标的边界框的置信度

  损失函数的设计目标就是让坐标(x,y,w,h)confidenceclassification 这个三个方面达到很好的平衡。简单的全部采用了sum-squared error loss来做这件事会有以下不足:

  • 8维的localization error和20维的classification error同等重要显然是不合理的;
  • 如果一个网格中没有object(一幅图中这种网格很多),那么就会将这些网格中的box的confidence push到0,相比于较少的有object的网格,这种做法是overpowering的,这会导致网络不稳定甚至发散。

  解决方案如下

  • 更重视8维的坐标预测,给这些损失前面赋予更大的loss weight, 记为 λcoord ,在pascal VOC训练中取5。(上图蓝色框)
  • 对没有object的bbox的confidence loss,赋予小的loss weight,记为λnoobj,在pascal VOC训练中取0.5。(上图橙色框)
  • 有object的bbox的confidence loss (上图红色框) 和类别的loss (上图紫色框)的loss weight正常取1。

  • 对不同大小的bbox预测中,相比于大bbox预测偏一点,小box预测偏一点更不能忍受。而sum-square error loss中对同样的偏移loss是一样。 为了缓和这个问题,作者用了一个比较取巧的办法,就是将box的width和height取平方根代替原本的height和width。 如下图:small bbox的横轴值较小,发生偏移时,反应到y轴上的loss(下图绿色)比big box(下图红色)要大。

    这里写图片描述

5 测试

  Test的时候,每个网格预测的class信息 Pr(Classi|Object) 和bounding box预测的confidence信息Pr(Object)IOUpredtruth相乘,就得到每个bounding box的class-specific confidence score。

这里写图片描述

  等式左边第一项就是每个网格预测的类别信息,第二三项就是每个bounding box预测的confidence。这个乘积即encode了预测的box属于某一类的概率,也有该box准确度的信息。

这里写图片描述

这里写图片描述

  对每一个网格的每一个bbox执行同样操作: 7x7x2 = 98 bbox (每个bbox既有对应的class信息又有坐标信息)

这里写图片描述

这里写图片描述

这里写图片描述

  得到每个bbox的class-specific confidence score以后,设置阈值,滤掉得分低的boxes,对保留的boxes进行NMS处理,就得到最终的检测结果。

这里写图片描述

6 性能分析

6.1 误差分析

  这里看一下Yolo算法在PASCAL VOC 2007数据集上的性能,这里Yolo与其它检测算法做了对比,包括DPM,R-CNN,Fast R-CNN以及Faster R-CNN。其对比结果如表所示。与实时性检测方法DPM对比,可以看到Yolo算法可以在较高的mAP上达到较快的检测速度,其中Fast Yolo算法比快速DPM还快,而且mAP是远高于DPM。但是相比Faster R-CNN,Yolo的mAP稍低,但是速度更快。所以。Yolo算法算是在速度与准确度上做了折中。
这里写图片描述
  为了进一步分析Yolo算法,文章还做了误差分析,将预测结果按照分类与定位准确性分成以下5类:

  • Correct:类别正确,IOU>0.5;(准确度)
  • Localization:类别正确,0.1 < IOU<0.5(定位不准);
  • Similar:类别相似,IOU>0.1;
  • Other:类别错误,IOU>0.1;

这里写图片描述

  可以看到,Yolo的Correct的是低于Fast R-CNN。另外Yolo的Localization误差偏高,即定位不是很准确。但是Yolo的Background误差很低,说明其对背景的误判率较低。

6.2 Combining Fast RCNN and YOLO

  ”YOLO makes far fewer background mistakes than Fast R-CNN. By using YOLO to eliminate background detections from Fast R-CNN we get a significant boost in performance.”

这里写图片描述

6.3 Generalization Results

这里写图片描述

这里写图片描述


参考
【1】图解YOLO by 晓雷
【2】YOLO算法的原理与实现 by 叶虎
【3】YOLO详解 by 赵丽丽
【4】YOLO实时目标检测系统 by 黄月红
【5】《You Only Look Once: Unified, Real-Time Object Detection》

查看评论

论文提要“You Only Look Once: Unified, Real-Time Object Detection”

项目主页:http://pjreddie.com/darknet/yolo/这篇文章着重在检测的速度提升,区别于之前的方法是用分类器来做检测,文章对bbox和对应的类概率进行回归,检测速度可以达到45...
  • cv_family_z
  • cv_family_z
  • 2015-07-08 14:51:39
  • 13897

论文笔记(3)You Only Look Once:Unified, Real-Time Object Detection

本文旨在实现图像中的物体检测,和之前的R-CNN不同的是,它利用一个单一的CNN,完成了在整个图像上bounding box和类别概率的预测。这既使得它可以实现end-to-end的优化,同时也提高了...
  • dp_BUPT
  • dp_BUPT
  • 2015-10-16 11:03:08
  • 6117

YOLO:You Only Look Once: Unified, Real-Time Object Detection论文总结

一、摘要 之前的目标检测分方法都是通过各种方式将回归问题转化成分类问题解决,作者通过空间划分的包围盒以及相关类概率将目标检测直接设计成回归问题。作者使用了一个单独的神经网络来直接一次性从整张图像上预...
  • mw_mustwin
  • mw_mustwin
  • 2017-01-02 16:34:56
  • 389

论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection

1. YOLO的核心思想 2. YOLO的实现方法 3. YOLO的训练技术细节 4. YOLO的缺点
  • tangwei2014
  • tangwei2014
  • 2016-03-17 17:06:37
  • 19417

论文阅读:You Only Look Once: Unified, Real-Time Object Detection

这篇今年 CVPR 2016 年的检测文章 YOLO,我之前写过这篇文章的解读。但因为不小心在 Markdown 编辑器中编辑时删除了。幸好同组的伙伴转载了我的,我就直接考过来了。以后得给自己的博文留...
  • u010167269
  • u010167269
  • 2016-09-23 19:07:11
  • 8201

RCNN学习笔记(6):You Only Look Once(YOLO):Unified, Real-Time Object Detection

这是继RCNN,fast-RCNN 和 faster-RCNN之后,rbg(Ross Girshick)大神挂名的又一大作,起了一个很娱乐化的名字:YOLO。  虽然目前版本还有一些硬伤,但是解决了目...
  • u011534057
  • u011534057
  • 2016-04-25 20:56:38
  • 18530

You Only Look Once Unified, Real-Time Object Detection.pdf

  • 2017年03月14日 22:58
  • 1.7MB
  • 下载

文献笔记 You Only Look Once:Unified, Real-Time Object Detection

2016_CVPR 文章:You Only Look Once:Unified, Real-Time Object Detection 作为深度学习大神 rbg 的又一篇 2016CVPR 论文,迫不...
  • u012905422
  • u012905422
  • 2016-05-11 10:21:09
  • 1018

论文笔记|You Only Look Once: Unified, Real-Time Object Detection

Author Joseph Redmon, Santosh Divvalay, Ross Girshick{, Ali Farhadiy Joseph Redmon #
  • bea_tree
  • bea_tree
  • 2016-06-19 20:27:30
  • 1617

【笔记】YOLO: You Only Look Once:Unified, Real-Time Object Detection

论文下载:http://arxiv.org/abs/1506.02640 代码下载:https://github.com/pjreddie/darknetppt:deepsystems.io 【绝对值...
  • Julialove102123
  • Julialove102123
  • 2017-06-20 11:22:05
  • 551
    个人资料
    持之以恒
    等级:
    访问量: 5646
    积分: 382
    排名: 30万+
    文章存档
    最新评论