【第10篇】Conv2Former(TPAMI 2024):一种用于视觉识别的简单Transformer风格卷积网络
2026/8/25 19:32:05 网站建设 项目流程

论文题目:Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition
中文题目:Conv2Former:一种用于视觉识别的简单 Transformer 风格卷积网络
文献地址:https://arxiv.org/abs/2211.11943
源码地址:https://github.com/HVision-NKU/Conv2Former

文章目录

    • @[toc]
  • 五分钟回顾模型
  • 实验结果
    • 一、ImageNet-1K 图像分类
    • 二、卷积核尺寸与融合方式消融
    • 三、COCO 目标检测与实例分割
    • 四、ADE20K 语义分割
  • 本文方法
    • 整体架构:四阶段 Transformer 风格 ConvNet
      • 层级特征如何服务不同任务
    • Conv2Former Block:空间建模与通道混合分工
    • Convolutional Modulation:每一步为什么有效
      • 线性映射 W₁:为调制分支准备特征
      • 大核深度卷积:低成本获得更大范围的上下文
      • 线性映射 W₂:建立独立的内容分支
      • Hadamard Product:用乘法建立条件交互
      • 为什么 A⊙V 之前不使用 Sigmoid
      • 输出映射与 FFN:重新融合通道信息
  • 总结与思考

过去几年,视觉 Transformer 凭借自注意力在图像分类、目标检测和语义分割等任务中取得了很强的表现。与此同时,ConvNeXt、RepLKNet 等工作也不断吸收 Transformer 的训练策略和宏观设计,重新证明了卷积网络仍然具有很强的竞争力。

那么,一个很自然的问题是:Transformer 的优势究竟来自自注意力本身,还是也来自它清晰的模块划分与网络设计方式?

Conv2Former 给出的答案很直接。它保留 Transformer Block 中“空间建模 + 通道混合”的基本逻辑,但不再显式计算 Query、Key 之间的两两相关性,而是用大核深度卷积生成空间权重,再与 Value 分支逐元素相乘。作者将这一过程称为Convolutional Modulation,即卷积调制。

🔥🔥🔥本篇内容:本文介绍 Conv2Former 的整体结构、卷积调制模块以及关键实验结果。全文按照“五分钟回顾模型—实验结果—本文方法”的顺序展开,重点回答三个问题:Conv2Former 长什么样、它相较普通卷积和自注意力改了什么、这些设计是否真的有效。

五分钟回顾模型

Conv2Former 可以先用一句话概括:

**Conv2Former 不是直接使用标准 self-attention,而是提出 convolutional modulation。给定输入特征X,用一个分支通过 depthwise large-kernel convolution 生成空间权重A,另一个分支生成 value 表示V,然后做逐元素乘法:也就是A中大核卷积负责观察上下文,V分支负责保存内容,逐元素乘法负责根据上下文信息重新调整内容。

从整体上看,Conv2Former 是一个标准的四阶段金字塔 Backbone。输入图像经过 Patch Embedding 后进入不同 stage,特征图分辨率逐级降低、通道数逐级增加,最终得到多尺度特征。这样的层级结构天然适合接入检测和分割框架,而不需要像早期 ViT 那样始终维持单一尺度的 token 序列。

从整体框架继续向下看,每个 Conv2Former Block 仍然沿用 Transformer 的两段式思路:

  • 前半部分负责空间信息交互,由卷积调制模块完成;
  • 后半部分负责通道维度的信息混合,由前馈网络 FFN 完成;
  • 两个部分均配合归一化、激活函数和残差连接使用。
    因此,Conv2Former 并不是简单地把若干卷积层堆在一起,而是把 Transformer Block 的职责划分迁移到了卷积网络中。

    Conv2Former 最关键的局部模块是卷积调制。输入特征被送入两条分支:一条分支经过线性映射和大核深度卷积(即上图的Linear+DConv),产生位置与通道相关的调制权重张量A;另一条分支经过线性映射得到待调制特征V(即上图的Linear)。二者逐元素相乘后,再通过线性层输出。这里的A不是经过归一化的注意力概率。

它与自注意力最明显的区别在于:自注意力需要通过QKᵀ显式构造位置之间的两两关系,注意力矩阵的空间规模随 token 数平方增长;卷积调制则用固定尺寸的大核深度卷积聚合邻域信息,不生成HW×HW的注意力矩阵。
完整过程可以简化为:

可以这样理解:

  • V表示当前位置有哪些特征;
  • **A表示结合周围信息后,这些特征该保留、增强、还是减弱。类似于注意力。

也就是A中大核卷积负责观察上下文,V分支负责保存内容,逐元素乘法负责根据上下文信息重新调整内容。**

这里也要避免一个常见误解:Conv2Former 的调制权重会随输入特征变化,但卷积核参数本身仍然是训练得到的静态参数。它不是动态卷积,也不是严格意义上的全局注意力。单个卷积调制模块能够直接覆盖的范围仍受卷积核尺寸约束,只是经过多层堆叠后,有效感受野会继续扩大。
论文默认采用11×11深度卷积核。大核负责扩大空间建模范围,深度卷积则把计算限制在各通道内部,避免普通大核卷积带来过高的参数量和计算量。空间调制之后,FFN 再完成跨通道的信息交互。网络其他位置会使用 GELU,但A⊙V之前的A不经过 Sigmoid、其他激活函数或归一化。

其实,大部分门控结构会对权重使用 Sigmoid,将其限制在 0 到 1:

这样做比较容易解释,因为权重可以被理解成“保留比例”。但它也带来了限制:

  • 权重不能大于 1,难以直接增强特征;
  • 权重不能小于 0,不能改变特征响应的符号;
  • Sigmoid 在较大或较小输入区域容易趋近饱和;
  • A强行解释成概率,可能限制调制分支的表达空间。
    这就是为什么Conv2former点乘前不使用 Sigmoid的原因。
    Conv2Former 提供 N、T、S、B、L 五种模型规模,参数量从 15M 扩展到 199M:
模型参数量定位
Conv2Former-N15M轻量版本
Conv2Former-T27M小型版本
Conv2Former-S50M中型版本
Conv2Former-B90M基础版本
Conv2Former-L199M大型版本

以 Conv2Former-T 为例,四个 stage 的通道数为{72, 144, 288, 576},Block 数量为{3, 3, 12, 3}。网络的大部分深度集中在第三阶段,这也是许多现代层级式视觉骨干常见的计算分配方式。

快速回顾可以归纳为下面这条主线:

输入图像 ↓ 四阶段金字塔:逐级降低分辨率、增加通道数 ↓ Conv2Former Block ├─ 卷积调制:大核深度卷积生成空间权重 └─ FFN:完成通道信息混合 ↓ 输出多尺度特征,用于分类、检测和分割

Conv2Former 的创新不在于提出一种更复杂的注意力,而在于用极简的“卷积生成权重 + 逐元素调制”重写空间建模模块,并把它放进成熟的 Transformer 风格框架中。

实验结果

论文分别在 ImageNet 图像分类、COCO 目标检测与实例分割、ADE20K 语义分割上进行验证,并通过消融实验分析卷积核尺寸与特征融合方式。

一、ImageNet-1K 图像分类

在 ImageNet-1K 上以224×224分辨率从头训练时,论文报告的结果如下:

模型参数量FLOPsTop-1 Accuracy
Conv2Former-N15M2.2G81.5%
Conv2Former-T27M4.4G83.2%
Conv2Former-S50M8.7G84.1%
Conv2Former-B90M15.9G84.4%

![Conv2Former在ImageNet-1K上的分类结果](https://i-
blog.csdnimg.cn/img_convert/ad295ee58bc4772b5269c20297a85119.png)

随着模型规模从 N 增加到 B,Top-1 准确率从 81.5% 提升到 84.4%,同时参数量和 FLOPs 也同步增加。对实际使用者而言,这组结果更适合用来观察 Conv2Former 家族内部的容量—计算量取舍,而不是脱离训练设置单独比较某一个精度数字。

论文还给出了 ImageNet-22K 预训练后的迁移结果:

模型输入分辨率ImageNet-1K Top-1
Conv2Former-B224×22486.2%
Conv2Former-B384×38487.0%
Conv2Former-L224×22487.0%
Conv2Former-L384×38487.7%


预训练数据和输入分辨率均发生变化后,结果不能与上一张“ImageNet-1K 从头训练、224 输入”的表格直接横向归因。它更准确地说明了 Conv2Former 在扩大模型与数据规模后仍具有继续提升的能力。

二、卷积核尺寸与融合方式消融

卷积调制依靠深度卷积获取空间上下文,因此卷积核大小是一个关键变量。论文从5×5一直测试到21×21,并将11×11作为默认设置。以 Conv2Former-B 为例,7×7卷积核取得 84.2%,11×11取得 84.4%。

实验中,分类精度整体随卷积核从5×5增大到21×21而提高,但后期边际收益逐渐减小,更大的核也会继续增加计算量。论文将11×11设为默认值,本质上是在空间覆盖范围、精度收益与计算开销之间取平衡。
卷积调制中另一项关键设计,是如何把空间权重A与特征V结合。Conv2Former-T 上的消融结果如下:

融合或权重处理方式Top-1 Accuracy
Element-wise Sum82.7%
对 A 使用 Sigmoid82.3%
对 A 使用 L1 Normalization82.8%
将 A 线性归一化到(0,1]82.2%
Hadamard Product83.2%


结果表明,直接使用逐元素乘法效果最好。论文没有在乘法前额外加入 Sigmoid,也没有强制进行归一化。这一点很重要:卷积分支产生的A不只是一个限制在 0 到 1 之间的“注意力概率”,它可以更自由地放大、抑制或改变不同位置和通道上的响应。

三、COCO 目标检测与实例分割

论文将 Conv2Former 接入 Mask R-CNN 和 Cascade Mask R-CNN,在 COCO 上验证其作为通用 Backbone 的能力。下表模型均采用 ImageNet-1K 预训练的 Backbone、3× schedule和多尺度训练,可核对的结果包括:

检测框架BackboneAPᵇAPᵐ
Mask R-CNNConv2Former-T48.043.0
Cascade Mask R-CNNConv2Former-T51.444.5
Cascade Mask R-CNNConv2Former-S52.845.7
Cascade Mask R-CNNConv2Former-B52.845.6

其中,APᵇ 表示边界框检测 AP,APᵐ 表示实例分割掩码 AP。这些结果说明四阶段金字塔输出可以顺利迁移到密集预测框架,卷积调制并不只服务于最终的分类特征。

需要注意,表中结果跨越了不同模型规模与检测器。比如 Conv2Former-S 和 B 在 Cascade Mask R-CNN 下的 APᵇ 相同,但不能据此简单判断二者整体能力完全相同;参数量、训练随机性、各尺度 AP 与推理开销也属于完整比较的一部分。

四、ADE20K 语义分割

在 ADE20K 数据集上,论文使用 UPerNet 进行语义分割评估。由于 L 版本的预训练数据和裁剪尺寸与前三个版本不同,这里将实验条件一并列出:

Backbone预训练数据Crop SizemIoU
Conv2Former-TImageNet-1K512×51248.0
Conv2Former-SImageNet-1K512×51250.3
Conv2Former-BImageNet-1K512×51251.0
Conv2Former-LImageNet-22K640×64054.3


在同为 ImageNet-1K 预训练、512×512裁剪的 T、S、B 三个版本中,mIoU 随模型规模提高。Conv2Former-L 达到 54.3,但它同时使用 ImageNet-22K 预训练和640×640裁剪,因此不能把与 B 版本的差异只归因于模型容量。整体结果表明该 Backbone 可以用于 UPerNet,但也不能把全部表现单独归因于某一个11×11深度卷积。

本文方法

整体架构:四阶段 Transformer 风格 ConvNet

Conv2Former 采用四阶段层级式架构。每个 stage 在固定分辨率上堆叠若干 Conv2Former Block;stage 之间通过 Patch Embedding 完成下采样和通道调整,通常使用2×2、步幅为 2 的卷积,将空间尺寸减半。

这种设计可以从两个角度理解:

  • 从 CNN 角度看,它保留了经典特征金字塔,浅层特征分辨率高、细节丰富,深层特征分辨率低、语义更强;
  • 从 Transformer 角度看,每个 Block 都明确分成空间建模模块和 FFN,使用残差连接串联,结构职责清晰。

因此,“Transformer-style”描述的是 Block 的组织方式,并不表示网络内部必须存在自注意力。Conv2Former 的主体运算仍然由卷积、线性映射、逐元素乘法、归一化和激活函数构成。
以 Conv2Former-T 为例,特征会依次进入四个 stage:

Stage通道数Block 数量主要作用
Stage 1723保留高分辨率局部信息
Stage 21443继续下采样并增强表征
Stage 328812承担主要特征提取计算
Stage 45763形成低分辨率高语义特征

N、S、B、L 等变体通过调整通道宽度和网络深度形成不同计算规模,但都沿用同一套四阶段骨架与 Conv2Former Block。

层级特征如何服务不同任务

四个 stage 能输出不同分辨率的特征,因此 Conv2Former 可以作为通用 Backbone 接入 Mask R-CNN、Cascade Mask R-CNN 和 UPerNet。浅层输出保留较丰富的位置与边缘信息,深层输出提供更强语义。

这套迁移不需要改变卷积调制模块。变化主要发生在 Backbone 之后:分类任务对最终特征进行汇聚和分类;检测任务把多尺度特征交给检测器;语义分割则通过解码头恢复空间分辨率。明确整体输出方式后,下面再进入单个 Conv2Former Block 的内部。

Conv2Former Block:空间建模与通道混合分工

一个 Conv2Former Block 可以概括为两部分:

输入 X │ ├─ 归一化 → Convolutional Modulation → 残差相加 │ └─ 归一化 → FFN → 残差相加 ↓ 输出

第一部分的卷积调制负责空间维度的信息传播,作用上对应 Transformer 中的自注意力;第二部分的 FFN 负责通道维度的信息变换。网络使用 LayerNorm,并在相应位置采用 GELU,整体保留了现代 Transformer/ConvNet 常见的训练与优化设计。需要特别区分的是,调制分支在A⊙V之前不对A使用 GELU、Sigmoid、其他激活函数或归一化。

Convolutional Modulation:每一步为什么有效

卷积调制是全文最核心的部分。对于输入特征X,它通过两条分支分别得到调制权重和待调制特征:
A = D C o n v ( W 1 X ) , V = W 2 X , Z = A ⊙ V A=\mathrm{DConv}(W_1X),\qquad V=W_2X,\qquad Z=A\odot VA=DConv(W1X),V=W2X,Z=AV
其中,W₁W₂表示线性映射,DConv表示大核深度卷积,表示逐元素乘法。得到Z后,再经过输出映射形成模块输出。

线性映射 W₁:为调制分支准备特征

深度卷积的特点是各通道独立执行空间卷积,本身不会主动交换不同通道的信息。如果直接在原始输入上执行深度卷积,每个输出通道只能依据对应输入通道的邻域生成响应。
W₁先对通道进行学习后的重新组合,再让大核深度卷积处理这些特征。这样,卷积调制分支接收到的不再是未经变换的原始通道,而是更适合生成调制权重的表示。

大核深度卷积:低成本获得更大范围的上下文

DConv(W₁X)使用大核深度卷积生成A。对于某个位置(h,w)A[h,w,c]不只由该位置决定,还会参考卷积核覆盖范围内的邻域特征。
较大的卷积核可以让模型在判断局部纹理时同时观察更宽的区域;深度卷积又避免了普通大核卷积随输入、输出通道共同增长的高成本。论文的核尺寸实验表明,更大的核在 Conv2Former 中总体能够带来收益,而默认11×11是效果与成本之间的选择。
这里的A同时具有空间和通道维度,更准确的称呼是“位置与通道相关的调制权重张量”,而不是只有二维空间位置的注意力图。
从复杂度直觉看,设特征图包含HW个位置、通道数为C,固定核尺寸为k×k时,深度卷积的空间计算量大致随HW·C·k²增长;标准全局自注意力中的空间相关矩阵则包含(HW)²个位置对。高分辨率输入下,不构造全局注意力矩阵是 Conv2Former 控制内存和计算开销的重要原因。
不过,大核卷积没有显式建模任意两个远距离位置之间的两两相似度,单层直接作用范围仍受卷积核限制。因此,“不构造二次复杂度注意力矩阵”不应被误写为“获得与全局注意力完全相同的关系建模”。
这也不意味着大核卷积在所有设备上都一定比优化后的注意力更快。真实速度还受到硬件、算子实现、内存访问、batch size 和数值精度影响。FLOPs 只描述部分理论成本,部署时仍应在目标设备上测试吞吐量与延迟。

线性映射 W₂:建立独立的内容分支

V=W₂X可以理解为模块准备传递给下一层的内容特征。将AV分成两条路径,是为了让它们承担不同职责:

  • A回答“结合邻域上下文后,当前位置和通道应该如何调整”;
  • V回答“当前位置实际包含哪些待传递内容”。
    如果只保留大核深度卷积,模块更接近普通的空间混合;加入独立的 Value 分支后,空间上下文能够显式控制内容响应。

Hadamard Product:用乘法建立条件交互

逐元素乘法可以写成:

Z[h,w,c] = A[h,w,c] × V[h,w,c]

它不是简单把两条分支放在一起,而是让一条分支控制另一条分支:

  • A大于 1 时,Z相对于V的幅值可以被放大;
  • A接近 0 时,Z相对于V可以被抑制;
  • A小于 0 时,Z的符号相对于V可以发生变化。
    更重要的是,AV都依赖输入X。即使暂时把两条分支看成线性变换,f(X)⊙g(X)也已经不是对输入的单一线性映射,而是一种乘法交互。模型由此能够表达“某种上下文出现时,才增强某种内容特征”这样的条件关系。
    这也是它与逐元素相加的主要区别:加法更像把两种信息叠加,而乘法天然具有门控和调制能力。论文消融中,Conv2Former-T 使用 Element-wise Sum 得到 82.7%,使用 Hadamard Product 得到 83.2%,直接支持逐元素乘法的选择。

为什么 A⊙V 之前不使用 Sigmoid

许多门控结构会对权重使用 Sigmoid,将其限制在 0 到 1。这样容易把权重解释为“保留比例”,但也会限制表达范围:

  • 权重不能大于 1,难以直接放大特征;
  • 权重不能小于 0,不能改变响应方向;
  • Sigmoid 在输入绝对值较大时容易进入饱和区域;
  • A强制解释为概率,可能削弱自由调制能力。
    一种可能的解释是,Sigmoid 会限制权重范围并可能出现饱和,归一化也会改变调制张量原本的幅值关系。不过,论文只通过消融确认了“不加激活或归一化、直接计算A⊙V”的结果更好,并没有验证性能下降的具体原因,作者也将这一现象的进一步解释留给后续研究。
    这里还需要特别区分:网络其他位置会采用 GELU,但在乘法前,A不经过 GELU、Sigmoid、其他激活函数或归一化。

输出映射与 FFN:重新融合通道信息

深度卷积主要在单个通道内部处理空间信息,逐元素乘法也只发生在相同位置和相同通道之间。因此,A⊙V后还需要输出线性映射,将各通道的调制结果重新组合到新的表示空间。
Conv2Former Block 随后的 FFN 会进一步完成通道维度的信息变换。整个模块的职责可以归纳为:
从结构上理解 Conv2Former 时,应把它看作一条完整的信息流,而不能只关注“逐元素乘法”这一个符号:大核卷积提供上下文,双分支分离“权重”和“内容”,乘法建立输入相关的条件交互,输出映射与 FFN 再补足跨通道融合。不过,论文没有分别消融W₁W₂、输出映射与 FFN 的独立精度贡献。

总结与思考

Conv2Former 提出了一种非常克制的视觉 Backbone 设计。它没有继续增加注意力分支,也没有引入复杂的动态核生成器,而是用大核深度卷积产生空间权重,通过 Hadamard Product 调制 Value 特征,再配合 FFN 完成通道混合。
如果只记住一句话,可以记成:

**Conv2Former 不是直接使用标准 self-attention,而是提出 convolutional modulation。给定输入特征X,用一个分支通过 depthwise large-kernel convolution 生成空间权重A,另一个分支生成 value 表示V,然后做逐元素乘法:也就是A中大核卷积负责观察上下文,V分支负责保存内容,逐元素乘法负责根据上下文信息重新调整内容。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询