MoGe-2
MoGe-2 est un modèle de géométrie monoculaire à une seule passe qui prédit un champ dense de normales de surface à partir d'une image RGB. LibreYOLO le prend en charge uniquement pour l'estimation des normales, au moyen des checkpoints officiels ViT-S, ViT-B et ViT-L.
- Tâches
- surface normals
- Tailles
- s, b, l at 518 px
- Installer
pip install libreyolo- Niveau de support
- Inférence uniquement, depuis v1.5.0. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
- Licences
- Code MIT, poids MIT. Usage commercial
Installer
MoGe-2 ne nécessite aucun extra facultatif. Tous ses imports figurent dans l'installation de base.
pip install libreyoloPrédire
Les poids se téléchargent automatiquement au premier usage. Les tailles s et l utilisent les miroirs de LibreYOLO ; b continue d'utiliser le checkpoint d'amont.
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), vecteurs unitaires float32libreyolo predict model=LibreMoGe2s-normal.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueMoGe-2 renvoie un champ dense plutôt qu'un ensemble de détections.
result.boxes est donc vide, et conf, iou ainsi que max_det n'ont aucun
effet. result.normal_map contient le résultat : un tableau (H, W, 3) de
vecteurs unitaires dans le repère de la caméra OpenCV, où +x pointe vers la
droite, +y vers le bas, +z vers l'intérieur de la scène, et une surface face
à la caméra vaut (0, 0, -1). La prédiction d'une liste d'images exécute une
passe par image ; cette famille ne dispose d'aucun chemin rapide par batch
empilé. Consultez la prédiction pour les sources, le streaming
et le traitement des résultats.
Variantes
Trois tailles d'encodeur sont fournies sous forme de checkpoints distincts : ViT-S, ViT-B et ViT-L, toutes à la même résolution d'entrée. Le banc d'essai de LibreYOLO n'a pas mesuré cette famille, aucune valeur d'exactitude publiée ne permet donc de les comparer ; choisissez la taille en fonction de votre propre budget de calcul.
Valider
val() mesure l'erreur angulaire par rapport à un dataset de cartes de normales
appariées : les images se trouvent à côté de fichiers PNG de normales 16 bits
ayant le même radical, avec un masque de validité facultatif afin que les pixels
de remplissage et non valides ne soient jamais comptés. La méthode renvoie
l'erreur angulaire moyenne et médiane en degrés, ainsi que le pourcentage de
pixels situés à moins de 11.25, 22.5 et 30 degrés.
from libreyolo import LibreYOLO model = LibreYOLO("LibreMoGe2s-normal.pt")metrics = model.val(data="my-dataset.yaml", imgsz=518) print(metrics["metrics/mean_angular_error"]) # degrésprint(metrics["metrics/median_angular_error"])print(metrics["metrics/within_11_25"]) # pourcentage de pixelslibreyolo val model=LibreMoGe2s-normal.pt data=my-dataset.yaml imgsz=518Exporter
| Tâche | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Surface normals | Surface normals to ONNX : pris en charge | Surface normals to TorchScript : pris en charge | Surface normals to ExecuTorch : pris en charge | Surface normals to TensorRT : pris en charge | Surface normals to OpenVINO : pris en charge | Surface normals to Paddle : non pris en charge | Surface normals to MNN : non pris en charge | Surface normals to RKNN : non pris en charge | Surface normals to ncnn : pris en charge | Surface normals to TFLite : non pris en charge | Surface normals to CoreML : non pris en charge | Surface normals to Core AI : non pris en charge |
L'export des normales utilise un contrat de runtime à résolution fixe et avec
un batch de 1 : dynamic et toute valeur de batch autre que 1 sont refusés,
et imgsz doit être divisible par la taille de patch de l'encodeur ViT, ce que
LibreYOLO vérifie avant le début de l'exécution. Un artefact exporté se recharge
par LibreYOLO() à partir de son suffixe de fichier. Un fichier .onnx se
comporte donc comme un checkpoint et renvoie le même objet 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)Licence
Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.
Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.
- Travail d'origine
- MoGe-2, Microsoft
- Licence du projet d'origine
- MIT
- Source du projet d'origine
- github.com/microsoft/MoGe
- Code de LibreYOLO
- MIT
- Poids
- MIT, republiés sur huggingface.co/LibreYOLO
- Interprétation
- 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.
Les checkpoints s et l sont mis en miroir par LibreYOLO ; b reste en amont. Les artefacts téléchargés conservent la licence de leur éditeur.
Citation
@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},
}Copié depuis le bloc de citation des auteurs sur github.com/microsoft/MoGe#-citation.