3.3.1 Network— 网络
Backbone and neck—骨干网络和颈部
主干和颈部我们探讨了单路径结构和多分支结构对主干和颈部的影响,以及CSPStackRep Block的信道系数(表示为CC)。本部分描述的所有模型均采用TAL作为标签分配策略,VFL作为分类损失,GIoU和DFL作为回归损失。结果示于表2中。我们发现,在不同规模的模型的最佳网络结构应该拿出不同的解决方案。对于YOLOv 6-N,单路径结构在精度和速度方面优于多分支结构。
由于相对较低的存储器占用和较高的并行度,因此运行得更快。对于YOLOv 6-S,两种块样式带来相似的性能。当涉及到较大的模型,多分支结构实现更好的性能,在准确性和速度。并且我们最终选择多分支,其中对于YOLOv 6-M具有2/3的信道系数,并且对于YOLOv 6-L具有1/2的信道系数。此外,我们研究了颈部的宽度和深度对YOLOv 6-L的影响。表3中的结果显示细长颈部执行0.2%,比宽浅颈在相同的速度。
作者比较backbone及neck中不同block及CSPStackRep Block中channel系数影响
结论
不同网络结构适用不同策略
Combinations of convolutional layers and activation functions—卷积层和激活函数组合
YOLO系列采用了广泛的激活函数,ReLU [27],LReLU [25],Swish [31],SiLU [4],Mish [26]等。在这些激活函数中,SiLU是使用最多的。一般来说,SiLU具有更好的准确性,并且不会导致太多额外的计算成本。然而,当涉及到工业应用时,特别是部署具有TensorRT [28]加速的模型时,ReLU由于融合到卷积中而具有更大的速度优势。此外,我们进一步验证了RepConv/普通卷积(表示为Conv)和ReLU/SiLU/LReLU在不同规模的网络中的组合的有效性,以实现更好的权衡。如表4所示,具有SiLU的Conv在准确性方面表现最好,而RepConv和ReLU的组合实现了更好的折衷。我们建议用户在延迟敏感的应用程序中采用ReLU的RepConv。我们选择使用RepConv/ReLU组合
YOLO系列中常用激活函数有ReLU、LReLU、Swish、SiLU、Mish等, SiLU精度最高且最常用,但是部署与TensorRT 加速 的模型时无法与卷积层融合, ReLU更具有速度优势
进一步验证了RepConv/普通卷积(记为Conv)和ReLU/SiLU/LReLU组合在不同大小的网络中的有效性
结论
(1)Conv+SiLU性能最佳,但RepConv+ReLU达到性能与速度均衡
(2)在YOLOv6-N/T/S/M中使用RepConv/ReLU组合来获得更高的推理速度
(3)在大型模型YOLOv6-L中使用Conv/SiLU组合来加速训练和提高性能。
Miscellaneous design—其余设计
我们还对第2节中提到的其他网络部分进行了一系列消融。1基于YOLOv 6-N。我们选择YOLOv 5-N作为基线,并逐步添加其他组件。结果示于表5中。首先,对于解耦头(表示为DH),我们的模型是1。精确度提高4%,时间成本增加5%。其次,我们验证了无锚范式比基于锚的范式快51%,因为它的3倍少的预定义锚,这导致输出的维数更少。此外,表示为EB+RN的骨架(EfficientRep骨架)和颈部(Rep-PAN颈部)的统一修饰带来3。6%的AP改进,运行速度提高21%。最后,优化的解耦头(混合通道,HC)带来0。2%AP和6.FPS的准确性和速度分别提高了8%。
操作及结论
DH: 以YOLOv5-N为基线,验证YOLOv6-N中不同部件影响,使用解耦头(DH)性能提升1.4%,耗时增加5%
AF: Anchor-free方案耗时降低51%
EB+RN: 主干网络EfficientRep +颈部Rep-PAN 使得性能提升3.6%,耗时降低21%
HC: Head中混合通道策略,使得性能提升0.2%,耗时降低6.8%