【目标检测】YOLO-v2


论文链接

YOLO v2

YOLOv2相比于YOLO,精度更高,速度更快,预测类别更多。

1 精度改善

在YOLO的基础上,作出不同的改进,检测精度的变化如下表所示。

【目标检测】YOLO-v2

以下逐一介绍。

Batch Normalization

在卷积层后面增加BN,加速了模型的收敛,并且能在移除Droupout的情况下保证模型不会过拟合。mAP提升了2%

High Resolution Calssifier

原来YOLO用224×224的图像在ImageNet上训练分类网络,在训练整个网络的时候,放大图片到448×448,由于预训练的图像大小和训练检测网络时图像大小不一致,导致预训练好的网络要适应新的分辨率。

YOLOv2先用224×224的图像在ImageNet上训练好之后,再用448*448的图像训练10个epoch。然后在用于训练检测网络。mAP提高了约4%。

Convolutional With Anchor Boxes

Bounding box实际上的形状和大小是有一定规律的,并非随意。比如说车是偏方形,人是偏瘦高的。因此,认为地初设Anchor boxes大小,再预测偏移值,能使训练更为稳定。

因此对网络做了如下的变化:

  • 移除YOLOv1后面的全连接层
  • 将对类别的预测从附属于网格层面变到附属于Bounding box。原来的Bounding Box只预测5个参数(x,y,w,h,confidence),现在变成5个参数和20个类别概率共计25个参数。每个网格设置5个anchor,因此每个网格设置的参数是25*5=125个。
  • 现在网络的输出应该是7×7×125。将最后的卷积层换成3个卷积层,最后再增加一个1×1的卷积网络将7×7×1024转化成7×7×125。
  • 把输入从448×448变成416×416,使得输出特征图的大小为奇数。因为图像中心点经常被一个大物体占据,如果是偶数,比较不好确定它是属于哪个网格。
    【目标检测】YOLO-v2
  • 移除了一个池化层,使得输出特征图大小为13×13

使用Anchor boxes虽然使得mAP有轻微的下降,但是在召回率上提高了7%。

Dimension Clusters

对数据集中物体的边框进行聚类,确定常见边框的类别,相比于手动设计anchor的尺寸,聚类的结果更有利于模型的训练与预测。距离度量的方式是d( box, centroid )=1IOU(box, centroid )d(\text { box, centroid })=1-\mathrm{IOU}(\mathrm{box}, \text { centroid }), centroid是聚类中心点的边框。最后确定使用5种anchor。

Direct location prediction

对边框位置的预测如果不加约束,容易导致网络训练前期不稳定。例如RPN网络中预测框体的位置(x,y)与网络输出值tx,tyt_x,t_y的关系为:x=(txwa)xay=(tyha)yax=\left(t_{x} * w_{a}\right)-x_{a},y=\left(t_{y} * h_{a}\right)-y_{a}wa,haw_a,h_a分别是anchor的宽和高,随着预测值的不同,x、y的取值可以是图片上任何一个位置,不易于训练。

同YOLOv1一样,预测的是bounding box在网格中的相对位置,即0-1之间,为了实现该目的,采用sigmoid函数对输出结果进行约束。
bx=σ(tx)+cxby=σ(ty)+cybw=pwetwbh=pheth \begin{aligned} b_{x} &=\sigma\left(t_{x}\right)+c_{x} \\ b_{y} &=\sigma\left(t_{y}\right)+c_{y} \\ b_{w} &=p_{w} e^{t_{w}} \\ b_{h} &=p_{h} e^{t_{h}} \end{aligned}

  • cxcyc_x,c_y是网格到图片左上角的距离(根据图片大小归一化)
  • tx,ty,tw,tht_x,t_y,t_w,t_h是模型的输出值
  • bx,by,bw,bhb_x,b_y,b_w,b_h是预测bounding box的值
  • pw,php_w,p_h是anchor的宽和高,也是经过归一化

【目标检测】YOLO-v2

Fine-Grained Features

利用较浅层的特征图,结合深层的特征图作出预测。
【目标检测】YOLO-v2
将26×26×512拆分成13×13×2048.拆分方式如下图(说不清楚只能画图了)
【目标检测】YOLO-v2

Multi-Scale Training

由于没有全连接层,因此YOLOv2可以接受不同大小的图片输入。只要保证图片尺寸能被32整除即可。

2. 速度更快

作者使用了DarkNet-19作为基础网络,在保证精度的前提下,减小了模型的计算量,加快了速度。

【目标检测】YOLO-v2

【目标检测】YOLO-v2

3. 更猛!预测9000类

后续再补充!