原论文摘要
一种卷积神经网络(ConvNet)的通用构建模块,以在不增加推理时间成本的情况下提高性能。该模块被命名为多样分支块(Diverse Branch Block,DBB),通过结合不同尺度和复杂度的多样分支来丰富特征空间,包括卷积序列、多尺度卷积和平均池化,从而增强单个卷积的表示能力。在训练后,DBB可以等效地转换为一个单独的卷积层以进行部署。与新型ConvNet架构的进步不同,DBB在保持宏观架构的同时复杂化了训练时的微观结构,因此它可以作为任何架构的常规卷积层的替代品。通过这种方式,模型可以训练到更高的性能水平,然后转换为原始推理时的结构进行推理。DBB在图像分类(ImageNet上最高提高1.9%的top-1准确率)、目标检测和语义分割方面提高了ConvNet的性能。
DiverseBranchBlock介绍
多样分支块(DiverseBranchBlock)的代表性设计如下图所示:
1.DiverseBranchBlock(DBB)采用多分支拓扑结构,包括多尺度卷积、顺序1×1 - K×K卷积、平均池化和分支相加。这些具有不同感受野和复杂度的路径操作可以丰富特征空间,就像Inception架构一样。
2.DiverseBranchBlock(DBB)可以在推理时等效地转换为单个卷积。给定一个架构,可以用DBB替换一些常规卷积层,以构建更复杂的训练微观结构,并将其转换回原始结构,这样在推理时不会有额外的成本。
理论详解可以参考链接:论文地址
代码可在这个链接找到:代码地址
本文在YOLOv8中添加DiverseBranchBlock(多样分支块),并在C2f结构引入,代码已经整理好了,跟着文章复制粘贴,即可直接运行