ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点

ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点

导出时间:2026/1/13 12:06:31

1、你要解决什么痛点

1. 目标检测在干嘛?

目标检测就像:
你拿手机拍一张街景照片,要 AI 帮你同时完成:
  • 找出哪里有人/车/路标(定位:框出来)
  • 并告诉你它们分别是什么(分类:人、车、狗)
这件事的关键之一就是:AI 必须从图像里提取有用特征——这就是 CNN 一直负责的事。

2. CNN 的强项是什么?

CNN(卷积神经网络)像一个非常擅长“看局部细节”的侦探:
  • 它会拿一个小放大镜(卷积核,比如 3×3)
  • 在图像上滑来滑去
  • 每次只看一小块区域
✅ 好处: 对纹理、边缘、角点这种局部特征特别敏感。

3. CNN 的痛点:它“只看得见眼前的一小块”

CNN 天生有个限制叫 局部感受野
你可以想象 CNN 是一个人站在高楼上:
  • 他手里拿着望远镜
  • 但是望远镜视野很窄
  • 所以他一次只能看到楼下很小一块区域

这会导致什么问题?

当图片里有:
  • 很大的目标(比如整辆公交车、整个人)
  • 跨很远的依赖关系(比如“左边那个人”和“右边那辆车”的关系)
CNN 可能会出现这种情况:

它看到的是一堆局部零件,但不知道整体是什么。

形象点说:
  • CNN 能看清“轮胎”“玻璃”
  • 但无法一眼判断:“哦,这是一辆公交车”

4. Transformer 为什么强?——它像“全景天眼”

视觉 Transformer 做事情更像:
  • 先把图片切成很多小块(patch)
  • 然后让每个小块都能和其他所有小块“互相聊天”(Self-Attention)
这就像你站在天上俯视城市:
  • 任何两个地方都能建立联系
  • 能理解全局结构
所以 Transformer 在全局依赖建模方面更强。

5. CNN 不服:我也想看得更远!于是有人尝试“大卷积核”

研究者就想:
既然 Transformer 能看全局,我 CNN 能不能也扩大视野?
怎么扩大?
把卷积核从 3×3 变成:
  • 7×7
  • 15×15
  • 31×31
  • ……
这就像把 CNN 的放大镜换成一个更大的大镜头:

让它一次能看到更大范围。

听起来不错对吧?但灾难就来了。

6. 痛点 1:参数量和计算量暴涨(模型变“巨贵”)

卷积核尺寸一变大,计算量不是线性涨,而是平方级涨。

形象解释

你以前只要看 3×3 的区域:
  • 一次看 9 个像素点
现在换成 31×31:
  • 一次看 961 个像素点
相当于:

你从“看 9 颗沙子”变成“看 961 颗沙子”,每一步都超级慢。

于是出现:
  • 参数量暴增(模型臃肿)
  • 推理速度变慢(部署困难)
  • 算力成本爆炸
这就是第一大痛点:为了看远一点,付出的代价太大

7. 痛点 2:信息冗余 + 训练不稳定(模型变“难养”)

大卷积核不仅贵,还会带来第二个麻烦:冗余

形象解释

大卷积核像一个人用超大镜头拍照:
  • 一次拍进来很多背景
  • 很多内容其实没用、重复、噪声
于是模型学习时会发生:
  • 学到很多重复的东西(特征冗余)
  • 梯度更新忽大忽小(优化震荡)
  • 容易训练不稳定
  • 泛化变差(在新数据上表现不好)
就像一个人复习考试:
  • 重点只占 10%
  • 但你把 90%无关内容也全背了
  • 最后背得又累又乱,还可能考不好

8. 所以问题总结成一句话

CNN 面临一个典型的结构性矛盾:

我想要 Transformer 的“全局视野”,但我又不想付出 Transformer 或大卷积核带来的巨大计算代价。

也就是你文中这句话的含义:
CNN 亟需一种能在不增加计算负担的前提下扩展感受野的创新结构。

9. WTConv(小波卷积)为啥出现?它像什么?

你给的最后一句:

本研究提出的小波卷积(Wavelet Convolution, WTConv)正是为此而生。

我用一个超级形象的比喻让你理解 WTConv 的方向:

CNN = 用放大镜逐像素看

  • 细节很强,但看不全局

大卷积核 = 换成巨型镜头硬看全局

  • 看得远,但太贵 + 太冗余

WTConv = “先换一种更聪明的看法”

小波(Wavelet)在信号处理中非常经典,它的核心思想类似于:

不要傻乎乎地把所有像素都一股脑看一遍,先把信息拆成“粗略轮廓 + 细节纹理”。

换成图像直觉就是:
  • 低频:整体轮廓、结构、大形状(公交车的大框架)
  • 高频:边缘、纹理、细节(轮胎纹路、窗户边缘)
WTConv 的意义在于:

它能用一种“多尺度、分解式”的方式,让 CNN 在不显著增加计算的情况下,获取更大范围的上下文信息。

你可以把 WTConv 想象成:
  • 不再靠“大卷积核硬扫一大片”
  • 而是靠“小成本获取全局结构信息”
  • 再配合局部细节完成检测


2、WTConv模型网络结构

image.png
这张图在对比两件事:

A) 普通卷积怎么做(图的最上面一行)

input → Conv → output

它只有一条路:直接在原图上卷。

B) WTConv 怎么做(图中间、下半部分)

input → WT(拆分)→ 在拆开的东西上做 Conv → IWT(拼回)→ output

WTConv 的核心就是:

先把特征图拆成“整体轮廓”和“细节纹理”几块,分别用小卷积学,然后再拼回去。

2.1、图最上面那一行:普通卷积(Baseline)

你图的最上方画的是:

input → Conv → output

左边是一张输入图(input),中间做一次卷积(Conv),右边得到 output。

2.2、图中间那块:WTConv 的第一层(做 1 次 WT)

接下来是你图里最重要的一段,从 input 往下走:

WT↓:做一次小波变换(Wavelet Transform)

你看到 input 下面出现一个 2×2 的四宫格,这一步就是 WT:

把输入特征图拆成 4 张“子图”(4 个频率子带)

这 4 张图分别是(论文中常见叫法):
  • LL(低频):大轮廓 / 结构信息
  • LH(高频之一):某个方向的边缘细节
  • HL(高频之一):另一个方向的边缘细节
  • HH(高频):角点 / 高频纹理 / 更碎的细节

你如何用“人眼”理解这四张图?

你看图中 WT 后的四宫格:

✅ 左上(LL)最像原图

它是“模糊版的原图”,轮廓还在。
这张图表达的是:

“这张图的大致结构是什么?主体在哪?背景在哪?”

所以它很适合建模全局信息

✅ 其他三张(LH / HL / HH)看起来像“灰灰的纹理”

你会发现它们不像正常照片,更像:
  • 浮雕
  • 边缘
  • 纹理噪声
这非常正常,因为高频本来就代表:

“变化快的地方”:边缘、纹理、细节

一句话记忆:

LL 管整体,高频管细节。


2.3、图中间的 Conv:在四个子带上分别做小卷积

这一步是 WTConv 的关键工程点。
图里写着:

四宫格 → Conv → 四宫格

意思是:

不是在原图做一个大卷积,而是在 4 个频率子图上,各做小卷积(通常仍是 3×3)。


为什么这样能扩大感受野?

因为 LL 这张图是降采样后的
你做一次 WT 后,LL 通常变成:
  • 原尺寸:H×W
  • LL 尺寸:H/2×W/2
相当于把图缩小了一半。

于是出现了一个“魔法”:

你在 LL 上做一个 3×3 卷积:
  • 在 LL 空间只看 3×3
  • 但映射回原图,相当于看 6×6
所以:

WTConv 的大感受野不是靠“大卷积核”,而是靠“在更小尺度上卷积”。

这个思想你可以理解成:

先把地图缩小,再在地图上画 3×3 的范围。地图缩小了,你画的区域在现实世界就是更大范围。


2.4、图中间右侧:IWT 把四张图拼回 output

你图里中间偏右是:

四宫格 → IWT → 输出图

IWT(Inverse Wavelet Transform)就是逆小波变换。
它做的事情是:

把 LL + LH + HL + HH 这 4 张子带信息,重新合成为一张“正常尺度”的特征图。

这一步非常像:
  • WT:拆零件(拆结构/纹理)
  • IWT:组装回去(恢复整体)

2.5、图最下半部分:递归 WT(WT↓ 再 WT↓)= 感受野更大

你图里最精彩的部分其实是下面这段:
  • 又做了一次 WT↓
  • 产生更小的四宫格
  • 在更小的子带上做 Conv
  • IWT 回去
这就是 多级小波分解(multi-level wavelet decomposition)

为什么它能“指数级扩大感受野”?

我们用非常直观的数字看:

Level 1(做 1 次 WT)

LL 尺寸变 1/2
在 LL 上 3×3 卷积 → 等效 6×6 感受野

Level 2(再对 LL 做 WT)

LL 再变 1/4
在更小 LL 上 3×3 卷积 → 等效 12×12 感受野

Level 3

LL 变 1/8
等效 24×24 感受野

所以你可以看到规律:

每递归一层 WT,感受野翻倍。 这就是图里说的“指数级扩展”。


2.6、 WTConv 本质上在做什么?

一句话:

把 CNN 的“只会看局部细节”变成“既看全局结构,又看局部纹理”。

而且不是靠大卷积核,而是靠 频率分解 + 多尺度学习

2.7、为什么 WTConv 计算量不会爆?(它厉害的工程点)

你之前提到的问题是:
  • 大卷积核 → 参数平方爆炸
WTConv 解决方式是:
  1. 卷积核不变(还是小卷积)
  2. 大部分“全局建模”是在低分辨率 LL 上完成的
    • 特征图尺寸小了(H/2, W/2)
    • 算力消耗大幅下降
所以它达成的效果是:

“用小卷积做出大卷积核的效果,但更便宜、更稳。”



3、你怎么把模块放进 RT-DETR(Design)


主要有两种设计方案:

3.1、方案一:替换深度卷积层(WTConv2d)

在网络的 Backbone 阶段,将传统的深度可分离卷积替换为 WTConv2d。

先解释:什么是 Depthwise Separable Conv(深度可分离卷积)?

你可以把它理解成一种轻量卷积,RT-DETR / MobileNet 这些实时模型很爱用。
它通常分两步:
  1. Depthwise Conv(DW):每个通道自己卷自己
  2. Pointwise Conv(1×1):把通道混合起来
✅ 优点:很省计算
❌ 缺点:DW 卷积的感受野还是局部的(3×3 就看 3×3)

WTConv2d 替换它,意味着什么?

等于你把“原来的小放大镜 DWConv”换成“自带多尺度视野”的 WTConv:
  • 原本:DWConv 看局部纹理
  • 现在:WTConv 同时看局部 + 更大范围结构(低频全局)
效果:

速度基本保持(仍然轻量)但更能看到整体关系(感受野更大)检测更稳,特别是大目标/遮挡/复杂背景


方案二:改进 ResNetLayer 模块(ResNetLayer_WTConv2d)

在 RT-DETR 的骨干网络中,进一步将 WTConv 嵌入 ResNetBlock 与 ResNetLayer 模块 中。

先解释:ResNetBlock / ResNetLayer 是什么?

你把 ResNetBlock 想象成 RT-DETR Backbone 里的“标准积木块”:
  • 输入特征
  • 做几次卷积
  • 再加上 shortcut(残差连接)
  • 输出特征
残差块的特点:
  • 容易训练(梯度好传)
  • 堆得很深也不容易崩

为什么说“把 WTConv 嵌入 ResNetBlock”更高级?

因为这不是“换一个卷积层”那么简单,而是:

让每个残差块内部都具备:局部卷积 + 多尺度全局感知

原本残差块更像:
  • 主要学局部细节
  • 堆很多层后才慢慢扩大感受野
现在改成:
  • 残差块内部直接引入小波低频路径
  • 一层就能看更大范围

为什么方案(2)能让参数量、计算量“双降”?(关键逻辑)

感受野显著提升,还实现参数量和计算量双重下降

这点非常值得讲清楚——因为很多人会觉得“加模块不是更重吗?”
WTConv 反直觉的地方在于:

它用“更聪明的方式”扩大感受野

传统扩大感受野:
  • 用大卷积核(比如 31×31)
  • 参数量、计算量爆炸
WTConv 扩大感受野:
  • 不改卷积核尺寸
  • 通过小波分解让特征图变小
  • 在小尺度上做小卷积,实现大范围感知
所以它不是“堆更多计算”,而是:

把计算从大图挪到小图上做