目标检测系列:Yolo_v2

YOLO9000: Better, Faster, Stronger

 

一、改进点

Yolo_v1相比其他目标检测算法主要的缺点是位置框预测不准确、召回率低。因此Yolo_v2引入了很多新的idea,主要是在保证检测精度的前提下解决这两个问题。主要是分为三个方面:Better、Faster和Stronger。

1、Better

目标检测系列:Yolo_v2

Batch Normalization。

在所有卷积层后加BN层,能加快训练收敛,并防止网络过拟合。MAP提升2%。

High Resolution Classifier

yolo_v1先使用224*224输入训练分类任务后改为448*448输入训练检测任务,yolo_v2直接使用448*448输入训练分类任务。MAP提升4%。

Convolutional With Anchor Boxes.

yolo_v1使用全连接层直接预测bounding box的框坐标及置信读得分,yolo_v2采用anchor box预测bounding box位置及得分。

具体网络结构上的改变:去掉一个max pooling层,增大featue map size(由7*7增大为13*13),为得到奇数大小的feature map size,将网络输入大小由448*448改为416*416。网络整体的stride=32。

对每个anchor box,预测 5+C 个值,C表示C个类别出现在框内预测概率,表示anchor box中心点坐标、框高、框长、ground truth box与proposed box的IOU值。

使用anchor box后MAP会有弱微降低,但召回率有明显提升。

Dimension Clusters

使用K-Means聚类训练集中目标框,得到anchor box的初始值,而不是由人为的设置。为兼顾模型复杂度和召回率,实验表明K=5时其每个位置取5个anchor box。

目标检测系列:Yolo_v2

K-means计算框距离使用的指标是bounding box框与中心框的IOU值,这样的指标不受框本身的尺寸大小影响。即:

目标检测系列:Yolo_v2

Direct location prediction

在RPN网络预测tx和ty值,anchor box中心点坐标预测值为(文中公式应该有误,把加号写成了减号

目标检测系列:Yolo_v2

补充:anchor的预测公式来自Faster-RCNN,具体计算公式如下:

目标检测系列:Yolo_v2

目标检测系列:Yolo_v2

计算的坐标偏移量 目标检测系列:Yolo_v2 没有做限定,预测值目标检测系列:Yolo_v2 和 目标检测系列:Yolo_v2 可以在图像任意位置,很可能偏离了该anchor box原始的像素点(grid cell),导致网络需要经过较长时间才能趋于稳定。在yolo_v2中将anchor box的预测框中心点限定在原始的grid cell中,这是通过使用logistic 函数实现。

目标检测系列:Yolo_v2

目标检测系列:Yolo_v2

Fine-Grained Features

在yolo_v1中只基于最高层的特征做预测,在本文中引入了特征融合思想,将低层特征(featuren map size:26×26×512)使用类似ResNet模块的分支与最高层特征(featuren map size:13×13×1024)拼接,提取更精确的特征。MAP提升1%。

Multi-Scale Training. 

在训练过程中将输入图片resize到不同的大小(32的倍数),文中为{320,352,,,,,608}。每10个batch换一个size。

Better 的实验结果

目标检测系列:Yolo_v2目标检测系列:Yolo_v2

 

2、Faster

主要是提出一个新的基网络Darknet-19。包含19层卷积和5层maxpooling。在训练检测任务时,去掉最后的卷积层,添加3个3*3*1024卷积及1个1*1*(5*(5+C))的卷积用于得到预测值。并且从最后的3*3*512层引出一个旁路与倒数第二层feature map拼接。

目标检测系列:Yolo_v2

3、Stronger