【CVPR 2025】LSNet:大视野感知,小区域聚合
文章目录
- 一、论文信息
- 二、论文概要
- 三、实验动机
- 四、创新之处
- 五、实验分析
- 六、核心代码
- 源代码
- 注释版本
- 七、实验总结
一、论文信息
- 论文题目:LSNet: See Large, Focus Small
- 中文题目:LSNet:大视野感知,小区域聚合
- 论文链接:点击跳转
- 代码链接:点击跳转
- 作者:Ao Wang(王傲)、Hui Chen(陈辉)、Zijia Lin(林子佳)
、Jungong Han(韩俊功)、Guiguang Ding(丁贵光) - 单位:清华大学软件学院、BNRist清华大学、清华大学自动化系
- 核心速览:LSNet 提出了一种新的 LS卷积(Large-Small Convolution),模仿人类视觉“看大、聚焦小”的特性,结合 大卷积核感知(LKP) 与 小卷积核动态聚合(SKA),实现了高效且精确的特征建模。在ImageNet分类、COCO检测/分割、ADE20K语义分割等任务上均超越同类轻量化模型,在精度和推理速度间取得最佳平衡。
二、论文概要
LSNet 受到人类视觉系统的启发(外围视野“看大”+中央视野“聚焦小”),提出 LS卷积:
-
大卷积核感知(Large-Kernel Perception, LKP) 用于获取大范围上下文;
-
小卷积核聚合(Small-Kernel Aggregation, SKA) 动态捕捉局部细节。
在此基础上构建 LSNet 网络族(Tiny/Small/Base),在保证轻量化的同时显著提升模型表现。
三、实验动机
现有轻量级模型(如MobileNet、EfficientViT)在 token mixing 过程中存在以下问题:
-
Self-Attention:计算复杂,对无关区域过度关注;
-
Convolution:感受野有限,缺乏上下文适应性。
-
人类视觉系统通过 周边视觉(大范围模糊感知) 和 中央视觉(小范围精细聚焦) 高效处理视觉信息,启发作者设计异尺度感知-聚合机制。
四、创新之处
- 提出 LS卷积:首个实现“感知大场景+聚合小范围”的高效模块。
- 分层感受野建模:LKP + SKA 分别负责全局关系和细节建模。
- 轻量化设计:利用 depth-wise conv 和分组机制,显著降低计算开销。
- 良好泛化性:在 ResNet 和 DeiT 中替换原有模块,也能带来明显性能提升。
五、实验分析
-
ImageNet-1K 分类:LSNet-B 在 1.3G FLOPs 下取得 80.3% Top-1,优于 EfficientViT、RepViT 等。
-
COCO 检测/分割:在 RetinaNet 和 Mask R-CNN 框架下均显著超越对照模型。
-
ADE20K 语义分割:LSNet-B 达到 43.0 mIoU,超过 Swin-T、FastViT 等。
-
鲁棒性测试(ImageNet-C/A/R/Sketch):LSNet 在跨域泛化和抗干扰方面表现优异。
六、核心代码
源代码
import torch.nn as nnclass LKP(nn.Module):def __init__(self, dim, lks, sks, groups):super().__init__()self.cv1 = Conv2d_BN(dim, dim // 2)self.act = nn.ReLU()self.cv2 = Conv2d_BN(dim // 2, dim // 2, ks=lks, pad=(lks - 1) // 2, groups=dim // 2)self.cv3 = Conv2d_BN(dim // 2, dim // 2)self.cv4 = nn.Conv2d(dim // 2, sks ** 2 * dim // groups, kernel_size=1)self.norm = nn.GroupNorm(num_groups=dim // groups, num_channels=sks ** 2 * dim // groups)self.sks = sksself.groups = groupsself.dim = dimdef forward(self, x):x = self.act(self.cv3(self.cv2(self.act(self.cv1(x)))))w = self.norm(self.cv4(x))b, _, h, width = w.size()w = w.view(b, self.dim // self.groups, self.sks ** 2, h, width)return wclass LSConv(nn.Module):def __init__(self, dim):super(LSConv, self).__init__()self.lkp = LKP(dim, lks=7, sks=3, groups=8)self.ska = SKA()self.bn = nn.BatchNorm2d(dim)def forward(self, x):return self.bn(self.ska(x, self.lkp(x))) + x
注释版本
七、实验总结
LSNet 通过 LS 卷积实现了 高效 token 混合,兼顾 大范围上下文感知 与 小范围精细建模,在分类、检测、分割及鲁棒性任务中均取得 SOTA,展现了轻量化视觉网络的新范式。