Zhangzhe's Blog

The projection of my life.

0%

一些高效backbone设计思想

TL;DR

  • 本文介绍了 YOLO 系列几种高效的 backbone 设计,主要包括:VoVNetPRNCSPNetELANE-ELAN

Algorithm

1. VoVNet

vovnet.png

  • 作者认为 densenet 存在问题:每一层 Conv 都使用之前所有层的输出,因此会导致当前 Convinput channel 很大,输出到 output channel 却较小

  • 因此,作者只在 VoVNet Block 的最后一个 Conv 才用之前所有层的输出

  • 相同计算量下,效果优于 ResnetDenseNet

2. PRN

prn.png

3. CSPNet(YOLOV5)

CSPNet.png

  • CPSNet 的全称是 Cross Stage Partial Networks, 本质是把模型分成两部分,其中一部分经过计算(几层 Conv)后和另外一部分合起来,相当于第二部分和第一部分模型深度不同

4. ELAN

elan.png

  • ELAN 全称是 Efficient Layer Aggregation Network, 作者以 VoVNetResNet 做对比,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)

eelan.png

  • E-ELANextended ELAN,在不改变 gradient path 的情况下,加入了 Group ConvShuffle and merge Conv 等操作,极大的提高了模型表现能力,成就了 YOLOV7 又快又好的效果!