MoGe
Microsoft's MoGe: depth, 3D points, normals and focal length from one image. Commercially usable.
Commercial use: yes.
| variant | input | backend | time (ms) | peak memory (MiB, allocated / reserved) |
|---|---|---|---|---|
moge-2-vits-normal | Middlebury 2014 half (994x1482) | original (fp32) original portable kernels portable + torch.compile TensorRT fp16 | 162 82.6 64.2 29.7 43.9 24.5 | 1491 / 1628 1193 / 1268 1066 / 1336 884 / 1008 836 / 992 620 (engine) |
moge-2-vitl-normal | Middlebury 2014 half (994x1482) | original (fp32) original portable kernels | 501 171 144 73.4 | 2646 / 2818 2339 / 2438 1661 / 1836 1498 / 1610 |
moge-3-vitl | Middlebury 2014 half (994x1482) | original (fp32) original portable kernels | 843 486 514 215 | 2812 / 2990 2505 / 2630 1686 / 1924 1673 / 1884 |
Details
- Original code: https://github.com/microsoft/MoGe at
74fbce0 - Code licence: MIT (permissive); files:
LICENSE - Weights licence: MIT
- Licence evidence: https://github.com/microsoft/MoGe/blob/main/README.md (License section) and the Hugging Face model cards (license: mit)
- Training data: Mixture of public synthetic and real RGB-D / multi-view datasets per the MoGe-2 and MoGe-3 papers
- Options:
resolution_level= 9 (0 to 9),normals= False - Kernel libraries:
fastbb,dpt_fused,sparse_conv - Variants:
moge-2-vits-normal,moge-2-vitl-normal,moge-3-vitl - Outputs: depth, points, intrinsics, mask, normals; kind:
metric - Input size: any H x W >= 8, resized or padded inside the model (ViT patch 14)
- Tested up to (portable, fp16, RTX 5060 Ti 16 GB):
moge-2-vits-normal3000x4000 (1.2 GiB peak allocated, 1.4 reserved);moge-2-vitl-normal3000x4000 (2.4 GiB peak allocated, 2.5 reserved);moge-3-vitl3000x4000 (2.6 GiB peak allocated, 3.0 reserved) moge-2-vits-normal994x1482, first call: portable + torch.compile 124 s (cold Inductor cache), TensorRT fp16 131 s (ONNX + engine).moge-2-vits-normalload / first call: original 0.88 s / 1.501 s, portable 0.35 s / 0.084 s, kernels 0.11† s / 0.099 smoge-2-vitl-normalload / first call: original 7.24 s / 0.171 s, portable 1.37 s / 0.144 s, kernels 0.63† s / 0.131 smoge-3-vitlload / first call: original 10.6 s / 2.918 s, portable 1.02 s / 0.562 s, kernels 1.66 s / 0.301 s- † measured in the speed sweep after the portable load (or an earlier size) in the same process: file cache and kernels are warm, so the time is lower than a fresh start.
- Protocol,
moge-2-vits-normal,moge-2-vitl-normal: median of 5 after 3 warm-up, uint8 CUDA input (synthetic for bench_inputs sizes), card defaults; gc before each load; peak = max over the first call and the timed calls - Protocol,
moge-3-vitl: first call, 3 warm-up, peak reset, median of 3 rounds x median of 5
Measured
AbsRel / delta1 after a least-squares scale + shift fit (in disparity space for inverse-depth models), mean over images. Original = the original code named under Details, same checkpoint and protocol.
| variant | dataset | original fp32 | original fp16 | portable | kernels | note |
|---|---|---|---|---|---|---|
moge-2-vits-normal | NYUv2 test, AbsRel / delta1 | 0.0484 / 0.9757 | 0.0484 / 0.9757 | 0.0484 / 0.9757 | 0.0484 / 0.9757 | |
moge-2-vits-normal | iBims-1, AbsRel / delta1 | 0.0430 / 0.9793 | 0.0430 / 0.9793 | 0.0430 / 0.9793 | 0.0430 / 0.9793 | |
moge-2-vits-normal | ETH3D two-view train left, AbsRel / delta1 | 0.0700 / 0.9412 | 0.0700 / 0.9411 | 0.0700 / 0.9411 | 0.0701 / 0.9412 | possibly in the training data |
moge-2-vits-normal | Middlebury 2014 trainingH left, AbsRel / delta1 | 0.0356 / 0.9947 | 0.0356 / 0.9947 | 0.0356 / 0.9947 | 0.0356 / 0.9947 | possibly in the training data |
moge-2-vitl-normal | NYUv2 test, AbsRel / delta1 | 0.0357 / 0.9836 | 0.0357 / 0.9836 | 0.0357 / 0.9836 | 0.0357 / 0.9836 | |
moge-2-vitl-normal | iBims-1, AbsRel / delta1 | 0.0261 / 0.9892 | 0.0261 / 0.9892 | 0.0261 / 0.9892 | 0.0261 / 0.9892 | |
moge-2-vitl-normal | ETH3D two-view train left, AbsRel / delta1 | 0.0518 / 0.9789 | 0.0518 / 0.9789 | 0.0519 / 0.9789 | 0.0518 / 0.9790 | possibly in the training data |
moge-2-vitl-normal | Middlebury 2014 trainingH left, AbsRel / delta1 | 0.0235 / 0.9972 | 0.0235 / 0.9972 | 0.0235 / 0.9972 | 0.0235 / 0.9972 | possibly in the training data |
moge-3-vitl | NYUv2 test, AbsRel / delta1 | 0.0356 / 0.9836 | 0.0356 / 0.9836 | |||
moge-3-vitl | iBims-1, AbsRel / delta1 | 0.0261 / 0.9884 | 0.0261 / 0.9883 | |||
moge-3-vitl | ETH3D two-view train left, AbsRel / delta1 | 0.0496 / 0.9847 | 0.0496 / 0.9847 | possibly in the training data | ||
moge-3-vitl | Middlebury 2014 trainingH left, AbsRel / delta1 | 0.0235 / 0.9970 | 0.0235 / 0.9970 | possibly in the training data |
Measured on NVIDIA GeForce RTX 5060 Ti, torch 2.14.1+cu130, fastforks 939adfe8, 2026-11-06.
Parity
CPU, float32: max |diff| <= 0.005 vs the original. GPU, float16 (the default), portable and kernels: mean |diff| <= 1.5 % and p99 <= 1.5 % of the reference's median |value| (absolute error of the output depth).
| variant | kernels error vs original, mean / p99 | GPU, torch | kernels used |
|---|---|---|---|
moge-2-vits-normal | 0.00116 / 0.0013 | RTX 5060 Ti, torch 2.14.1+cu130 | dpt_fused@48e0065bb7cf:sm_120, fastbb@7d058322634d:sm_120, sparse_conv@2feb2d5e0877:sm_120 |
moge-2-vitl-normal | 0.00382 / 0.00394 | RTX 5060 Ti, torch 2.14.1+cu130 | dpt_fused@48e0065bb7cf:sm_120, fastbb@7d058322634d:sm_120, sparse_conv@2feb2d5e0877:sm_120 |
moge-3-vitl | 0.00421 / 0.0049 | RTX 5060 Ti, torch 2.14.1+cu130 | dpt_fused@48e0065bb7cf:sm_120, fastbb@7d058322634d:sm_120, sparse_conv@2feb2d5e0877:sm_120 |