admin管理员组

文章数量:1596418

创新点:

1.CSPDarknet-53

2.PAN

3.Eliminate grid sensitivity

4.optimizered anchor

5.IOU threshold(match positive samples)正样本匹配

6.Mosaic data augmentation(之前说过)

7.CIOU(之前说过)

CSP

首先是CSP网络的优点如下图

 下图是CSP结构在CSPDarknet中的体现。

 下图是YOLOv4的backbone--CSPDarknet的网络结构。

PAN

相当于在FPN的基础上又做了一个自下而上的结构,也就是先对backbone中的特征层进行FPN将深层语义信息融合进低层特征层,又将得到的结果下采样与之前得特征图再次concat得到最终的预测特征层。

YOLOv4中的PAN与原PAN结构有点不同,原结构中是进行add,而YOLOv4是进行concat。

 下图为整个YOLOv4的整体网络结构图,包括backbone和预测特征层的提取。

Eliminate grid sensitivity

之前得sigmoid函数范围为0-1,当GT box的中心点在网格线上时,tx或ty需要趋近于负无穷,显然是做不到的,所以引入优化策略将bx和by的式子改变了,使范围变为-0.5--1.5。

 IOU threshold

在YOLOv3中针对每一个GT都只分配了一个Anchor。但在YOLOv4包括之前讲过的YOLOv3 SPP以及YOLOv5中一个GT可以同时分配给多个Anchor,它们是直接使用Anchor模板与GT Boxes进行粗略匹配,然后在定位到对应cell的对应Anchor。

首先回顾下之前在讲YOLOv3 SPP源码解析时提到的正样本匹配过程。流程大致如下图所示:比如说针对某个预测特征层采用如下三种Anchor模板AT1、AT2、AT3

1.将每个GT Boxes与每个Anchor模板进行匹配(这里直接将GT和Anchor模板左上角对齐,然后计算IoU)
2.如果GT与某个Anchor模板的IoU大于给定的阈值,则将GT分配给该Anchor模板,如图中的AT 2
3.将GT投影到对应预测特征层上,根据GT的中心点定位到对应cell(图中黑色的× \times×表示cell的左上角)
4.则该cell对应的AT2为正样本

但在YOLOv4以及YOLOv5中关于匹配正样本的方法又有些许不同。主要原因在于1.2.1 Eliminate grid sensitivity中提到的缩放因子scale xy,通过缩放后网络预测中心点的偏移范围已经从原来的(0,1)调整到了(−0.5,1.5)。所以对于同一个GT Boxes可以分配给更多的Anchor,即正样本的数量更多了。如下图所示:

1.将每个GT Boxes与每个Anchor模板进行匹配(这里直接将GT和Anchor模板左上角对齐,然后计算IoU,在YOLOv4中IoU的阈值设置的是0.213)
2.如果GT与某个Anchor模板的IoU大于给定的阈值,则将GT分配给该Anchor模板,如图中的AT 2
3.将GT投影到对应预测特征层上,根据GT的中心点定位到对应cell(注意图中有三个对应的cell,后面会解释)
4.则这三个cell对应的AT2都为正样本

为什么图中的GT会定位到3个cell,网络预测中心点的偏移范围已经调整到了(−0.5,1.5),所以按理说只要Grid Cell左上角点距离GT中心点在(−0.5,1.5)范围内它们对应的Anchor都能回归到GT的位置处。
 上面和左边的cell它们距离落入的Grid Cell左上角距离都小于0.5,所以该Grid Cell上方的Cell以及左侧的Cell都满足条件,即Cell左上角点距离GT中心在( − 0.5 , 1.5 ) (-0.5, 1.5)(−0.5,1.5)范围内。这样会让正样本的数量得到大量的扩充。但需要注意的是,YOLOv5源码中扩展Cell时只会往上、下、左、右四个方向扩展,不会往左上、右上、左下、右下方向扩展。

 Optimizer Anchors

本文标签: