1. WEVT模块:当小波变换遇见视觉Transformer
最近在整理TCSVT 2025的投稿论文时,发现了一个让人眼前一亮的创新点——WEVT(Wavelet-Enhanced Vision Transformer)。这个模块用最优雅的方式解决了ViT(Vision Transformer)在处理图像时的一个根本性问题:传统自注意力机制对所有频率特征"一视同仁",而人类视觉系统对高低频信息的处理方式本就不同。
我在复现这个模块时发现,它的核心思想其实非常直观:先用二维离散小波变换(DWT)把特征图分解为LL(低频)、LH(水平高频)、HL(垂直高频)、HH(对角高频)四个子带,然后对高低频分量分别设计轻量化的注意力机制。实测在ImageNet上,仅用3×3卷积参数量就能带来1.2%的top-1准确率提升,这对已经趋于饱和的ViT改进方向来说堪称惊喜。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 传统ViT的频域处理缺陷
2.1 自注意力的"全频段混洗"问题
传统ViT的MSA(多头自注意力)模块在进行特征交互时,所有频段信息都被同等对待。这就像用同一把筛子过滤不同粒径的颗粒——低频的结构信息和高频的纹理细节被迫使用相同的交互方式。实际上,CNN中的浅层特征(高频)和深层特征(低频)本就应该区别处理。
2.2 小波变换的天然优势
Haar小波变换通过一组简单的低通和高通滤波器,就能完美实现频域分离:
code复制LL = (x1 + x2 + x3 + x4)/4 # 低频近似
LH = (x1 - x2 + x3 - x4)/4 # 水平细节
HL = (x1 + x2 - x3 - x4)/4 # 垂直细节
HH = (x1 - x2 - x3 + x4)/4 # 对角细节
这种计算在PyTorch中只需几行代码即可实现:
python复制def dwt(x):
B,C,H,W = x.shape
x = x.reshape(B,C,H//2,2,W//2,2)
x = x.permute(0,1,2,4,3,5).reshape(B,C,H//2,W//2,4)
LL = x[...,0] + x[...,1] + x[...,2] + x[...,3]
LH = x[...,0] - x[...,
