YOLOv2文献阅读笔记

YOLOv2文献阅读笔记

论文原文:YOLO9000:Better, Faster, Stronger

1. Introduction

问题提出:现有检测方法局限在很少一部分物体上,检测数据集的规模远远小于分类数据集规模。

1.提出一种新方法利用现有的分类数据来扩大现有检测系统的范围。
2.使用目标分类的层次视图,将不同的数据集组合在一起。
3.提出了一种联合训练算法,在检测和分类数据上训练目标检测器。 利用标注的检测图像学习精确地定位物体,利用分类图像提高词汇量和稳健性。

训练:自建数据集 + ImageNet分类数据集 + COCO检测数据集

YOLO的问题:和Fast R-CNN相比,定位误差太大,相对较低的召回率(查全率)。

2. Better

1)Batch Normalization

BN能够显著改善模型收敛性,消除了其他形式正则化的必要。

在YOLO所有卷积层上使用BN,mAP提高2%以上。

通过BN,去除了dropout而不会发生过拟合。

这一操作在yolo_v3上依然有所保留,BN层从v2开始便成了yolo算法的标配。

2)High Resolution Classifier

从AlexNet开始,大多数分类器的输入小于256×256。

原始的YOLO以224×224训练分类器网络,并将分辨率提高到448×448。

YOLOv2,以448×448的完整分辨率,训练10个epochs,在ImageNet上对分类网络进行微调,这使网络有时间调整其filters在更高分辨率的输入上工作得更好。 然后微调检测网络。 这种高分辨率的分类网络使mAP几乎提高了4%。

3)Convolutional With Anchor Box

YOLO通过全连接层预测bounding box的坐标。

FasterR-CNN不是直接预测坐标值,而是通过hand-picked priors 预测bounding box。RPN网络为anchor box预测偏移量和置信度分数。由于网络是卷积的,RPN会为特征图上的每一点预测偏移量和置信度分数。预测偏移量而不是坐标简化了问题,使得网络更容易训练。

YOLOv2去除了全连接层,使用anchor机制来预测bounding box。去除了一层池化层,使得卷积层的输出有更高的分辨率。缩减网络的输入大小为416×416,使得输出特征图的维度是奇数(416//32=13),这样会有一个single center cell,对于倾向占据图像中心的大物体来说,用正好在中间的位置预测比用四周的更好。
YOLOv2将分类预测机制与空间定位解耦,而不是为每个anchor box预测类别和目标。和YOLO一样预测 ground truth box 和 bounding box 的IOU,对于一个目标也预测每个类别的置信度。
YOLOv2的mAP(平均准确率)有所下降,但是recall(召回率,查全率)有所提升,意味着模型有更大的提升空间。

4)Dimension Clusters

YOLO使用anchor机制后有两个问题。

一是box的维数需要手动选取。网络能够适当调整这些框,但是如果一开始选择比较好的priors(有大神译成模板框,就是优先选择的bbox),网络更好学习,更好检测。
YOLOv2在训练集的bounding boxes 上使用k-means聚类自动挑选priors。作者没有使用标准k-means的欧氏距离,因为这样大框会比小框产生更多的误差,实际上框的大小没关系,只要priors带来更高的IOU。

d ( b o x , c e n t r i o d ) = 1 − I O U ( b o x , c e n t r o i d ) d(box,centriod) = 1 - IOU(box,centroid) d(box,centriod)=1IOU(box,centroid)

k=5时在模型复杂度和较高召回率两者之间折中较好。聚类得到的框和手动选取的有很大不同,更少有窄胖的,更多瘦高的。
cluster IOU在 k=5 时就能和手动选取 anchor box k=9 时的平均IOU相当。

5)Direct location prediction

二是模型稳定性(尤其迭代早期)。大多数的不稳定来源于预测box的位置 ( x , y ) (x,y) (x,y)。在RPN网络中,预测位置的公式没有加以限制条件,anchor box 可以调整到图像的任意位置,随机初始化参数需要花费很长时间使得预测的偏移量稳定。

遵循YOLO的方法,YOLOv2预测位置坐标相对于 grid cell 的偏移量。这样限制了ground truth 在0到1之间,采用logistic 激活函数限制网络的预测输出落入在此区间内。限制了位置预测的公示后,参数更好优化,网络更加稳定。
k-means聚类和直接位置预测在YOLO的基础上提高了5%的性能。

直接预测 ( x , y ) (x, y) (x,y),就像yolo_v1的做法,不过v2是预测一个相对位置,相对单元格的左上角的坐标(如下图所示)。当 ( x , y ) (x, y) (x,y)被直接预测出来,那整个bounding box还差w和h需要确定。yolo_v2的做法是既有保守又有激进,x和y直接暴力预测,而w和h通过bounding box prior的调整来确定。

bbox的宽和高也是同时确定出来,并不会像RPN那样通过regression来确定。pw和ph都是kmeans聚类之后的prior(模板框)的宽和高,yolo直接预测出偏移量tw和th,相当于直接预测了bounding box的宽和高。

参考:YOLO系列之yolo v2

在这里插入图片描述

6)Fine-Grained Features

调整后的YOLO将在 13×13 的特征图上做检测。这对大物体检测来说已经足够了,但对检测小物体更细粒度特征图会更有帮助。Fast R-CNN和SSD都是在不同尺度的特征图上做区域建议,然后得到一系列分辨率。YOLOv2采用不同的方法,简单的加入一层passthrough layer,从26×26分辨率的图上提取特征。

与ResNet中的身份映射类似,passthrough layer通过将相邻特征堆叠到不同的通道而不是空间位置,从而将高分辨率特征与低分辨率特征连接在一起。 这会将26×26×512特征图转换为13×13×2048特征图,可以将其与原始特征连接。

passthrough layer抽取前面层的每个 2×22×2的局部区域,然后将其转化为channel维度,对于 26×26×512的特征图,经passthrough层处理之后就变成了 13×13×2048的新特征图(特征图大小降低4倍,而channles增加4倍),这样就可以与后面的13×13×1024(最后一层) 特征图连接在一起形成 13×13×3072 大小的特征图,然后在此特征图基础上卷积做预测。

参考:YOLOv1,YOLOv2,YOLOv3解读

检测器在扩展的特征图上运行,因此可以访问细粒度的特征。 这会提高1%的性能。

7)Multi-Scale Training

由于模型只有卷积层和池化层,没有全连接层,因此可以随时调整大小。不固定输入图像的尺寸,每10个batches,网络随机选择一个新的图像维度尺寸(必须是32的倍数,320,352,…608,因为downsample的步长是32)。

这种机制迫使网络在不同输入维度上都能预测很好。平衡了速度和精度。
在这里插入图片描述
第二部分关于模型的探索,作者给出了以下表格,展示从YOLO到YOLOv2模型性能的提升:
在这里插入图片描述

3. Better

4. Stronger

后面两部分主要介绍网络训练的和数据集融合模型,YOLO9000等。有空来填。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值