TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
1、Problem:你要解决什么痛点?——故事的开头要“站得住”
RT-DETR 已经很强,但仍然存在的核心结构矛盾
高分辨率视觉特征中,“全局建模能力”与“计算/显存效率”难以兼得。
- Self-Attention 的二次复杂度瓶颈 在高分辨率特征图(P3/P4 阶段)中,自注意力的计算与显存开销随空间尺寸平方增长,这与“实时检测”的目标存在天然冲突。
- 卷积虽高效,但感受野受限 RT-DETR 的骨干网络(如 HGBlock)仍大量依赖卷积结构,尽管高效,但在长程依赖建模和跨区域目标关系建模上存在先天不足。
- 工程上需要“可替换、可复用、非颠覆式”的改进方案
实际落地中,我们无法接受“推翻原有框架重来”的创新,而是需要一种:
- 不破坏 RT-DETR 解码器设计
- 不显著增加推理成本
- 能稳定带来性能提升的结构增强方案
2、Motivation:为什么选 Conv2Former?——创新不是“灵感”,而是“必然选择”
Conv2Former 的本质:用“卷积调制”重构注意力
图左:标准 Self-Attention 在干什么?
- 输入特征(HW×C)分别过线性层变成 Q、K、V
- 用 Q 和 K 做相似度:
- 图里中间那块写的 HW×HW,就是这一步:它会生成一个“全局关系矩阵”
- 然后 Softmax 得到权重
- 最后对 V 加权求和得到输出
形象比喻:
- Q:这个人“想问什么”
- K:这个人“拥有什么信息标签”
- QKᵀ:两两之间算“相似度/关系”
- 得到一个 全员互相打分的关系表(HW×HW)
- 再按这个表去“聚合信息”(加权 V)
图右:Conv2Former 做了什么?
- 输入过 Linear 得到一个 A
- A 进入 k×k Conv(大核深度卷积)
- 得到一个空间权重(图里橙色点“·”)
- 再用这个权重去调制 V(Hadamard 乘积,也就是逐元素相乘)
一个关键判断:Self-Attention ≠ 全局建模的唯一解
全局感受野 ≠ 自注意力机制本身,只要能把“感受野/上下文建模能力”做大,即使不用 QKᵀ,也能实现接近甚至更好的效果。
Transformer 注意力的核心可以拆成两部分
- 内容自适应:不同输入产生不同权重(自适应选择信息)
- 空间混合:把一个位置的信息传播到另一个位置(全局/长程依赖)
QKᵀ 的全局关系表太贵了,能不能换一种方式生成“空间权重”?
Conv2Former 怎么“生成注意力权重”?
Attention:通过 QKᵀ 生成权重(HW×HW)
- 权重是“任意两点两两关系”
Conv2Former:通过大核深度卷积生成权重(HW×C)
- 权重是“每个位置的空间调制系数”
- 由 卷积根据邻域上下文计算而来
- 卷积核够大(例如 11×11),每个位置就能看到更大的上下文
为什么它仍然保留“内容自适应性”?
- Conv2Former 的权重不是固定的卷积核权重本身
- 而是:输入特征 A → Conv → 得到的调制图(权重图)
权重随输入变化,是动态的 只是生成方式从 QKᵀ 换成了 Conv
Self-Attention
| Conv2Former 卷积调制
|
QKᵀ → Softmax → 加权 V
| 大核深度卷积生成空间调制权重
|
全局 Token-to-Token
| 局部-全局混合的空间建模
|
O(N²) 复杂度
| O(N·k²),k 可控
|
显存敏感
| 工程友好
|
3、模型的网络结构
它是一个**四阶段金字塔结构(4-stage pyramid)**的视觉骨干网络: 分辨率逐步降低(56→28→14→7),通道数逐步升高(72→144→288→576), 每个 stage 堆叠多个 Conv2Former Block 进行特征提取,最后用于分类。
“像 ResNet/ConvNeXt 那样的 CNN 金字塔骨架 + 像 Transformer 那样的 Block 堆叠思想 只不过 Block 的核心算子换成了 Conv2Former 提出的卷积调制注意力。”
Step 0:输入图像
- 输入尺寸:224×224
Step 1:Patch Embedding(把图像“切块并变通道”)
用一个卷积(通常 stride=4)把原图降采样并映射到特征空间 等价于:把图像切成 patch,然后每个 patch 变成一个向量表示
- 224×224 → 56×56
- 同时通道变成 C1=72
- 原图像像“高清照片”
- Patch Embed 就像“先压缩成 56×56 的特征图”,方便后续处理
3)四个 Stage:典型金字塔特征提取(核心主干)
- 1 次 Patch Embed(用于下采样/升通道)
- 多个 Conv Block(图中 Conv Block 重复 ×Li)
Stage I(橙色框)
- 分辨率:56×56
- 通道:C1=72
- Block 数量:×L1 并且图注里明确给了:
这一层处理“局部纹理细节”,比如边缘、颜色过渡、小纹理。
Stage II(黄色框)
- 56×56 → 28×28
- 通道 72 → 144
这一层开始提取“更抽象一点”的结构,比如局部形状、简单部件组合。
Stage III(绿色框)
- 28×28 → 14×14
- 通道 144 → 288
Stage III 是整个 backbone 的“主战场”,负责最核心、最复杂的语义建模。 可以理解成:模型在这一层真正学会“这是一只兔子,不是猫”。
- 因为 14×14 的分辨率已经不算大了
- 这时堆深网络性价比最高(算力/显存更省,但表达能力提升巨大)
Stage IV(蓝色框)
- 14×14 → 7×7
- 通道 288 → 576
最后这一层聚合“全局语义”,基本已经是非常抽象的类别级信息。
4)最后:分类头 Classification
- 7×7×576 的特征
- 做全局平均池化(GAP)或类似聚合
- 接一个线性层输出类别
5)这套结构的“形象理解”:从像素到概念的逐级抽象
- Stage I:看像素细节(毛发纹理、背景草地颗粒)
- Stage II:看部件轮廓(耳朵形状、脸的边缘)
- Stage III:理解整体结构(动物的姿态、身体比例)
- Stage IV:形成类别语义(判定“兔子”这个概念)
6)为什么它长得像 CNN(金字塔),却叫 Former(Transformer)?
- 它的整体骨架:像 CNN(ResNet/ConvNeXt) → stage-based 金字塔结构非常适合下游任务(检测/分割)
- 它的 block 思想:像 Transformer → 堆叠多个相同结构模块(Block),并强调上下文建模
- 它的核心算子:不是 Self-Attention,而是 卷积调制注意力(Conv modulation) → 更省算力/显存,更工程友好
3. Design:你是如何“巧妙地”把 Conv2Former 放进 RT-DETR 的?
3.1 设计原则:非侵入式、结构对齐、功能互补
- 不改 Decoder,不动损失函数 → 排除“调参涨点”的嫌疑
- 仅增强 Backbone 的上下文建模能力 → 创新目标明确、定位清晰
- 模块级替换,而非网络级重构 → 工程可落地、可复现、可扩展
3.2 设计一:直接引入 Conv2Former Block(结构增强型)
- 保留 CSP / HGNet 的多分支特征融合结构
- 在主干特征流中引入:
- 大核卷积 → 扩展感受野
- 调制机制 → 提供内容自适应能力
- 不引入显式注意力计算,避免复杂度爆炸
“我们并没有让 RT-DETR 变得更复杂,而是让它在关键位置‘看得更远’。”
3.3 设计二:Conv2Former × HGBlock(结构融合型,创新更强)
与其在 Backbone 里“堆模块”,不如重构一个更强的基础单元。
- HGBlock 负责:
- 多层特征生成
- 局部细节建模
- Conv2Former 负责:
- 跨区域上下文调制
- 大尺度空间关系建模
- 单个 Block 同时具备:
- 局部精细感知
- 近似全局建模能力
- 非 Transformer 结构,却具备 Transformer 行为特征
4. Evidence:你如何证明这不是“玄学涨点”?
4.1 证据一:创新来源于顶会/顶刊方法,而非“自造模块”
- ImageNet 分类
- COCO 检测
- ADE20K 分割
4.2 证据二:结构变化 → 性能提升,逻辑链条闭合
大核卷积 → 更大感受野 → 更强上下文建模 → 更稳定的目标定位 → RT-DETR 性能提升
4.3 证据三:工程约束下仍能稳定收益
- 没有引入 O(N²) Attention
- 没有显著增加推理延迟
- 没有依赖特殊训练技巧
改进来自结构本身,而非训练偶然性。