TL;DR
- 本文介绍了
YOLO
系列几种高效的backbone
设计,主要包括:VoVNet
、PRN
、CSPNet
、ELAN
、E-ELAN
等
Algorithm
1. VoVNet
-
作者认为
densenet
存在问题:每一层Conv
都使用之前所有层的输出,因此会导致当前Conv
的input channel
很大,输出到output channel
却较小 -
因此,作者只在
VoVNet Block
的最后一个Conv
才用之前所有层的输出 -
相同计算量下,效果优于
Resnet
和DenseNet
2. PRN
-
code: https://github.com/WongKinYiu/PartialResidualNetworks/tree/master
-
PRN
全称是Partial Residule Networks
, 在PRN
中,将identity
连接乘以二进制Mask
,并且只允许将某些通道的特征映射添加到计算块的输出中
3. CSPNet(YOLOV5)
CPSNet
的全称是Cross Stage Partial Networks
, 本质是把模型分成两部分,其中一部分经过计算(几层 Conv)后和另外一部分合起来,相当于第二部分和第一部分模型深度不同
4. ELAN
-
ELAN
全称是Efficient Layer Aggregation Network
, 作者以VoVNet
和ResNet
做对比,VoVNet
在叠加更多block
时表现要比ResNet
更差,作者分析是因为VoVNet
结构中存在过多的transition layers
,这导致在叠加block
时最短梯度路径(the shortest gradient path
)不断增加,从而使得block
增加时训练难度上升 -
PRN
相比ResNet
,使用mask
让输入只有部分channel
通过identity connection
,丰富了梯度来源; -
CSPNet
通过将channel split
,一方面增加了梯度信息(同PRN
),另一方面减少了computational block
中的计算量; -
ELAN
的思想是:搭建网络时需要考虑每一层的最短最长梯度路径,还要考虑整个网络的最长梯度路径。
5. E-ELAN(YOLOV7)
E-ELAN
是extended ELAN
,在不改变gradient path
的情况下,加入了Group Conv
、Shuffle and merge Conv
等操作,极大的提高了模型表现能力,成就了YOLOV7
又快又好的效果!