11. YOLOv3

113 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

今天为大家讲解YOLOv3~

YOLOv3保留前几代的性能:

1.划分grid。

2.端到端训练,一个损失函数,只需要关注输入端和输出端。

3.YOLOv2开始,batch normalization作为正则化、加速收敛和避免过拟合的方式,把BN+Leaky ReLU接到每一层卷积层后。

4.同YOLOv2一样,聚类得到Anchor尺寸。

5.同YOLOv2一样预测偏移量tx,ty,tw,th,tot_x,t_y,t_w,t_h,t_o

1. YOLOv3结构图

图片.png

图片.png

YOLOv3结构

2. YOLOv3的backbone

图片.png

图片.png

YOLOv3与YOLOv5结构

在backbone中,YOLOv2使用的darknet-19,YOLOv3使用darknet-53:

1.在YOLOv2中变换尺寸是通过最大池化进行的,而YOLOv3中则是通过卷积步长来改变的尺寸。

2.YOLOv2没有使用残差块,而YOLOv3使用残差块。这样的结构也说明了YOLOv2比YOLOv3更快,但YOLOv3比YOLOv2准确度更高。

3. YOLOv3的Prediction Across Scales

YOLOv3在YOLOv2的Fine-Grained Features进行特征融合的基础上进一步改进,使用了FPN结构,对于不同尺度的目标使用了不同的预测feature map,YOLOv3将这个称为Prediction Across Scales。输出的三个特征矩阵,深度都是255,边长为13:26:52。

图片.png

三个预测层的边界框尺寸

255的由来:255=3*(5+80)。预测层feature map上每个点有3个bounding box,每个bounding box预测80个类别概率(MS COCO),5个参数(x,y,w,h,confidence)。

4. YOLOv3的损失函数

YOLOv3损失函数只是将V2中置信度损失和分类损失由L2L2损失函数变成了二分交叉熵损失函数。

图片.png

5. YOLOv3 SPP

增加了SPP结构在backbone之后,在第一块预测层之前。

图片1.png