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
- surface normals
- Dimensioni
- s, b, l at 518 px
- Installa
pip install libreyolo- Livello di supporto
- Solo inferenza, dalla v1.5.0. 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. Le dimensioni s e l usano i mirror di LibreYOLO; b continua a usare il checkpoint upstream.
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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Surface normals | Surface normals to ONNX: supportato | Surface normals to TorchScript: supportato | Surface normals to ExecuTorch: supportato | Surface normals to TensorRT: supportato | Surface normals to OpenVINO: supportato | Surface normals to Paddle: non supportato | Surface normals to MNN: non supportato | Surface normals to RKNN: non supportato | Surface normals to ncnn: supportato | Surface normals to TFLite: non supportato | Surface normals to CoreML: non supportato | Surface normals 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, ripubblicati su huggingface.co/LibreYOLO
- Interpretazione
- The publisher declares MIT for the model and checkpoints. LibreYOLO mirrors s and l; b remains an upstream download. The DINOv2 encoder retains its separate Apache-2.0 attribution.
I checkpoint s e l sono replicati da LibreYOLO; b resta upstream. Gli artefatti scaricati mantengono la licenza del distributore.
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.