☀️教程:霹雳吧啦Wz
☀️https://space.bilibili.com/18161609/channel/seriesdetail?sid=244160
一、YOLO v4
YOLO v4在2020年的4月发布,YOLO v4结合了大量的前人研究技术加以组合,实现了速度和精度的平衡,该论文包含大量的tricks。最终模型的mAP和FPS相比YOLO v3分别提升了10%和12%。
1.1 YOLO v4思想
YOLO v4的主要改进分为了网络结构的改进和优化策略的改进。
针对网络结构:
(1)Backbone:CSPDarknet-53(部分结构如下图所示)
YOLO v4的Backbone是在Darknet-53基础上引入了CSP结构,CSP结构通过修改传统卷积神经网络中的数据传递路径来优化网络的计算效率和减少网络参数,从而加快处理速度并提高模型性能。CSP结构图如下:
在CSP结构中,输入的特征图会被分成两部分。一部分直接传递到下一阶段,另一部分则通过一系列卷积层进行处理。处理后的特征图与直接传递的部分在深度上进行融合(concatenate)。这种结构能有效减少冗余信息,提高特征利用效率。但在CSPDarknet-53中,其CSP结构中输入特征图是分别用两个1×1的卷积层来实现分割为两部分的。
(2)Neck:SPP,PAN
YOLO v4 在YOLO v3的基础上增加了SPP和PAN结构。
SPP和之前在YOLO v3 SPP中介绍的结构相同,这里就不再进行介绍。
PAN(Path Aggregation Network)是一种用于增强特征层次之间信息传递的神经网络结构,PAN通过创建自顶向下和自底向上的信息流,形成一个封闭的循环,从而改善了特征的信息流动和整合。PAN的结构如下:
图a中对应的结构是FPN(特征金字塔)结构,那么PAN就是在FPN自顶向下融合特征的基础上,增加了一个自底向上融合特征的部分(见图b),形成一个更有效的信息循环。这样做可以使得顶层的高语义信息能够更好地指导底层的详细特征提取,同时使得底层的详细信息能够更好地辅助顶层的语义判断。但在YOLO v4中,特征融合的方式不是采用相加融合的方式,而是采用的在深度上进行拼接的方式。
(3)YOLO v3 Head
YOLO v4网络的预测头部使用的还是YOLO v3 的Head,是一个基于Anchor的Head。
针对优化策略:
(1)消除网格敏感度
如图所示,对于基于anchor的边界框回归参数的预测,在YOLO v3中是基于网格的中心点坐标来预测的,但是当真实目标的中心点恰好位于网格的边缘时,例如假设真实目标中心点在网格左上角,则模型需要预测出的回归参数 t x , t y t_x,t_y tx,t