YOLOv3 浅记

看了一个大佬的博客,简单记一下YOLOv3。

一、网络结构

这里盗了图:

二、backbone:darknet-53

分类效果:相对于ResNet-152和ResNet-101,darknet-53不仅在分类精度上差不多,计算速度还比ResNet-152和ResNet-101强多了,网络层数也比他们少

模型改进点1:yolo_v3这个网络是一个全卷积网络,大量使用残差的跳层连接,并且为了降低池化带来的梯度负面效果,作者直接摒弃了POOLing,用conv的stride来实现降采样。在这个网络结构中,使用的是步长为2的卷积来进行降采样。

模型改进点1:为了加强算法对小目标检测的精确度,YOLO v3中采用类似FPN的upsample和融合做法(最后融合了3个scale,其他两个scale的大小分别是26×26和52×52),在多个scale的feature map上做检测。

三、output

预测头

backbone中一共有5次下采样,输出的3个预测头,分别在32倍降采样、16倍降采样、8倍降采样时进行预测,实现多尺度检测。

  • y1:直接在32倍降采样特征图【13**13】上进行预测
  • y2: 16倍降采样特征图【26*26】与 32倍降采样特征图上采样2倍【13*13】--->【26*26】的结果进行Concat拼接,在此结果上进行预测
  • y3: 8倍降采样特征图【52*52】与 y2预测所用特征图上采样2倍【26 * 26 --> 52 * 52】Concat拼接,在此结果上进行预测

预测输出

怎么预测:针对每个预测特征层,最后都是同一个1 * 1的卷积层。当1 * 1的卷积核每滑动到一个预测特征图上的每一个cell时,会预测3个边界框(bounding box)的一些预测输出值。边界框的大小是由先验框(anchor box)的尺寸决定的。

3个特征图用的anchor大小是不一样的

  • 32倍降采样的感受野最大,适合检测大的目标,所以在输入为416×416时,每个cell的三个anchor box为(116 ,90); (156 ,198); (373 ,326)
  • 16倍适合一般大小的物体,anchor box为(30,61); (62,45); (59,119)。
  • 8倍的感受野最小,适合检测小目标,因此anchor box为(10,13); (16,30); (33,23)。

所以当输入为416×416时,实际总共有(52×52+26×26+13×13)×3=10647个proposal box,即【1, 10647, 85】;

预测输出内容:每个anchor的预测输出内容为(Xcenter, Ycenter, w, h, confidence,类别1概率,类别概率,..... ,类别80概率)。

一张图的实际输出会有10647个bounding box?

logistic回归:

对anchor包围的部分进行一个目标性评分(objectness score),即这块位置是目标的可能性有多大。这一步是在predict之前进行的,可以去掉不必要anchor,可以减少计算量。

另外,还会从9个anchor priors中找到objectness score(目标存在可能性得分)最高的那一个。

所以一张图的实际输出bounding box数量应该少于10647。

 参考:

一文看懂YOLO v3_yolov3 build_targets_小小小绿叶的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值