跳转至

SO(3)-Equivariant ViT-Adapter for Data-Efficient Zero-Shot Sim-to-Real Indoor Panoramic Depth Estimation

会议: CVPR 2026
论文: CVF Open Access
代码: 待确认
领域: 3D视觉
关键词: 全景深度估计, SO(3)等变, ViT-Adapter, 零样本, Sim-to-Real

一句话总结

给冻结的透视预训练 ViT(Depth Anything V2)外挂一个 SO(3)-等变适配器,只用 6.5K 张合成全景图、零真实数据训练,就把透视零样本深度模型的泛化能力迁移到 360° 全景上,在 Matterport3D / Stanford2D3D 上零样本 sim-to-real 超过依赖真实数据的 PanDA。

研究背景与动机

领域现状:透视图(窄 FoV)的零样本单目深度估计已经很成熟,Marigold、Depth Anything 等靠大规模预训练 + ViT 主干能跨数据集泛化。全景图能提供完整 360° 环境理解、减少盲区,对机器人/AR-VR/自动导航价值更大。

现有痛点:把透视模型直接用到全景图上性能急剧下降——等距柱状投影(ERP)带来严重畸变,而普通卷积/Transformer 算子没有旋转等变性,建模球面几何时会出现结构不一致。另一边,全景 RGB-D 真实数据采集需要专用硬件 + 复杂标定,极其昂贵,难以大规模训练全景基础模型。

核心矛盾:透视预训练里有丰富可迁移的深度先验,但"如何把它搬到全景"同时卡在三件事上——数据可得性(没有大规模全景真值)、球面几何建模(缺等变性)、推理性能。现有方法各有取舍:360MonoDepth 把全景切成多个透视块再融合,避免全景训练但推理慢、有拼接缝;DepthAnywhere 半监督混用真实 + 伪标签全景,效果好但真实数据成本高;PanDA 去掉真实深度监督却仍依赖大规模真实图像,且主干缺旋转一致算子。

本文目标:在不用任何真实全景数据的前提下,构建一个几何一致、数据高效的零样本全景深度适配框架,把透视 ViT 的 sim-to-real 泛化能力搬过来。

切入角度:全景图用球面坐标 \(\alpha\in[0,2\pi), \beta\in[0,\pi]\) 参数化,球面网格上的"平移"本质上是 3D 旋转。所以应该在算子层面引入 SO(3) 等变性,让适配器对垂直旋转鲁棒,而非靠数据增广硬学。

核心 idea:不改动冻结的透视 ViT,给它外挂 SO(3) 等变适配器——用球面 CNN 提等变先验、用 SO(3) 可变形交叉注意力对齐到 ViT 特征上,把旋转等变的归纳偏置注入进去。

方法详解

整体框架

框架由一个冻结的透视预训练 ViT(Depth Anything V2)和一组可训练外挂模块组成,只训练适配器和从头初始化的 DPT 解码头。每张全景图取两种表示作输入:ERP 投影 \(X_{ERP}\in\mathbb{R}^{H\times W\times 3}\)(切成 \(14\times14\) 块 → patch embedding → ViT token)和在 Driscoll–Healy 球面网格上采样的球面信号 \(X_{DH}\in\mathbb{R}^{2B\times2B\times3}\)(带宽 \(B=\lfloor H/8\rfloor\))。ESPM 从 \(X_{DH}\) 提取多尺度 SO(3)-等变特征作几何先验,注入第一个适配块。

Transformer 编码器分成 \(N=4\) 块,每个 ViT 块前后各挂一个 SO(3) Feature Injector(前)和 Multi-Scale Feature Extractor(后),构成 S2-SO(3) 双向特征交互;其中跨球面/旋转群的特征对齐由 SO(3)-DCAM 完成。最后各适配块的 ViT 特征上采样成多分辨率特征金字塔,与投影回球面的等变特征逐尺度融合,送入 DPT 头解码出全景深度图。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["输入:ERP 投影 X_ERP<br/>+ DH 球面信号 X_DH"] --> B["冻结透视 ViT 主干<br/>(Depth Anything V2)"]
    A --> C["ESPM 等变球面先验<br/>S2Conv→SO3Conv 提多尺度等变特征"]
    B --> D["S2-SO(3) 双向特征交互<br/>SO(3)-DCAM 注入 + 多尺度回馈"]
    C --> D
    D -->|N=4 适配块逐层交互| E["DPT 头解码<br/>→ 全景深度图"]

关键设计

1. ESPM 等变球面先验模块:把"球面平移即 3D 旋转"显式建成旋转等变特征

透视图有平移对称性,普通 CNN 提的局部 + 平移等变特征就能当 ViT 的归纳偏置;但全景图用球面坐标参数化,球面网格上的"平移"本质是 3D 旋转,普通卷积给不了对的归纳偏置。所有 3D 旋转构成特殊正交群 SO(3),每个旋转 \(R=R_z(\alpha)R_y(\beta)R_z(\gamma)\) 用 ZYZ-欧拉角参数化。ESPM 基于球面 CNN 构建:S2Conv 把球面函数 \(f:S^2\to\mathbb{R}^{c_{in}}\) 抬升到 SO(3) 上的函数 \(h(R)=\int_{S^2}\kappa(R^{-1}x)f(x)dx\)SO3Conv 再在群上聚合 \(h'(R)=\int_{SO(3)}\kappa(R^{-1}Q)h(Q)dQ\)。为效率,这些卷积在谱域实现——球面信号先做球谐变换 \(f(\theta,\phi)=\sum_l\sum_m \hat{f}^l_m Y^l_m(\theta,\phi)\),卷积退化成谱系数逐点相乘,下采样直接丢高频分量;SO3Conv 用 Wigner-D 矩阵作 SO(3) 上的傅里叶基。最终输出三尺度等变特征 \(F^0_{esp}=\{F_1, F_2, F_3\}\)。这是整个框架旋转一致性的源头——先验本身就带等变性,后面只需把它"对齐"进 ViT。

2. SO(3)-DCAM 可变形交叉注意力:把采样从 2D 平面抬到 SO(3) 群,消除球面非均匀采样的歧义

视觉里的注意力都为窄 FoV 透视图设计,直接套到球面表示上会被非均匀采样坑——全局特征匹配失真、注意力权重次优;而且它们只靠特征相似度,不建模球面流形上的相对位置关系。SO(3)-DCAM 把可变形注意力推广到球面,靠两个创新:

(1) SO(3) 稀疏采样——核心是把采样操作从 2D 欧氏平面抬升到 SO(3) 群,保证对 \(S^2\) 上任意 query 位置 \(z_q\),其邻域特征的初始相对位置都一致,从而缓解非均匀采样的离散化误差。具体做法:以北极为原点随机采一组偏移旋转 \(R_{offset}(\Delta\alpha,\Delta\beta,\Delta\gamma)\),再找一组把原点搬到 \(z_q\) 的传输旋转 \(R_x\),复合得到最终采样旋转 \(R^s_k=R_x\cdot R_{offset}\) 并转回 ZYZ 欧拉角去 \(F_{esp}\) 上取键值特征。为鼓励局部性又不写死,用初始化做软约束:线性层偏置设成以北极为中心的 SO(3) 网格坐标,且 \(\Delta\beta\) 范围随尺度变化(深层低分辨率初始化更大采样区)。

(2) 球面上下文相对位置编码 SCRPE——计算把 query 对齐到各键值球面坐标的旋转元 \(\{R^s_{qk}\}\),经对数映射到李代数表示成向量 \(\{\omega^s_{qk}\}\),再用可学习嵌入编码其量化后的方向与幅度、沿通道拼接,乘上投影后的 query 得到球面相对位置编码 \(\{b^s_{qk}\}\)。最终注意力 \(\sum_s\sum_k A^s_{qk}(W_V f^s_{qk}+\text{PE}(\gamma^s_{qk}))\) 既对齐了等变↔透视特征,又显式注入了球面几何关系,做到旋转一致的特征融合。

3. S2-SO(3) 双向特征交互:把等变先验注入冻结 ViT,再把深度先验回馈给等变分支

冻结 ViT 在 ERP 图上提的是球面 \(S^2\) 上的非等变特征——视觉先验丰富但缺等变性,易受几何畸变影响。作者在每个 ViT 块前后各设一个模块做双向桥接。SO(3) Feature Injector(块前)用 SO(3)-DCAM 实现:以当前 ViT 特征 \(F^i_{vit}\) 为 query、等变特征 \(F^i_{esp}\) 为键值,注入后 \(\hat{F}^i_{vit}=F^i_{vit}+\lambda^i\,\text{SO(3)-DCAM}(F^i_{vit}, F^i_{esp})\),其中可学习注入权重 \(\lambda^i\) 初始化为 \(10^{-6}\)(沿用 ViT-Adapter 设置,保证训练初期不破坏预训练特征)。Multi-Scale Feature Extractor(块后)反向操作:先把 SO(3) 特征投影到 \(S^2\)(等价于只保留傅里叶空间 \(n=0\) 切片),用标准可变形注意力 DCAM 借 \(F^{i+1}_{vit}\) 丰富它,再经 FFN 抬回 SO(3) 得到更新的 \(F^{i+1}_{esp}\)。一注一回,让冻结 ViT 的深度先验和球面等变先验在 4 个适配块里逐层互相增强——这正是"不改主干就能让透视模型理解球面几何"的关键。

损失函数 / 训练策略

深度回归用 BerHu 损失:小残差时按 \(\ell_1\)、大残差时切到 \(\ell_2\),兼顾精度与平滑、收敛稳定。训练只更新适配器 + 从头初始化的 DPT 头,主干 Depth Anything V2 全程冻结;在 PNVS-hard 上训 30 epoch、batch size 4、AdamW(lr 1e-4,weight decay 0.01),A100 GPU,全程不用任何旋转增广——靠算子层等变性而非数据增广拿旋转鲁棒。

实验关键数据

主实验

训练只用 PNVS-hard 合成全景(过滤后 6548 对 RGB-D);对比方法若需大规模无标注全景则额外给 18029 张 Structured3D 合成图。评测在真实室内数据集 Matterport3DStanford2D3D 官方测试集上,严格零样本 sim-to-real——训练完全不碰真实全景(标注或无标注都不用)。指标采用 7 个球面感知度量(纬度加权的 AbsRel/SqRel/RMSE/RMSE(log10) + 准确率阈值 \(\delta_i<1.25^i\)),在 S2 广义螺旋采样下计算以缓解 ERP 非均匀采样畸变。AbsRel = 平均相对误差(越低越好),\(\delta_1\) = 预测/真值比值落在 1.25 内的像素占比(越高越好)。

Matterport3D 零样本 sim-to-real:

方法 主干 训练数据 AbsRel↓ RMSE↓ \(\delta_1\)
DepthAnything V2 ViT-S 透视预训练 0.177 0.599 0.638
360MonoDepth MiDaS V3 透视预训练 0.158 0.749 0.660
DepthAnywhere UniFuse PNVS + 伪标签 0.155 0.726 0.790
PanDA-L ViT-L 透视 + PNVS + 伪标签 0.091 0.421 0.881
Ours ViT-S 透视 + PNVS 0.089 0.416 0.882
Ours ViT-L 透视 + PNVS 0.078 0.388 0.906

关键看点:本文 ViT-S 版(少用伪标签 ST(p) 数据)就追平甚至超过 PanDA-L(0.089 vs 0.091 AbsRel),ViT-L 版进一步把 RMSE 压到 0.388。Stanford2D3D 上趋势一致——Ours ViT-L AbsRel 0.060 / RMSE 0.295 / \(\delta_1\) 0.953,全面优于 PanDA-L(0.073 / 0.335 / 0.937),且本文不用任何伪标签真实数据。

消融实验

主组件消融(Matterport3D):

配置 AbsRel↓ RMSE↓ \(\delta_1\) 说明
ViT-S(*) 0.100 0.447 0.858 基础变体
ViT-S 0.093 0.439 0.871 直接微调
ViT-Adapter 0.093 0.431 0.872 普通适配器
Ours w/o SO(3)-DCAM 0.092 0.430 0.875 去掉 SO(3) 可变形注意力
Ours w/o SCRPE 0.091 0.426 0.879 去掉球面相对位置编码
Ours 0.089 0.416 0.882 完整模型

垂直旋转鲁棒性消融(Matterport3D,\(\Delta\) 为加旋转增广带来的性能变化,越小/负越说明本身已鲁棒):

方法 旋转增广 RMSE@0° RMSE@20° \(\Delta\)@20° (δ1)
ViT-Adapter 0.431 0.690
ViT-Adapter 0.426 0.593 23.13%
Ours w/o SO(3)-DCAM 0.426 0.579 22.28%
Ours 0.416 0.612
Ours 0.425 0.556 16.59%

关键发现

  • SO(3)-DCAM 与 SCRPE 各有贡献:从 ViT-Adapter(0.093)→ +SO(3)-DCAM(0.092)→ +SCRPE(0.091)→ 完整(0.089),逐项加上去稳定下降,说明"球面采样"和"球面相对位置编码"是两个互补的等变来源。
  • 等变性自带旋转鲁棒:在 \(\theta=0°\) 时本文不加增广的 RMSE 已优于 ViT-Adapter 加增广(0.416 vs 0.426),且加增广带来的提升幅度 \(\Delta\) 最小(@20° 的 \(\delta_1\) 只需 16.59% vs ViT-Adapter 的 23.13%)——意味着算子层等变性已经吃下了大部分旋转不变需求,不必靠数据增广硬补。
  • 数据效率:只用 6.5K 合成图、零真实数据就超过依赖大规模真实/伪标签数据的 PanDA,验证了"把等变性放进算子"比"用数据堆泛化"更高效。

亮点与洞察

  • "球面平移 = 3D 旋转"的洞察是全文支点:正因为认清这点,才把适配器的归纳偏置从平移等变换成 SO(3) 等变,这个视角可迁移到任何球面/全景任务(全景分割、全景检测)。
  • 把采样抬升到 SO(3) 群很巧妙:传统可变形注意力在 2D 平面采样,球面上会因非均匀采样失真;抬到群上让任意 query 的邻域相对位置一致,从根上消歧——这是适配器能保持旋转等变的关键机制。
  • 冻结主干 + 外挂等变适配器的范式很实用:不动透视预训练权重就把它"教会"球面几何,等于零成本复用了 Depth Anything 的全部先验,对任何"把透视基础模型搬到全景"的任务都有借鉴价值。

局限与展望

  • 等变模块(球面 CNN + SO(3) 注意力)在谱域计算,推理开销相比纯 ViT 适配器更高;论文把详细推导和效率分析甩到了补充材料,正文未给出明确的推理时延对比。⚠️ 实际部署成本以原文补充材料为准。
  • 训练只用合成全景,虽零样本泛化到真实室内有效,但室外/复杂场景未验证;评测集中在 Matterport3D / Stanford2D3D 两个室内基准。
  • SCRPE 的单独增益相对有限(AbsRel 0.091→0.089),其设计复杂度(李代数对数映射 + 方向/幅度量化嵌入)与收益是否匹配,值得进一步权衡。

相关工作与启发

  • vs 360MonoDepth: 它把全景切成多个透视块分别预测再融合,避免全景训练但推理慢、有明显拼接缝;本文直接在全景上端到端处理、用等变性保证几何一致,无拼接问题。
  • vs DepthAnywhere / PanDA(半监督): 它们靠大规模真实/伪标签全景做半监督蒸馏,真实数据成本高、主干仍缺旋转一致算子;本文零真实数据、算子层等变,数据效率和几何一致性都更优。
  • vs 普通 ViT-Adapter: 标准适配器用 CNN 提平移等变先验,对球面畸变无能为力;本文把它升级为 SO(3) 等变先验 + 球面可变形注意力,是对 ViT-Adapter 在球面流形上的针对性扩展。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ "球面平移即旋转 + 把采样抬到 SO(3) 群"的等变适配器设计,针对全景几何很有洞察
  • 实验充分度: ⭐⭐⭐⭐ 双真实基准、逐组件消融、旋转鲁棒性专项齐全,但缺推理效率正文对比、未测室外
  • 写作质量: ⭐⭐⭐⭐ 动机三难点讲得清晰、公式完整,但球面 CNN/谱域细节大量甩到补充材料
  • 价值: ⭐⭐⭐⭐⭐ 零真实数据、数据高效地把透视基础模型搬到全景并超 SOTA,对机器人/AR-VR 实用