五帧DA3加IMU起步,EuRoC最终ATE降29%到45%

DAVIO: Dense Monocular-Inertial SLAM with Feed-Forward Initialization and Pose-Conditioned Mapping

Jaafar Mahmoud, Arthur Movsesyan, Mikhail Iumanov, Sergey Kolyubin

cs.RO, cs.CV

2026-09-23

DAVIO用DA3五帧加IMU起步,按VIO位姿稠密建图;EuRoC ATE降29%到45%,ORI误差0.080米。

这篇在解决什么

单目相机加IMU是能给出米制尺度和重力的最小传感器组合。经典视觉惯性滤波器要等视差攒够才能起步,起步之后手里也只有稀疏路标,下游导航用不上。另一头,Depth Anything 3、VGGT这类前馈几何模型几张图就能吐稠密深度,但没有米制尺度,也没有重力。

两边刚好互补。真正难的是接到一条能实时跑的链路上:初始化不能把错尺度交给滤波器,建图也不能把VIO已经估准的基线再乘一遍相似变换。

方法

DAVIO把同一套DA3用在两个阶段,作者来自ITMO大学BE2R实验室。

起步用五张间隔0.2秒的图,加上预积分IMU。DA3给出每帧深度、置信度和相对位姿;系统在4×4网格上每帧最多抽100个高置信点,列一个关于尺度、初速度和重力的七维线性方程。每个图像对这个七维向量最多贡献三个独立方程,五帧窗口只多一帧冗余。匀速运动会把尺度变化吸收进速度和重力,属于退化情形,列均衡奇异值比低于0.001、基线深度比低于0.02的窗口直接拒掉。

外点用分层LMedS搜100组假设:每个非参考帧抽两点,残差除以尺度再取中位数,避免偏向小尺度。接受条件包括内点比例至少0.4、中位残差不超过0.05、速度不超过5米/秒、重力方向偏离比力均值不超过30度。过关后再非线性精修,写进一个全新的OpenVINS实例。初始化期间到的数据先排队,再快于实时回放,滤波器追上直播流才对外发布,最多试五个候选。OpenVINS自带初始化器一直挂着,谁先就绪用谁。

跟踪阶段反过来。滤波器的米制位姿和内参喂给DA3,每0.5秒一个五帧窗口,相邻窗口共享两张图。尺度修正只作用在反投影的深度上,窗口内相机基线保持滤波器给的米制值。XFeat/LighterGlue在窗口内匹配,把各帧相对尺度调到几何平均为1。子图之间用共享图像的中位对数深度比做相对尺度约束。回访要过PnP RANSAC(至少50对匹配、30个内点、内点比例0.25)、深度一致性和3σ里程计新息检验;点约束只有在预测漂移超过回访不确定度时才允许动位姿。每个节点只优化平移、绕重力的偏航和对数深度尺度,滚转和俯仰锁死在滤波器观测上。滤波器状态本身从头到尾不被改写。

结果

EuRoC 132个十秒窗口上,DAVIO首次发布状态的中位时间是2.43秒,OpenVINS是3.65秒。质量惩罚时间从3.87秒降到2.66秒。机房序列上该时间从4.68秒砍到2.30秒;Vicon房间反而更慢,4.50秒对3.15秒。成功率109/132对111/132,几乎打平。

机房五条序列的最终ATE相对原生OpenVINS降29%到45%:

序列OpenVINS原生DAVIO最终
MH010.099米0.065米
MH030.158米0.101米
MH050.281米0.200米

在线轨迹不一定更好:MH01从0.099米升到0.119米,图优化修正是事后才全部兑现的。端到端对比里DAVIO覆盖97%到99%的序列,ORB-SLAM3只评上74%到82%的帧;ORB-SLAM3在MH01上ATE是0.058米,仍低于DAVIO的0.065米。相对MASt3R-Fusion和做了全局Sim(3)对齐的VGGT-SLAM2,DAVIO最终轨迹ATE低2.6到5.3倍。

相同OpenVINS位姿和DA3-Base下,EuRoC Vicon房间中位F@10从ScaRF离线建图器的0.45升到0.58,中位误差从0.227米降到0.172米。ORI上,位姿条件化把全局误差从0.219米降到0.080米,F@10从0.38升到0.75。在线DAVIO略优于同轨迹上的离线ScaRF,0.080米对0.084米。换成真值位姿,ScaRF更准,0.040米对0.069米;从真值换到OpenVINS,ScaRF误差涨110%,DAVIO只涨26%。消融里,去掉位姿条件化,表面质量几乎退回无条件化基线;子图图优化主要修轨迹,回访贡献了MH03上从0.158米到0.101米的全部修正。

为什么重要

这是一条能落地的前馈几何加经典VIO路径:滤波器状态不动,GPU工人单独出图。起步不靠特征跟踪,稠密图在开机后几秒就能用。对已经在跑OpenVINS的机器人,映射层可以挂上去。ORI上对里程计漂移更耐,是因为子图图只在漂移大过约束不确定度时才动位姿。

它没有把SLAM端到端换成大模型。ORB-SLAM3在部分序列上轨迹更准,DAVIO赢在覆盖率和稠密图,以及估计位姿下的建图容差。

局限与存疑

作者没单列局限,数字里能读出几处。Vicon房间起步比OpenVINS慢,整体成功率还少了两个窗口。在线轨迹在部分序列比原生更差,实时导航吃到的是causal不是final。真值位姿下ScaRF离线建图更准,DAVIO的优势主要在估计轨迹上的容差,不是深度本身。回访在V103和V202上会把F@10拉低一点,漂移门关得不够严时会塞进不准的尺度约束。深度质量仍是主要误差源:换成DA3-Large,ORI在线全局误差从0.080米降到0.061米。匀速窗口会被拒掉,完全静止或近似匀速开机仍得靠OpenVINS兜底。实验在RTX 3060 Laptop、DA3-Base 504像素上跑通,论文没给出完整系统帧率。

术语

原文与代码

社区讨论

相关论文

全部论文解读