MoGe-2

MoGe-2 to monokularny model geometrii działający w jednym przebiegu w przód, który przewiduje gęste pole normalnych powierzchni na podstawie jednego obrazu RGB. LibreYOLO obsługuje go wyłącznie do estymacji normalnych przez oficjalne checkpointy ViT-S, ViT-B i ViT-L.

Zadania
surface normals
Rozmiary
s, b, l at 518 px
Instalacja
pip install libreyolo
Poziom obsługi
Tylko inferencja, od wersji v1.5.0. Tylko predykcja, walidacja i eksport. Funkcje trenowania nie mają zastosowania.
Projekt źródłowy
MoGe-2, autorzy: Microsoft, licencja: MIT. Publikacja, kod źródłowy
Licencje
Kod: MIT, wagi: MIT. Użycie komercyjne

Instalacja

MoGe-2 nie wymaga żadnego opcjonalnego dodatku. Wszystkie importowane elementy znajdują się w instalacji podstawowej.

bash
pip install libreyolo

Predykcja

Wagi są pobierane automatycznie przy pierwszym użyciu. Rozmiary s i l używają kopii w repozytoriach LibreYOLO; b nadal używa checkpointu projektu źródłowego.

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

MoGe-2 zwraca gęste pole zamiast zbioru detekcji, dlatego result.boxes jest puste, a conf, iou i max_det nie mają wpływu na wynik. result.normal_map zawiera tablicę wektorów jednostkowych (H, W, 3) w układzie kamery OpenCV, gdzie +x wskazuje w prawo, +y w dół, +z w głąb sceny, a powierzchnia skierowana do kamery ma wartość (0, 0, -1). Predykcja listy obrazów wykonuje jeden przebieg w przód na obraz. Ta rodzina nie ma szybkiej ścieżki ze złożonym batchem. Więcej informacji o źródłach, streamingu i obsłudze wyników zawiera strona predykcji.

Warianty

Trzy rozmiary enkodera są dostępne jako osobne checkpointy: ViT-S, ViT-B i ViT-L, wszystkie przy tej samej rozdzielczości wejściowej. Zestaw testowy LibreYOLO nie wykonał pomiarów tej rodziny, dlatego nie ma opublikowanych wyników dokładności do ich porównania. Rozmiar należy dobrać do własnego budżetu obliczeniowego.

Walidacja

val() mierzy błąd kątowy względem sparowanego zbioru map normalnych. Obrazy znajdują się obok 16-bitowych plików PNG normalnych o tej samej nazwie bazowej, a opcjonalna maska poprawności sprawia, że dopełnione i nieprawidłowe piksele nie są uwzględniane. Zwracany jest średni i medianowy błąd kątowy w stopniach oraz procent pikseli mieszczących się w zakresie 11.25, 22.5 i 30 stopni.

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

Eksport

ZadanieONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
Surface normalsSurface normals to ONNX: obsługiwaneSurface normals to TorchScript: obsługiwaneSurface normals to ExecuTorch: obsługiwaneSurface normals to TensorRT: obsługiwaneSurface normals to OpenVINO: obsługiwaneSurface normals to Paddle: brak obsługiSurface normals to MNN: brak obsługiSurface normals to RKNN: brak obsługiSurface normals to ncnn: obsługiwaneSurface normals to TFLite: brak obsługiSurface normals to CoreML: brak obsługiSurface normals to Core AI: brak obsługi

Eksport normalnych korzysta z kontraktu środowiska uruchomieniowego o stałej rozdzielczości i rozmiarze batcha 1. Argument dynamic oraz batch inny niż 1 są odrzucane, a imgsz musi być podzielne przez rozmiar patcha enkodera ViT, co LibreYOLO sprawdza przed rozpoczęciem przebiegu. Wyeksportowany artefakt jest ponownie ładowany przez LibreYOLO() na podstawie rozszerzenia pliku, dlatego plik .onnx zachowuje się jak checkpoint i zwraca ten sam obiekt 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
Użycie wyeksportowanego pliku
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreMoGe2s-normal.onnx")result = model(SAMPLE_IMAGE) print(result.normal_map.array.shape)

Licencja

Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.

To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.

Oryginalna praca
MoGe-2, Microsoft
Licencja projektu źródłowego
MIT
Kod źródłowy projektu
github.com/microsoft/MoGe
Kod LibreYOLO
MIT
Wagi
MIT, ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
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.

Checkpointy s i l mają kopie w repozytoriach LibreYOLO; b pozostaje w repozytorium źródłowym. Pobrane artefakty zachowują licencję wydawcy.

Cytowanie

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

Skopiowano z bloku cytowania autorów w github.com/microsoft/MoGe#-citation.

Zweryfikowano z LibreYOLO v1.6.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.

Architektura MoGe-2

Wybierz wariant lub przegląd rodziny, a następnie blok, aby zobaczyć szczegóły. Otwórz pełny diagram, aby powiększyć go lub pobrać SVG i PNG. Diagramy są w języku angielskim.