Paddle带你零基础入门深度学习---YoloV3

Paddle带你零基础入门深度学习---YoloV3


一、YOLOV3

YoloV3 的⽹络框架有了很⼤的改变,它在“特征融合”上做了很⼤的改进。YoloV3 也有两个版本,⼀个是普通版,⼀个是YoloV3-spp。YoloV3-spp 版本很重要,因为它直接启发了后续的 YoloV4。 YoloV3 采⽤和 YoloV2 同样的 gd 编码⽅式。并也采⽤了 anchor 的思想。它借鉴了特征图⾦字塔 的思想,⽤不同尺度的特征图来检测⽬标。⼩尺⼨特征图感受野⼤,于是⽤来检测⼤尺⼨的物体, ⼤尺⼨的特征图感受野⼩,检测⼩尺⼨的物体。(其实也算是借鉴了 SSD 的思想)

1.网络框架

在这里插入图片描述
YoloV3 总共输出 3 个不同尺度的特征图,分别是 19×19,38×38,76×76
后半部分的“特征融合”就借鉴了 FPN 网络。
在这里插入图片描述
接下来是 YoloV3-SPP,YoloV3-SPP 的网络结构和 YoloV3 几乎一致,唯一不同的是,YoloV3 借鉴 SPPNET 的思想,增加了 SPP 模块。
在这里插入图片描述
特征图 19×19,对应(116 × 90), (156 × 198),(373 × 326) anchor。

特征图38×38,对应(30×61),(62×45),(59× 119) anchor。

特征图76×76,对应(10×13),(16×30),(33×23) anchor。

gd 的编码方式和解码方式和 YoloV2 保持一致,略有不同的是,类别概率输出使用 sigmoid,不再是 softmax。这样一个“负责”区域可以同时输出多个类别。

2.损失函数

在这里插入图片描述

3.训练过程

YoloV3 的训练过程,特别是样本的选择和 V1 和 V2 已经完全不一样了。

在 V1 和 V2 中是看 gd 中心所落的负责区域来确定 gd 由哪个点来负责。由于 V3 中有多个最终的 feature map。使用这种策略可能会导致矛盾(即一个 gd 同时属于多个点负责)。所以需要新的方式确定样本由哪个点的区域负责。原则很简单:

所有预测的 pd 中和 gd 的 IOU 最大的那个就是正样本。

作者还创新的把预测 pd 分成三类:

正例:产生回归框 loss 和类别置信度 loss。
负例:只产生置信度 loss。
忽略:不产生任何 loss。
正例:
对任意的 gd,与所有的 pd 计算IOU,IOU 最大那个就是正例。一个pd,只能分配给一个gd。比如第一个 gd 已经匹配了一个正例的 pd,那么下一个 gd,需要在剩下的 pd 中寻找 IOU 最大的作为正例。

负例:
除正例以外(与 gd 计算后 IOU 最大的检测框,但是IOU小于阈值,仍为正例),与全部 gd 的 IOU 都小于阈值(论文中为 0.5),则为负例。

忽略:
除正例以外,与任意一个 gd 的 IOU 大于阈值(论文中为 0.5),则为忽略。

在 YoloV3 中置信域标签直接设置为 1 和0。而不是 YoloV1 的 IOU 值。原因是假设 iou 是0.8,但学习到的可能只有 0.6 总是会低一些。不如直接将标签设为 1 (学习到的可能就是 0.8)。

4. 测试过程

由于有三个特征图,所以需要对三个特征图分别进行预测。

三个特征图一共可以出预测 19 × 19 × 3 + 38 × 38 × 3 + 76 × 76 × 3 = 22743 个 pd 坐标以及对应的类别和置信度。

测试时,选取一个置信度阈值,过滤掉低阈值 box,经过 NMS(非极大值抑制),输出整个网络的预测结果。注意最后要还原到原始坐标。该改成测试模式的模块需要改成测试模式(比如 BatchNorm)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值