MoGe-2
MoGe-2 è un modello di geometria monoculare a singolo forward che predice un campo denso di normali di superficie a partire da una sola immagine RGB. LibreYOLO lo supporta solo per la stima delle normali, attraverso i checkpoint ufficiali ViT-S, ViT-B e ViT-L.
- Task
- normal
- Dimensioni
- s, b, l at 518 px
- Installa
pip install libreyolo- Livello di supporto
- Solo inferenza, dalla v. Solo predizione, validazione ed esportazione. Le funzionalità di addestramento non si applicano.
- Licenze
- Codice MIT, pesi MIT. Uso commerciale
Installazione
MoGe-2 non richiede nessun extra opzionale. Tutto ciò che importa è già nell'installazione base.
pip install libreyoloPredizione
I pesi vengono scaricati automaticamente al primo utilizzo: LibreYOLO preleva la dimensione corrispondente direttamente dai checkpoint ufficiali e la mette in cache in locale.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreMoGe2s-normal.pt")result = model(SAMPLE_IMAGE, save=True) normal = result.normal_mapprint(normal.array.shape) # vettori unitari (H, W, 3) float32libreyolo predict model=LibreMoGe2s-normal.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueMoGe-2 restituisce un campo denso invece di un insieme di rilevamenti, quindi
result.boxes è vuoto e conf, iou e max_det non hanno alcun effetto.
Il risultato sta in result.normal_map: un array (H, W, 3) di vettori unitari
nel sistema di riferimento della camera OpenCV, dove +x va a destra, +y va
verso il basso, +z entra nella scena, e una superficie rivolta verso la camera
vale (0, 0, -1). Predire una lista di immagini esegue un forward pass per
immagine; questa famiglia non ha un percorso rapido a batch impilato. Vedi
predizione per sorgenti, streaming e gestione dei risultati.
Varianti
Tre dimensioni di encoder sono distribuite come checkpoint separati: ViT-S, ViT-B e ViT-L, tutte alla stessa risoluzione di input. Il banco di benchmark di LibreYOLO non ha misurato questa famiglia, quindi non ci sono numeri di accuratezza pubblicati per confrontarle; scegli una dimensione in base al tuo budget di calcolo.
Validazione
val() misura l'errore angolare rispetto a un dataset appaiato di mappe di
normali: immagini affiancate a PNG di normali a 16 bit con lo stesso nome, più
una maschera di validità opzionale, così i pixel di padding e quelli non validi
non vengono mai conteggiati. Restituisce l'errore angolare medio e mediano in
gradi, più la percentuale di pixel entro 11.25, 22.5 e 30 gradi.
from libreyolo import LibreYOLO model = LibreYOLO("LibreMoGe2s-normal.pt")metrics = model.val(data="my-dataset.yaml", imgsz=518) print(metrics["metrics/mean_angular_error"]) # gradiprint(metrics["metrics/median_angular_error"])print(metrics["metrics/within_11_25"]) # percentuale di pixellibreyolo val model=LibreMoGe2s-normal.pt data=my-dataset.yaml imgsz=518Esportazione
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| normal | normal to ONNX: supportato | normal to TorchScript: supportato | normal to ExecuTorch: supportato | normal to TensorRT: supportato | normal to OpenVINO: supportato | normal to Paddle: non supportato | normal to MNN: non supportato | normal to RKNN: non supportato | normal to ncnn: supportato | normal to TFLite: non supportato | normal to CoreML: non supportato | normal to Core AI: non supportato |
L'esportazione delle normali usa un contratto di runtime a risoluzione fissa e
batch 1: dynamic e un batch diverso da 1 vengono rifiutati, e imgsz deve
essere divisibile per la dimensione delle patch dell'encoder ViT, cosa che
LibreYOLO verifica prima che l'esecuzione inizi. Un artefatto esportato si
ricarica con LibreYOLO() in base al suffisso del file, quindi un file .onnx
si comporta come un checkpoint e restituisce lo stesso Results.
from libreyolo import LibreYOLO model = LibreYOLO("LibreMoGe2s-normal.pt")model.export(format="onnx", imgsz=518)model.export(format="tensorrt", imgsz=518, half=True)libreyolo export model=LibreMoGe2s-normal.pt format=onnx imgsz=518libreyolo export model=LibreMoGe2s-normal.pt format=tensorrt imgsz=518 half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreMoGe2s-normal.onnx")result = model(SAMPLE_IMAGE) print(result.normal_map.array.shape)Licenze
Controlla la licenza nel repository Hugging Face degli specifici pesi che scarichi. Ogni checkpoint nell<link>organizzazione LibreYOLO</link> ne include una e non è sempre la stessa per tutta la famiglia. Quel repository è la fonte autorevole; il riepilogo seguente descrive le condizioni applicabili al momento dellultima verifica di questa pagina.
Questa è una descrizione delle licenze coinvolte, non una consulenza legale. Se la risposta è importante a fini commerciali, leggi personalmente le licenze e chiedi una consulenza indipendente.
- Lavoro originale
- MoGe-2, Microsoft
- Licenza upstream
- MIT
- Sorgente upstream
- github.com/microsoft/MoGe
- Codice LibreYOLO
- MIT
- Pesi
- MIT, distribuiti dai rispettivi autori. LibreYOLO non li ospita né ne mantiene una copia.
- Interpretazione
- MIT is a permissive license: the code and the official ViT-S, ViT-B and ViT-L checkpoints can be used in commercial and closed-source products. It asks that you keep the license text and copyright notice with any copy you redistribute, and it places no obligation on your own application code. LibreYOLO downloads these checkpoints directly from the official Hugging Face repositories at a pinned revision rather than copying them into its own organization, and verifies each file against a recorded SHA-256 checksum before use. The DINOv2 encoder MoGe-2 builds on is separately licensed Apache-2.0 by Meta AI; LibreYOLO reuses the DINOv2 implementation already bundled for its Depth Anything V2 family rather than copying it again here.
LibreYOLO non copia questi checkpoint nella propria organizzazione.
LibreYOLO("LibreMoGe2s-normal.pt") scarica la dimensione corrispondente
direttamente dai repository ufficiali su Hugging Face a una revisione fissata, e
verifica il file rispetto a un checksum SHA-256 registrato prima dell'uso.
Citazione
@inproceedings{wang2025moge,
title={Moge: Unlocking accurate monocular geometry estimation for open-domain images with optimal training supervision},
author={Wang, Ruicheng and Xu, Sicheng and Dai, Cassie and Xiang, Jianfeng and Deng, Yu and Tong, Xin and Yang, Jiaolong},
booktitle={Proceedings of the Computer Vision and Pattern Recognition Conference},
pages={5261--5271},
year={2025}
}
@misc{wang2025moge2,
title={MoGe-2: Accurate Monocular Geometry with Metric Scale and Sharp Details},
author={Ruicheng Wang and Sicheng Xu and Yue Dong and Yu Deng and Jianfeng Xiang and Zelong Lv and Guangzhong Sun and Xin Tong and Jiaolong Yang},
year={2025},
eprint={2507.02546},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2507.02546},
}Copiato dal blocco di citazione degli autori disponibile su github.com/microsoft/MoGe#-citation.