笔记:YOLOv1-v2-v3

YOLOv1

在这里插入图片描述
将一幅图像分成77个网格,在训练之前会进行人工标注-GT box ,它的中心落在哪个网格上,就负责预测这个目标
在这里插入图片描述
在这里,每个网格需要预测B个bounding box和C个类别分数。B一般取2,每个bounding box除了要预测位置信息(4个值),还要预测一个confidence(YOLO独有)
在这里插入图片描述
每个网格需要预测2个bounding box和20个类别分数,故2
5+20=30
77表示图像中每个ceil(网格)所对应的信息,比如下图中11*30可以理解为
第一个ceil的预测参数
在这里插入图片描述
不像Faster R-CNN与SSD一样,YOLOv1中没有anchor,预测的x,y,w,h是直接预测bounding box的位置。Faster R-CNN与SSD当中,预测的x,y,w,h是相对于anchor的回归参数。

若没写步距,则默认为1
在这里插入图片描述
在这里插入图片描述
YOLOv1的问题:
1.YOLOv1对群体性的小目标检测效果很差,因为YOLOv1的思想当中,每个ceil只预测两个bounding box(属于同一个类别)和一组classes参数,所以针对每个ceil预测的是同一个类别的目标
2.目标出现新的尺寸或配置,YOLOv1的检测效果也很差
3.主要错误原因是定位不准确,主要是因为直接预测目标的坐标信息,不像Faster R-CNN与SSD当中,预测的x,y,w,h是相对于anchor的回归参数。
在这里插入图片描述

YOLOv2

为什么YOLOv2的英文名称叫YOLO9000:是因为作者通过YOLOv2的模型框架,使用PASCAL VOC数据集(20个类别)加上ImageNet数据集(1000个类别)进行联合训练,最终能够检测的目标种类个数能够超过9000,作者就给这篇论文取名为YOLO9000
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.在YOLOv1中没有使用BN,YOLOv2中在卷积层后面添加了BN层,去除了dropout
在这里插入图片描述
2.更高的分辨率
YOLOv1采用的224* 224的分辨率进行训练,YOLOv2采用的448* 448的分辨率进行训练
在这里插入图片描述
3.在YOLOv1时,预测目标边界框时(bounding box),是直接去预测目标的中心坐标、宽度、高度的,导致定位效果差;YOLOv2就采用基于anchor 的目标边界框的一种预测方式,采用基于anchor的偏移量能简化问题以及使网络更容易去学习。
在这里插入图片描述
4.anchor的聚类:
priors类似于Faster R-CNN中的anchor与SSD中的default box。
在训练集的bounding box 中利用k-means聚类的方法自动的找到好的priors
在这里插入图片描述
5.在Faster R-CNN中的公式不受限制,anchor能出现在图片的任意地方
坐标(xa,ya)表示的anchor的中心坐标,而(tx,ty)是anchor的偏移量,是直接将预测值乘以anchor的宽度再加上xa,由于没有对tx进行限制,bounding box 能出现在图片中的任意一个地方
在这里插入图片描述
例如:假设将anchor或者priors设置在grid cell上的左上角,通过网络预测之后,得到回归参数。由于我们的公式并没有限制tx与ty的值,将anchor的中心坐标加上预测的回归参数之后,可能出现在图像的任意地方。如图,加上偏量之后跑到右下角去了,这并不是我们想要的,因为这个区域若有目标,也得是此grid cell的anchor来进行预测的。以至于导致不稳定性
在这里插入图片描述
坐标(cx,cy)表示的anchor的中心坐标,而(tx,ty)是anchor的偏移量,此时通过sigmoid函数将tx与ty限制在0-1之间
在这里插入图片描述
将tx与ty限制后,预测的bounging box的中心坐标只会出现在此grid cell内
在这里插入图片描述
6.在最后的预测特征图上结合更底层的一些信息
底层的一些信息会包含更多的图像细节,检测小目标需要更多的图像细节,直接拿高层的特征图来检测小目标效果差。
所以将高层信息与底层信息进行融合:YOLOv2得到的最后的特征层大小是13 * 13的,融合26 * 26 的特征图。融合的方式是:通过passthrough layer来实现
在这里插入图片描述
通过passthrough layer后:宽与高变为原来的一半,深度变为原来的4倍
在这里插入图片描述
YOLOv2将低层特征与高层特征融合的过程:2626512的卷积层通过11的卷积层进行降维处理(原论文中没有),将深度压缩到64,变成26 26* 64,再通过passthrough layer后变成1313256(宽与高变为原来的一半,深度变为原来的4倍),再将1313256与13131024在深度方向上进行拼接。
在这里插入图片描述
7.多尺度训练:输入图片是多尺度的
416/13=32(缩放因子),所以输入尺寸都是32的整数倍
在这里插入图片描述
YOLOv2的backbone是:Darknet-19(卷积层有19层)
在这里插入图片描述
在这里插入图片描述

YOLOv3

coco AP IOU=0.5-0.95
在这里插入图片描述
coco AP IOU=0.5,即PASCAL VOC的mAP
在这里插入图片描述
在Darknet53中,没有最大池化层,都是通过卷积层实现下采样
速度快:ResNet网络中卷积核的个数比Darknet53多很多,所以Darknet53网络参数少些,运算量会少些
在这里插入图片描述
注意整个框都是一个残差结构
在这里插入图片描述
YOLOv3会在3个预测特征层上进行预测,每个预测特征层上会使用3种尺度:会在特征层1上预测大目标,特征层2上预测中等目标,特征层3上预测小目标
在这里插入图片描述
YOLOv3会在3个预测特征层上进行预测,每个预测特征层上会使用3种尺度。利用k-means 聚类算法得到bounding box priors(也称anchor).
在每个预测特征层会预测NN[3*(4+1+80)],其中N表示预测特征层的大小(13,26,52),每个cell会预测3个尺度的anchor,每个尺度的anchor会预测(4+1+80)个参数,其中4是偏移参数

在这里插入图片描述
在这里插入图片描述

样本的选取:
每个ground truth object 分配一个anchor(就有一个正样本),几个GT目标就有几个正样本。将anchor与ground truth object 重合程度最大的anchor作为正样本;anchor不是与ground truth object 重合程度最大,却又超过某一阈值,这样的anchor直接丢弃(既不是正样本,也不是负样本);剩下的样本都是负样本。
若anchor不是正样本,只有confidence损失
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值