跳转至

SpatialFormer: Towards Generalizable Vision Transformers with Explicit Spatial Understanding

会议: ECCV 2024
机构: 清华大学 代码: https://github.com/Euphoria16/SpatialFormer
领域: 视觉Transformer
关键词: Vision Transformer, 空间理解, 空间token, 双边交叉注意力, 可迁移表示学习

一句话总结

提出SpatialFormer架构,通过引入自适应空间token显式建模场景的全局空间关系,采用decoder-only架构与双边交叉注意力块实现上下文与空间信息的高效交互,在分类、分割和检测任务上展示了优异的泛化性和可迁移性。

研究背景与动机

领域现状:Vision Transformer(ViT)已成为计算机视觉的核心组件,在分类、检测、分割等任务中取得了显著成果。现有ViT主要通过patch embedding提取上下文特征,并通过附加的位置编码(如绝对位置编码、相对位置编码、旋转位置编码)引入空间信息。

现有痛点:当前ViT的空间信息引入方式存在根本性的局限——位置编码只编码了每个image token的局部位置信息(即该token在图像中的坐标),无法有效建模底层场景的全局空间关系。例如,相机的内外参变化、场景的3D布局信息、物体间的相对空间关系等,这些全局空间理解对于检测和分割等任务至关重要,但现有位置编码机制无法捕获。

核心矛盾:现有ViT将空间信息与上下文特征"耦合"在同一组token中,通过position embedding隐式编码空间,这使得模型难以专门学习和利用全局空间结构。空间信息被淹没在语义特征中,导致跨任务迁移时空间理解不足。

本文目标 (1) 如何在ViT中显式地、解耦地表示全局空间关系?(2) 如何让空间表示既具有通用先验又能自适应特定图像?(3) 如何设计高效架构实现空间与上下文信息的交互,同时保持良好的泛化性?

切入角度:作者观察到,如果将空间信息从image token中解耦出来,用一组专门的"空间token"来表示,就可以让模型分别学习"图像里有什么"(上下文)和"在哪里"(空间),两类信息通过交互互相增强。这类似于人类视觉系统中"what"通路和"where"通路的分离。

核心 idea:引入自适应空间token与image token并行处理,通过双边交叉注意力实现空间-上下文解耦交互,输出的空间token可直接作为下游任务decoder的增强初始查询。

方法详解

整体框架

SpatialFormer接收图像patch embedding作为image token(上下文token),同时初始化一组空间token。整个架构采用decoder-only风格,每一层包含一个双边交叉注意力块(Bilateral Cross-Attention Block),让空间token和image token在每一层中交互。经过多层处理后,输出的image token包含空间增强的语义特征,输出的空间token则编码了显式的场景空间结构信息,可直接作为下游task-specific decoder(如检测头、分割头)的初始query,从而实现更好的任务适配。

关键设计

  1. 自适应空间Token(Adaptive Spatial Tokens):

    • 功能:显式表示图像对应场景的全局空间关系
    • 核心思路:空间token初始化为标准的位置编码(如2D sinusoidal编码),引入一般性的空间先验知识。在此基础上叠加可学习的embedding,使其能够自适应学习特定数据分布中的空间模式。这种"固定先验 + 可学习偏移"的设计让空间token既具有泛化能力(来自位置编码的通用先验),又具有自适应能力(来自可学习部分的数据驱动调整)。空间token的数量可以独立于image token数量设置,提供了灵活性。
    • 设计动机:纯可学习的token(如DETR的object query)从零开始学习,收敛慢且泛化差;纯固定位置编码则缺乏适应性。两者结合是更好的选择。
  2. 双边交叉注意力块(Bilateral Cross-Attention Block):

    • 功能:实现空间token与image token之间的高效双向信息交互
    • 核心思路:每个Transformer层内,设计双向的cross-attention机制。第一步,空间token作为query,image token作为key-value,让空间token从图像特征中提取空间相关的模式;第二步,image token作为query,空间token作为key-value,让图像特征获得全局空间结构的指导。两步交互让两组token互相增强。相比简单拼接后做self-attention,双边cross-attention的计算量更低(避免了token数量翻倍带来的二次复杂度增长),同时保持了显式的信息流向控制。
    • 设计动机:self-attention中空间token和image token的信息交互是"隐式"的,可能导致空间信息被语义信息淹没。显式的双向cross-attention保证了两类信息的均衡交互。
  3. Decoder-only架构与下游适配:

    • 功能:提供可迁移的统一backbone,并为下游任务提供增强的初始化
    • 核心思路:整个backbone采用decoder-only架构设计(每层只有cross-attention和FFN,没有encoder),使得模型可以在预训练时统一学习上下文和空间表示。在迁移到下游任务时,输出的空间token可以直接作为task-specific decoder(如DETR-style检测头、Mask2Former分割头)的初始query。与随机初始化的query相比,这些经过预训练的空间token已经编码了丰富的空间先验,可以加速decoder的收敛并提升性能。
    • 设计动机:现有backbone输出的特征图只包含上下文信息,下游decoder(如DETR)需要从零学习object query的空间分布。如果backbone能直接输出编码了空间结构的token作为初始query,就可以实现更好的backbone-decoder协同。

损失函数 / 训练策略

在ImageNet上进行预训练,使用标准的分类损失。迁移到下游任务时,使用各任务标准的训练策略(检测用DETR loss,分割用mask loss等)。空间token在预训练时通过与image token的交互自然学习到空间先验。

实验关键数据

主实验

任务 数据集 模型 本文(SpatialFormer) 对应baseline ViT 提升
分类 ImageNet-1K Small 83.6% Top-1 ~83.1% (DeiT-S) +0.5%
语义分割 ADE20K Small 48.5 mIoU ~47.2 (Swin-S) +1.3
2D检测 COCO Small 50.1 AP ~49.0 (Swin-S) +1.1
3D检测 nuScenes Small 显著提升NDS 基线方法 明显

消融实验

配置 ImageNet Top-1 ADE20K mIoU 说明
Full SpatialFormer 最佳 最佳 完整模型
w/o 空间token 下降~0.5% 下降~1.0 无显式空间建模
w/o 可学习embedding 下降~0.3% 下降~0.6 只用固定位置编码
w/o 位置编码初始化 下降~0.4% 下降~0.8 纯可学习token
Self-attention替代Bilateral CA 下降 下降 信息交互不充分
空间token不传给decoder - 下降~0.5 验证query初始化的价值

关键发现

  • 空间token在分割和检测等空间敏感任务上的增益(~1.0+ mIoU/AP)大于分类(~0.5% Top-1),验证了显式空间理解对空间密集预测任务更重要
  • 位置编码初始化和可学习embedding两者缺一不可,各自贡献约一半的增益
  • 空间token作为下游decoder的初始query带来额外增益,说明预训练的空间先验对decoder的初始化有实质性帮助
  • 在3D检测(nuScenes)等需要强空间理解的任务上,SpatialFormer的优势更加明显

亮点与洞察

  • 将空间信息从image token中解耦出来建模的思路很有启发性。类比NLP中position和content的分离,在视觉中显式做这种分离是一个自然但被忽视的方向。这种解耦可以迁移到视频理解(时空解耦)、3D视觉(几何与语义解耦)等场景。
  • 空间token可以直接作为下游decoder初始query的设计实现了backbone-decoder的无缝衔接。这解决了DETR系列方法中object query难以学习的老问题,可能成为detection transformer的一种新标配设计。
  • 双边交叉注意力比拼接self-attention更高效,在不增加太多计算的前提下实现了有效的双向交互。

局限与展望

  • 当前空间token数量是固定的,对于不同分辨率或不同复杂度的场景可能不够灵活
  • 空间token学习到的"空间理解"较为隐式,缺乏可视化和可解释性分析
  • 在更大规模模型(Large/Huge)上的表现未充分探索
  • 代码仓库实际只有README,未开源完整实现,复现门槛较高
  • 可以尝试将空间token与显式的3D几何信息(如深度估计、相机参数)结合,进一步增强空间理解能力

相关工作与启发

  • vs Swin Transformer: Swin通过窗口机制限制attention范围来处理空间局部性,但仍以位置编码隐式编码空间。SpatialFormer通过专门的空间token显式建模全局空间关系,两者的空间处理哲学不同。
  • vs DETR: DETR的object query本质上也是一种空间表示,但从零学习。SpatialFormer的空间token经过预训练后可以直接传递给DETR-style decoder,相当于为query提供了warm start。
  • vs ViTDet: ViTDet直接用plain ViT做检测,不引入额外空间归纳偏置。SpatialFormer证明了显式空间token的加入能够在不牺牲效率的情况下带来有意义的提升。

评分

  • 新颖性: ⭐⭐⭐⭐ 空间-上下文解耦的token设计是对ViT架构的有意义扩展
  • 实验充分度: ⭐⭐⭐⭐ 覆盖分类、分割、2D/3D检测多个任务,消融较完整
  • 写作质量: ⭐⭐⭐⭐ 动机清晰、方法描述系统,但代码未完整开源略有遗憾
  • 价值: ⭐⭐⭐⭐ 空间token的思路对ViT后续设计有启发,但尚需更广泛验证

相关论文