YOLO V2

版权声明:本文为博主原创文章,未经博主允许不得转载

论文:YOLO9000:Better, Faster, Stronger

链接:https://arxiv.org/abs/1612.08242

2017CVPR的文章


论文详解:

这里分3个部分讲,Better, Faster, Stronger

 

Better:

作者先是谈到YOLO的两个缺点:

1.定位不准确

2.与基于region proposal的检测器相比,召回率低。。

 

作者接着谈到YOLO并不是通过加深或加宽网络来提高性能,反而简化了网络,作者从过去的工作中有了各种各样的想法,结合新颖理念来提高YOLO的表现。

 

1.Batch Normalization

每一层网络的输入都会因前一层网络参数的变化导致其分布发生改变,这要求我们必须使用一个很小的学习率和对参数很好的初始化,这回让训练过程变得慢而且复杂。简单来讲,BN对网络的每一层的输入做了归一化,数据分布是稳定的,收敛会快点。另外BN也可也规范模型,去掉了dropout.

 

2.High Resolution Classifier

作者提到detection的时候,分辨率从224*224提高到448*448,会导致模型学习目标检测的同时适应图像输入的分辨率。YOLOv2将预训练分成两步:先用224*224的输入从头开始训练网络,大概160个epoch(one epoch 所有数据跑了一次),然后输入调整到448*448,训练10个epoch,最后在检测的数据集上fine-tuning。

 

3.Convolutional With Anchor Boxes

YOLO predicts the coordinates of bounding boxes directly using fully connected layers on top of the convolutional feature extractor.Instead of predicting coordinates directly Faster R-CNN predicts bounding boxes using hand-picked priors.

原来的YOLO全连接层直接预测bounding box的坐标,而Faster RCNN引入anchor,YOLO V2借鉴了这个方法。

 

作者先将网络的全连接层和一个pooling层去掉(有更高的分辨率输出),接着缩减了网络,416*416代替了原来的448*448,原因嘛,我标注的那段说的挺明白的,作者期望特征图有着奇数的宽和高,因为这样只有一个center ceil,那为什么希望一个center ceil呢?因为大的object往往中心落在图像的中心位置,我们期望用一个位置去预测,而不是4个。

 

4.Dimension Clusters 

作者在这里谈到了引入anchor box时遇到的第一个问题:以往的box dimensions的大小和比例是根据人工经验选择的,作者说到一开始就用好的anchor box会使得网络更好学习地去预测。作者采用了k-means聚类,接着又发现标准的k-means(欧几里得距离)会带来box尺寸大的比小的误差要大,而我们希望跟尺寸大小无关,所以文中定义了新的距离度量:

We choose k = 5 as a good tradeoff between model complexity and high recall. 

作者选择了k=5来平衡模型复杂度度与recall值。

 

5.Direct Location prediction

作者在引入anchor box 的时候遇到的第二个问题:模型不稳定,尤其在早期训练时。作者认为这种不稳定来之x,y的预测。

作者继续沿用了YOLO算法预测相对于grid ceil的方式,

 

每个cell预测5个bounding box ,每个bounding box预测5个值:tx,ty,tw,th和to,tx和ty经过sigmoid范围落在0-1,cx和cy表示ceil的左上角与图像的原点的距离。pw,ph表示bounding box prior的宽和高。作者谈到对位置预测的约束,使得参数更容易学习,网络更加稳定,使用dimension clusters和direct Location prediction提高了5%的map。

 

6.Fine-Grained Features

 

作者谈到13*13的feature map 对于预测大的目标足够了,对于小的目标效果不好。Faster RCNN 和SSD网络利用了不同的feature maps来得到细粒度特性,提高对小目标的预测。作者这里加了passthrough layer,这个层就是把前面一层26*26的feature map与13*13的feature map相连接,有点像ResNet。

 

 

7.Multi-Scale Training

为了让YOLO V2更加robust,希望能够在不同大小的图片上运行,所以作者采用了Multi-Scale Training,输入图像的size是变化的,{320,352,....608}。网络在小size的时候训练较快,大size的时候训练较慢,因此速度与准确率取得了较好的平衡。检测结果如下图所示:

 

Faster:

作者简单比较了VGG-16和YOLO的GoogleNet,接着提出了新的分类网络,Darknet-19。

 

1.Training for classification.

2.Training for Detection 

 

 

Stroner:

YOLO9000部分看的云里来雾里去的,简单地贴些原文,具体以后有机会看了代码再来说:

Joint classification and detection:简单讲就是融合分类和检测数据集,分类数据集学习预测坐标和一般的分类,检测数据集学习更多种类的分类。那么怎么训练呢,对于分类的数据集,backpropagate时,根据所有的loss,对于检测的数据集,根据特定的分类loss。

 

We traverse the tree down, taking the highest confidence path at every split until we reach some threshold and we predict that object class.

我们沿着树向下遍历,在每次分割时选择最高的置信度路径,直到达到某个阈值并预测对象类。

For example,if the network sees a picture of a dog but is uncertain what type of dog it is, it will still predict “dog” with high
confidence.

例如,如果网络看到一张狗的照片,但不确定是什么类型的狗,它仍然会预测“狗”的高度的信心。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值