论文(2) YOLO v2

YOLO v2针对YOLO v1的定位误差问题进行了多项改进,包括引入Batch Normalization加速网络收敛,使用高分辨率图像训练以提高检测效果,以及采用Convolutional with Anchor Box方法增加预测框数量,提升了检测的Recall。此外,YOLO v2使用K-means聚类确定Anchor Box尺寸,并通过限制位置偏移确保预测框位于对应grid内,增强了模型稳定性。
摘要由CSDN通过智能技术生成

YOLO v2

@(目标检测)
YOLO通过整合备选框选择和特征检测两个部分,成功的实现了end-to-end的训练,降低了复杂度并且减少了计算量,达到了实时的效果。但是仍然拥有缺陷:

定位误差,YOLO采用的网络结构中含有全连接层,使得输入图片分辨率固定,对物体尺寸不敏感,大量的位置信息被丢失掉。并且在最后一层中,每个grid里面只预测两个obj,一个类,这让YOLO网络天然对存在大量obj的图片难以准确检测。

如何解决这个问题,就是YOLOv2的工作。下面将一一列举YOLOv2的改进。


Batch Normalization

batch normalization的应用已经得到了很多经典网络的肯定,现在基本上成为标配。YOLOv1中并没有引入,所以在YOLOv2中加入网络,使得网络的收敛更快更稳定。至于batch normalization为何有效,这里简单提一下。神经网络的每一层输出,由于网络权重,都会导致数据的分布发生变化。这会对学习造成困难,因此每一层加上BN,使得每一层的输出和上一层的输出的分布保持一致。详情参见Batch Normalization

High Resolution Classifier

YOLO的训练分成两部分,第一部分是用ImageNet通过分类任务训练特征提取器,第二部分是用CoCo,VOC通过检测任务来对网络做fine-tuning。在v2中,第一部分里使用448×448而不是224×224的图片训练网络,高分辨率的样本进行训练会使得网络的检测效果更好,这一点显而易见。(更多的特征信息可以被学习)

Convolutional With Anchor Box

YOLOv1中最被诟病的region层被改变了,首先看一下两种结构对比。
enter image description here

(特别提示,YOLOv1和v2中x,y,w,h的含义不一样,v1中是坐标,而v2中是偏差,详情见Anchor box

可以发现,YOLOv1中每一个grid可以预测的obj的数量为B(B=2)个,并且在预测的时候每个grid实际上只输出一个BB(bounding box),而YOLOv2上升到了K(K=5)个,并且BB们会独立预测所属类,一个grid里面可以对多个不同类的物体做预测。比如这样的图片。
这里写图片描述

更多的预测框意味着检测结果的Precsion下降,而Recall [1] [ 1 ] 上升,但是根据论文结果,Precsion从69.5%下降到69.2%,Recall由81%提升到了88%。所以这一方法是行之有效,并且精度方面仍然存在改进空间(然后YOLOv3就这么做了)。

作者观察到,大物体通常占据了图像的中间位置,所以将图片的尺寸从448×448变为了416×416,这样做是为了让网络里所有卷积层产生的特征图,尺寸都为奇数,从而使得在预测物体位置的时候只需要中间位置的一个grid,而不是四个grid。

Anchor Box

anchor box是在RCNN系列中被使用的,使用这个结构的原因是为了在一个grid里面能够预测多个不同类别的目标。而且,一般地,同一种对象,他们的框子基本属于同一种比例,比如人的检测框往往是瘦长的,而车辆的检测框要么是宽扁的,要么是方形的。所以为了获得更加精确的检测框,我们可以先精选出不同种类物体的典型检测框,然后在这个基础上进行修改。在YOLOv2中,我们精选出来的检测框数量为K(K=5)个,这个K值是YOLO的作者试出来的,下面将会介绍。所以对于每一个grid,其特征向量的长度为(5+C)×K,即 [pc,bx,by,bw,bh,c1,...,cCK,......,pc,bx,by,bw,bh,c1,...,cC] [ p c , b x , b y , b w , b h , c 1 , . . . , c C ⏟ 向 量 共 有 K 个 , . . . . . . , p c , b x , b y , b w , b h , c 1 , . . . , c C ]

关于Anchor box的资料找了好久啊,才在RCNN里面的支持材料里面找到。
这个东西叫做Bounding Box Regression。首先我们看看直接预测 (x,y,w,h) ( x , y , w , h ) 有什么不好的地方呢?
这里写图片描述
还记得YOLO是怎么算loss的嘛。如果你有一个预测框,而图像中有多个GT框,那么你是跟哪个GT框算loss呢?答案是在IoU超过0.5的情况下,跟IoU最大的那个。现在来看上面这个图,我们会觉得这个模型预测飞机基本可以了,但是在模型看来,它预测出来的框和GT框的IoU没有达到0.5,直接预测失败,给了模型一个大的loss回去迭代了,极端点就是本来快收敛了,又搞这么几下,迭代回去了。那么如果我们能再调整一下这个预测框的长宽大小和比例的话,使得这个框子更加接近GT框,我们就不需要对模型进行大的调整,这样精度更高收敛速度更快。Bounding Box Regression就是来调整这个框子的位置,使其更加准确的。
这里写图片描述
我们的目的就是,给定 P=(Px,Py,Pw,Ph)G=(Gx,Gy,Gw,Gh) P = ( P x , P y , P w , P h ) 和 G = ( G x , G y , G w , G h ) ,寻找一种映射 f f ,使得

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值