Stereo4D: Learning How Things Move in 3D from Internet Stereo Videos¶
会议: CVPR 2025
arXiv: 2412.09621
代码: https://stereo4d.github.io
领域: 3D视觉 / 动态场景重建
关键词: 4D重建, 立体视频, 3D运动估计, 动态点云, 数据集
一句话总结¶
Stereo4D 提出了一套从互联网立体鱼眼视频(VR180)中自动挖掘高质量 4D 重建数据的流水线,生成了超过 100K 段带有世界坐标系下伪度量 3D 点云和长程运动轨迹的数据,并训练了 DynaDUSt3R 模型,实现了从图像对预测 3D 结构和运动的能力。
研究背景与动机¶
领域现状:静态 3D 重建(如 DUSt3R、Depth Anything)已通过大规模训练数据取得显著进展,但动态 3D 场景理解——同时预测几何和运动——仍是核心未解难题。
现有痛点:学习 3D 运动估计的关键瓶颈在于缺乏大规模、真实世界的训练数据。合成数据集(如 PointOdyssey)难以捕捉真实世界的内容分布和运动模式;Motion Capture 和多视角相机阵列虽精确但难以规模化且场景多样性有限。现有真实数据集(如 KITTI、Waymo)局限于自动驾驶等特定场景。
核心矛盾:大规模训练数据驱动的学习范式已在语言、图像生成和静态 3D 领域证明有效,但动态 3D 领域缺乏对应的大规模真实数据源,合成数据的领域差异阻碍了模型对真实世界运动的泛化。
本文目标:找到一个可规模化的真实 3D 运动数据来源,并设计流水线从中提取高质量的 4D 重建。
切入角度:作者识别出在线 VR180 立体鱼眼视频是一个未被充分利用的数据源——这些视频具有宽视场、标准化立体基线和丰富的日常场景内容。
核心 idea:融合相机位姿估计、立体深度估计和时序跟踪方法的输出,通过精心设计的滤波和优化步骤,从VR180视频中提取世界坐标系下的伪度量 3D 点云及其长程运动轨迹。
方法详解¶
整体框架¶
系统分为两大部分:(1) 数据生成流水线——从 VR180 视频中提取相机位姿、立体深度图和 2D 跟踪轨迹,融合为 3D 点云和运动轨迹,经过滤波和优化生成高质量 4D 数据集;(2) DynaDUSt3R 模型——在 DUSt3R 基础上添加运动预测头,给定两帧图像预测 3D 结构和 3D 场景流。
关键设计¶
-
4D 数据处理流水线(Data Processing Pipeline):
- 功能:将原始 VR180 立体视频转换为带有长程 3D 运动轨迹的动态点云
- 核心思路:首先用 ORB-SLAM2 将视频分割为可跟踪镜头段,然后运行类 COLMAP 的增量式 SfM 估计相机位姿并优化立体 rig 标定参数(\(\mathbf{c}_r, \mathbf{R}_r\))。接着用 RAFT 对每帧的校正立体对估计视差图,用 BootsTAP 提取密集 2D 长程跟踪轨迹,将 2D 轨迹通过相机位姿和视差图反投影为 3D 运动轨迹。最后经过语义过滤(丢弃墙壁/道路等静态类别上的漂移轨迹)和交叉渐变检测等质量控制步骤
- 设计动机:单独的立体深度估计存在逐帧抖动,单独的 2D 跟踪可能漂移,通过多信号融合和优化可以互相补偿获得高质量结果
-
3D 轨迹优化(Track Optimization):
- 功能:消除由逐帧独立深度估计导致的 3D 轨迹高频抖动
- 核心思路:为每个轨迹点求解沿相机光线方向的标量偏移 \(\delta_i\),使得 \(\mathbf{p}'_i = \mathbf{p}_i + \delta_i \mathbf{r}_i\)。优化目标包含三项:静态损失 \(\mathcal{L}_{\text{static}}\)(鼓励点在世界坐标系中保持不动)、动态损失 \(\mathcal{L}_{\text{dynamic}}\)(通过离散拉普拉斯算子最小化沿光线的加速度以平滑运动),以及正则化损失 \(\mathcal{L}_{\text{reg}}\)(在视差空间中约束偏移量)。两个损失用基于运动幅度的 Sigmoid 函数 \(\sigma(m)\) 加权组合
- 设计动机:立体深度是逐帧独立估计的,直接反投影的 3D 点存在高频噪声;此优化在保持运动轨迹物理合理性的同时消除抖动
-
DynaDUSt3R 运动预测头:
- 功能:在 DUSt3R 架构上添加并行的运动头,从两帧图像预测 3D 场景流
- 核心思路:给定两帧图像 \(\mathbf{I}_0\) 和 \(\mathbf{I}_1\) 及查询时间 \(t_q \in [0,1]\),共享 ViT 编码器和交叉注意力解码器提取全局特征 \(G^0, G^1\)。点图头预测每帧的 3D 点图 \(\mathbf{P}^v\)(与 DUSt3R 相同),新增的运动头预测从各帧到目标时间 \(t_q\) 的 3D 位移图 \(\mathbf{M}^{v \to t_q}\)。时间 \(t_q\) 通过位置编码注入运动特征。训练损失包含置信度加权的尺度不变 3D 回归损失 \(\mathcal{L}_{\text{point}}\) 和运动损失 \(\mathcal{L}_{\text{motion}}\)
- 设计动机:预测到中间时间点(而非仅端到端)使模型能够学习完整的运动轨迹,且允许利用不完整的地面真值轨迹作为监督
损失函数 / 训练策略¶
训练损失为置信度加权的尺度不变 3D 回归损失,对预测和真值点图先做归一化再计算欧几里得距离。从 DUSt3R 权重初始化,运动头用点图头权重初始化。Batch size 64,学习率 2.5e-5,Adam 优化器(weight decay 0.95),训练 49K 步。训练数据为随机采样的最多间隔 60 帧的视频帧对。
实验关键数据¶
主实验 — 3D 运动预测¶
| 训练数据 | Stereo4D EPE3D ↓ | Stereo4D \(\delta_{3D}^{0.05}\) ↑ | Stereo4D \(\delta_{3D}^{0.10}\) ↑ | ADT EPE3D ↓ | ADT \(\delta_{3D}^{0.05}\) ↑ | ADT \(\delta_{3D}^{0.10}\) ↑ |
|---|---|---|---|---|---|---|
| PointOdyssey (合成) | 0.619 | 11.6 | 20.3 | 0.313 | 8.6 | 18.0 |
| Stereo4D (真实) | 0.111 | 65.1 | 75.2 | 0.123 | 52.0 | 65.2 |
深度估计 (Bonn 数据集)¶
| 方法 | Abs Rel ↓ | RMSE ↓ | \(\delta_1\) ↑ |
|---|---|---|---|
| DUSt3R | 0.078 | 0.205 | 0.942 |
| MonST3R | 0.066 | 0.182 | 0.952 |
| DynaDUSt3R | 0.059 | 0.168 | 0.965 |
关键发现¶
- 在真实数据(Stereo4D)上训练的 DynaDUSt3R 在 3D 运动预测上全面碾压合成数据(PointOdyssey)训练的模型,EPE3D 从 0.619 降至 0.111(降低 82%),证实了真实数据对学习 3D 运动先验的关键价值
- 即使在完全不同来源的 ADT 测试集上,Stereo4D 训练的模型也展现出更强的泛化能力
- DynaDUSt3R 在动态场景的深度估计上超越了 DUSt3R 和 MonST3R,说明运动建模能反过来提升几何估计的准确性
亮点与洞察¶
- 数据源的巧妙选择是最大亮点:VR180 视频天然提供了立体基线、宽视场和丰富的日常场景,解决了真实 3D 运动数据难以规模化获取的核心困难
- "数据+简单模型"的范式再次验证:DynaDUSt3R 的模型改动非常轻量(仅增加运动头),但数据质量带来了巨大的性能提升
- 3D 轨迹优化中使用运动幅度自适应的静态/动态损失权重是精巧的设计
局限与展望¶
- VR180 视频的内容分布有偏差(偏向旅游、户外等场景),室内精细操作等长尾场景覆盖不足
- 伪度量标注的精度受立体标定质量限制,远距离物体的深度估计噪声较大
- DynaDUSt3R 目前仅支持两帧输入,扩展到多帧可能带来更强的运动推理能力
- 数据集依赖多个现有方法的级联(SfM + RAFT + BootsTAP),每个环节的误差会累积
相关工作与启发¶
- vs PointOdyssey:合成数据虽方便获取但存在明显的领域差异,本文定量证明了真实数据的必要性(EPE 降低 5 倍以上)
- vs DUSt3R/MASt3R:DUSt3R 只处理静态场景,DynaDUSt3R 在其基础上以最小改动扩展了动态场景能力
- vs KITTI/Waymo:这些数据集局限于驾驶场景,Stereo4D 的内容多样性显著更强
评分¶
- 新颖性: ⭐⭐⭐⭐ 数据源的识别和完整流水线的设计具有开创性
- 实验充分度: ⭐⭐⭐⭐ 合成 vs 真实数据的对比令人信服,跨数据集泛化测试完善
- 写作质量: ⭐⭐⭐⭐⭐ 流水线描述清晰,可视化丰富
- 价值: ⭐⭐⭐⭐⭐ 超过 100K 段真实动态 3D 数据的贡献对整个领域具有重大意义