DAGE: Dual-Stream Architecture for Efficient and Fine-Grained Geometry Estimation¶
会议: CVPR 2026
arXiv: 2603.03744
代码: https://github.com/dage-site
领域: 模型压缩
关键词: 多视图几何估计, 双流 Transformer, 深度估计, 知识蒸馏, 高分辨率推理
一句话总结¶
提出 DAGE 双流 Transformer 架构,将全局一致性建模(低分辨率流)与细粒度细节保持(高分辨率流)解耦,通过轻量 Cross-Attention Adapter 融合,实现 2K 分辨率和 1000 帧长序列上的高质量深度/点图估计和位姿预测,速度比 Pi3 快 2-28 倍,视频几何估计取得新 SOTA。
研究背景与动机¶
从多视图图像估计 3D 几何和相机位姿是计算机视觉基础问题。当前面临三个同时满足的挑战:(1) 全局跨视图一致性,(2) 高分辨率细粒度细节保持,(3) 长序列可扩展的计算效率。
- 前馈式多视图方法(VGGT, Pi3)用全局 attention 实现跨视图一致性,但 \(O(N^2)\) 复杂度限制分辨率和帧数,细节模糊
- 单视图方法(DepthPro, MoGe2)可处理高分辨率但缺乏多视图一致性
- 视频扩散模型(GeoCrafter)计算昂贵且通常无法估计位姿
核心矛盾:全局 attention 对分辨率的二次复杂度 vs 高分辨率细节保持的需求。DAGE 的切入:将分辨率和序列长度解耦。
方法详解¶
整体框架¶
给定 \(N\) 张未标定 RGB 图像,DAGE 要同时吐出每帧的 3D 点图、相机位姿和一个全局度量尺度。它的核心想法是:跨视图一致性(决定位姿和全局结构)和细粒度细节(决定深度边缘是否锐利)这两件事,其实对分辨率的需求完全不同——前者在低分辨率下就够了,后者才需要原图。于是 DAGE 把这两个需求拆到两条并行的流里:一条低分辨率流(LR Stream)在 252px 上看遍所有帧、做全局 attention 拿到一致的位姿与粗结构;一条高分辨率流(HR Stream)在原始分辨率(最高 2K)上逐帧独立编码、保住细节;中间用一个轻量 Adapter 把 LR 的全局信息注入 HR,让每一帧的高分辨率细节又能对齐到统一的全局几何。这样全局 attention 的 \(O(N^2)\) 成本被锁在低分辨率,而高分辨率部分的成本只随帧数线性增长。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
IN["N 张未标定 RGB 图像"] --> LR
IN --> HR
subgraph LR["低分辨率流(全局一致性)"]
direction TB
L1["统一降到 252px"] --> L2["DINOv2 tokenizer<br/>交替 帧内/全局自注意力"]
L2 --> L3["Pi3 特征蒸馏补偿降采样"]
end
subgraph HR["高分辨率流(逐帧保细节)"]
direction TB
H1["原图逐帧(最高 2K)"] --> H2["冻结 MoGe2 24 层 ViT"]
end
subgraph AD["轻量 Adapter(堆叠 5 块)"]
direction TB
A1["Cross-Attn:Q=HR, K/V=LR<br/>注入全局一致性"] --> A2["Self-Attn 收回帧内连贯"]
end
LR -->|LR tokens| AD
HR -->|HR tokens| AD
RP["RoPE 位置编码<br/>Self 用插值 / Cross 用 snap-to-grid"] -.跨尺度对齐.-> AD
AD --> GH["卷积 FPN 几何头"]
GH --> OUT1["逐帧 3D 点图"]
LR --> PH["位姿头 + 度量尺度 token"]
PH --> OUT2["相机位姿 + 全局尺度"]
关键设计¶
1. 低分辨率流:用低分辨率换回全局 attention 的可行性
前馈式多视图方法(VGGT、Pi3)靠全局 attention 拿到跨视图一致性,但全局 attention 对 token 数是二次复杂度,分辨率一高就爆。DAGE 的观察是:位姿和全局结构本就不依赖高频细节,没必要在原图上算全局 attention。所以 LR 流把所有帧统一降到 252px,再走 DINOv2 tokenizer 加交替的 Frame/Global Attention(帧内与跨帧轮流),全局一致性照拿,但 attention 的开销被压到可控范围。降分辨率必然丢信息,DAGE 用 Pi3 当教师做特征蒸馏来补偿——让 LR 流的特征去逼近 Pi3 在更高分辨率下学到的表征,等于把"高分辨率才有的信息"以蒸馏的形式塞进低分辨率流里。
2. 高分辨率流:冻结预训练编码器,逐帧独立保细节
细节保持需要原图,但在原图上做跨视图 attention 又会把成本拉回二次复杂度。HR 流的做法是干脆放弃跨视图交互:每帧在原始分辨率(可达 2K)上独立编码,计算量只随分辨率线性增长。关键在于它直接冻结 MoGe2 已经训好的 24 层 ViT 编码器,一个参数都不动。冻结的好处有两层:一是几何估计的训练数据集通常偏小,从头训或微调一个大编码器很容易过拟合;二是 MoGe2 本身有很强的零样本泛化能力,冻住它就把这份泛化原封不动继承下来,HR 流只负责"看清楚",不负责"看一致"。
3. 轻量 Adapter:用 Cross-Attention 跨越分辨率的 token 数鸿沟
两条流各管一摊,但 HR 流逐帧独立、没有全局视野,必须把 LR 流的全局一致信息灌进去——难点是两条流的 token 数量天差地别(同一帧 252px 和 2K 的 token 数差几十倍),不能简单逐位置相加或拼接。Adapter 用 Cross-Attention 解决:让 HR 的 token 作 Query、LR 的 token 作 Key/Value,HR 的每个高分辨率位置主动去 LR 的全局特征里"查"自己该对齐到哪里,天然支持任意的 token 数量比。Cross-Attention 之后再接 Self-Attention 把帧内被打散的空间连贯性收回来,这样一个块堆叠 5 个,逐步把全局一致性融进高分辨率细节。消融里把 Cross-Attention 换成直接拼接,质量明显下降,正是因为拼接默认了一个固定的尺度对应关系,而真实的 token 比并不固定。
4. RoPE 位置编码:让 attention 在训练分辨率之外不崩
标准 RoPE 在超出训练分辨率时会严重退化,而 DAGE 偏偏要在远高于训练时的 2K 上推理,且 Cross-Attention 还要跨两个不同分辨率做匹配,位置编码必须特殊处理。对 HR 流内部的 Self-Attention,DAGE 用插值 RoPE:把位置频率谱按分辨率缩放插值,让高分辨率下的相对位置关系仍然落在训练时见过的频率范围内。对 Cross-Attention,它用 snap-to-grid:把每个 HR token 按空间位置吸附到最近的 LR 网格单元,再用该 LR 单元的位置去算相对编码——这样 HR 和 LR 即便分辨率不同,也能在同一套位置坐标系下对齐,跨尺度的 attention 才不会因为位置错位而失效。
损失函数 / 训练策略¶
- 点图 \(\ell_1\) 损失(全局对齐,不用 confidence 加权)
- 相机位姿损失(旋转测地距离 + 平移 \(\ell_1\))
- 梯度损失(多尺度 Scharr/Laplace 滤波对逆深度梯度监督,替代 multi-scale 对齐)
- 法线损失和蒸馏损失
- HR ViT 冻结,LR 流从 Pi3 初始化,18 个数据集训练
实验关键数据¶
主实验:视频点图估计(8 数据集平均排名)¶
| 方法 | 多视图 | 高分辨率 | 位姿 | 平均排名 |
|---|---|---|---|---|
| VGGT | Yes | No | Yes | 3.4 |
| Pi3 | Yes | No | Yes | 3.3 |
| GeoCrafter | Yes | Partial | No | 3.9 |
| DAGE | Yes | Yes | Yes | 1.6 |
消融实验¶
| 配置 | 关键变化 | 说明 |
|---|---|---|
| Adapter在中间层注入 | 一致性下降 | 需要完整全局处理 |
| 拼接替代CrossAttn | 质量下降 | 固定尺度比不足 |
| 无梯度损失 | 锐利度下降 | 梯度监督对细节至关重要 |
| MoGe multi-scale对齐 | 一致性下降 | 逐patch独立对齐破坏跨视图一致性 |
运行效率(A100, 100帧视频)¶
| 方法 | 540p FPS | 2K FPS | 540p显存 |
|---|---|---|---|
| Pi3 | 32.7 | OOM | 37.3 GB |
| VGGT | 13.5 | OOM | 71.3 GB |
| DAGE | 65.4 | 5.6 | 12.4 GB |
关键发现¶
- 平均排名 1.6 显著领先 Pi3(3.3)和 VGGT(3.4)
- 高分辨率场景优势明显:UrbanSyn Rel 误差比 Pi3 低 47%
- 540p 速度是 Pi3 的 2 倍,2K 下 Pi3/VGGT OOM 而 DAGE 仍可 5.6 FPS
- 252px 估计位姿精度 match Pi3/VGGT 在 518px 下的表现
亮点与洞察¶
- "解耦分辨率与序列长度"是核心洞察:全局一致性不需要高分辨率,细节保持不需要跨视图 attention
- 冻结 HR ViT + 轻量 adapter:高效迁移范式
- snap-to-grid RoPE:跨尺度 attention 的优雅解决方案
- 梯度损失替代 multi-scale 对齐:多视图下保持全局单一对齐更重要
局限与展望¶
- LR 流固定 252px,某些场景可能不足
- 依赖 MoGe2 和 Pi3 预训练权重
- 未测试动态场景(运动物体)
- 5 层 Adapter 在极长序列下仍有显存压力
相关工作与启发¶
- Pi3/VGGT 的交替 attention 是 LR 流基础,DAGE 贡献在于限制到低分辨率
- MoGe2 的 coarse-to-fine 损失被放弃(破坏多视图一致性),体现设计原则冲突
- 知识蒸馏从"模型压缩"变为"分辨率补偿"
评分¶
- 新颖性: ⭐⭐⭐⭐ 双流解耦设计和 snap-to-grid RoPE 是有洞察力的新贡献
- 实验充分度: ⭐⭐⭐⭐⭐ 8 数据集 + 4 任务 + 详细消融 + 速度对比
- 写作质量: ⭐⭐⭐⭐ 动机论证清晰,架构描述系统
- 价值: ⭐⭐⭐⭐⭐ 解决高分辨率多视图几何估计实际瓶颈,SOTA + 实用效率