|
Download README.md from LexHo/tartanimu-a3v21: direct link, hf CLI and curl.
- Browser
- Download file 5.57 kB
-
https://huggingface.co/LexHo/tartanimu-a3v21/resolve/main/README.md
- Command line
-
hf download hf://LexHo/tartanimu-a3v21/README.md
-
curl -L -o README.md https://huggingface.co/LexHo/tartanimu-a3v21/resolve/main/README.md
5.57 kB
| license: mit | |
| tags: | |
| - inertial-odometry | |
| - imu | |
| - tartanimu | |
| - iros2026 | |
| - state-estimation | |
| - sensor-fusion | |
| # TartanIMU Challenge (IROS 2026) β team Lexxxxx β model `a3v21_s42` (second leaderboard entry) | |
| Second of the two final entries of a team that finished **20th of 131** in the IROS 2026 TartanIMU Challenge. Official scoring service over all 89 test sequences: **TartanIMU Score 0.26306** (macro ATEββ 0.637 m, macro AVE 0.222 m/s). The delivered entry is `a3v20_s42` (0.25878). | |
| | | | | |
| |---|---| | |
| | **Code, evaluation rulers, technical report, full development record** | https://github.com/Jadiouo/tartanimu-unified-io | | |
| | Results and how to verify the standing | https://github.com/Jadiouo/tartanimu-unified-io/blob/main/docs/results.md | | |
| | Technical report (PDF, submitted to the organisers) | https://github.com/Jadiouo/tartanimu-unified-io/blob/main/report/technical_report.pdf | | |
| | Competition | https://www.kaggle.com/competitions/tartan-imu-challenge-iros2026 Β· [final standing](https://www.kaggle.com/competitions/tartan-imu-challenge-iros2026/leaderboard?search=Lexxxxx) Β· [challenge page](https://superodometry.com/imuchallenge/) | | |
| | Delivered entry (official 0.25878) | https://huggingface.co/LexHo/tartanimu-a3v20 | | |
| Single unified model, one shared set of weights, for all four platforms (car, dog, drone, human). | |
| This repository is our **second** considered submission; the primary one (`a3v20_s42`, official 0.25878) is at | |
| https://huggingface.co/LexHo/tartanimu-a3v20. Each repository holds exactly one model and the exact prediction file it produced. | |
| Frozen weights: `weights/tartanimu_a3v21_s42.pt` (sha256 `7d90badeb2873b1d8f3e13ffca21a624cf2b2ae8a5f838473a7ac44964f9c07b`). | |
| `submission.csv` is the exact prediction file behind the claimed Kaggle score (md5 `a53e196f6b67e8ea52733f4386b5c403`; | |
| official scoring service: TartanIMU Score 0.26306, macro AVE 0.22232, macro ATE20 0.63665). | |
| ## Run | |
| pip install -r requirements.txt | |
| python predict.py --data /path/to/tartan-imu-challenge-iros2026 --out submission.csv | |
| Input: `index/test_windows.csv` + `test/*.npz` (raw 6-axis IMU only). No internet, no ground truth, no platform label. | |
| Measured re-execution of this repository as downloaded (CPU only, isolated environment, process-level socket block, | |
| empty cache): 1 min 10 s wall, 1.4 GB RSS; on one GPU < 1 min, < 1 GB VRAM. | |
| Cross-machine numerical tolerance vs `submission.csv` (produced on an RTX 5090): componentwise mean 1.8e-5, p99 1.6e-4, max 1.6e-3 m/s. | |
| `SHA256SUMS` covers every file (`sha256sum -c SHA256SUMS`). | |
| ## Method (short) | |
| Same main network as the primary entry, **without** the learned-INS sub-modules and recursion head, **with** a | |
| recording-level FiLM conditioning: dense random-offset 1 s windows β 14 input channels (raw IMU + an 8-channel | |
| decomposition about a slow complementary-filter "up" direction computed from the same IMU) β dilated 1-D ResNet trunk | |
| (5 tokens per window) whose blocks are modulated (FiLM: per-channel scale and shift) by a 35-dimensional descriptor of | |
| the whole recording (per-axis mean / spread / step roughness of the raw IMU, rest-window statistics, a 10-bin | |
| |acc| spectrum, gyro-rate percentiles, log duration β IMU only, no labels) β bidirectional GRU over 40-window chunks β | |
| linear head β body-frame velocity per window. Huber loss (Ξ² 0.05). Trunk initialised from a masked-IMU self-supervised | |
| pre-training on the released train+val IMU (no labels). Training augmentations: time dilation k β [0.7, 1.5] (drone; | |
| identity-source racing family capped at 1.2) and, for the racing family only, translation scaling s β [1.0, 1.8] | |
| applied to velocity labels and the gravity-removed specific force ("S-fast"); yaw augmentation about the estimated up | |
| (direction-only) for the identity source. Final weights = last epoch of a 120-epoch train+val run, seed 42 | |
| (pre-designated; seed range reported in the technical report). | |
| ## Compliance declaration | |
| 1. **Single model, one shared set of weights?** Yes. One checkpoint, one forward pass per chunk; no per-platform experts. | |
| The FiLM descriptor is a function of the recording's own IMU computed inside the same forward pass; it is not a | |
| platform label and nothing is routed. | |
| 2. **Platform classification, routing or specialization at inference?** No. An auxiliary platform head exists only as a | |
| training loss; it is not used at inference. | |
| 3. **Ensembling, checkpoint averaging or test-time augmentation?** No. Single checkpoint, deterministic inference, | |
| overlapping-chunk averaging of one model's own predictions only (stride K/2 within a trajectory). | |
| 4. **Test-set leakage avoidance, incl. model / checkpoint selection?** Test ground truth never used. The final checkpoint | |
| is the fixed last epoch (no selection on any test signal). The self-supervised trunk pre-training used only the released | |
| train+val IMU. No external data or external pretrained weights are used in the submitted system. Development-time | |
| experiments with an external dataset (NeuroBEM) were run and are disclosed in the report; none of their weights or data | |
| enter this model. A public-leaderboard probe with a physics post-processing rule was made during development and is | |
| NOT part of this submission. | |
| 5. **Development-time vs submitted system?** Identical inference code; the submitted checkpoint differs from earlier | |
| leaderboard entries by the training augmentation (S-fast) and the recording-level FiLM. Model/checkpoint selection used | |
| the released validation split and two stress folds of the training split. | |