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 bootstraps OpenVINS from five DA3 frames plus IMU, then maps under metric poses, cutting Machine Hall ATE 29-45% and ORI error from 0.219 m to 0.080 m.
A camera plus an IMU is the smallest sensor pair that can recover metric scale and gravity. Classical visual-inertial filters still wait for parallax before they publish a state, and then they keep only sparse landmarks. Feed-forward geometry models such as Depth Anything 3 and VGGT invert that tradeoff: a handful of images produce dense structure, with no metric scale and no gravity.
The two sides fit. The engineering problem is the handshake. A bad scale at start-up poisons the filter. A similarity transform applied to a whole mapping window would stretch the filter's already-metric baselines.
DAVIO, from ITMO's BE2R lab, runs one DA3 model in two phases.
Start-up takes five images 0.2 s apart plus preintegrated IMU. DA3 predicts per-frame depth, confidence, and relative poses. Up to 100 high-confidence points per image, sampled on a 4x4 grid, enter a linear system in seven unknowns: scale, initial velocity, and gravity. Each image contributes at most three independent equations, so five views add one view of redundancy. Constant-velocity motion is degenerate: a change in scale is absorbed by velocity and gravity. Windows with a column-equilibrated singular-value ratio below 0.001 or a baseline-to-depth ratio below 0.02 are rejected.
Outliers are handled by a stratified LMedS search over 100 hypotheses, two points from every non-reference image, scored by median residual divided by scale so small-scale hypotheses are not favored. Acceptance requires an inlier fraction of at least 0.4, a median residual of at most 0.05, speed at most 5 m/s, and gravity within 30 degrees of the mean specific-force direction. The accepted state is refined nonlinearly and written into a fresh OpenVINS instance. Measurements that arrived during the solve are replayed faster than real time; the filter publishes only after it has caught the live stream, with at most five candidates. The stock OpenVINS initializer stays armed, and whichever instance is ready first goes live.
During tracking the dependency flips. Metric poses and rectified intrinsics from the filter condition DA3. Windows of five frames at 0.5 s keyframe spacing share two images with the next window. Residual scale acts only on back-projected depth, so intra-window camera translations stay metric. XFeat/LighterGlue matches redistribute per-frame scales under a unit geometric-mean constraint. Adjacent submaps are tied by median log-depth ratios on shared images. Revisits must pass PnP RANSAC (at least 50 matches, 30 inliers, 0.25 inlier fraction), depth agreement, and a 3-sigma odometry-innovation test. Point constraints may move poses only when predicted drift exceeds the revisit's uncertainty. Each node optimizes translation, yaw about gravity, and a log-depth scale; roll and pitch stay locked to the filter. The filter state itself is never rewritten.
On 132 ten-second EuRoC windows, DAVIO publishes its first state at a median 2.43 s against OpenVINS at 3.65 s. Quality-penalized time drops from 3.87 s to 2.66 s. The gain is concentrated in the Machine Hall, where that time falls from 4.68 s to 2.30 s. In the Vicon rooms DAVIO is slower, 4.50 s against 3.15 s. Success rates are close: 109/132 versus 111/132.
Final ATE on the five Machine Hall sequences falls 29% to 45% relative to native OpenVINS:
| Sequence | Native OpenVINS | DAVIO final |
| MH01 | 0.099 m | 0.065 m |
| MH03 | 0.158 m | 0.101 m |
| MH05 | 0.281 m | 0.200 m |
The causal trajectory is not uniformly better. On MH01 it rises from 0.099 m to 0.119 m; the graph correction is fully applied only in the retrospective export. DAVIO covers 97% to 99% of each sequence, while ORB-SLAM3 scores 74% to 82% of frames. ORB-SLAM3 still wins MH01 ATE at 0.058 m versus 0.065 m. Against MASt3R-Fusion and globally Sim(3)-aligned VGGT-SLAM2, DAVIO's final ATE is 2.6 to 5.3 times lower.
With matched OpenVINS poses and DA3-Base, online DAVIO raises median F@10 in the EuRoC Vicon rooms from 0.45 (ScaRF's offline mapper) to 0.58, and cuts median error from 0.227 m to 0.172 m. On ORI, pose conditioning drops global error from 0.219 m to 0.080 m and lifts F@10 from 0.38 to 0.75. Online DAVIO slightly beats offline ScaRF on the same trajectory, 0.080 m versus 0.084 m. Given ground-truth poses, ScaRF is more accurate, 0.040 m versus 0.069 m. Moving both offline mappers from ground truth to OpenVINS poses inflates ScaRF's error by 110% and DAVIO's by 26%. Ablations show pose conditioning as the main surface-quality term; the submap graph mainly repairs trajectory, and revisits account for the entire MH03 drop from 0.158 m to 0.101 m.
This is a practical coupling of a feed-forward geometry model to classical VIO. The filter keeps its own state. A GPU worker produces the dense map. Start-up does not need feature tracks, and a metric dense map is available within seconds. Teams already running OpenVINS can attach the mapping layer. The ORI result under estimated poses comes from admitting pose updates only when predicted drift exceeds constraint uncertainty.
DAVIO does not replace SLAM with an end-to-end foundation model. ORB-SLAM3 can still produce a tighter trajectory on some sequences. DAVIO's claim is coverage, a usable dense map, and mapping that degrades less when the poses are real odometry rather than ground truth.
The paper has no dedicated limitations section. The tables supply several. Start-up in the Vicon rooms is slower than OpenVINS, and overall success is two windows lower. Causal trajectories are worse than native on some sequences, which is what a live navigator would see. With ground-truth poses, ScaRF's offline mapper is more accurate; DAVIO's edge is tolerance to odometry drift, not raw depth. Revisits slightly hurt F@10 on V103 and V202, consistent with imprecise scale constraints slipping through. Depth quality remains a major error source: switching to DA3-Large lowers online ORI global error from 0.080 m to 0.061 m. Constant-velocity windows are rejected, so a near-hover start still depends on the stock initializer. The system runs on an RTX 3060 Laptop with DA3-Base at 504 px; the paper does not report a full-system frame rate.