【目标检测】YOLO-v2
文章目录
论文链接
YOLO v2
YOLOv2相比于YOLO,精度更高,速度更快,预测类别更多。
1 精度改善
在YOLO的基础上,作出不同的改进,检测精度的变化如下表所示。
以下逐一介绍。
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,使得输出特征图的大小为奇数。因为图像中心点经常被一个大物体占据,如果是偶数,比较不好确定它是属于哪个网格。
- 移除了一个池化层,使得输出特征图大小为13×13
使用Anchor boxes虽然使得mAP有轻微的下降,但是在召回率上提高了7%。
Dimension Clusters
对数据集中物体的边框进行聚类,确定常见边框的类别,相比于手动设计anchor的尺寸,聚类的结果更有利于模型的训练与预测。距离度量的方式是, centroid是聚类中心点的边框。最后确定使用5种anchor。
Direct location prediction
对边框位置的预测如果不加约束,容易导致网络训练前期不稳定。例如RPN网络中预测框体的位置(x,y)与网络输出值的关系为:,分别是anchor的宽和高,随着预测值的不同,x、y的取值可以是图片上任何一个位置,不易于训练。
同YOLOv1一样,预测的是bounding box在网格中的相对位置,即0-1之间,为了实现该目的,采用sigmoid函数对输出结果进行约束。
- 是网格到图片左上角的距离(根据图片大小归一化)
- 是模型的输出值
- 是预测bounding box的值
- 是anchor的宽和高,也是经过归一化
Fine-Grained Features
利用较浅层的特征图,结合深层的特征图作出预测。
将26×26×512拆分成13×13×2048.拆分方式如下图(说不清楚只能画图了)
Multi-Scale Training
由于没有全连接层,因此YOLOv2可以接受不同大小的图片输入。只要保证图片尺寸能被32整除即可。
2. 速度更快
作者使用了DarkNet-19作为基础网络,在保证精度的前提下,减小了模型的计算量,加快了速度。
3. 更猛!预测9000类
后续再补充!