引言 :ViT绝杀CNN了?
卷积神经网络曾是现代计算机视觉系统里编码器的常见选择。然而近两年,Vision Transformer在图像分类任务及其下游任务(如目标检测和语义分割等任务)中不断冲击着CNN的地位。
为什么ViTs如此强大?一些研究认为,多头自注意(MHSA)机制在ViTs中起着关键作用。一些工作认为MHSA具有CNN缺乏的获取长期依赖的能力,能够对输入的特征进行全局建模,因此单个MHSA层的每个输出都能够获取全局信息。但是CNN中,除了第一层外很少会采用较大的卷积核,一般都是通过多个小卷积核叠加来增加感受野,只有一些比较老的网络和采用神经网络搜索搜索出来的网络结构会使用较大的卷积核(大于5x5)。
文章目录
RepLKNet与目前流行的小核CNN模型背道而驰,其核心模块由31×31的大卷积核构成。在Vision Transformer (ViT) 流行的大背景下,RepLKNet以纯CNN的架构获得了超过Swin Transformer( Top-1 acc: 87.3%)的性能。今天就来深入解读下这篇被CVPR2022收录的论文。
CVPR2022 RepLKNet

论文地址:Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
参考视频:从CVPR2022-RepLKNet分析有效感受野,并提供YOLOV8可视化感受野的脚本和讲解~
参考博客:感受野的热力图可视化
参考PaddlePaddle解读文章:卷积核越大性能越强?一文解读RepLKNet模型
摘要
We revisit large kernel design in modern convolutional neural networks (CNNs). Inspired by recent advances in vision transformers (ViTs), in this paper, we demonstrate that using a few large convolutional kernels instead of a stack of small kernels could be a more powerful paradigm. We suggested five guidelines, e.g., applying re-parameterized large depth-wise convolutions, to design efficient high-performance large-kernel CNNs. Following the guidelines, we propose RepLKNet, a pure CNN architecture whose kernel size is as large as (31×31), in contrast to commonly used (3×3). RepLKNet greatly closes the performance gap between CNNs and ViTs, e.g., achieving comparable or superior results than Swin Transformer on ImageNet and a few typical downstream tasks, with lower latency. RepLKNet also shows nice scalability to big data and large models, obtaining 87.8% top-1 accuracy on ImageNet and 56.0% mIoU on ADE20K, which is very competitive among the state-of-the-arts with similar model sizes. Our study further reveals that, in contrast to small-kernel CNNs, large-kernel CNNs have much larger effective receptive fields and higher shape bias rather than texture bias. Code & models at https://github.com/megvii-research/RepLKNet.
摘要翻译:
我们重新探讨了现代卷积神经网络(CNNs)中的大核设计。受视觉Transformer(ViTs)最新进展的启发,本文证明,使用少量大卷积核而非堆叠小核可能是一种更强大的范式。我们提出了五条指导原则(例如,应用重参数化的大型深度卷积),用于设计高效高性能的大核CNN。遵循这些原则,我们提出了RepLKNet——一种纯CNN架构,其核尺寸高达31×31,而非常规使用的3×3。RepLKNet大幅缩小了CNN与ViT之间的性能差距,例如在ImageNet和多个典型下游任务上取得了与Swin Transformer相当或更优的结果,且延迟更低。RepLKNet对大数据和大型模型也表现出良好的可扩展性,在ImageNet上达到87.8%的top-1准确率,在ADE20K上达到56.0%的mIoU,在相似模型规模的现有方法中极具竞争力。我们的研究进一步表明,与小核CNN相比,大核CNN具有更大的有效感受野,且更偏向形状而非纹理。代码和模型参见https://github.com/megvii-research/RepLKNet。
大核使用的准则
作者通过一系列实验,总结了五条有效使用大卷积核的经验准则。
大深度卷积的高效性
大卷积核首先带来的问题就是大量的参数和浮点运算量,且现有深度学习框架对其支持不足,导致运算效率低下。对此,通过深度可分离卷积可有效解决:
深度可分离卷积由两部分组成:
- DepthWise(DW)卷积:输入通道、输出通道与分组数相同,每个卷积核仅对应一张特征图计算。相较于传统卷积,其参数量和计算量降至原来的1/n(n为输入通道数),大幅减少冗余。但缺点是减少了不同通道特征的信息交互,可能导致精度损失。
- PointWise(PW)卷积:通过1×1卷积实现n通道输出,对DW卷积的结果进行点对点乘加运算,弥补DW特征交互的不足,融合不同通道的信息。
两者结合,既保留了大卷积核的感受野优势,又通过分离通道计算与跨通道融合,在降低参数和计算量的同时维持性能,使大核卷积在实际应用中高效可行。

残差连接的重要性
作者以MobileNetV2为基线,将深度可分离卷积的3×3核替换为13×13大核后,保留残差结构时,分类准确率提升0.77%;而移除残差结构后,准确率骤降至53.98%,性能严重退化。

这表明,残差连接能有效缓解大卷积核带来的优化困难,帮助模型在扩大感受野的同时,避免丢失局部细节信息。相比小卷积核,大卷积核对残差结构的依赖更强,残差连接是大核模型发挥性能的关键支撑。
小核重参数化的优化
如下表所示,用9×9和13×13的卷积核代替MobileNet V2中的3×3卷积核后效果下降,于是使用小卷积核进行重参数化,模型性能有了显著的提高(13好于9)。

对下游任务的显著提升
大卷积核经重参数化后,对下游任务(如分割)mIoU的提升幅度超过分类任务,原因主要有两点:
- 下游任务(如像素级分割)需精细化处理,更大的感受野能覆盖更多上下文信息,而大卷积核可直接提供更大感受野,更适配这类任务需求;
- 大卷积核能提取更深层的语义信息,有助于精准定位目标,从而在像素级分割等依赖目标位置判断的任务中表现更优。
因此,大卷积核对下游任务的增益更为显著,其优势与任务对全局上下文和语义定位的需求高度契合。
在小特征图上依然有效
在MobileNetV2的模型中,将224×224尺寸的图像作为输入,MobileNetV2中由bottleneck组成的stage层会对图像进行特征提取以及尺寸缩减,最后一个stage层输入的是7×7尺寸的特征,再对这个特征进行卷积、池化、分类的操作就可以得到分类结果。 作者将MobileNetV2结构中最后一个stage层的卷积核变为7×7和13×13的大小,结果如下表所示。

发现对比原模型,修改后的模型效果依然有明显的增加。这说明了大卷积核在小特征图同样有效。
RepLKNet网络结构
在上一节所述的5条经验准则的指导下,作者构建如下图所示的RepLKNet:

图4. RepLKNet由 Stem、Stages和 Transitions(过渡层)组成。除深度可分离(DW)大核外,其他组件还包括3×3深度可分离卷积、密集1×1卷积和批归一化(BN)[51]。需注意,每个卷积层后都紧跟一个BN层(图中未画出)。这类卷积-BN序列采用ReLU作为激活函数,但 shortcut 加法前的卷积-BN序列以及GELU[43]前的卷积-BN序列除外(这是常见做法[42,77])。
三个核心层
1. Stem层
- 功能:对输入图像进行初步特征提取、升维和尺寸缩减,为后续Stage层提供合适的特征图。
- 结构组成:
- 步长为2的3×3卷积(传统卷积);
- 深度可分离卷积(DW+PW);
- 步长为2的DW卷积(深度卷积)。
- 输入输出:
- 输入:原始图像,尺寸为 H × W × 3 H \times W \times 3 H×W×3(假设3通道RGB图像);
- 输出:特征图尺寸为 H / 4 × W / 4 × C 1 H/4 \times W/4 \times C_1 H/4×W/4×C1,其中 C 1 C_1 C1为升维后的通道数(通过卷积操作实现通道数增加)。
- 作用:通过两次步长为2的下采样(总步长4),将图像尺寸压缩至1/4,同时提升通道数,平衡计算量与特征表达能力。
2. Stage层
- 功能:RepLKNet的核心特征处理模块,通过堆叠RepLK Block和ConvFFN,实现深层特征提取与增强。
- 结构组成:
- RepLK Block:
- 包含归一化层(如BN)、1×1卷积(PW卷积,用于通道调整)、大核深度可分离卷积(如31×31 DW卷积,核心大核操作);
- 关键设计:残差连接(shortcut),缓解大核卷积的优化难度,增强特征流动。
- ConvFFN:
- 替代Transformer中的FFN(前馈网络),用1×1卷积替代全连接层,包含两个1×1卷积(中间可能通过激活函数如GELU增强非线性);
- 同样带残差连接,进一步强化特征转换能力。
- RepLK Block:
- 作用:通过大核卷积捕捉全局上下文,结合ConvFFN的通道变换与非线性激活,逐步提升特征的语义表达能力,是模型性能的核心支撑。
3. Transition层
- 功能:实现不同Stage之间的过渡,主要完成下采样(尺寸缩减)和通道数调整,为下一个Stage提供适配的特征图。
- 结构组成:
- 包含PW卷积(1×1卷积,调整通道数)和步长为2的DW卷积(深度卷积,实现2倍下采样)。
- 输入输出:
- 输入:上一Stage输出的特征图(尺寸 H s × W s × C s H_s \times W_s \times C_s Hs×Ws×Cs);
- 输出:下采样后的特征图(尺寸 H s / 2 × W s / 2 × C s + 1 H_s/2 \times W_s/2 \times C_{s+1} Hs/2×Ws/2×Cs+1),通道数通常翻倍(如从256→512)。
- 作用:通过下采样减少特征图尺寸,同时增加通道数,在控制计算量的同时,为更深层的Stage提供更抽象的特征表示。
三者的协作关系:Stem层完成输入图像的初步处理,Transition层衔接不同Stage实现特征尺度与通道的适配,而Stage层通过核心模块的堆叠,逐步提取从低级到高级的语义特征,共同构成RepLKNet的特征提取流程。
RepLKNet的结构与性能特点如下:
块的数量配置
- 核心模块:分类和分割任务中,RepLK Blocks数量为[2,2,18,2],通道数为[128,256,512,1024],各层数量比1:1:9:1,与ConvNeXt、Swin Transformer一致,通道数遵循“翻倍缩减”原则,以128作为RepLKNet-B首个stage通道数平衡性能与参数量。
- 模型变体:通过增加通道数设计不同版本,RepLKNet-L通道为[192,384,768,1536],RepLKNet-XL为[256,512,1024,2048];因大核提升ADE20K的mIoU,最终选用31×31核的RepLKNet-B。
性能表现
- 分类任务:RepLKNet系列在准确率和参数量上优于Swin Transformer,RepLKNet-XL虽计算量和参数量大于Swin-L,仍取得87.8%的Top-1准确率。
- 检测与分割任务:语义分割(Cityscapes、ADE20K)用UperNet结构,目标检测(COCO)用Cascaded Mask R-CNN结构,均达到当前最优(SOTA)效果。
大核局限性
RepLKNet的局限性主要体现在大规模场景下的性能差距: 尽管大卷积核设计能提升模型在ImageNet及下游任务的表现,但当数据量和模型规模增大时,其性能开始落后于Transformer。
例如,RepLKNet-31L在ImageNet的Top-1准确率比Swin-L低0.7%(不过在分割和检测任务上仍与后者相当)。
对此,作者尚未明确差距成因,正探索解决方向,例如通过构建更强的CNN基线(如基于ConvNeXt),尝试突破大核CNN在性能上相对于ViT的上限。
ERF可视化工具解析
见论文的Appendix B: Visualizing the ERF

图 1. 分别为 ResNet-101/152 和 RepLKNet-13/31 的有效感受野(ERF)。分布范围更广的深色区域表明有效感受野更大。增加网络层数(例如从 ResNet-101 到 ResNet-152)对扩大有效感受野的作用甚微。相比之下,我们的大核模型 RepLKNet 能有效获得更大的有效感受野。
- 目标:有效感受野(ERF)是指输入图像中对模型输出特征有显著影响的区域。可视化输入图像各像素对输出特征图中心点的贡献程度,以此直观展示模型的信息聚合范围和关注区域。
- 步骤:通过“导数量化影响→聚合与对数压缩→归一化”的流程,展示了模型关注的输入区域。
符号定义
-
I
(
n
×
3
×
h
×
w
)
I(n × 3 × h × w)
I(n×3×h×w):输入图像
- n n n:批量大小(样本数),
- 3 3 3:输入通道数(如RGB), h h h、 w w w:图像的高和宽。
-
M
(
n
×
c
×
h
′
×
w
′
)
M(n × c × h' × w')
M(n×c×h′×w′):模型最终输出的特征图
- c c c:特征图通道数,
- h ′ h' h′、 w ′ w' w′:特征图的高和宽。
- 关注对象:输出特征图 M M M中每个通道的中心点—— M : , : , h ′ / 2 , w ′ / 2 M_{:,:, h'/2, w'/2} M:,:,h′/2,w′/2(即所有样本、所有通道在特征图中心位置的像素)。
步骤1:计算像素级贡献分数( P P P)
目标是衡量输入图像 I I I中每个像素对输出特征图中心点的影响,用导数量化这种影响: P = max ( ∂ ( ∑ i n ∑ j c M i , j , h ′ / 2 , w ′ / 2 ) ∂ I , 0 ) P = \max \left( \frac{\partial \left( \sum_{i}^{n} \sum_{j}^{c} M_{i,j,h'/2,w'/2} \right)}{\partial I}, 0 \right) P=max ∂I∂(∑in∑jcMi,j,h′/2,w′/2),0
拆解公式:
- 内层求和 ∑ i n ∑ j c M i , j , h ′ / 2 , w ′ / 2 \sum_{i}^{n} \sum_{j}^{c} M_{i,j,h'/2,w'/2} ∑in∑jcMi,j,h′/2,w′/2:将所有样本( i i i)、所有通道( j j j)的特征图中心点数值相加,得到一个总数值(代表“输出中心点的整体响应”)。
- 导数 ∂ ( ⋅ ) ∂ I \frac{\partial (\cdot)}{\partial I} ∂I∂(⋅):计算上述总数值对输入图像 I I I中每个像素的偏导数。导数越大,说明该输入像素对输出中心点的影响越强。
- max ( ⋅ , 0 ) \max(\cdot, 0) max(⋅,0):只保留正贡献(负贡献可能是噪声或抑制作用,此处忽略),得到像素级贡献分数矩阵 P P P。
步骤2:聚合贡献分数( A A A)
为了可视化,需要将多个样本、多个通道的贡献分数整合为一个统一的矩阵: A = log 10 ( ∑ i n ∑ j 3 P i , j , : , : + 1 ) A = \log_{10} \left( \sum_{i}^{n} \sum_{j}^{3} P_{i,j,:,:} + 1 \right) A=log10(i∑nj∑3Pi,j,:,:+1)
拆解公式:
- 求和 ∑ i n ∑ j 3 P i , j , : , : \sum_{i}^{n} \sum_{j}^{3} P_{i,j,:,:} ∑in∑j3Pi,j,:,::将所有样本( i i i)、输入图像的3个通道( j j j)的贡献分数 P P P相加,得到一个综合的贡献矩阵(尺寸为 h × w h × w h×w,与输入图像尺寸一致)。
- + 1 +1 +1:避免数值为0(防止对数无意义)。
- log 10 ( ⋅ ) \log_{10}(\cdot) log10(⋅):对结果取对数,压缩数值范围(因为贡献分数可能差异极大),使可视化更清晰(例如,将1000和10的差异转化为3和1的差异)。
步骤3:归一化(跨模型对比)
为了让不同模型的ERF可视化结果可直接比较,需将矩阵 A A A归一化到[0, 1]范围:
- 操作:将每个模型的 A A A除以自身的最大值(即 A norm = A / max ( A ) A_{\text{norm}} = A / \max(A) Anorm=A/max(A))。
- 目的:消除不同模型输出尺度的差异,突出“相对贡献”的分布模式。
最终效果
通过上述步骤,得到的矩阵 A A A(归一化后)可被可视化为热力图:
- 颜色越亮的区域,代表输入图像中该位置对模型输出中心点的贡献越大(即属于模型的有效感受野)。
- 对比不同模型的热力图,可直观看出:大核CNN(如RepLKNet)的ERF通常更大,而小核CNN或Transformer的ERF分布可能更集中或有不同模式。
CVPR2024 UniRepLKNet
代码:
博客:CVPR 2024 | CNN能搞多模态了!UniRepLKNet:大核CNN一统多种模态,图像/视频/点云/时序均达SOTA
CV上下游任务概念
计算机视觉中,上游任务和下游任务是根据任务目标与数据依赖关系划分的核心概念,核心区别在于是否为后续任务提供基础能力。
- 上游任务(Upstream Tasks)
- 定义:以“学习通用视觉特征”为核心目标的任务,不直接解决具体应用问题,而是为下游任务提供高质量的“视觉基础模型”或“特征表示”。
- 本质:相当于“打基础”,让模型先学会“看”懂图像的基本元素(如边缘、纹理、形状,甚至更高层的物体部件、场景结构)。
- 常见任务举例:
- 图像分类(Image Classification):判断图像属于哪一类(如猫/狗、汽车/飞机),是最经典的上游任务,能让模型学习到物体的核心特征。
- 自监督学习任务(Self-Supervised Learning):无需人工标注,通过图像本身信息学习特征(如预测图像被遮挡的部分、判断图像旋转角度)。
- 特征提取(Feature Extraction):从图像中提取具有代表性的数值向量(如用预训练的ResNet、ViT模型输出图像特征)。
- 下游任务(Downstream Tasks)
- 定义:以“解决具体应用问题”为目标的任务,依赖上游任务训练好的基础模型或特征,在其之上进行微调(Fine-tuning)或直接使用,以快速适配特定场景。
- 本质:相当于“用基础”,基于上游任务学到的“视觉能力”,进一步学习具体任务的规则(如定位物体、分割区域、识别行为)。
- 常见任务举例:
- 目标检测(Object Detection):不仅识别图像中的物体类别,还需标出物体的位置(如在照片中框出“人”“自行车”并标注类别)。
- 图像分割(Image Segmentation):将图像像素级划分为不同类别(如在医学影像中区分“肿瘤”和“正常组织”)。
- 目标跟踪(Object Tracking):在视频序列中持续定位特定物体(如监控中跟踪某个人的移动轨迹)。
上游任务是“因”,提供通用视觉能力;下游任务是“果”,基于上游能力解决实际问题。例如:先用ImageNet数据集训练一个图像分类模型(上游),再用这个模型的底层特征,微调一个能识别视频中行人的目标检测模型(下游),可大幅降低下游任务的训练成本并提升效果。
2198

被折叠的 条评论
为什么被折叠?



