1. 项目背景与核心价值
在计算机视觉领域,目标检测一直是备受关注的核心任务。YOLO系列作为实时目标检测的标杆算法,其演进过程反映了整个领域的技术变迁。2021年提出的YOLOv5在速度和精度之间取得了良好平衡,但Transformer结构的兴起为视觉任务带来了新的可能性。CVPR-2021上发表的Bottleneck Transformers(BoTNet)论文证明,将自注意力机制巧妙融入CNN骨干网络,可以在不显著增加计算成本的情况下提升模型性能。
这个改进方案的核心在于:用Transformer的自注意力特性增强CNN的局部感受野限制,同时保持YOLO原有的高效特性。不同于直接替换整个CNN结构的ViT方案,BoTNet采用的bottleneck transformer模块更符合工程实践需求——它只需要替换标准ResNet中的bottleneck block中的3x3卷积,就能在ImageNet分类、COCO检测等任务上实现显著提升。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 架构改进方案详解
2.1 基础结构分析
标准YOLOv5使用的Backbone是CSPDarknet53,其核心构建块是C3模块(包含多个Bottleneck结构)。每个Bottleneck由两个1x1卷积(降维和升维)夹着一个3x3卷积组成。这种设计源自ResNet,通过shortcut连接缓解梯度消失问题。
原始Bottleneck的计算过程可以表示为:
code复制y = x + Conv1x1(Conv3x3(Conv1x1(x)))
其中所有卷积后都跟随BN和SiLU激活函数。这种结构在计算效率和特征提取能力之间取得了良好平衡,但3x3卷积的局部感受野限制了模型捕获长距离依赖的能力。
2.2 BoT模块设计
Bottleneck Transformer的改进点在于用多头自注意力(MHSA)替换中间的3x3卷积。具体实现时需要考虑几个关键问题:
-
维度匹配:MHSA通常需要序列化输入,而卷积特征图是三维张量(C×H×W)。解决方案是先将特征图展平为(HW)×C的序列,计算完注意力后再恢复空间结构。
-
计算效率:原始自注意力的计算复杂度是O((HW)^2),对于高分辨率特征图不可行。BoTNet采用以下优化:
- 在空间维度使用相对位
