苏黎世联邦理工学院、谷歌和微软联合提出了VidMap,一个用于任意未标定视频度量三维重建的系统。在LaMAR数据集上,VidMap的W-AUC@full达到88.5,而基线方法ViPE为76.6。系统结合了SLAM的序列约束与SfM的全局优化能力,代码已在GitHub开源。
SLAM和SfM各有各的问题
从视频中恢复相机标定参数和度量位姿,是导航和场景理解任务的基础能力。现有方法分为两类,各有明显局限。
SLAM(同时定位与建图)采用因果、增量式处理,对初始化和瞬时故障非常敏感——一旦某一帧跟踪失败,误差会持续累积。SLAM通常还为实时运行做了过度优化,并且大多需要已知相机标定参数。
SfM(运动恢复结构)则完全放弃图像顺序信息,把所有图像视为独立观测。这带来了最优初始化和全局优化的可能,但也失去了序列约束的帮助,导致对视觉对称场景和极端运动缺乏鲁棒性。
VidMap的思路是把两者的优势结合起来:保留SLAM的强序列约束,同时使用SfM的离线全局优化。
图:VidMap利用时序约束完成全局定位与重建的流程。
把时序排序当成一等公民
VidMap的核心设计是将时序排序作为可靠回环检测的核心要素。传统SfM在寻找图像对应关系时,需要在所有图像对中搜索,计算量大且容易产生错误匹配。VidMap利用视频的时序信息,优先在时序相邻或时序上可能形成回环的帧之间建立对应,大幅提升了匹配的准确性和效率。
系统还利用了宽基线密集图像匹配的最新进展。相比传统的稀疏特征点匹配,密集匹配能在视角变化较大的情况下建立更多可靠对应,这对处理手持拍摄的视频尤为重要。
第三个关键组件是度量单目深度先验。通过引入单目深度估计的结果作为全局优化的约束,VidMap能够在没有相机标定参数的情况下恢复出真实尺度的度量重建。
这三件事各自解决一个具体问题:时序排序解决"该拿哪两帧做匹配",密集匹配解决"匹配得够不够多",深度先验解决"重建出来的尺度对不对"。缺任何一个,未标定视频的度量重建都很难成立——尤其是尺度,纯几何方法在单相机、无标定的条件下原本无法确定绝对尺度。
图:VidMap与逐帧方法在视频三维重建中的效果对比。
在极端运动和视觉对称场景下的表现
论文在多个具有挑战性的数据集上进行了评估,包括LaMAR、ETH3D和CroCoDL。这些数据集包含大量极端运动(快速旋转、剧烈抖动)和视觉对称场景(长走廊、重复纹理墙面)。
在LaMAR上,VidMap的W-AUC@full达到88.5,显著优于ViPE的76.6。论文还对比了经典SfM方法(COLMAP)和学习型SLAM方法,VidMap在给定或未知相机标定参数两种设置下都取得了领先。
图:多种基线在相机轨迹与场景重建上的对比。
CroCoDL数据集上的对比展示了VidMap在处理复杂室内场景时的稳定性。在其他方法出现跟踪丢失或重建断裂的场景中,VidMap能够保持完整重建。
图:VidMap与其他方法在不同数据集上的轨迹重建对比。
计算成本仍是需要权衡的因素
VidMap的鲁棒性提升伴随着计算成本的增加。系统采用离线全局优化,需要处理整个视频序列,这与SLAM的实时性形成对比。论文的运行时分析显示,VidMap的处理时间随视频长度增长,在长视频上需要较大的计算资源。
对于需要实时定位的应用(如AR导航),VidMap当前的形式并不适用。它更适合离线处理场景——例如从大量视频中批量生成三维重建数据,用于训练导航或场景理解模型。
图:不同方法的运行时间、序列长度与误差表现。
从数据生成走向更广的应用
VidMap的直接应用价值在于数据生成。论文开篇就指出,能够从任意无约束视频中精确恢复相机参数和位姿,将为导航和场景理解解锁大规模训练数据。互联网上存在海量的手持拍摄视频,如果能够可靠地从这些视频中提取三维几何信息,就能大幅扩展相关任务的训练数据规模。
这条路径的吸引力在于成本结构完全不同。过去要获得带精确位姿的三维数据,通常依赖激光扫描仪或专业采集车,一个场景的采集成本可观;而手机视频的边际获取成本接近于零。真正的瓶颈一直是几何精度不够可靠,而VidMap把这个瓶颈往前推了一段。
代码已在GitHub公开。下一步的方向包括提升计算效率、支持动态场景重建,以及与最新的三维表示方法(如高斯泼溅)结合。