YOLO V2详解

论文地址: YOLO9000: Better, Faster, Stronger

如果对 YOLO 没有概念的朋友,可以先看看YOLO V1 的思路。

在YOLO v1 之后,深度学习出现了许多trick,例如batch Normalization , 多尺度训练等,为了提高检测精度,v2也借鉴 RCNN 体系的anchor box

Better:

1、加入BN

Batch Normalization(批归一化)map 提升 2%
BN 已经成为一种标配,加入BN 后,可以去掉 dropout。

2、高分辨率预训练

High Resolution Classifier map 提升 %4

3、 Convolutional With Anchor Boxes

在v1上与groundtrue 最接近的框生成loss ,另一个框不做修正,这样两个框在大小,类别上有了分工。但是在全图上直接预测W,H对网络来说难度大,所以回归精度差。所以在V2 上预测 与anchor 的offset

每个格点指定n个anchor,训练时,最接近ground true 的框产生loss,其余的框不产生loss。引入anchor 后,map 略有下降,但是召回率大幅提升。因为每个格子能预测的物体数增加了

4、anchor 通过k-mean聚类生成

这是一个创新点。k-mean 需要预设聚类类别数,比如要生成9种anchor , 那k = 9 。而在 rcnn 种anchor 是通过三种宽高比1:1,2:1,1:2组合得到。

定义聚类类点(矩形框(w,h),于中心点无关)距离:
在这里插入图片描述假设所有框的中心点都为(0,0)。分别计算矩形框(wj,hj)与每个类别中心(wci,hci)的距离,距离越小,则矩形框就属于这个类别,同时更新类别中心(wci,hci)。

5、位置预测

Yolo中的位置预测,就是相对于左上角的格点坐标预测偏移量
在这里插入图片描述
其中, tx, ty 是学习参数,xa,ya,wa,ha是先验框anchor的值(初始化已知)。x, y是预测框中心。

作者在引入anchor box的时候遇到的第二个问题:模型不稳定,尤其是在训练刚开始的时候。作者认为这种不稳定主要来自预测box的(x,y)值。我们知道在基于region proposal的object detection算法中,是通过预测下图中的tx和ty来得到(x,y)值,也就是预测的是offset。而作者在此是直接预测(x,y)坐标。

由于 tx,ty不受限制,预测框中心可能会出现任何位置,导致早期训练阶段极其不稳定。而我们知道,其实预测框中心可以只由其左上角的anchor负责预测即可,因此可以将预测值限制在0-1(sigmoid解决),充分利用了网格的特点。因此调整预测公式:
在这里插入图片描述
其中,网络预测值 (tx,ty,tw,th), to)**其中anchor 先验值为(cx,cy,pw,ph)**已经是归一化到特征图上。

深度网络学习的目标越明确,任务越简单,则最终学习到的效果就会越好,学习的精度越高。不做任何限制的学习是不明智的,会使得网络丧失学习最优方向。
在这里插入图片描述
(Cx,Cy)为当前grid cell相对于图像的左上角的距离,以grid cell为单位,则当前cell的左上角坐标为(1,1);pw,ph为为先验框的宽和高,其值也是相对于特征图的大小,在特征都中每个cell的大小为1。这里记特征图的大小为(W,H)(YOLO V2为(13,13),这样就可以将边框相对于图像的大小和位置计算出来:
在这里插入图片描述
在将上面得到的bx,by,bw,bH
乘以图像的宽和高(像素为单位)就可以求得边框在图像的位置。

6、passthrough层检测细粒度特征

map 提升 1%。

对象检测面临的一个问题是图像中对象会有大有小,输入图像经过多层网络提取特征,最后输出的特征图中(比如YOLO2中输入416416经过卷积网络下采样最后输出是1313),较小的对象可能特征已经不明显甚至被忽略掉了。为了更好的检测出一些比较小的对象,最后输出的特征图需要保留一些更细节的信息。

YOLO2引入一种称为passthrough层的方法在特征图中保留一些细节信息。具体来说,就是在最后一个pooling之前,特征图的大小是2626512,将其1拆4,直接传递(passthrough)到pooling后(并且又经过一组卷积)的特征图,两者叠加到一起作为输出的特征图。
在这里插入图片描述图中示例的是1个44拆成4个22:
在这里插入图片描述

7、多尺度训练

mAP有1.4%的提升。

因为整个网络下采样倍数是32,作者采用了{320,352,…,608}等10种输入图像的尺寸,这些尺寸的输入图像对应输出的特征图宽和高是{10,11,…19}。训练时每10个batch就随机更换一种尺寸,使网络能够适应各种大小的对象检测。

8、hi-reslution detector

如果用较高分辨率的输入图像,比如544*544,则mAP可以达到78.6,有1.8的提升

速度更快(Faster)

YOLO2提出了Darknet-19有19个卷积层和5个MaxPooling层)网络结构。DarkNet-19比VGG-16小一些,精度不弱于VGG-16,但浮点运算量减少到约1/5,以保证更快的运算速度。
在这里插入图片描述

loss

误差依然包括边框位置误差、置信度误差、对象分类误差。

在这里插入图片描述

公式中:

预测边框中,与真实对象边框IOU最大的那个,其IOU<阈值Thresh,此系数为1,即计入误差,否则为0,不计入误差。YOLO2使用Thresh=0.6。

前128000次迭代计入误差。注意这里是与先验框的误差,而不是与真实对象边框的误差。可能是为了在训练早期使模型更快学会先预测先验框的位置。

一个边框负责预测一个真实对象(边框内有对象)。

不同类型误差的调节系数不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值