YOLO 9000: Better, Faster, Stronger 论文笔记

YOLO9000是YOLOv1的改进版,通过引入BatchNormalization、高分辨率分类、AnchorBoxes等技术提升了定位和召回率。作者使用K-means聚类自动确定anchorboxes,使用多尺度训练增强网络泛化能力。YOLOv2在448x448分辨率上训练,提高了mAP,并能同时检测9000种物体。
摘要由CSDN通过智能技术生成

YOLO 9000: Better, Faster, Stronger

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

一、Problem Statement

作者改进了YOLOv1以及提出了目标分类与检测联合训练的方法,通过这种方法,YOLO9000可以同时在COCO和ImageNet数据集中进行训练,训练后的模型可以实现多达9000种物体的实时检测。

二、Direction

Better, Faster: YOLOv2
Stronger: YOLO9000

作者认为YOLOv1在定位问题上较为严重,低召回率。因此作者在YOLOv2主要提升localization和recall。主要在以下几个方面:

  1. Batch Normalization
  2. High Resolution Classifier
  3. Convolutional with Anchor Boxes
  4. Dimension Clusters
  5. Direct location prediction
  6. Fine-Grained Features
  7. Multi-Scale Training
  8. Backbone Darknet-19

三、Method

1、 Batch Normalization

作者在所有卷积层使用了BN,mAP提升超过2%。把Dropout替换掉

2、 High Resolution Classifier

YOLOv1分类器网络训练使用224x224的分辨率输入,作者在YOLOv2上提升到448x448。作者首先对分类网络(自定义的darknet)进行了fine tune,分辨率改成448x448,在ImageNet数据集上训练10轮(10 epochs),训练后的网络就可以适应高分辨率的输入了。然后,作者对检测网络部分(也就是后半部分)也进行fine tune。这样通过提升输入的分辨率,mAP获得了4%的提升。

3、 Convolutional with Anchor Boxes

YOLOv1直接采用全连接层预测bounding box的坐标。作者借鉴了Faster-RCNN中RPN对anchor boxes预测offsets和confidences的经验,移除了全连接层,使用Anchor boxes来预测bounding boxes。 作者认为预测offsets而不是直接预测坐标点简化了问题而且使得网络更容易去学习。具体实施: 首先把一个pooling layer删除掉,保证网络输出高分辨率的特征。然后通过缩减网络,使其可以输入分辨率为416x416的图片,而不是448x48。这样做的目的是为了能够在输出的特征图上获得一个奇数的长宽,这样就只有一个center cell。 因为如果特征图有多个中心,目标,特别是大目标就会占据多个center,这样预测会效率较低。之后作者把YOLO网络降采样32倍,从416x416的输入得到13x13的特征图输出。既然使用了anchor boxes,作者就对每一个anchor box预测class和objectness。objectness仍然延续YOLOv1的传统,根据anchor box和ground truth的IoU来进行判定。但是使用了anchor boxes稍微降低了一点精度。YOLOv1对每一张图片预测了7x7x2=98个boxes,但是YOLOv2预测了13x13x9=1521个boxes。

4、 Dimension Clusters

在YOLO中使用anchor boxes,作者考虑了两个问题:

  1. box的维度是手动精选的(hand-picked)。虽说在训练过程中网络也会学习调整boxes的宽高维度,最终得到准确的bounding boxes。但是,如果一开始就选择了更好的、更有代表性的先验boxes维度,那么网络就更容易学到准确的预测位置。
    作者使用了对训练集的bounding boxes进行了K-means聚类,自动找出较好的先验框(anchor box priors)。
  2. K-means聚类的方法
    传统的K-means聚类使用的是Euclidean distance, 但作者没有使用Euclidean distance去进行聚类,因为大的boxes比小的boxes会产生更大的error。而我们想的先验框是有好的IoU scores, 这个是与框的大小没有关系的。因此作者使用了
    d ( b o x , c e n t r o i d ) = 1 − I O U ( b o x , c e n t r o i d ) d(box, centroid)=1-IOU(box,centroid) d(box,centroid)=1IOU(box,centroid)
    平衡复杂度和IOU之后,最终得到k值为5,意味着作者选择了5种大小的box维度来进行定位预测,这与手动精选的box维度不同。结果中扁长的框较少,而瘦高的框更多(这符合行人的特征)。

5、 Direct location prediction

在YOLO中使用了anchor boxes,作者还考虑了模型稳定性的问题。作者认为大多数的不稳定性来自于预测框的(x,y)坐标。在RPN中,网络预测了 t x , t y t_x, t_y tx,ty,然后中心点坐标(x,y)通过计算得出:
x = ( t x ∗ w a ) + x a y = ( t y ∗ h a ) + y a x=(t_x*w_a)+x_a\\y=(t_y*h_a)+y_a x=(txwa)+xay=(tyha)+ya
上面公式时没有限制的,也就是说任何一个anchor box可以最终落在图片任何位置,这样的话随机初始化后,网络需要花很长一段时间才能稳定预测敏感的物体位置。
所以作者没有直接预测offsets,而是预测相对于grid cell的localization coordinates,ground truth限定在0-1并且使用logistic函数把预测值也限定在0-1的范围内
网络在一个特征图上对每个grid cell输出5个bounding boxes,对每个bounding boxes输出5个值,分别为 t x , t y , t w , t h t_x,t_y,t_w,t_h tx,ty,tw,th t o t_o to。如果这个cell相对于图片的offsets是 ( c x , c y ) (c_x,c_y) (cx,cy),且我们知道anchor boxes的长宽 p w , p h p_w,p_h pw,ph,我们可以计算得出预测框的坐标为:
b x = σ ( t x ) + c x b y = σ ( t y ) + c y b w = p w e t w b h = p h e t h P r ( o b j e c t ) ∗ I O U ( b , o b j e c t ) = σ ( t 0 ) b_x=\sigma(t_x)+c_x\\b_y=\sigma(t_y)+c_y\\b_w=p_we^{t_w}\\b_h=p_he^{t_h}\\Pr(object)*IOU(b,object)=\sigma(t_0) bx=σ(tx)+cxby=σ(ty)+cybw=pwetwbh=phethPr(object)IOU(b,object)=σ(t0)

6、 Fine-Grained Features (细粒度特征)

使网络输出13x13的特征图,并在其上进行预测,虽然这足以胜任大尺度物体的检测,但是用上细粒度特征的话,这可能对小尺度的物体检测有帮助。Faser R-CNN和SSD都在不同层次的特征图上产生区域建议,获得了多尺度的适应性。这里使用了一种不同的方法,简单添加了一个转移层( passthrough layer),这一层要把浅层特征图(分辨率为26x26连接到深层特征图,类似于ResNet的操作。

7、 Multi-Scale Training

由于YOLOv2只采用卷积层和池化层,所以可以任意输入图片大小。不同于固定输入网络的图片尺寸的方法,作者在几次迭代后就会微调网络。每经过10次训练(10 epoch),就会随机选择新的图片尺寸。YOLO网络使用的降采样参数为32,那么就使用32的倍数进行尺度池化{320,352,…,608}。最终最小的尺寸为320x320,最大的尺寸为608x608。接着按照输入尺寸调整网络进行训练。这种机制使得网络可以更好地预测不同尺寸的图片,意味着同一个网络可以进行不同分辨率的检测任务,在小尺寸图片上YOLOv2运行更快,在速度和精度上达到了平衡。

8、 Multi-Scale Training

使用Darknet-19, 19个卷积层和5个maxpooling layers。

四、Conclusion

使用K-means聚类产生的anchor box大小代替Faster R-CNN和SSD手工设计的anchor boxes;在高分辨率图像上进行迁移学习,提升网络对高分辨图像的响应能力;训练过程图像的尺寸不再固定,提升网络对不同训练数据的泛化能力。除了以上三点,YOLOv2还使用了残差网络的直接映射的思想,R-CNN系列的预测相对位移的思想,Batch Normalization,全卷积等思想。

References

  1. https://zhuanlan.zhihu.com/p/42861239
  2. https://blog.csdn.net/wfei101/article/details/79398563
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值