深度学习物体检测详解:YOLO V2

YOLO V2 —— YOLO9000:Better, Faster, Stronger

Improvements:

1. Batch Normalization:显著提高模型收敛速度, 不需要其他正则手段(比如Dropout)。给每个卷基层都增加BN后,mAP提高了2个点。

2. High Resolution Classifier:将图像分辨率从224 x 224扩大为448 x 448,finetune之后,mAP提高了4个点。

3. Convolutional With Anchor Boxes:将YOLO V1的全链接层删除了,用anchor boxes来预测bboxes。具体如下:

(1)移除一个pooling层,是的卷基层输出的分辨率更高。

(2)将图像分辨率收缩为 416 x 416,这样最终的feature map为13 x 13,边长是奇数,有一个中心cell。这样做是为了只用一个cell来预测中心的物体,而不用相邻的4个cell来一起预测。

(3)和YOLO V1相同,objectness prediction仍旧预测 ground truth 和 proposed box 的 IOU。但是,V2是在每一个 anchor box 上都会预测类别概率,如下图所示。V1只会预测98个boxes,但是V2预测超过一千个boxes,使得mAP从69.5下降到95.2,但是recall从81%提高到88%。


4. Dimension Clusters:YOLO在使用anchor boxes的过程中遇到了两个问题,第一个是box尺寸的选择

(1)虽然网络能够学习调整box的坐标和尺寸,但是假如我们能提供更好的鲜艳,会使得网络能够更容易的做出好的预测。

(2)我们没有使用人工选择的box,而是在训练集上使用k-means聚类自动选择。

我们希望能通过anchor boxes获得好的IOU scores,并且IOU scores是与box的尺寸无关的,为此定义了新的距离公式: 

d(box,centroid)=1IOU(box,centroid)


实验结果表明,5种k-means生成的boxes的Avg IOU(61.0)就和Faster R-CNN的9种Avg IOU(60.9)相当。说明k-means方法的生成的boxes更具有代表性,使得检测任务更好学习。


5. Direct location prediction:YOLO在使用anchor boxes的过程中遇到的第二个问题是模型不稳定

(1)在RPN中,网络是根据偏移量,预测box中心点的,公式如下:


假如tx=1,就会把box向右移动anchor box的宽度;假如tx=-1,就会把box向左移动anchor box的宽度。

这个公式有个问题,假如对tx和ty取值范围没有限制,那么在任意cell,预测出的box可以在整张图片的任意位置,导致模型需要很长时间才能收敛。

因此没有采用这个公式,而是预测box相对于cell的偏移,即把ground truth限制到0,1之间。我们使用logistic激活函数来限制输出在这个区间内。

网络在feature map每个cell预测5个bboxes。每个bbox预测5个坐标,tx,ty,tw,th和to。假设一个cell左上角的坐标是(cx,cy),bbox的先验宽度和高度是pw,ph,则预测结果为:



这个限制使得参数更容易学习,网络更稳定。Dimension Clusters,Direct location prediction和Anchor boxes使得mAP提高了5个点。

6. Fine-Grained Features:改进的YOLO模型最终在13 x 13的feature map做检测,但是检测小的物体,可能需要更细粒度的feature。Faster R-CNN和SSD都在不同尺度的feature map做预测。我们采用不同的策略,添加了一个passthrough层,将26 x 26分辨率下的特征融合起来。


类似于ResNet的Identity Mapping,passthrough层通过将相邻特征堆叠到不同的通道,将较高分辨率特征与低分辨率特征的信息融合。这使得26×26×512的特征图转换为与原始特征相连接的13×13×2048的特征图。YOLO V2的检测器在这个扩展的特征图的顶部运行,以便利用细粒度的特征。使得mAP提高了1个点。

7. Multi-Scale Training:YOLO V2只使用了卷基层和pooling层,因此可以动态调整输入图像的尺寸。我们希望YOLO V2对于不同尺寸图像的检测都有较好的鲁棒性,因此做了针对性训练。 

训练时每迭代10次,就会随机选择新的输入图像尺寸。因为YOLO V2的网络使用的downsamples倍率为32,所以使用32的倍数调整输入图像尺寸{320,352,…,608}。训练使用的最小的图像尺寸为320 x 320,最大的图像尺寸为608 x 608。 

这种策略让YOLO V2不得不学着对不同尺寸的图像都要预测得很好,这意味着同一个网络可以胜任不同分辨率的检测任务。在网络训练好之后,在使用时只需要根据需求,修改cfg文件中的网络输入图像尺寸(width和height的值)即可,使得检测速度和精度很容易折中。



检测网络结构:


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EnjoyCodingAndGame

愿我的知识,成为您的财富!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值