开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情
今天为大家讲解YOLOv3~
YOLOv3保留前几代的性能:
1.划分grid。
2.端到端训练,一个损失函数,只需要关注输入端和输出端。
3.YOLOv2开始,batch normalization作为正则化、加速收敛和避免过拟合的方式,把BN+Leaky ReLU接到每一层卷积层后。
4.同YOLOv2一样,聚类得到Anchor尺寸。
5.同YOLOv2一样预测偏移量。
1. YOLOv3结构图
YOLOv3结构
2. YOLOv3的backbone
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。
三个预测层的边界框尺寸
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中置信度损失和分类损失由损失函数变成了二分交叉熵损失函数。
5. YOLOv3 SPP
增加了SPP结构在backbone之后,在第一块预测层之前。