MoGe-2

MoGe-2 ist ein monokulares Geometriemodell mit einem einzelnen Vorwärtslauf, das aus einem RGB-Bild ein dichtes Feld von Oberflächennormalen vorhersagt. LibreYOLO unterstützt ausschließlich die Normalenschätzung mit den offiziellen Checkpoints ViT-S, ViT-B und ViT-L.

Aufgaben
surface normals
Größen
s, b, l at 518 px
Installation
pip install libreyolo
Supportstufe
Nur Inferenz, seit v1.5.0. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
Upstream
MoGe-2 von Microsoft, MIT. Publikation, Quelle
Lizenzen
Code MIT, Gewichte MIT. Kommerzielle Nutzung

Installation

MoGe-2 benötigt kein optionales Zusatzpaket. Alle Importe sind in der Basisinstallation enthalten.

bash
pip install libreyolo

Vorhersage

Gewichte werden bei der ersten Verwendung automatisch heruntergeladen. Die Größen s und l verwenden LibreYOLO-Mirrors; b verwendet weiterhin den Upstream-Checkpoint.

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

MoGe-2 gibt ein dichtes Feld statt einer Menge von Erkennungen zurück. result.boxes ist daher leer, und conf, iou sowie max_det haben keine Wirkung. result.normal_map enthält das Ergebnis: ein Array der Form (H, W, 3) mit Einheitsvektoren im OpenCV-Kamerakoordinatensystem. +x zeigt nach rechts, +y nach unten und +z in die Szene. Eine zur Kamera gerichtete Oberfläche hat den Wert (0, 0, -1). Bei einer Bildliste wird pro Bild ein Vorwärtslauf ausgeführt. Diese Familie besitzt keinen schnellen Pfad für gestapelte Batches. Unter Vorhersage findest du Quellen, Streaming und die Verarbeitung von Ergebnissen.

Varianten

Drei Encoder-Größen werden als getrennte Checkpoints angeboten: ViT-S, ViT-B und ViT-L, alle mit derselben Eingabeauflösung. Der Benchmark-Testaufbau von LibreYOLO hat diese Familie nicht gemessen. Es gibt daher keine veröffentlichten Accuracy-Werte für einen Vergleich. Wähle die Größe passend zu deinem Rechenbudget.

Validierung

val() misst den Winkelfehler auf einem gepaarten Normalenkarten-Datensatz: Bilder liegen neben gleichnamigen 16-Bit-Normalen-PNGs. Eine optionale Gültigkeitsmaske verhindert, dass aufgefüllte und ungültige Pixel gezählt werden. Die Methode gibt den mittleren und medianen Winkelfehler in Grad sowie den Prozentsatz der Pixel innerhalb von 11.25, 22.5 und 30 Grad zurück.

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"])   # Gradprint(metrics["metrics/median_angular_error"])print(metrics["metrics/within_11_25"])          # Prozent der Pixel
CLI
libreyolo val model=LibreMoGe2s-normal.pt data=my-dataset.yaml imgsz=518

Export

AufgabeONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
Surface normalsSurface normals to ONNX: unterstütztSurface normals to TorchScript: unterstütztSurface normals to ExecuTorch: unterstütztSurface normals to TensorRT: unterstütztSurface normals to OpenVINO: unterstütztSurface normals to Paddle: nicht unterstütztSurface normals to MNN: nicht unterstütztSurface normals to RKNN: nicht unterstütztSurface normals to ncnn: unterstütztSurface normals to TFLite: nicht unterstütztSurface normals to CoreML: nicht unterstütztSurface normals to Core AI: nicht unterstützt

Der Normalenexport nutzt einen Runtime-Vertrag mit fester Auflösung und Batch 1: dynamic und ein anderer batch-Wert als 1 werden abgelehnt. imgsz muss außerdem durch die Patch-Größe des ViT-Encoders teilbar sein. LibreYOLO prüft das vor Beginn des Laufs. Ein exportiertes Artefakt wird anhand seiner Dateiendung wieder über LibreYOLO() geladen. Eine .onnx-Datei verhält sich daher wie ein Checkpoint und gibt dasselbe Results-Objekt zurück.

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
Exportierte Datei verwenden
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreMoGe2s-normal.onnx")result = model(SAMPLE_IMAGE) print(result.normal_map.array.shape)

Lizenzierung

Prüfe die Lizenz im Hugging-Face-Repository der konkreten Gewichte, die du herunterlädst. Jeder Checkpoint in der LibreYOLO-Organisation hat eine Lizenz, und sie ist innerhalb einer Familie nicht immer gleich. Dieses Repository ist die maßgebliche Quelle. Die Zusammenfassung unten beschreibt den Stand bei der letzten Verifizierung dieser Seite.

Dies ist eine Beschreibung der beteiligten Lizenzen und keine Rechtsberatung. Wenn die Antwort kommerziell relevant ist, lies die Lizenzen selbst und hole eigenen Rechtsrat ein.

Originalarbeit
MoGe-2, Microsoft
Upstream-Lizenz
MIT
LibreYOLO-Code
MIT
Gewichte
MIT, erneut unter huggingface.co/LibreYOLO veröffentlicht
Einordnung
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.

LibreYOLO spiegelt die Checkpoints s und l; b bleibt bei Upstream. Heruntergeladene Artefakte behalten die Lizenz ihres Herausgebers.

Zitieren

@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}, 
}

Aus dem Zitierblock der Autoren unter github.com/microsoft/MoGe#-citation kopiert.

Mit LibreYOLO v1.6.0 verifiziert. Supporttabellen, Checkpoints und Benchmarkwerte auf dieser Seite werden aus der veröffentlichten Bibliothek und den publizierten Gewichten generiert und nicht von Hand geschrieben.

Wähle eine Variante oder die Familienübersicht und dann einen Block für Details. Öffne das vollständige Diagramm zum Zoomen oder Herunterladen als SVG und PNG. Die Diagramme sind auf Englisch.