Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,575 @@
|
|
| 1 |
---
|
| 2 |
-
license:
|
|
|
|
|
|
|
|
|
|
| 3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
license: other
|
| 3 |
+
license_name: nvidia-open-model-license
|
| 4 |
+
license_link: >-
|
| 5 |
+
https://developer.download.nvidia.com/licenses/NVIDIA-OneWay-Noncommercial-License-22Mar2022.pdf?t=eyJscyI6ImdzZW8iLCJsc2QiOiJ
|
| 6 |
---
|
| 7 |
+
|
| 8 |
+
## Description:
|
| 9 |
+
|
| 10 |
+
MetricTrail estimates camera motion and per-frame metric depth from long RGB
|
| 11 |
+
image sequences for visual odometry and 3D reconstruction research. It combines
|
| 12 |
+
single-image metric depth, learned sparse correspondences, and local geometric
|
| 13 |
+
optimization, with supplied or RGB-estimated intrinsics and optional rectified
|
| 14 |
+
stereo. MetricTrail 1.0 was developed by NVIDIA.
|
| 15 |
+
|
| 16 |
+
The repository provides a CLI that exports camera trajectories and caches
|
| 17 |
+
per-frame depth. Model weights are not included in the source repository;
|
| 18 |
+
the DINO-DPVO checkpoint is planned for a separate Hugging Face release.
|
| 19 |
+
The CLI does not export dense point clouds or meshes. The dense-reconstruction
|
| 20 |
+
results below use a separate research evaluation workflow.
|
| 21 |
+
|
| 22 |
+
This model is for research and development only.
|
| 23 |
+
|
| 24 |
+
### License/Terms of Use:
|
| 25 |
+
|
| 26 |
+
Use of the model weights is governed by the [NVIDIA License](https://developer.download.nvidia.com/licenses/NVIDIA-OneWay-Noncommercial-License-22Mar2022.pdf), which limits use to noncommercial research or evaluation, subject to the agreement. Use of the DPVO base model is governed by the [MIT License](https://opensource.org/license/mit). Original NVIDIA-authored source and documentation marked Apache-2.0 use the [Apache License 2.0](../LICENSE). Incorporated source, separately obtained upstream weights, and datasets retain their applicable terms; DINOv3 uses the [DINOv3 License](https://github.com/facebookresearch/dinov3/blob/main/LICENSE.md). See [THIRD_PARTY_NOTICES.md](../THIRD_PARTY_NOTICES.md) and the [repository license scope](../README.md#license) for inherited MIT and BSD terms and the removal of legacy retrieval, alignment, and optical-flow helpers. Separately obtained retrieval tools retain their own applicable terms. Source licenses do not replace model-weight or dataset terms.
|
| 27 |
+
|
| 28 |
+
### Deployment Geography:
|
| 29 |
+
|
| 30 |
+
Global
|
| 31 |
+
|
| 32 |
+
### Use Case:
|
| 33 |
+
|
| 34 |
+
- Research on long-video camera-motion estimation and metric 3D reconstruction.
|
| 35 |
+
- Studying metric-depth priors, visual representations, and sparse local
|
| 36 |
+
optimization for visual odometry and mapping.
|
| 37 |
+
- Reconstructing indoor and outdoor scenes for computer vision, graphics,
|
| 38 |
+
simulation, and robotics research, with independent validation of geometry.
|
| 39 |
+
- Comparing calibrated monocular, RGB-only calibration, and calibrated stereo
|
| 40 |
+
reconstruction under the reported protocols.
|
| 41 |
+
|
| 42 |
+
### Release Date:
|
| 43 |
+
|
| 44 |
+
Hugging Face 10/23/2026 via [https://huggingface.co/nvidia/metrictrails](https://huggingface.co/nvidia/metrictrails)
|
| 45 |
+
|
| 46 |
+
## References(s):
|
| 47 |
+
|
| 48 |
+
- *MetricTrail: Revisiting the Power of Metric Depth and Local Optimization for
|
| 49 |
+
Long-Sequence Streaming 3D Reconstruction*.
|
| 50 |
+
- [Repository overview and running instructions](../README.md).
|
| 51 |
+
- [DPVO](https://github.com/princeton-vl/DPVO), the sparse local odometry backbone.
|
| 52 |
+
- [DINOv3](https://github.com/facebookresearch/dinov3) and the
|
| 53 |
+
[ViT-S/16 LVD-1689M pretrained model](https://huggingface.co/facebook/dinov3-vits16-pretrain-lvd1689m).
|
| 54 |
+
- [MoGe](https://github.com/microsoft/MoGe) and
|
| 55 |
+
[MoGe-2](https://arxiv.org/abs/2507.02546), the default metric-depth provider.
|
| 56 |
+
- [SALAD](https://github.com/serizba/salad), an optional external place-retrieval
|
| 57 |
+
tool obtained and run independently of MetricTrail.
|
| 58 |
+
- [ViPE](https://github.com/nv-tlabs/vipe), used for RGB-only shared-focal calibration.
|
| 59 |
+
- [RoMa](https://github.com/Parskatt/RoMa), used for optional revisit-based focal refinement.
|
| 60 |
+
|
| 61 |
+
## Model Architecture:
|
| 62 |
+
|
| 63 |
+
**Architecture Type:** Learned recurrent visual odometry with frozen visual
|
| 64 |
+
foundation-model features and explicit bundle adjustment.
|
| 65 |
+
|
| 66 |
+
**Network Architecture:** DPVO's sparse patch correspondence network with
|
| 67 |
+
learned residual feature-fusion adapters, a frozen DINOv3-S/16 encoder, and a
|
| 68 |
+
frozen MoGe-2 metric-depth provider. The complete system includes camera
|
| 69 |
+
calibration and optional pose-graph correction.
|
| 70 |
+
|
| 71 |
+
**Number of model parameters:** The DINO-DPVO checkpoint for the separate
|
| 72 |
+
Hugging Face release contains
|
| 73 |
+
**3,425,860 learned parameters (3.43 million)** across 100 FP32 weight/bias
|
| 74 |
+
tensors. This count excludes the frozen DINOv3 backbone, external MoGe-2 depth
|
| 75 |
+
model, calibration dependencies, and optional SALAD and RoMa models.
|
| 76 |
+
|
| 77 |
+
The local estimator alternates learned patch matching with joint optimization
|
| 78 |
+
of camera poses and sparse patch inverse depths in a bounded active window.
|
| 79 |
+
MoGe-2 independently predicts metric camera-Z depth for each image. These
|
| 80 |
+
predictions initialize patch depths and remain robust soft constraints during
|
| 81 |
+
optimization; multi-view evidence can override unreliable prior measurements.
|
| 82 |
+
In the dense-reconstruction workflow, frame-level depth maps are
|
| 83 |
+
placed in a shared world frame using the recovered poses and are not themselves
|
| 84 |
+
bundle-adjustment variables.
|
| 85 |
+
|
| 86 |
+
Frozen DINOv3 features augment the matching map and recurrent patch context
|
| 87 |
+
through learned residual adapters. Its 384-dimensional features are projected
|
| 88 |
+
to 64 channels and split into two 32-channel branches that augment the
|
| 89 |
+
128-channel matching stream and 384-dimensional recurrent context. Final
|
| 90 |
+
residual projections are initialized to zero so adaptation starts from the
|
| 91 |
+
official DPVO checkpoint's predictions.
|
| 92 |
+
|
| 93 |
+
We train MetricTrail for 15,000 optimizer steps with global batch size 16 on
|
| 94 |
+
16 NVIDIA A100 80GB GPUs, taking approximately seven hours. Fusion branches
|
| 95 |
+
first warm up on 5,000 TartanAir clips with odometry frozen; odometry and fusion
|
| 96 |
+
branches are then jointly fine-tuned on the remaining 235,000 clips. DINOv3 stays
|
| 97 |
+
frozen, and MoGe-2 is not used during adaptation. Joint training uses AdamW,
|
| 98 |
+
learning rates of 8e-6 for odometry and 8e-5 for fusion, weight decay 1e-6,
|
| 99 |
+
linear OneCycle annealing with 1% warmup, gradient clipping at 10, and seed 1234. Each clip
|
| 100 |
+
uses 80 patches per frame and 18 recurrent refinements. The frozen DINOv3
|
| 101 |
+
forward pass uses BF16; adapters, odometry, differentiable bundle adjustment,
|
| 102 |
+
and losses use FP32.
|
| 103 |
+
|
| 104 |
+
<!--
|
| 105 |
+
## Computational Load (internal review only)
|
| 106 |
+
|
| 107 |
+
Remove this entire comment from public source and the published model card.
|
| 108 |
+
|
| 109 |
+
Scope: added compute for the documented MetricTrail adaptation run, including
|
| 110 |
+
fusion warmup and joint fine-tuning. The run uses 16 A100 80GB GPUs for
|
| 111 |
+
approximately 7 hours (112 GPU-hours), processing 240,000 clips of 15 frames at
|
| 112 |
+
480 x 640 with 80 patches per frame and 18 recurrent refinements. Third-party
|
| 113 |
+
DPVO and DINOv3 pretraining, evaluation, and discarded exploratory runs are
|
| 114 |
+
excluded. MoGe-2 is not used during adaptation.
|
| 115 |
+
|
| 116 |
+
**Cumulative Compute (estimated): 1.3 x 10^18 FLOPs.**
|
| 117 |
+
This is an analytical operation estimate, not a hardware-profiler measurement.
|
| 118 |
+
Counting a multiply-add as two FLOPs gives approximately 2.8 x 10^17 FLOPs for
|
| 119 |
+
frozen DINOv3 forward passes, 2.5 x 10^17 for the DPVO convolutional encoders,
|
| 120 |
+
and 6.9 x 10^17 for recurrent-update matrix operations. The encoder/update
|
| 121 |
+
counts approximate forward plus backward as three times forward, with
|
| 122 |
+
adjustments for the frozen warmup. The subtotal is 1.22 x 10^18 FLOPs; the
|
| 123 |
+
reported value includes an approximate allowance for correlation, adapters,
|
| 124 |
+
bundle adjustment, losses, and other operations. Random edge pruning and
|
| 125 |
+
kernel details are not reconstructed. A reasonable sensitivity range is
|
| 126 |
+
0.8 x 10^18 to 2.0 x 10^18 FLOPs, not a validated confidence interval.
|
| 127 |
+
Sources for the operation count: DPVO/dpvo/net.py, DPVO/dpvo/extractor.py,
|
| 128 |
+
DPVO/dpvo/blocks.py, and metrictrail/runtime/dino_fusion.py.
|
| 129 |
+
|
| 130 |
+
**Estimated Energy for Model Training: 50 kWh.**
|
| 131 |
+
An ORD hardware query on 10/20/2026 confirmed NVIDIA A100-SXM4-80GB with
|
| 132 |
+
configured and default power limits of 400 W. Applying this rating to the
|
| 133 |
+
documented training run, the prescribed calculation is
|
| 134 |
+
16 x 0.400 kW x 0.80 x 7 hours x 1.4 PUE = 50.176 kWh.
|
| 135 |
+
The 80% power fraction and PUE of 1.4 are the internal guidance defaults,
|
| 136 |
+
not measured power or a verified ORD facility PUE.
|
| 137 |
+
|
| 138 |
+
**Estimated Emissions for Model Training: 0.021 tCO2e (approximately 21 kgCO2e).**
|
| 139 |
+
50.176 kWh x 410.5 gCO2e/kWh x 0.000001 = 0.020597 tCO2e.
|
| 140 |
+
The emissions factor is the guidance's fallback value; a site-specific
|
| 141 |
+
electricity emissions factor was not available. These are estimates for
|
| 142 |
+
the documented adaptation run, not metered energy or emissions.
|
| 143 |
+
|
| 144 |
+
Methods:
|
| 145 |
+
https://nvidia.sharepoint.com/sites/TrustworthyAI/SitePages/How-to-Assess-Training-Compute.aspx
|
| 146 |
+
https://nvidia.sharepoint.com/:w:/s/TrustworthyAI/Ecb23D6b-kNLv1c6LCdhSiMBjWFz0MKncBaRcryDsfv-vA?e=lIcO9z
|
| 147 |
+
Hardware specifications: https://www.nvidia.com/en-us/data-center/a100/
|
| 148 |
+
-->
|
| 149 |
+
|
| 150 |
+
## Input:
|
| 151 |
+
|
| 152 |
+
**Input Type(s):** A temporally ordered RGB image sequence and camera parameters;
|
| 153 |
+
optionally synchronized left/right image sequences for stereo. A JSON
|
| 154 |
+
configuration selects the data adapter and processing settings.
|
| 155 |
+
|
| 156 |
+
**Input Format(s):** Prepared PNG frames or KITTI NPZ files containing `images`
|
| 157 |
+
as `uint8 [N,3,H,W]`. The repository also supplies Oxford Spires and LaMAria
|
| 158 |
+
inventory adapters. Loaders produce CHW RGB `float32` images in `[0,1]`.
|
| 159 |
+
Arbitrary video containers are not decoded by this CLI. See the
|
| 160 |
+
[input layouts](../README.md#layout-of-external-files) and
|
| 161 |
+
[data adapters](../metrictrail/datasets.py).
|
| 162 |
+
|
| 163 |
+
Optional loop correction consumes a saved local trajectory NPZ, its successful
|
| 164 |
+
JSON sidecar, and an externally generated candidate JSON containing frame pairs
|
| 165 |
+
and scores. The candidate file records the baseline NPZ's SHA256; the candidate
|
| 166 |
+
file's own SHA256 must also be supplied.
|
| 167 |
+
|
| 168 |
+
**Input Parameters:** A configured frame inventory with at least 16 images,
|
| 169 |
+
positive FPS, and image dimensions `(H,W)`. Intrinsics use `[fx,fy,cx,cy]` in
|
| 170 |
+
processed-image pixel coordinates. In calibrated KITTI mode, `intrinsics`, `K`,
|
| 171 |
+
or `input_intrinsics` in the NPZ may be a four-vector, a 3 x 3 matrix, or an
|
| 172 |
+
`[N,4]` array; the last format uses its first row as the shared camera model.
|
| 173 |
+
Supplied-intrinsic adapters also exist for VBR and LaMAria. RGB-only mode
|
| 174 |
+
estimates one shared camera model.
|
| 175 |
+
|
| 176 |
+
Stereo takes a synchronized, rectified right-image PNG inventory and a positive
|
| 177 |
+
`stereo_baseline_m`, with a fixed horizontal rig translation. The public
|
| 178 |
+
configuration does not expose an arbitrary stereo extrinsic matrix. Metric
|
| 179 |
+
camera-Z depth is predicted internally by MoGe-2 ViT-L without a normal head,
|
| 180 |
+
available as `Ruicheng/moge-2-vitl`.
|
| 181 |
+
|
| 182 |
+
**Other Properties Related to Input:**
|
| 183 |
+
|
| 184 |
+
- Training uses 15-frame clips resized while preserving aspect ratio and
|
| 185 |
+
center-cropped to 480 x 640. Inference raster size depends on the protocol;
|
| 186 |
+
the canonical KITTI input is 280 x 504, and the 7Scenes trajectory
|
| 187 |
+
protocol uses 434 x 574. The shipped KITTI and VBR configurations use
|
| 188 |
+
280 x 504; Oxford uses 378 x 518. The 7Scenes evaluation uses a separate
|
| 189 |
+
workflow; this repository does not include a 7Scenes adapter.
|
| 190 |
+
- Images and camera intrinsics must undergo consistent resize and crop
|
| 191 |
+
transforms. Stereo requires synchronization, rectification, and a correct
|
| 192 |
+
horizontal baseline consistent with the processed images.
|
| 193 |
+
- RGB-only calibration estimates intrinsics from a finite prefix, fixes the
|
| 194 |
+
camera model, and replays that prefix before continuing online. Our
|
| 195 |
+
evaluation initializes with the first 32 frames, and robust128
|
| 196 |
+
calibration uses 128 selected keyframes. The repository exposes configurable
|
| 197 |
+
calibration budgets. A shared focal correction is optimized while the
|
| 198 |
+
principal point remains fixed.
|
| 199 |
+
- The implementation's metric-depth validity check requires a valid provider
|
| 200 |
+
mask, finite depth, and camera-Z depth in the inclusive range 0.2-500 m.
|
| 201 |
+
If a full-resolution prediction, its registered stride-4 depth raster, or
|
| 202 |
+
all sampled patch centers contain no valid depth, the sequence terminates
|
| 203 |
+
and the run cannot commit a successful complete trajectory. Failed runs may
|
| 204 |
+
leave cache or older output files; use stage validation to establish success.
|
| 205 |
+
- `max_frames=0` uses the full configured inventory. The default DPVO frame
|
| 206 |
+
buffer has capacity 32,768; buffer exhaustion raises an error. The bounded
|
| 207 |
+
active optimization window does not make sequence duration or total cached
|
| 208 |
+
data unlimited. The shared-intrinsic model assumes consistent camera geometry.
|
| 209 |
+
|
| 210 |
+
## Output:
|
| 211 |
+
|
| 212 |
+
**Output Type(s):** Per-frame camera trajectories, intrinsics, cached frame-level
|
| 213 |
+
metric depth and provider masks, and processing/audit metadata.
|
| 214 |
+
|
| 215 |
+
**Output Format(s):** Trajectory NPZ files with accompanying JSON records.
|
| 216 |
+
The frontend cache stores raw `depth.f32` and `mask.u8` arrays with JSON contract,
|
| 217 |
+
progress, and successful-completion records. It does not export dense point
|
| 218 |
+
clouds, meshes, or sparse patch geometry.
|
| 219 |
+
|
| 220 |
+
**Output Parameters:** `c2w` and inverse `w2c` have shape `[N,4,4]`;
|
| 221 |
+
`intrinsics` has shape `[N,4]`. The trajectory includes `frame_ids`,
|
| 222 |
+
`source_frame_ids`, `input_hw`, and stereo metadata. Poses refer to `cam0`, the
|
| 223 |
+
left camera for stereo. Cached camera-Z depth is FP32 `[N,H,W]`; the raw provider
|
| 224 |
+
mask is `uint8 [N,H,W]`. Consumers must also check finite depth and range;
|
| 225 |
+
the cached mask alone is not the final validity test.
|
| 226 |
+
|
| 227 |
+
KITTI local predictions are written under `output_root/local/inference/`;
|
| 228 |
+
other adapters use `output_root/local/inference/predictions/`. The separate
|
| 229 |
+
loop-correction command writes optional LC predictions under
|
| 230 |
+
`output_root/LC/inference/` and also retains `local_c2w` and the loop-edge count.
|
| 231 |
+
Depth caches are under
|
| 232 |
+
`output_root/frontend-cache/<dataset>/<case>/`.
|
| 233 |
+
|
| 234 |
+
Dense geometry is assembled by back-projecting camera-Z depth with intrinsics
|
| 235 |
+
and transforming it by `c2w`. The CLI outputs the depth and poses needed for
|
| 236 |
+
this operation but does not export dense reconstructions. Metric scale remains
|
| 237 |
+
an estimate. Learned correspondence weights should not be interpreted as
|
| 238 |
+
calibrated pose or depth uncertainty.
|
| 239 |
+
|
| 240 |
+
**Other Properties Related to Output:** Output length follows the processed
|
| 241 |
+
frame inventory. Trajectories use meters for translation and homogeneous
|
| 242 |
+
camera-to-world/world-to-camera matrices; cached depth uses meters along the
|
| 243 |
+
camera Z axis. Depth predictions are valid only where the provider mask is
|
| 244 |
+
valid, values are finite, and depth is in the inclusive range 0.2-500 m.
|
| 245 |
+
The pipeline raises an error for frames with no usable depth priors. Check
|
| 246 |
+
successful-completion records before consuming outputs; failed runs can retain
|
| 247 |
+
intermediate caches or older files. The model does not provide calibrated
|
| 248 |
+
pose/depth uncertainty or a guarantee of geometric correctness.
|
| 249 |
+
|
| 250 |
+
Our AI models are designed and/or optimized to run on NVIDIA GPU-accelerated
|
| 251 |
+
systems. By leveraging NVIDIA's hardware (e.g. GPU cores) and software frameworks
|
| 252 |
+
(e.g., CUDA libraries), the model achieves faster training and inference times
|
| 253 |
+
compared to CPU-only solutions. MetricTrail requires CUDA for the provided
|
| 254 |
+
pipeline; its reported benchmarks do not include a measured CPU comparison.
|
| 255 |
+
|
| 256 |
+
## Software Integration:
|
| 257 |
+
|
| 258 |
+
**Runtime Engine(s):** PyTorch/CUDA. The documented environment is Python 3.10,
|
| 259 |
+
PyTorch 2.5.1 and CUDA 12.4, with xformers for MoGe-2 attention, yacs, OpenCV,
|
| 260 |
+
Pillow, and SciPy. Separately invoked loop correction uses NumPy/SciPy on CPU,
|
| 261 |
+
with no PyTorch/CUDA, PyPose, FAISS or SALAD runtime dependency. The package
|
| 262 |
+
metadata permits broader versions, but those combinations have not been validated.
|
| 263 |
+
No precompiled DPVO CUDA extensions are included. Before tracking, build
|
| 264 |
+
`cuda_corr`, `cuda_ba`, and `lietorch_backends`
|
| 265 |
+
from source in the inference environment, using a compatible C++ compiler,
|
| 266 |
+
the CUDA toolkit including `nvcc`, and Eigen 3.4.0 headers. See
|
| 267 |
+
[environment instructions](../README.md#environment)
|
| 268 |
+
and [package dependencies](../pyproject.toml).
|
| 269 |
+
|
| 270 |
+
**Supported Hardware Microarchitecture Compatibility:**
|
| 271 |
+
|
| 272 |
+
NVIDIA Ampere (A100)
|
| 273 |
+
|
| 274 |
+
A CUDA device is required. Compatibility with other GPUs and a minimum memory
|
| 275 |
+
requirement have not been established.
|
| 276 |
+
|
| 277 |
+
**Supported Operating System(s):** Linux x86_64 is the documented tracking
|
| 278 |
+
environment. DPVO CUDA extensions must be built from source before tracking.
|
| 279 |
+
Validation results for other environments are not documented.
|
| 280 |
+
|
| 281 |
+
Run with `PYTHONNOUSERSITE=1`. The primary command is
|
| 282 |
+
`python -m metrictrail.cli --config <config.json>`; the default device is
|
| 283 |
+
`cuda:0`. `--case`, `--resume`, `--preflight`, and
|
| 284 |
+
`--stop-after {calibration,local}` control selection and stage execution.
|
| 285 |
+
Preflight checks external files and relevant runtime imports; it does not
|
| 286 |
+
validate model quality. See [running instructions](../README.md#running).
|
| 287 |
+
|
| 288 |
+
The main pipeline ends at the local trajectory with `enable_lc: false`.
|
| 289 |
+
Run optional loop correction separately on CPU with
|
| 290 |
+
`python -m metrictrail.lc_cli --config <config.json> --case <case> --candidate-file <candidates.json> --candidate-sha256 <sha256>`.
|
| 291 |
+
MetricTrail consumes the supplied candidate pairs; it does not perform place
|
| 292 |
+
retrieval or launch an external retrieval tool.
|
| 293 |
+
|
| 294 |
+
Validate the implementation, camera model, data preprocessing, output
|
| 295 |
+
conventions, failure handling, and use-case performance before integrating
|
| 296 |
+
the system into a larger application. A measured benchmark memory footprint
|
| 297 |
+
does not by itself establish a supported hardware requirement.
|
| 298 |
+
|
| 299 |
+
The integration of foundation and fine-tuned models into AI systems requires
|
| 300 |
+
additional testing using use-case-specific data to ensure safe and effective
|
| 301 |
+
deployment. Following the V-model methodology, iterative testing and validation
|
| 302 |
+
at both unit and system levels are essential to mitigate risks, meet technical
|
| 303 |
+
and functional requirements, and ensure compliance with safety and ethical
|
| 304 |
+
standards before deployment.
|
| 305 |
+
|
| 306 |
+
## Model Version(s):
|
| 307 |
+
|
| 308 |
+
**MetricTrail 1.0:** The registered research model release. Integrate this version
|
| 309 |
+
by preparing RGB frame inventories and a JSON configuration, obtaining the
|
| 310 |
+
separately distributed MetricTrail checkpoint and compatible upstream weights
|
| 311 |
+
under their respective terms, and invoking
|
| 312 |
+
`python -m metrictrail.cli --config <config.json>`. The caller consumes validated
|
| 313 |
+
trajectory NPZ files, JSON completion records, and optional depth/mask caches,
|
| 314 |
+
and evaluates them for its intended research use.
|
| 315 |
+
|
| 316 |
+
**Checkpoint:** The multi-dataset-adapted DINO-DPVO checkpoint will be released
|
| 317 |
+
separately on Hugging Face. Place it at `ckpt/dino_dpvo_multidataset15k.pth`
|
| 318 |
+
or set `paths.dino_dpvo_checkpoint` to its local path. It is not included in the
|
| 319 |
+
source repository. **Source revision:**
|
| 320 |
+
`7ead0eca3f8a6a1266a21974c8077cc53940ccf5`.
|
| 321 |
+
Checkpoint SHA256:
|
| 322 |
+
`d0aa57e165b159fc84bdb9d94918ad9b508c153acfb4c46f5058ab80421fb5f5`.
|
| 323 |
+
The checkpoint records format version 1 and training phase `joint`.
|
| 324 |
+
The Python package version `0.1.0` is a separate software version.
|
| 325 |
+
|
| 326 |
+
The frozen DINOv3 backbone is excluded from the DINO-DPVO checkpoint and must be
|
| 327 |
+
obtained separately as `dinov3_vits16_pretrain_lvd1689m-08c60483.pth`.
|
| 328 |
+
Its validated SHA256 is
|
| 329 |
+
`08c60483bc63c04f533611e34bf70b120eedb7240f469bc16e9e20bf344b941d`.
|
| 330 |
+
MoGe-2 and optional calibration and RoMa dependencies are also separate
|
| 331 |
+
downloads; see the [external-file layout](../README.md#layout-of-external-files).
|
| 332 |
+
Optional loop-retrieval tools are obtained and run independently to generate
|
| 333 |
+
the candidate files consumed by the loop-correction command.
|
| 334 |
+
|
| 335 |
+
The released configuration supports monocular/stereo tracking and optional
|
| 336 |
+
revisit focal refinement. Core configs disable loop closure. The separate
|
| 337 |
+
postprocessor uses externally supplied identity-edge candidates, with
|
| 338 |
+
VBR-specific residual scales and default scales for other datasets.
|
| 339 |
+
The new postprocessor has not been benchmark-validated.
|
| 340 |
+
Native DPVO loops and global BA are rejected by the configuration
|
| 341 |
+
schema. Focal refinement performs one coarse matching attempt, keeps the stage-A
|
| 342 |
+
focal if refused, and reruns tracking after an accepted correction. Other
|
| 343 |
+
global-BA/refinement variants evaluated below are not exposed by this CLI.
|
| 344 |
+
|
| 345 |
+
## Training, Testing, and Evaluation Datasets:
|
| 346 |
+
|
| 347 |
+
### Training Dataset:
|
| 348 |
+
|
| 349 |
+
#### Data Modality:
|
| 350 |
+
|
| 351 |
+
- Video
|
| 352 |
+
- Other: Camera-pose and induced patch-motion supervision
|
| 353 |
+
|
| 354 |
+
#### Training Data Size:
|
| 355 |
+
|
| 356 |
+
**Video Training Data Size:** Less than 10,000 hours of unique MetricTrail
|
| 357 |
+
fine-tuning video. This excludes repeated sampling
|
| 358 |
+
and the inherited pretraining of DPVO, DINOv3, MoGe-2, and optional components.
|
| 359 |
+
|
| 360 |
+
Training, including warmup, uses the following sampled clip exposures.
|
| 361 |
+
The table counts clip exposures; unique sequence and image counts and full
|
| 362 |
+
upstream dataset sizes are not shown. Each clip contains 15 frames.
|
| 363 |
+
|
| 364 |
+
| Dataset | Sampled clip exposures | Source content |
|
| 365 |
+
| --- | ---: | --- |
|
| 366 |
+
| TartanAir | 56,000 | Synthetic simulated environments |
|
| 367 |
+
| TartanGround | 46,000 | Synthetic ground-robot environments |
|
| 368 |
+
| CarlaOcc | 46,000 | Synthetic driving scenes |
|
| 369 |
+
| LightwheelOcc | 46,000 | Synthetic driving scenes |
|
| 370 |
+
| OmniWorld-Game | 46,000 | Game-scene video; only the Game subset |
|
| 371 |
+
| Total | 240,000 | Five project-specific training sources |
|
| 372 |
+
|
| 373 |
+
**Camera-Pose Supervision Data Size:** 240,000 clips with 15 camera poses per
|
| 374 |
+
clip, totaling 3,600,000 frame-level pose exposures.
|
| 375 |
+
|
| 376 |
+
**Induced Patch-Motion Supervision Data Size:** The same 240,000 clips, with
|
| 377 |
+
80 sampled source patches per frame (1,200 per clip), totaling 288,000,000
|
| 378 |
+
sampled patch exposures. Motion targets are derived from camera poses, depths,
|
| 379 |
+
and intrinsics.
|
| 380 |
+
|
| 381 |
+
These are sampled training exposures, including warmup and joint fine-tuning,
|
| 382 |
+
not unique annotations. Patch exposures count sampled source patches; valid
|
| 383 |
+
patch-to-frame motion targets and recurrent reuse are not counted separately.
|
| 384 |
+
|
| 385 |
+
**Data Collection Method by dataset:** Synthetic. Existing datasets: simulation
|
| 386 |
+
for TartanAir, TartanGround, CarlaOcc, and LightwheelOcc; game capture for
|
| 387 |
+
OmniWorld-Game.
|
| 388 |
+
|
| 389 |
+
**Labeling Method by dataset:** Synthetic. The local estimator uses the original DPVO
|
| 390 |
+
pose and induced patch-motion supervision. Simulation/game-derived geometry
|
| 391 |
+
and camera metadata supply the supervision. The per-source annotation manifests
|
| 392 |
+
have not been verified.
|
| 393 |
+
|
| 394 |
+
Images are resized with preserved aspect ratio and center-cropped to
|
| 395 |
+
480 x 640. No training clip exceeds 15 frames, and no evaluation sequence
|
| 396 |
+
or dedicated long-trajectory pose corpus is used. A fine-tuning validation
|
| 397 |
+
split, exact downloaded revisions, acquisition dates, unique example count,
|
| 398 |
+
and complete sample-level provenance are not documented.
|
| 399 |
+
|
| 400 |
+
The initialized DPVO checkpoint and frozen DINOv3 and MoGe-2 components
|
| 401 |
+
carry additional upstream pretraining history. DINOv3-S/16 was
|
| 402 |
+
pretrained on LVD-1689M. The five-source fine-tuning list does not describe
|
| 403 |
+
all data used to train these upstream components.
|
| 404 |
+
|
| 405 |
+
**Other Dataset Properties:** Fine-tuning uses synthetic simulation/game scenes,
|
| 406 |
+
RGB video, camera poses, and induced patch-motion supervision. Dataset content
|
| 407 |
+
and assets retain their providers' terms. The fine-tuning data contain no real
|
| 408 |
+
personal information and satisfy applicable privacy requirements and
|
| 409 |
+
dataset-review conditions. This applies to the five fine-tuning datasets;
|
| 410 |
+
the personal-data content of externally pretrained components is not specified.
|
| 411 |
+
A sample-level provenance inventory is not included.
|
| 412 |
+
Linguistic characteristics are Not Applicable to the geometric training task:
|
| 413 |
+
no text prompt, natural-language output, or language-specific evaluation is used.
|
| 414 |
+
|
| 415 |
+
### Testing Dataset:
|
| 416 |
+
|
| 417 |
+
We evaluate MetricTrail on the following existing captured benchmarks. Testing
|
| 418 |
+
and quantitative evaluation refer to these benchmark protocols; a separate
|
| 419 |
+
project-specific held-out test partition is not specified.
|
| 420 |
+
|
| 421 |
+
| Benchmark | Reported coverage and input | Task |
|
| 422 |
+
| --- | --- | --- |
|
| 423 |
+
| KITTI Odometry | Sequences 00-10, all frames; monocular or calibrated stereo | Long-sequence trajectories |
|
| 424 |
+
| Oxford Spires | Ten sequences, 38,380 frames, stride 1 | Trajectories and dense reconstruction |
|
| 425 |
+
| VBR | All seven sequences, stride 1; 8,815-18,846 frames per sequence, routes up to 5.20 km | Long-sequence trajectories |
|
| 426 |
+
| 7Scenes | Dense-reconstruction protocol; additional trajectory evaluation on 18 official test sequences at stride 5 | Indoor geometry and trajectories |
|
| 427 |
+
| TUM-Dynamic | Captured sequences with dynamic content; complete sequence/frame counts are not specified in the main protocol | Dense reconstruction |
|
| 428 |
+
| KITTI video depth | 13 videos, 1,269 frames | Frame-level depth |
|
| 429 |
+
| TUM RGB-D | All nine Freiburg1 sequences, 8,694 associated frames, stride 1 | Trajectories |
|
| 430 |
+
| LaMAria | Five full sequences: R_01, R_04, R_06, R_07, R_08; monocular grayscale, no dataset-specific fine-tuning | Out-of-domain trajectories |
|
| 431 |
+
| Wild-SLAM MoCap | All ten dynamic sequences, 9,039 associated RGB frames, stride 1 | Trajectories with dynamic content |
|
| 432 |
+
|
| 433 |
+
**Data Collection Method by dataset:** Automatic/Sensors. Existing captured
|
| 434 |
+
camera/sensor datasets.
|
| 435 |
+
|
| 436 |
+
**Labeling Method by dataset:** Hybrid: Automatic/Sensors, Automated.
|
| 437 |
+
Benchmark-provided reference trajectories,
|
| 438 |
+
geometry/depth, and calibration are used for comparison as applicable.
|
| 439 |
+
|
| 440 |
+
**Other Dataset Properties:** These are captured RGB or grayscale camera
|
| 441 |
+
sequences, with benchmark-specific depth, calibration, and reference trajectories.
|
| 442 |
+
The coverage and available frame counts are listed above.
|
| 443 |
+
Indoor, outdoor, driving, handheld, and dynamic scenes may
|
| 444 |
+
include identifiable people, private interiors, readable text, or locations.
|
| 445 |
+
Benchmark footage retains its providers' terms. Linguistic characteristics are
|
| 446 |
+
Not Applicable to the evaluated geometric tasks; incidental text in frames is
|
| 447 |
+
not a language input or a language-performance benchmark.
|
| 448 |
+
|
| 449 |
+
Additional in-the-wild reconstructions are qualitative examples and do not
|
| 450 |
+
constitute a quantified, representative deployment test set.
|
| 451 |
+
|
| 452 |
+
### Evaluation Dataset:
|
| 453 |
+
|
| 454 |
+
The results below use research evaluation workflows. The repository provides
|
| 455 |
+
prediction generation but does not include benchmark evaluation scripts.
|
| 456 |
+
Its shipped configuration does not expose the indoor global-BA/refinement
|
| 457 |
+
variants or dense export workflow used in these evaluations.
|
| 458 |
+
|
| 459 |
+
Trajectory accuracy is full-sequence absolute trajectory error (ATE), measured
|
| 460 |
+
as RMSE after a single proper Sim(3) alignment per sequence. Main long-sequence
|
| 461 |
+
results use meters; additional indoor/dynamic trajectory results use centimeters.
|
| 462 |
+
Dataset averages give sequence-level results equal weight in the reported
|
| 463 |
+
additional protocols. LC denotes the original SALAD/PyPose loop-closure workflow
|
| 464 |
+
used in our evaluations. These results do not establish numerical or benchmark
|
| 465 |
+
equivalence for the new external-candidate NumPy/SciPy postprocessor. See
|
| 466 |
+
[the loop-correction workflow](../docs/loop-closure.md).
|
| 467 |
+
|
| 468 |
+
| Benchmark / configuration | Average ATE |
|
| 469 |
+
| --- | ---: |
|
| 470 |
+
| KITTI Odometry, RGB-only calibration, without LC | 14.05 m |
|
| 471 |
+
| KITTI Odometry, RGB-only calibration, with LC | 9.78 m |
|
| 472 |
+
| KITTI Odometry, supplied intrinsics, with LC | 7.39 m |
|
| 473 |
+
| KITTI Odometry, calibrated stereo, with LC | 3.00 m |
|
| 474 |
+
| Oxford Spires, RGB-only calibration, without / with LC | 1.77 / 1.77 m |
|
| 475 |
+
| VBR, RGB-only calibration with revisit focal refinement, without / with LC | 16.36 / 10.88 m |
|
| 476 |
+
| 7Scenes, RGB-only calibration, local / with global BA | 6.7 / 6.3 cm |
|
| 477 |
+
| TUM RGB-D, RGB-only calibration, local / global BA / global BA plus refinement | 8.4 / 4.9 / 4.4 cm |
|
| 478 |
+
| TUM RGB-D, supplied intrinsics, local / global BA / global BA plus refinement | 7.5 / 4.1 / 3.7 cm |
|
| 479 |
+
| LaMAria, RGB-only calibration / supplied intrinsics | 8.73 / 8.58 m |
|
| 480 |
+
| Wild-SLAM MoCap, RGB-only calibration / supplied intrinsics | 2.70 / 1.65 cm |
|
| 481 |
+
|
| 482 |
+
VBR aggregate results include an optional **retrospective** revisit-based focal
|
| 483 |
+
refinement. Under matched settings, this improves base-calibration ATE from
|
| 484 |
+
33.51 to 16.36 m without LC and from 27.95 to 10.88 m with LC. Refinement
|
| 485 |
+
averages 7.1 minutes per routed sequence, dominated by RGB correspondence
|
| 486 |
+
matching. These results should not be described as end-to-end online results
|
| 487 |
+
at the KITTI steady-state throughput.
|
| 488 |
+
|
| 489 |
+
Dense reconstruction uses RGB-estimated intrinsics without LC. Results are
|
| 490 |
+
evaluated after sequence-level Sim(3) alignment followed by point-to-point ICP.
|
| 491 |
+
CD is symmetric Chamfer distance; F1 is measured at the indicated distance
|
| 492 |
+
threshold.
|
| 493 |
+
|
| 494 |
+
| Benchmark | CD (m, lower is better) | F1 (%, higher is better) | Threshold |
|
| 495 |
+
| --- | ---: | ---: | --- |
|
| 496 |
+
| 7Scenes | 0.04 | 97.60 | 0.25 m |
|
| 497 |
+
| TUM-Dynamic | 0.13 | 89.58 | 0.25 m |
|
| 498 |
+
| Oxford Spires | 0.98 | 95.12 | 4 m |
|
| 499 |
+
|
| 500 |
+
KITTI video-depth evaluation fits one multiplicative scale per video without
|
| 501 |
+
a shift. Abs Rel is **0.057** and delta-1 accuracy
|
| 502 |
+
(depth-ratio error below 1.25) is **97.8%**. Dense depth comes from the frozen
|
| 503 |
+
frame-level provider; it is not a densely optimized output of local BA.
|
| 504 |
+
|
| 505 |
+
**Data Collection Method by dataset:** Automatic/Sensors. The captured benchmarks
|
| 506 |
+
described under
|
| 507 |
+
[Testing Dataset](#testing-dataset).
|
| 508 |
+
|
| 509 |
+
**Labeling Method by dataset:** Hybrid: Automatic/Sensors, Automated.
|
| 510 |
+
Reference-trajectory, geometry, and depth
|
| 511 |
+
comparison under the alignment protocols above. Sim(3), ICP, and depth-scale
|
| 512 |
+
alignment measure agreement after alignment; these scores do not establish
|
| 513 |
+
unaligned metric-scale accuracy, calibrated uncertainty, demographic parity,
|
| 514 |
+
or safe downstream control.
|
| 515 |
+
|
| 516 |
+
**Other Dataset Properties:** Quantitative evaluation uses the same benchmark
|
| 517 |
+
coverage, data counts, modalities, scene content, and sensor-derived references
|
| 518 |
+
listed under [Testing Dataset](#testing-dataset). The separate tasks are
|
| 519 |
+
trajectory estimation, dense reconstruction, and frame-level depth, under the
|
| 520 |
+
alignment protocols above. Exact TUM-Dynamic counts and the dense-reconstruction
|
| 521 |
+
7Scenes frame inventory are not documented; the 18-sequence
|
| 522 |
+
7Scenes count refers to the additional trajectory protocol. No separate
|
| 523 |
+
evaluation dataset with language inputs is used, so linguistic characteristics
|
| 524 |
+
are Not Applicable. Captured footage may contain personal or identifying scene
|
| 525 |
+
information and retains its providers' terms.
|
| 526 |
+
|
| 527 |
+
### Inference:
|
| 528 |
+
|
| 529 |
+
**Acceleration Engine:** PyTorch/CUDA with DPVO CUDA extensions and xformers
|
| 530 |
+
attention for MoGe-2. The default configuration enables FP16 for MoGe-2 and a
|
| 531 |
+
depth-overlap queue of four. DINOv3 feature extraction uses BF16; the trained
|
| 532 |
+
checkpoint stores FP32 tensors. No TensorRT or Triton export is provided.
|
| 533 |
+
|
| 534 |
+
**Test Hardware:** NVIDIA Ampere A100. The inference GPU's memory capacity and a
|
| 535 |
+
minimum supported hardware configuration are not specified.
|
| 536 |
+
|
| 537 |
+
The following measurements use KITTI-02. Latency means
|
| 538 |
+
time to first output; throughput means steady-state processing; memory means
|
| 539 |
+
peak allocated GPU memory.
|
| 540 |
+
|
| 541 |
+
| Configuration | First-output latency | Steady-state throughput | Peak GPU memory |
|
| 542 |
+
| --- | ---: | ---: | ---: |
|
| 543 |
+
| Supplied intrinsics | Approximately 0.7 s | 12.70 FPS | 3.21 GB |
|
| 544 |
+
| RGB-only calibration | Approximately 175 s | 12.70 FPS | 6.81 GB |
|
| 545 |
+
|
| 546 |
+
RGB-only startup includes initial MoGe-2 camera prediction, geometric
|
| 547 |
+
calibration, and prefix replay. Memory subsequently drops to 3.21 GB.
|
| 548 |
+
These measurements are specific to the reported KITTI configuration and do
|
| 549 |
+
not include a general latency guarantee for optional retrospective refinement.
|
| 550 |
+
|
| 551 |
+
Known limitations include dependence on depth-provider accuracy, degraded
|
| 552 |
+
sparse correspondence under low parallax, rapid rotation, rolling shutter,
|
| 553 |
+
and motion blur, and sensitivity to the shared camera model. Dynamic-scene
|
| 554 |
+
reconstruction improvements are not uniform: the TUM-Dynamic scores trail
|
| 555 |
+
leading evaluated methods. MetricTrail uses no explicit
|
| 556 |
+
dynamic-object mask or dynamics-specific objective. Optional retrieved loop
|
| 557 |
+
edges assume near-duplicate views are approximately coincident without
|
| 558 |
+
pairwise geometric verification; incorrect matches can affect the trajectory.
|
| 559 |
+
|
| 560 |
+
## Ethical Considerations:
|
| 561 |
+
|
| 562 |
+
NVIDIA believes Trustworthy AI is a shared responsibility and we have established
|
| 563 |
+
policies and practices to enable development for a wide array of AI applications.
|
| 564 |
+
Developers should work with their internal model team to ensure this model meets
|
| 565 |
+
requirements for the relevant industry and use case and addresses unforeseen
|
| 566 |
+
product misuse.
|
| 567 |
+
|
| 568 |
+
Please make sure you have proper rights and permissions for all input image and
|
| 569 |
+
video content; if image or video includes people, personal health information,
|
| 570 |
+
or intellectual property, the image or video generated will not blur or maintain
|
| 571 |
+
proportions of image subjects included.
|
| 572 |
+
|
| 573 |
+
Please report model quality, risk, security vulnerabilities or NVIDIA AI Concerns
|
| 574 |
+
[here](https://www.nvidia.com/en-us/support/submit-security-vulnerability/).
|
| 575 |
+
|