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.
Origine
MoGe-2 di Microsoft, MIT. Articolo, sorgente
Licenze
Codice MIT, pesi MIT. Uso commerciale

Installazione

MoGe-2 non richiede nessun extra opzionale. Tutto ciò che importa è già nell'installazione base.

bash
pip install libreyolo

Predizione

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.

Python
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) float32
CLI
libreyolo predict model=LibreMoGe2s-normal.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

MoGe-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.

Python
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 pixel
CLI
libreyolo val model=LibreMoGe2s-normal.pt data=my-dataset.yaml imgsz=518

Esportazione

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
Surface normalsSurface normals to ONNX: supportatoSurface normals to TorchScript: supportatoSurface normals to ExecuTorch: supportatoSurface normals to TensorRT: supportatoSurface normals to OpenVINO: supportatoSurface normals to Paddle: non supportatoSurface normals to MNN: non supportatoSurface normals to RKNN: non supportatoSurface normals to ncnn: supportatoSurface normals to TFLite: non supportatoSurface normals to CoreML: non supportatoSurface 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.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreMoGe2s-normal.pt")model.export(format="onnx", imgsz=518)model.export(format="tensorrt", imgsz=518, half=True)
CLI
libreyolo export model=LibreMoGe2s-normal.pt format=onnx imgsz=518libreyolo export model=LibreMoGe2s-normal.pt format=tensorrt imgsz=518 half=True
Usare il file esportato
from 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.

Verificato con LibreYOLO v1.6.0. Le tabelle di supporto, i checkpoint e i dati dei benchmark in questa pagina vengono generati dalla libreria rilasciata e dai pesi pubblicati, non scritti a mano.

Architettura di MoGe-2

Scegli una variante o la vista della famiglia, poi un blocco per i dettagli. Apri il diagramma completo per ingrandire o scaricare SVG e PNG. I diagrammi sono in inglese.