File size: 4,297 Bytes
aeddd9e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | ---
license: other
license_name: dinov3-license
license_link: https://ai.meta.com/resources/models-and-libraries/dinov3-license/
tags:
- depth-estimation
- semantic-segmentation
- onnx
- robotics
- ros2
- jetson
- dinov3
library_name: onnx
pipeline_tag: depth-estimation
---
# M2H-MX ONNX weights β monocular depth + semantics
Exported ONNX weights for the two **M2H-MX** networks used by
[`vio_stack_jetson`](https://github.com/BavanthaU/vio_stack_jetson), a monocular
VIO stack running on a Jetson Orin with a ZED X One GS camera.
Both networks take a single RGB frame and produce **metric depth** and
**per-pixel semantic labels** in one pass. Both publish the same two ROS 2
topics, so they are swappable at runtime:
```
/m2h/depth/image 32FC1 metric depth
/m2h/semantic/labels_argmax mono8 class IDs
```
**Built with DINOv3.**
## Files
The layout mirrors the ROS packages that consume these files, so a manifest line
maps to a path with no translation:
| File | Size | Notes |
|---|---|---|
| `m2h_mx_base_onnx_ros/models/scannet/m2h_mx_b_scannet_240x320.onnx` | 421 MB | base network, default |
| `m2h_mx_base_onnx_ros/models/scannet/m2h_mx_b_scannet_480x640.onnx` | 422 MB | base network, full res |
| `m2h_mx_base_onnx_ros/models/nyudv2/m2h_mx_b_nyudv2_240x320.onnx` | 494 MB | NYUDv2-trained variant |
| `m2h_mx_base_onnx_ros/models/nyudv2/m2h_mx_b_nyudv2_480x640.onnx` | 496 MB | NYUDv2-trained variant |
| `m2h_mx_large_onnx/onnx_models/scannet_depth_sem_192x256_trt_clean.onnx` | 1.26 GB | large network, default |
| `m2h_mx_large_onnx/onnx_models/scannet_depth_sem_320x416.onnx` | 1.26 GB | large network, higher res |
`MANIFEST.sha256` in each package directory lists the expected SHA256 of every
file. Verify after downloading β a network running on the wrong weights produces
plausible-looking depth rather than an error, which is much harder to notice than
a refusal to start.
## Usage
```bash
git clone https://github.com/BavanthaU/vio_stack_jetson
cd vio_stack_jetson
./tools/fetch_weights.sh # pulls these files and verifies every sum
```
Or directly:
```python
from huggingface_hub import snapshot_download
snapshot_download(repo_id="Bavantha11/vio-stack-jetson-weights", repo_type="model")
```
## Measured on the rig
Jetson Orin, JetPack r36.5, ONNX Runtime with the TensorRT execution provider:
| Network | Resolution | Latency | Rate |
|---|---|---|---|
| base | 240x320 | ~130 ms/frame | ~6.9 Hz |
| large | 192x256 | ~155 ms/frame | β |
The first run at any resolution builds a TensorRT engine β minutes, once, cached
per machine. The engines are **not** portable across machines or driver versions
and are deliberately not published here.
Depth is not fed back into the VIO filter by default; it runs alongside it.
## Architecture
- **Backbone:** DINOv3 ViT-B/16 (`dinov3-vitb16-pretrain-lvd1689m`)
- **Heads:** two β semantic segmentation (40 classes) and metric depth
- **Opset:** 17, static shapes
- **Training data:** ScanNet, NYUDv2
## Licensing β read before use
These weights combine inputs with different terms. The most restrictive one
governs the result.
**DINOv3 backbone** β [DINOv3 License](https://ai.meta.com/resources/models-and-libraries/dinov3-license/),
included here as `DINOv3_LICENSE.md`. It permits commercial use, modification and
redistribution of derivative works, and asks in return that redistributions carry
a copy of the licence and display "Built with DINOv3". Both are satisfied above.
**ScanNet** β [Terms of Use](http://kaldir.vc.in.tum.de/scannet/ScanNet_TOS.pdf).
**Non-commercial research and educational use only**, and those terms extend to
derivative works.
**NYUDv2** β research use.
**Therefore these weights are for non-commercial research and educational use
only.** ScanNet is the binding constraint; DINOv3 permitting commercial use does
not lift it. Anyone needing a commercial deployment must retrain on commercially
licensed data β the ROS packages and the export pipeline are MIT and unaffected.
The MIT licence on the `m2h_mx_*` ROS packages covers the **wrapper code only**,
not these weights.
## Citation
If you use these in published work, please acknowledge DINOv3 and cite the
ScanNet and NYUDv2 datasets as their terms require.
|