深度学习论文笔记:YOLO

Abstract

  • 之前的物体检测的方法是使用分类器来进行检测。
  • 相反,本论文将对象检测作为空间分离的边界框和相关类概率的回归问题。
  • 本论文的YOLO模型能达到45fps的实时图像处理效果。
  • Fast YOLO:小型的网络版本,可达到155fps。
  • 与目前的检测系统相比,YOLO会产生更多的定位错误,但是会更少的去在背景中产生false positive。

Introduction

  • DPM: use a sliding window approach where the classifier is run at evenly spaced locations over the entire image.

  • R-CNN: use region proposal methods to first generate potential bounding boxes in an image and then run a classifier on these proposed boxes. 具有slowhard to optimize的缺点。

  • 本论文将目标检测问题重新组织成single regression problem. 从图像像素转为bounding box coordinatesclass probabilities.

  • YOLO框架:

    • A single convolutional network simultaneously predicts multiple bounding boxes and class probabilities for those boxes.
    • YOLO trains on full images and directly optimizes detection performance.
  • YOLO模型的优势:

    • First, YOLO is extremely fast.
      • regression problem.
      • no batch processing on a Titan X.
    • Second, YOLO reasons globally about the image when making predictions.
      • YOLO makes less than half the number of background errors compared to Fast R-CNN.
    • Third, YOLO learns generalizable representations of objects.
  • YOLO在准确性方面依旧落后与其他先进的检测系统,但是可以快速的标注图片中的物体,特别是小物体。

Unified Detection

  • 本论文将物体检测中单独的组件统一到一个单一的神经网络中。网络利用整个图像的各个特征来预测每一个BB。而且同时为一张图片中所有的类预测所用的BB。

  • YOLO可以end-to-end来训练,而且能在保持高平均准确率的同时达到实时要求

  • 系统将输入图片分为$S*S$的网格单元。如果物体的中心落入某个格子,那么这个格子将会用来检测这个物体。

  • 每个网格单元会预测B个bounding box以及这些框的置信值。

  • 每个bounding box会有5个预测值:$x,y,w,h$和置信值confidence,$confidence = Pr(Object)*IOU^{truth}_{pred}$.

  • 每个网格单元也预测C个条件类概率,$Pr(Class_i|Object)$,在一个网格单元包含一个物体的前提下,它属于某个类的概率。我们只为每个网格单元预测一组类概率,而不考虑框B的数量。

  • 在测试的时候,通过如下公式来给出对某一个box来说某一类的confidence score:

  • Model示例:

    每个grid cell预测B个bounding boxes,每个框的confidence和C个类概率。

Network Design

  • YOLO网络结构图:

  • 起初的卷积层用来从图像中提取特征。

  • 全连接层用来预测输出的概率和坐标。

  • 24个卷积层,之后跟着2个全连接层

  • 最终输出是7 x 7 x 30的张量。

  • Fast YOLO和YOLO之间所有的训练和测试参数一样。

  • 在ImageNet上进行卷积层的预训练。

Training

  • 在ImageNet上预训练卷积层。预训练前20层卷积层,之后跟随者一个average-pooling layer和一个fully connected layer.

  • 将预训练的模型用来检测,论文Ren et al.显示给与训练好的模型添加卷积和连接层能够提高性能。所以添加了额外的4个卷积层和2个全连接层,其权值随机初始化。

  • 将像素从224x224提升到448x448。

  • 最后一层同时预测class probabilities和bounding box coordinates. 其中涉及到BB的长宽规范化。

  • 由于sum-squared error的缺点,增加边界框坐标预测的损失,并减少对不包含对象的框的置信度预测的损失。

  • large boxes中的偏差matter less than 与small boxes中的偏差。

  • YOLO为每一个网格单元预测多个BB,但是在测试期间,我们只想每一个物体有一个BB预测框来做响应,我们选择具有最高IOU的BB来作为响应框。

  • 总的loss function:

  • 135 epochs

  • batch size:64

  • 动量:0.9

  • decay:0.0005

  • 为防止过拟合,我们使用dropout和extensive data augmentation技术。

Inference

  • 在测试图像中预测检测只需要一个网络评估,与一般的classifier-based methods不同。
  • Non-maximal suppression可以用来修复multiple detections。

Comparison to Other Detection Systems

  • 检测流水线往往开始于提取健壮特征集(Haar, SIFT, HOG, convolutional features),然后分类器或者定位器用来识别特征空间的物体,这些分类器或者定位器往往在整个图像上或者在图像的子区域中滑动窗口。
  • 与DPM的比较。
  • 与R-CNN的比较。每个图片值预测98个bounding boxes。
  • 与其他快速检测器的比较。相比于单类检测器,YOLO可以同时检测多种物体。
  • 与Deep MultiBox的比较。YOLO是一个完整的检测系统。
  • 与OverFeat的比较。OverFeat是一个disjoint的系统,OverFeat优化定位,而非检测性能。需要大量的后处理。
  • 与MultiGrasp的比较。执行比目标检测更简单的任务。