YOLO系列-yolov3

YOLO-V3

在yolov3中不论速度还是map值都比其他算法高出很多
yolov3最大的改进就是网络结构,使其更适合小目标检测
特征做的更细致,融入多持续特征图信息来预测不同规格的物体
先验框更丰富了,3种scale,每种3个规格,一共9种
softmax改进,可以预测多标签任务
在这里插入图片描述

多scale

为了能检测到不同大小的 物体,设计了3个scale
在yolov2中为了能检测更小的物体,它把不同大小的特征图融合做成一个向量。这样做的弊端是可能会把一些特征图突出的特征变得不突出
在yolov3中设计了3个scale,分别用来检测小中大三种不同大小的物体,每种scale还有3个先验框,所以 一共是9个
大中小的scale大小分别是:52*52、26*26、13*13
但是怎么得到大小不同的scale呢,是从一个CNN网络中直接拿到这些大小的scale吗,但是这样越小的scale学到的东西会越多,越大的scale学到的越小,显然我们大的scale还需要借鉴小的scale

scale经典方法

左图是图像金字塔,把原始输入调整分辨率然后去做预测,这样做会导致速度很慢,不符合yolo速度快的出发点
右图就是yolov1的做法,用最后结果预测
在这里插入图片描述
左图是对不同的特征图分别做预测,这样做的缺点是最上面的scale最小的特征图能做的最好,因为学到的东西最多,而且下面的特征图学到的东西不完成,等于就是说学到一半就拿去做预测了,效果肯定不太好。
右图是每一层的特征图都会融合上面所有的特征图,但是这里尺寸大小不一样,这里就是用到了上采样,比如2626的特征,想要融合1313的特征图,就需要先把1313的特征图做一个上采样变成2626的在与原本26*26的融合。
在这里插入图片描述

残差链接-resnet思想

现在很多的网络都用了残差网络的思想,v3中也用了resnet的思想,堆叠更多的层来提取特征
resnet的主要思想就是为了防止网络越学越差的情况,因为vgg网络层数越高存在error遇到的情况,而resnet就是解决了这一问题,一些网络层如果学的结果是更差了则会跳过这一层。

核心网络架构

yolov3的网络又叫做darknet53
这个没有池化和全连接层,全部都是卷积。池化把特征图压缩了,可能会效果不好。
之前的池化层目的是为了把网络缩小成二分之一,那么只用卷积该怎么操作呢,我们知道sride为1的时候特征图大小不变,stride为2的时候特征图大小也会变成原来的一半,那么当我们需要下采样的时候stride为2就行,不需要下采样stride为1就行
从下图可以看到最终的输出结果有52*52、26*26、13*13的特征图大小分别用来检测小中大不同的物体,中间一些就用到了上采用操作
在这里插入图片描述
如下图当输入数据后做完卷积后的结果。如果你检测目标大小是13*13的,最后的结果应该是13*13*3*85,这里的13*13就是格子大小,v1的网格大小是7*7,v2是13*13,v3有三种52*52、26*26、13*13.3的意思是每个格子的三个先验框,85=80+4+1 4是预测出框的x,y,w,h,1是当前是物体还是背景,80是当前数据集中60个类别得判断是哪个类别
在这里插入图片描述

先验框设计

yolo-v2中选了5个,v3中有9个
v2中用到了聚类算法提取先验框,这样更符合实际的情况,在v3中还是这样做的
这里不是每一个格子都预测9种,而是分成了三类,比如聚类算法提取到的先验框是116*90的,这个框比较大,适合用13*13的特征图去做,因为特征图大小越小感受野越大,能检测的物体越大,其余两个种类也是这样分的。
在这里插入图片描述

softmax改进

物体检测任务中可能物体有多个标签
用logistic激活函数来完成,这样能预测每一个类比是还是不是
这个函数是一个log函数,损失越小接近于0说明x接近于1,说明预测正确的概率越大
对于每一个类都预测是还是不是
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dzm1204

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值