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