美文网首页
检测论文综述(二):yolo

检测论文综述(二):yolo

作者: Junr_0926 | 来源:发表于2018-08-26 17:43 被阅读0次

    前言

    You only live once.

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

    这篇论文大概是yolo系列的第一篇文章。RCNN系列方法使用的是region proposal,来首先产生一个潜在的框,然后通过一个分类器来进行分类,最后还会使用框回归来对框进行精修。在这篇论文中,作者将检测任务使用一个回归问题来进行描述,直接从图片像素级的描述得到bounding boxclass probabilites
    YOLO的结构如下:

    detection system
    从上图看出,yolo使用一个CNN同时预测多个bounding box和他们的不同类别的概率。

    1.1 Unified Detection

    检测系统会将输入图片栅格化为S*S个格子,如果物体的中心落在了某个格子里,那么这个就负责检测出该物体。
    每一个格子都会预测B个bounding boxes和这些boxes的确信度confidence scoresConfidence scores反应了整个模型有多确信,该box包含了某个物体,以及模型认为该box预测的有多精确。作者定义confidencePr(Object) * IOU^{truth}_{pred}
    如果,某个栅格不包含物体,那么我们期望confidence0,如果包含物体,那么我们期望confidence等于predicted boxground truthIOU
    每一个bounding box包含了5个预测值:x, y, w, h, confidence。其中,(x, y)预测bounding box的中心相对于该栅格的位置,(w, h)预测相对于图片的大小,confidence预测, 预测框和ground truth的IOU。
    每一个栅格还预测C个条件概率,Pr(Class_i|Object)
    测试阶段,使用下列公式来预测每个bounding box的预测的类别的概率:Pr(Class_i|Object) * Pr(Object) * IOU^{truth}_{pred} = Pr(Class_i) * IOU^{truth}_{pred}

    1.2 Network Design

    模型如下图:


    模型结构

    设计主要参考了GoogLeNet。

    1.3 训练

    作者先使用ImageNet预训练,并在预训练的结果上增加了4个卷积层和2个全连接层。并且输入从224*224改为了448*448。最后一层同时预测class probabilitiesbounding box coordinates。作者使用图片的长,宽对bounding box进行了归一化,使得它们的结果在0到1之间。
    作者选择了 leaky rectified作为激活函数

    leaky
    作者使用平方和作为loss。它有几个不足
    • 它对分类错误和定位错误一视同仁
    • 对于一个图片,有很多栅格不包含物体,那么confidence就应该是0,这导致它们提供的梯度淹没了那么包含物体的栅格提供的梯度。
      作者使用了\lambda_{coord}=5\lambda_{noobj}=0.5来减弱不包含物体的栅格造成的影响。

    YOLO对于每一个栅格会预测多个框,但是在训练阶段,对于每个物体,作者只想要一个框来预测该物体。因此,作者选择IOU最高的那个框,作为预测物体的那个框。

    整个loss定义如下:

    loss
    (图片中的那个 distance metric
  1. Direct location prediction:作者认为RCNN中预测的框的offset是没有界限的,它可能导致最终的框在图片的任何地方,因此作者继续沿用YOLO预测坐标的办法,对于每一个 bounding box 网络会预测5个坐标t_x, t_y, t_w, t_h, t_o。如下图:
    pred
  2. Fine-Grained Features:对于大物体来说13*13的feature map可以足够了,但是对于小物体来说,可能更加精细的特征才会有效。作者在网络中增加了一条通路(pass through),直接从前面的层(26*26 resolution)取出特征。
  3. Multi-Scale Training:为了使网络适应不同尺度,作者每次训练一部分数据,就改变输入图片尺寸,从320*320到608*608。
  4. 2.2 Faster

    • 作者使用Darknet-19作为基础的分类网络,比VGG快
    • 使用ImageNet预训练
    • 修改网络,并训练(检测)

    2.3 Stronger

    作者使用了标记好的用于分类的数据训练检测模型。在训练过程中,作者将分类数据和检测数据混合,当当前数据是检测数据的时候,就使用YOLOv2 的loss 函数进行反向传播。当当前数据是分类数据的时候,就使用模型中分类部分进行反向传播。
    但是这样的思路有一些问题:

    • 检测数据集的类别都是一些很常见的类型:狗,船等,分类数据集中包含了更加广泛,细致的类别:如各种各样狗的品种。
    • 分类时常常使用softmax,这就意味着类别之间是互不相同的,并且互不包含。

    Hierarchical classification

    3. YOLOv3: An Incrermental Improvement

    作者提出了一些能提高YOLO性能的方法

    3.1 Bounding Box Prediction

    Bounding box

    预测Bounding box和cell之间的偏移,

    3.2 Class Prediction

    使用Binary Cross-Entropy loss来进行类别的预测。

    3.3 Predictions Across Scales

    后记

    Boxes are stupid.

    相关文章

      网友评论

          本文标题:检测论文综述(二):yolo

          本文链接:https://www.haomeiwen.com/subject/jhnniftx.html