跳转至

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 场景流。

关键设计

  1. 4D 数据处理流水线(Data Processing Pipeline):

    • 功能:将原始 VR180 立体视频转换为带有长程 3D 运动轨迹的动态点云
    • 核心思路:首先用 ORB-SLAM2 将视频分割为可跟踪镜头段,然后运行类 COLMAP 的增量式 SfM 估计相机位姿并优化立体 rig 标定参数(\(\mathbf{c}_r, \mathbf{R}_r\))。接着用 RAFT 对每帧的校正立体对估计视差图,用 BootsTAP 提取密集 2D 长程跟踪轨迹,将 2D 轨迹通过相机位姿和视差图反投影为 3D 运动轨迹。最后经过语义过滤(丢弃墙壁/道路等静态类别上的漂移轨迹)和交叉渐变检测等质量控制步骤
    • 设计动机:单独的立体深度估计存在逐帧抖动,单独的 2D 跟踪可能漂移,通过多信号融合和优化可以互相补偿获得高质量结果
  2. 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 点存在高频噪声;此优化在保持运动轨迹物理合理性的同时消除抖动
  3. 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 数据的贡献对整个领域具有重大意义