YOLO的发展历史_20201009180340.pdf
YOLO V3论文算法模型_20201009180329.pdf

YOLO论文.zip
代码复现注意事项.pdf

1 Data Pre-Processing.ipynb2 Yolo-v3 Network.ipynb3 Train Network.ipynb4 Detect Demo.ipynb

1-yolo v3(基于DarkNet-53) - 图2

1-yolo v3(基于DarkNet-53) - 图3

归纳

image.png
image.png

设计细节

  • 基于Darknet-53

yolo-v3基于Darknet-53结构. Darknet-53的精度接近resnet-101, 但是fps更高.
Darknet-53能输出3中尺寸的输出, 以作为特征金字塔结构. 小尺寸更适合检测大物体, 大尺寸更适合检测小物体.
大尺寸更适合检测大物.``

  • 先验框与检测框的区别

先验框和检测框, 分别被称为anchor box和bounding box. 注意两者的区别, 前者只是一个尺度即宽高, 而后者指框得绝对位置(中心坐标与宽高), 更广泛地说, 就是模型的输出, 这样的话还包括置信度和类别.

  • 先验框

利用k-means聚类在训练集上寻找先验框, 距离公式为 d(box, centroid) = 1 - IoU(box, centroid). 这里作者认为, 标准的k-mean采用欧式距离会导致大框更优势.
另外, 先验框具备特征图金字塔的思想. 如下图, 总体来看, 对每个特征点有9种anchor进行先验. 其中特征图根据尺寸分为3种(具有特征图金字塔的思想), 对每个特征图的每个grad, 又都配置3个不同的先验框.
image.png

  • 有了先验框与输出特征图, 就可以解码检测框(逻辑回归)

image.png

  • 置信度和类别解码

置信度和类别解码的代码实现体现在网络输出的维度. out 80维度 = [检测框位置(4维), 检测置信度(1维), 类别解码(80维)]
其中, 类别解码采用sigmoid替代yolo-v2中的softmax. sigmoid和softmax最大的区别在于, sigmoid没有类别之间概率和为1的限制. 作者改用sigmoid取消类别之间的互斥, 使网络更加灵活.
image.png

  • 训练策略

image.png

  • 损失函数

image.png
以上损失分为三类. 12对xywh进行回归, 34对正负例的置信度进行回归. 5是分类做loss.
回归部分使用了MSE, 也可以使用smooth L1 loss.

yolo v4

image.png
image.png传统是在通道级别的attention, 作者改进, 在像素级别上的attention.

image.png

image.png
跨batch进行normalizetion.

image.png

**