2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(九)yolov2

2021SC@SDUSC

前言

为了对yolov5有更好的理解,在分析yolov5的代码中间我会穿插yolo系列其它的理论讲解,本篇介绍yolov2.

yolov2论文https://arxiv.org/abs/1612.08242

yolov1作为one-stage目标检测的开山之作,速度快是一大优势,可以实时完成,但是由于定位不够准确,recall较低,因此yolov2在其基础上做了改进

 Batch Normalization

batch normalization是对一个batch里的数据按维度进行normalization

上图是一个3*3的矩阵,BN就是对(1,1),(2,1),(3,1)的数据进行归一化,而另一种normalization为layer normalization则是对一个向量归一化,即对(1,1),(2,1),(3,1)的数据归一化

在网络中加入BN层可以加速网络的收敛,yolov2在每个卷积层后都加入了BN层,省去了Dropout,使mAP提升了2.4个点

Hight resolution classifier

由于主流的backbone网络都是在imagenet数据集上进行训练的,而imagenet数据集的图片像素是224*224,在检测时分辨率是448*448,因此yolov2就在imagenet数据集上以448*448的分辨率预训练10个epoch进行微调,使网络适应高分辨率的输入,使mAP提升了4个点

Convolution with Anchor Boxes

在yolov1中是直接使用全连接层来预测box的坐标,而同时期另一种目标检测算法Faster R-CNN则是通过RPN来预测anchor boxes的位置偏移(offset)和置信度的,由于offset比较小,预测offset比直接预测坐标要容易一些,因此在yolov2中去掉了全连接层并且使用anchor boxes来预测box。

Dimension Clusters

使用anchor就会有一个问题,怎么确定anchor的维度,在Faster R-CNN中是通过人工手动设定的,设定的好那么效果自然好,反之效果就差,我们并不想要这样。因此在yolov2中通过k-means聚类方法对训练集中的边框做了聚类。设置anchor的目的是要让预测框与GT的IOU更好,因此在聚类中使用box与聚类中心box之间的IOU指作为距离指标

下图为在VOC和COCO数据集上的聚类分析结果,随着聚类中心数目的增加,平均IOU值增加,但考虑到模型复杂度和recall,最终选取5个聚类中心作为anchor 

 Direct location prediction

使用anchor的第二个问题就是预测box的位置导致模型初期迭代不稳定,Faster R-CNN的位置预测公式为

xy是预测边框的中心,x_{a} ,y_{a}是anchor的中心坐标,w_{a}h_{a}是anchor的宽和高,t_{x}t_{y}是要学习的参数。由于t_{x}t_{y}的取值没有任何约束,因此box的中心可能出现在任何位置,在训练时需要很长时间来预测出正确的offsets。

yolov2则预测box中心点相对于cell左上角位置的offsets,公式为

其中,b_{x},b_{y},b_{w},b_{h}是box的中心和宽高,Pr(object)*IOU(b,object)是box的置信度,这里对预测参数t_{o}进行\sigma变换后作为置信度的之。(c_{x},x_{y})为对应cell的左上角坐标,如下图,由于sigmoid函数的处理,box的中心坐标会约束在当前cell内部防止偏移。p_{w},p_{h}是anchor的宽和高。t_{x},t_{y},t_{w},t_{h},t_{o}是要学习的参数,分别用于预测box的中心和宽高、置信度。

Darknet-19

yolov2的backbone采用darknet-19,其网络结构如图

 

 

 Fine-Grained Features

yolov2输入为416*416,5次池化输出为13*13*1024,对于小目标多次卷积池化后特征不明显,因此需要更精细的特征图。yolov2引入一种称为passthrough层的方法在特征图中保留一些细节信息。

Multi-Scale Training

在yolov2中没有全连接层,只有卷积层和池化层,因此网络可以接受任意尺寸的输入,yolov2用了不同size的样本来训练网络。在训练过程中每隔一定的iteration之后改变模型的输入图片大小,选择的尺寸都是32的倍数。

总结

yolov2借鉴了很多其它目标检测方法的技巧,最终在保证速度的同时可以提高检测准确率。

部分内容摘抄自

目标检测算法之YOLOv2 - 知乎

【目标检测论文阅读】YOLOv2 - 知乎

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值