Downloads · 30 days
0
yangwinnie/tartanimu-unified
tartanimu-unified is a machine learning model from yangwinnie. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
Single unified model for the TartanIMU Challenge (multi-platform inertial odometry: car / dog / drone / human from raw 6-axis IMU only), IROS 2026 workshop Beyond Exteroception.
Downloads · 30 days
0
Access
Public
Updated Sep 15, 2026
Repo size
27 MB
Likes
0
Public
Click a slice to open those files.
.pt13.5 MB · 100%
From the Hugging Face model README
Single unified model for the TartanIMU Challenge (multi-platform inertial odometry: car / dog / drone / human from raw 6-axis IMU only), IROS 2026 workshop Beyond Exteroception.
EXP-212-rep-s10tv (epoch 30)model.ptpip install -r requirements.txt
python infer.py --test-root <dir of test_*.npz> \
--windows test_windows.csv --out submission.csv
--test-root is scanned recursively for *.npz; each trajectory is matched
to the traj_id column of the windows CSV by file stem. Output is a CSV with
header window_id,vx,vy,vz, one row per window, sorted by window_id.
Device: CUDA is used when torch.cuda.is_available(), otherwise the code
falls back to CPU automatically (no flag needed). Runtime on the
89-trajectory test set: ~1 min on one A10 (<2 GB VRAM); ~8 min on 8 CPU
cores. Both paths are far inside the 2 h budget. Prediction values differ
between the two paths at the 1e-3 m/s level (fp16 autocast vs fp32,
reduction order); the official score differs by <2e-5, i.e. the submitted
score reproduces on either device.
Trained on the released train+val split only (475 real trajectories) plus physics-exact time-warp augmentations of the training data (per-trajectory warp factor s ~ U(0.80, 1.50): gyro' = sgyro(st), acc' = s^2acc(st) - (s^2-1)R(st)^T*[0,0,+g], velocity labels scaled by s; generated solely from the released training split). Objective: vector-Huber velocity loss (beta 0.25) + auxiliary platform cross-entropy (0.05) + IMU-strapdown consistency (0.2) + differentiable ATE20 trajectory loss (0.05), 30 epochs, AdamW + OneCycle, from a TCN encoder warm-started on the per-window task. No external data, no test-time calibration tables, deterministic (fixed seed).
The TCN trunk follows the public Kaggle kernel by nomannic19 (ts-tcmpio-unified-temporal-resnet), itself building on the official TartanIMU release. Everything in this repository is trained from scratch on the challenge data.