YOLO v2 论文笔记

YOLO v2通过引入batch normalization、高分辨率预训练、convolutional with anchor boxes、dimension clusters、direct location prediction和multi-scale training等改进,提升了目标检测的精度和召回率。文章详细介绍了这些优化方法的实施和效果,例如使用k-means聚类确定anchor boxes,通过passthrough层获取更精细的特征,以及多尺度训练增强模型的鲁棒性。
摘要由CSDN通过智能技术生成

Better

首先说一下YOLO的缺点一是与Fast R-CNN相比有更多的定位误差;二是与基于region proposal的检测方法相比,YOLO的召回率较低。因此YOLOv2相较于YOLO,是在保持分类精度的情况下提升召回率和定位的准确度。一般来说,使用更大更深的网络或者将多个模型结合起来,能得到更好的性能。但是YOLOv2反其道而行之,它不仅没有扩大网络规模,反而对网络进行了简化,这样可以使检测速度依然很快。接下介绍一下使用的一些方法。

1.batch normalization

在YOLOv2的每个卷积层中都添加了batch normalization,也就是对每一层的输入都做了归一化,这样网络就不需要每层都去学数据的分布,提升了模型的收敛速度。同时batch normalization对模型也有一定的正则化效果,而不需要其他形式的正则化。在添加batch normalization后,可以去掉dropout层,并且也不会出现过拟合。实验证明添加batch normalization后mAP提升了2%。

2.high resolution classifier

目前的目标检测方法中,都会在ImageNet上预训练一个模型(classifier)来提取图像特征,然后用预训练的网络来fine-tuning自己的网络。YOLO在预训练时采用的是224 × 224的输入图像,然后在检测时增大为448 × 448。这样做有一个坏处是:网络在从分类模型转换到检测模型的时候,需要适应新的输入图像的分辨率。在YOLOv2中,预训练分为两步:先用224 × 224的输入图像训练网络,大概经过160个epoch,然后对网络进行fine-tuning,用448 × 448的输入图像训练网络,大概经过10个epoch。注意这两步都是在ImageNet上进行的。经过这样的预训练,网络可以更好的适应高分辨率图像的输入。最后在检测网络上进行fine tune,实验表明,通过输入高分辨率的图像进行预训练,mAP提升了4%。

3.convolutional with anchor boxes

在YOLO中,直接用全连接层预测边界框(bounding box)的坐标,而在YOLOv2中,借鉴了Faster R-CNN中RPN网络的anchor boxes策略(先验框,prior boxes,在SSD中也采用了先验框),RPN为每个anchor boxes预测offset和置信度,其中offset是边界框相对于anchor boxes的转换得到的。
在YOLOv2中,移除了YOLO中的全连接层,采用卷积层和anchor boxes来预测边界框。首先,去掉了一个池化层,以使卷积层输出的特征图的分辨率更高。然后缩减网络,用416 × 416的输入代替原来448 × 448的输入。之所以这么做是因为希望得到的特征图都有奇数大小的宽和高。当特征图的长和宽都为奇数时,在后来划分cell时,恰好只有一个中心cell。作者发现,一些目标,尤其是比较大的目标,常常会占据图像的中心位置,当特征图的长和宽为奇数时,恰好可以用中心的cell来预测这种目标,否则就要用四个相邻的cell来预测。YOLOv2的卷积层对输入图像下采样(factor为32),最终得到的特征图为13 × 13。
在YOLO中,每个cell预测一套类别概率(cell中的目标属于每个类的概率),由cell中的两个边界框共享。而在YOLOv2中,每个cell中的每个anchor box都要预测一套类别概率。
YOLO中将每个图像划分为7 × 7的网格,每个cell仅预测两个边界框,因此每个图象仅预测98个边界框。但在YOLOv2中,通过引入anchor box,可以预测超过一千个边界框。实验表明,加入anchor box后mAP略有下降(69.5到69.2),但召回率明显提高(81%到88%)。

4.dimension clusters

引入anchor box后遇到了两个问题,第一个问题就是,在Faster R-CNN中anchor box的尺度和比例是预先设定好的,网络在训练时会调整anchor box的大小。但如果一开始就能找到合适尺寸的anchor box,那么网络可以更好地做出预测。
本文中作者用k-means算法对训练集中的边界框做聚类分析,以自动地找到合适的anchor box。但是如果用标准的欧几里得距离的k-means算法,大的边界框会比小的边界框产生更多的误差。而设置anchor box的真正目的是让边界框与真实框(ground truth box)的IoU值最大,这与边界框的大小是没有关系的。因此聚类分析时选用边界框与聚类中心边界框之间的IOU值作为距离指标:
在这里插入图片描述
在这里插入图片描述
上图左边表示聚类的簇个数(k)与IoU之间的关系,两条曲线分别代表两个不同的数据集。作者发现,当k=5时,模型复杂度与召回率之间达到了很好的平衡。上图右边是通过聚类选出的5个anchor box,它们与手动设置的anchor box差别很大,大多是高瘦的,很少有矮宽的。
在这里插入图片描述
从上表可以看出,仅使用5中anchor box的IoU(61.0)就和Faster R-CNN中使用9种anchor box的IoU相当(60.9)。如果使用更多的anchor box,会达到更高的IoU(67.2)。

5.direct location prediction

引入anchor box后遇到的第二个问题是模型的不稳定性,尤其是在早期迭代的时候。大多数的不稳定来自于对边界框中心位置(x,y)的预测。在Faster R-CNN中,是用下面的式子计算边界框相对于anchor box的offset的,其中 t i t_{i} ti表示边界框的4个坐标经过转换后的预测值,也就是offset, ( x , y , w , h ) (x,y,w,h) (x,y,w,h)表示边界框, ( x a , y a , w a , h a ) (x_{a},y_{a},w_{a},h_{a}) (xa,y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值