MoGe-2

MoGe-2 es un modelo de geometría monocular de una sola pasada que predice un campo denso de normales de superficie a partir de una única imagen RGB. LibreYOLO lo soporta solo para estimación de normales, a través de los checkpoints oficiales ViT-S, ViT-B y ViT-L.

Tareas
surface normals
Tamaños
s, b, l at 518 px
Instalación
pip install libreyolo
Nivel de compatibilidad
Solo inferencia, desde v1.5.0. Solo permite predecir, validar y exportar. Las funciones de entrenamiento no se aplican.
Proyecto original
MoGe-2 de Microsoft, MIT. Artículo, fuente
Licencias
Código MIT, pesos MIT. Uso comercial

Instalación

MoGe-2 no necesita ningún extra opcional. Todo lo que importa está en la instalación base.

bash
pip install libreyolo

Predicción

Los pesos se descargan automáticamente en el primer uso. Los tamaños s y l usan mirrors de LibreYOLO; b sigue usando el 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)   # vectores unitarios float32 (H, W, 3)
CLI
libreyolo predict model=LibreMoGe2s-normal.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

MoGe-2 devuelve un campo denso en lugar de un conjunto de detecciones, así que result.boxes está vacío y conf, iou y max_det no tienen efecto. result.normal_map contiene el resultado: un array (H, W, 3) de vectores unitarios en el sistema de coordenadas de cámara de OpenCV, donde +x es hacia la derecha, +y hacia abajo, +z hacia el interior de la escena, y una superficie orientada hacia la cámara se lee como (0, 0, -1). Predecir una lista de imágenes ejecuta una pasada hacia delante por imagen; esta familia no tiene una ruta rápida de batch apilado. Consulta predicción para fuentes, streaming y manejo de resultados.

Variantes

Tres tamaños de encoder se publican como checkpoints separados: ViT-S, ViT-B y ViT-L, todos con la misma resolución de entrada. El banco de pruebas de LibreYOLO no ha medido esta familia, así que no hay cifras de precisión publicadas con las que compararlos; elige un tamaño según tu propio presupuesto de cómputo.

Validación

val() mide el error angular contra un dataset emparejado de mapas de normales: imágenes junto a PNG de normales de 16 bits con el mismo nombre base, con una máscara de validez opcional para que los píxeles rellenados e inválidos nunca cuenten. Devuelve el error angular medio y mediano en grados, más el porcentaje de píxeles dentro de 11,25, 22,5 y 30 grados.

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"])   # gradosprint(metrics["metrics/median_angular_error"])print(metrics["metrics/within_11_25"])          # porcentaje de píxeles
CLI
libreyolo val model=LibreMoGe2s-normal.pt data=my-dataset.yaml imgsz=518

Exportación

TareaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
Surface normalsSurface normals to ONNX: compatibleSurface normals to TorchScript: compatibleSurface normals to ExecuTorch: compatibleSurface normals to TensorRT: compatibleSurface normals to OpenVINO: compatibleSurface normals to Paddle: no compatibleSurface normals to MNN: no compatibleSurface normals to RKNN: no compatibleSurface normals to ncnn: compatibleSurface normals to TFLite: no compatibleSurface normals to CoreML: no compatibleSurface normals to Core AI: no compatible

La exportación de normales usa un contrato de ejecución de resolución fija y batch 1: se rechazan dynamic y cualquier batch distinto de 1, y imgsz debe ser divisible por el tamaño de parche del encoder ViT, algo que LibreYOLO comprueba antes de que empiece la ejecución. Un artefacto exportado se vuelve a cargar con LibreYOLO() según su extensión de archivo, así que un archivo .onnx se comporta como un checkpoint y devuelve el mismo 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
Usar el archivo exportado
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreMoGe2s-normal.onnx")result = model(SAMPLE_IMAGE) print(result.normal_map.array.shape)

Licencia

Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.

Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.

Trabajo original
MoGe-2, Microsoft
Licencia del proyecto original
MIT
Fuente del proyecto original
github.com/microsoft/MoGe
Código de LibreYOLO
MIT
Pesos
MIT, republicados en huggingface.co/LibreYOLO
Interpretación
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.

Los checkpoints s y l están replicados por LibreYOLO; b permanece upstream. Los artefactos descargados conservan la licencia de su editor.

Cita

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

Copiado del bloque de cita de los autores en github.com/microsoft/MoGe#-citation.

Verificado con LibreYOLO v1.6.0. Las tablas de compatibilidad, los checkpoints y las cifras de rendimiento de esta página se generan a partir de la biblioteca publicada y los pesos publicados; no se escriben a mano.

Arquitectura de MoGe-2

Elige una variante o la vista de la familia y selecciona un bloque para ver los detalles. Abre el diagrama completo para ampliar o descargar SVG y PNG. Los diagramas están en inglés.