YOLOv2

CVPR17, 也叫YOLO9000

本文实在YOLOv1的基础上改进,达到了'Better, Faster & Stronger'的效果。

1. Better

YOLOv1 存在两个问题:

a. 很多localization errors.

b. low recall.

怎么改进呢? 直观的想法是让网络更深, 但是这会让运行速度变慢, 不合适。因此在维持原有网络大小的情况下,加入一些巧妙地trick, 让模型表现更好。以下简单列举这些tricks:

a. 加入BN层

b. High Resolution Classifier. 考虑预训练在classifier dataset上进行, 图片分辨率一般较小, 正式训练在检测数据集, 分辨率较大, 这样模型需要学习调整应对分辨率的变化。那么直接在预训练后加上几个epoch, 改用较大分辨率图片, 这样检测训练时过渡自然。

c. 模仿faster rcnn等使用Anchor booxes。 值得一提, 使用anchor, 并没有提升mAP, 但是recall显著提升, 高的recall提供了更大的提升空间。

d. Dimension Clusters. 我们知道faster rcnn等anchor的尺寸时人为定义的,这样可能不是最优的, 文中提出k-means, 以IOU为度量尺度进行聚类, 在k=5时,也就是5个anchor时, 效果匹敌传统的9个anchor。

e. Direct location prediction. 传统anchor使用时, 预测(x,y)会很不稳定,因为它可以出现在图的任何位置。这里遵循YOLOv1的方法, 预测边界框中心点相对于对应cell左上角位置的相对偏移值。
网络在最后一个卷积层输出13*13的feature map,有13*13个cell,每个cell有5个anchor box来预测5个bounding box,每个bounding box预测得到5个值。分别为:tx、ty、tw、th和to(类似YOLOv1的confidence)
为了将bounding box的中心点约束在当前cell中,使用sigmoid函数将tx、ty归一化处理,将值约束在0~1,这使得模型训练更稳定。

f. fine-grained feature. 检测实在最后的13*13的feature map上进行的, 对小物体来说可能太粗糙了, 因此引入支路, 把前一个26*26的feature map加入检测。

e. multi-scale training.

这些设计的表现如下表:

 

2. Faster

主要把backbone换成Darknet-19,参数更少, 精度更高。

3. Strong

带标注的检测数据集量比较少,而带标注的分类数据集量比较大,因此YOLO9000主要通过结合分类和检测数据集使得训练得到的检测模型可以检测约9000类物体。
一方面要构造数据集(采用WordTree解决),另一方面要解决模型训练问题(采用Joint classification and detection)。
不是我的兴趣, 不详细看了。

Reference:

https://blog.csdn.net/lwplwf/article/details/82895409

 

 


 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值