1. SFII模块的核心设计理念
在计算机视觉领域,Transformer架构已经逐渐成为主流,但传统自注意力机制在处理图像数据时存在明显的局限性。CVPR 2024提出的SFII(Spatial-Frequency Interaction)模块创新性地将空域和频域特征交互引入注意力机制,为视觉Transformer带来了质的飞跃。
1.1 为什么需要双域交互?
图像本质上包含两种关键信息表征:
- 空域信息:像素间的空间排列关系,对应物体的形状、位置等几何特征
- 频域信息:通过傅里叶变换得到的频率成分,反映纹理、边缘等细节特征
传统视觉Transformer(如ViT)仅关注空域自注意力,相当于"独眼龙看世界"。SFII的突破在于:
- 并行构建空域和频域注意力图
- 设计动态门控机制实现双域特征交互
- 通过频域注意力增强对纹理细节的捕捉能力
实测表明,在ImageNet-1K分类任务中,引入SFII模块可使Swin-Tiny模型top-1准确率提升2.3%,而计算开销仅增加7%。
1.2 频域注意力的实现细节
SFII的频域处理流程值得深入剖析:
python复制class FrequencyAttention(nn.Module):
def __init__(self, dim):
super().__init__()
self.fc = nn.Linear(dim, dim)
def forward(self, x):
# x: [B, N, C]
B, N, C = x.shape
H = W = int(N ** 0.5)
# 转换为频域
x = x.view(B, H, W, C)
x_fft = torch.fft.rfft2(x, norm='ortho')
# 频域注意力
mag = torch.abs(x_fft)
phase = torch.angle(x_fft)
attn = self.fc(mag.flatten(2)).view
