MoGe-2

O MoGe-2 é um modelo de geometria monocular de uma única passagem que prediz um campo denso de normais de superfície a partir de uma imagem RGB. O LibreYOLO oferece suporte a ele apenas para estimativa de normais, através dos checkpoints oficiais ViT-S, ViT-B e ViT-L.

Tarefas
surface normals
Tamanhos
s, b, l at 518 px
Instalação
pip install libreyolo
Nível de suporte
Somente inferência, desde a v1.5.0. Somente predição, validação e exportação. Os recursos de treinamento não se aplicam.
Origem
MoGe-2 por Microsoft, MIT. Artigo, código-fonte
Licenças
Código MIT, pesos MIT. Uso comercial

Instalação

O MoGe-2 não precisa de nenhum extra opcional. Tudo o que ele importa está na instalação base.

bash
pip install libreyolo

Predição

Os pesos são baixados automaticamente no primeiro uso. Os tamanhos s e l usam espelhos do LibreYOLO; b continua usando o 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)   # vetores unitários (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

O MoGe-2 devolve um campo denso em vez de um conjunto de detecções, então result.boxes fica vazio e conf, iou e max_det não têm efeito. result.normal_map carrega o resultado: um array (H, W, 3) de vetores unitários no referencial de câmera do OpenCV, onde +x é para a direita, +y é para baixo, +z entra na cena, e uma superfície voltada para a câmera lê (0, 0, -1). Predizer uma lista de imagens roda um forward pass por imagem; esta família não tem caminho rápido de batch empilhado. Veja predição para fontes, streaming e tratamento de resultados.

Variantes

Três tamanhos de encoder são publicados como checkpoints separados: ViT-S, ViT-B e ViT-L, todos na mesma resolução de entrada. O harness de benchmark do LibreYOLO não mediu esta família, então não há números de acurácia publicados para compará-los; escolha um tamanho de acordo com o seu próprio orçamento de computação.

Validação

val() mede o erro angular contra um dataset pareado de mapas de normais: imagens ao lado de PNGs de normais de 16 bits com o mesmo nome-base, com uma máscara de validade opcional para que pixels de padding e inválidos nunca contem. Ele devolve o erro angular médio e mediano em graus, além da porcentagem de pixels dentro de 11.25, 22.5 e 30 graus.

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

Exportação

TarefaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
Surface normalsSurface normals to ONNX: compatívelSurface normals to TorchScript: compatívelSurface normals to ExecuTorch: compatívelSurface normals to TensorRT: compatívelSurface normals to OpenVINO: compatívelSurface normals to Paddle: incompatívelSurface normals to MNN: incompatívelSurface normals to RKNN: incompatívelSurface normals to ncnn: compatívelSurface normals to TFLite: incompatívelSurface normals to CoreML: incompatívelSurface normals to Core AI: incompatível

A exportação de normais usa um contrato de runtime de resolução fixa e batch 1: dynamic e um batch diferente de 1 são rejeitados, e imgsz precisa ser divisível pelo tamanho de patch do encoder ViT, o que o LibreYOLO confere antes de a execução começar. Um artefato exportado é carregado de volta por LibreYOLO() pelo sufixo do arquivo, então um arquivo .onnx se comporta como um checkpoint e devolve o mesmo 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 o arquivo exportado
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreMoGe2s-normal.onnx")result = model(SAMPLE_IMAGE) print(result.normal_map.array.shape)

Licenciamento

Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.

Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.

Trabalho original
MoGe-2, Microsoft
Licença original
MIT
Código-fonte original
github.com/microsoft/MoGe
Código do LibreYOLO
MIT
Pesos
MIT, republicado em huggingface.co/LibreYOLO
Interpretação
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.

O LibreYOLO espelha os checkpoints s e l; b permanece upstream. Os artefatos baixados mantêm a licença de seu publicador.

Citação

@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 do bloco de citação dos autores em github.com/microsoft/MoGe#-citation.

Verificado com o LibreYOLO v1.6.0. As tabelas de suporte, os checkpoints e os números de benchmark desta página são gerados a partir da biblioteca lançada e dos pesos publicados, não escritos à mão.

Arquitetura de MoGe-2

Escolha uma variante ou a visão da família e selecione um bloco para ver os detalhes. Abra o diagrama completo para ampliar ou baixar SVG e PNG. Os diagramas estão em inglês.