Xuanyou Liu
Home
CVPR 2026 · Findings

MARIO

Motion-Augmented Real-Time Multi-Sensor Inertial Odometry

Yiquan Li*, Taeyoung Yeon*, Chenfeng Gao, Vasco Xu, Xuanyou Liu, Karan Ahuja (*equal contribution)

CVPR 2026, June 3 to 7, 2026, in Denver, Colorado

Two-part teaser. Top: a bird's-eye plot of a long indoor walk comparing three trajectories over a green point cloud; the estimate from MARIO stays close to the black ground-truth path while the baseline drifts away. Bottom: a person walks down a corridor wearing glasses, with translucent lower-body poses trailing behind them and a panel listing the MARIO inputs: two IMUs, a barometer, a magnetometer, and PoseNet.

Overview

Smart glasses can track where you are with only their built-in motion sensor, an inertial measurement unit (IMU); estimating position this way is called inertial odometry. It is low-power and privacy-friendly, but tiny errors accumulate: after minutes of walking, the estimate has drifted metres away.

MARIO starts from one observation: the IMU is attached to a person. A model infers from head motion how the body below is moving, keeping estimates consistent with human walking, and three sensors glasses already carry (a second IMU, a barometer, a magnetometer) steady them further.

ground truthbaseline trackerMARIOstartbaseline drifts awayMARIO stays close
Why odometry drifts. A schematic, not measured data: each step adds a tiny heading error, and the errors compound along the walk. MARIO keeps the estimate tied to how a body actually moves, so the path stays close to the truth.
up to 44% less position error over long walks
up to 42% less drift as the walk gets longer
315 FPS inference speed, well beyond real time

Implementation

MARIO is not a new tracker built from scratch. It is two add-on modules that plug into existing inertial odometry systems; the same two modules improved all four systems we tried them on.

Architecture of the pose model. IMU acceleration and orientation streams enter a feature encoder followed by stacked GRU layers, which output joint positions and then joint rotations; a separate velocity decoder outputs joint velocities.
The pose model. A neural network reads the head’s acceleration and rotation and predicts how the pelvis and legs are moving. Its prediction anchors the tracker physically: position estimates must stay consistent with how a walking body actually moves. Arms and hands are left out; head motion says too little about them.
A block diagram of the sensor fusion pipeline: streams from the second IMU, barometer, and magnetometer are time-aligned with the primary IMU, each encoded into a compact feature, then concatenated with the pose model's prediction and fed into the host inertial odometry model.
Sensor fusion. Each additional sensor stream is aligned in time with the main IMU and compressed into a compact summary of what it is currently reporting. The summaries are then fed into the host tracker together with the pose model’s prediction, so any of the four trackers can use them without changing its own design.

The pose model. A neural network reads the head’s acceleration and rotation and predicts how the pelvis and legs are moving. Its prediction anchors the tracker physically: position estimates must stay consistent with how a walking body actually moves. Arms and hands are left out; head motion says too little about them.

head IMU signalpose modelarms and handsleft outpelvis and legspredicted by the modelwalking
Head motion in, pelvis and legs out.
IMUOrientationFeature EncoderGRUGRUJoint positionsGRUJoint rotationsθVelocity DecoderJoint velocitiesvPrior for the tracker
Inside the pose model: a shared GRU feeds a position branch, a rotation branch and a velocity decoder.

Sensor fusion. Each additional sensor stream is aligned in time with the main IMU and compressed into a compact summary of what it is currently reporting. The summaries are then fed into the host tracker together with the pose model’s prediction, so any of the four trackers can use them without changing its own design.

concatenateIMU 1IMU encoderIMU 2IMU encoderBarometerBarometer encoderMagnetometerMagnetometer encoderPoseNetPose encoderFusionExisting inertialodometry networktrajectory
Every stream is encoded, concatenated, fused, then handed to the existing tracker.

Each fused sensor fixes a different kind of error:

Barometeranchors altitudewithoutwith barometer
Barometer. Air pressure falls as you climb, which anchors altitude on stairs and slopes.
Magnetometerkeeps heading trueNwithoutwith magnetometer
Magnetometer. The Earth’s field gives a compass heading, so the path stops rotating away.
Second IMUpins rotation down12IMU 1IMU 2they read it a littledifferently
Second IMU. A few centimetres from the first, it reads head rotation slightly differently.

How we tested it

We trained and evaluated on Nymeria: 264 people wore sensor-equipped glasses for about 300 hours and 400 kilometres across 50 environments, with motion capture recording their true position.

264people wearing sensor-equipped glasses
~300 hof recorded motion
400 kmwalked in total
50different environments
Nymeriawalks recorded with glassestrainheld outMARIO+ trackerHow far offwhere the estimate ends upHow fast it growsdrift as the walk gets longerHome activitiesa second dataset, never seen in trainingno retraining

Evaluation walks are held out from training, and we also ran the model, without any retraining, on a second dataset of home activities. We report how far the estimate ends up from the truth and how fast that error grows.

Results

The pose model alone already reduces error. Adding the fused sensors helps most on long walks, exactly where inertial odometry drifts the worst.

10.19 m → 5.73 m average position error of TLIO on Nymeria, before and with MARIO
4 / 4 trackers improved by the same two add-on modules
up to 53% less drift on home recordings it never trained on
0 m2.5 m5 m7.5 m10 m10.19 m5.73 mTLIO6.85 m4.64 mAirIOOriginal trackerWith MARIO
All four trackers improved:
  • TLIO
  • AirIO
  • RoNIN
  • EqNIO
Average position error on Nymeria. The same two add-on modules, on TLIO and AirIO, two of the four trackers.

AirIO’s error fell from 6.85 metres to 4.64, and the remaining two, RoNIN and EqNIO, improved similarly, so the idea is not tied to any one design. On unseen home recordings, error still dropped by roughly a third, and inference runs comfortably in real time.

Removing one sensor at a time shows they are not redundant: the barometer contributes most to vertical accuracy, while the magnetometer and second IMU remove much of the remaining drift.

Team

This is research from the SPICE Lab at Northwestern University by:

Publication

This work appears at CVPR 2026 (Findings). The published version is available via its DOI, and the authors’ print is available here (PDF).

Li, Y., Yeon, T., Gao, C., Xu, V., Liu, X., & Ahuja, K. (2026). MARIO: Motion-Augmented Real-Time Multi-Sensor Inertial Odometry. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (Findings), pp. 3460–3469. https://doi.org/10.1109/CVPRF71909.2026.00336
@inproceedings{li2026mario,
  title={MARIO: Motion-Augmented Real-Time Multi-Sensor Inertial Odometry},
  author={Li, Yiquan and Yeon, Taeyoung and Gao, Chenfeng and Xu, Vasco and Liu, Xuanyou and Ahuja, Karan},
  booktitle={2026 IEEE/CVF Conference on Computer Vision and Pattern Recognition - Findings Track (CVPRF)},
  address={Denver, CO, USA},
  pages={3460--3469},
  year={2026},
  doi={10.1109/CVPRF71909.2026.00336}
}