MoGe-2

MoGe-2 є монокулярною геометричною моделлю з одним прямим проходом, яка передбачає щільне поле нормалей поверхні з одного зображення RGB. LibreYOLO підтримує її лише для оцінювання нормалей через офіційні контрольні точки ViT-S, ViT-B і ViT-L.

Задачі
normal
Розміри
s, b, l at 518 px
Встановлення
pip install libreyolo
Рівень підтримки
Лише інференс, починаючи з v. Лише передбачення, валідація та експорт. Функції навчання не застосовуються.
Першоджерело
MoGe-2, автори: Microsoft, ліцензія MIT. Стаття, джерело
Ліцензії
Код: MIT, ваги: MIT. Комерційне використання

Встановлення

MoGe-2 не потребує додаткових залежностей. Усе, що вона імпортує, входить до базового встановлення.

bash
pip install libreyolo

Передбачення

Під час першого використання ваги завантажуються автоматично: LibreYOLO отримує відповідний розмір безпосередньо з офіційних контрольних точок і кешує його локально.

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)   # Одиничні вектори 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 повертає щільне поле, а не набір виявлень, тому result.boxes порожній, а conf, iou і max_det не впливають на результат. result.normal_map містить результат: масив одиничних векторів (H, W, 3) у системі координат камери OpenCV, де +x спрямовано праворуч, +y вниз, +z углиб сцени, а поверхня, повернута до камери, має значення (0, 0, -1). Передбачення для списку зображень виконує один прямий прохід на кожне зображення; це сімейство не має швидкого шляху зі складеним батчем. Типи джерел, потокове передбачення та обробку результатів описано в розділі передбачення.

Варіанти

Три розміри енкодера постачаються як окремі контрольні точки: ViT-S, ViT-B і ViT-L, усі з однаковою вхідною роздільною здатністю. Засоби бенчмарків LibreYOLO не вимірювали це сімейство, тому опублікованих показників правильності для їх порівняння немає. Вибирайте розмір відповідно до власного бюджету обчислень.

Валідація

val() вимірює кутову похибку на парному датасеті карт нормалей: зображення поруч із 16-бітними PNG нормалей з однаковою основою назви й необов'язковою маскою дійсності, щоб доповнені та недійсні пікселі ніколи не враховувалися. Метод повертає середню й медіанну кутову похибку в градусах, а також відсоток пікселів у межах 11.25, 22.5 і 30 градусів.

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"])   # Градусиprint(metrics["metrics/median_angular_error"])print(metrics["metrics/within_11_25"])          # Відсоток пікселів
CLI
libreyolo val model=LibreMoGe2s-normal.pt data=my-dataset.yaml imgsz=518

Експорт

ЗадачаONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
normalnormal to ONNX: підтримуєтьсяnormal to TorchScript: підтримуєтьсяnormal to ExecuTorch: підтримуєтьсяnormal to TensorRT: підтримуєтьсяnormal to OpenVINO: підтримуєтьсяnormal to Paddle: не підтримуєтьсяnormal to MNN: не підтримуєтьсяnormal to RKNN: не підтримуєтьсяnormal to ncnn: підтримуєтьсяnormal to TFLite: не підтримуєтьсяnormal to CoreML: не підтримуєтьсяnormal to Core AI: не підтримується

Експорт нормалей використовує контракт середовища виконання з фіксованою роздільною здатністю та розміром батча 1: dynamic і batch зі значенням, відмінним від 1, відхиляються, а imgsz має ділитися на розмір патча енкодера ViT, що LibreYOLO перевіряє до початку запуску. Експортований артефакт знову завантажується через LibreYOLO() відповідно до суфікса файлу, тому файл .onnx поводиться як контрольна точка й повертає той самий об'єкт 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
Використання експортованого файлу
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreMoGe2s-normal.onnx")result = model(SAMPLE_IMAGE) print(result.normal_map.array.shape)

Ліцензування

Перевіряйте ліцензію в репозиторії Hugging Face конкретних ваг, які завантажуєте. Кожна контрольна точка в організації LibreYOLO має ліцензію, і вона не завжди однакова для всього сімейства. Цей репозиторій є авторитетним джерелом, а наведене нижче резюме описує умови на момент останньої перевірки сторінки.

Це опис відповідних ліцензій, а не юридична консультація. Якщо відповідь має комерційне значення, самостійно прочитайте ліцензії та зверніться по юридичну консультацію.

Оригінальна робота
MoGe-2, Microsoft
Ліцензія першоджерела
MIT
Джерело першоджерела
github.com/microsoft/MoGe
Код LibreYOLO
MIT
Ваги
MIT, поширюється авторами. LibreYOLO не розміщує й не дублює ці ваги.
Тлумачення
MIT is a permissive license: the code and the official ViT-S, ViT-B and ViT-L checkpoints can be used in commercial and closed-source products. It asks that you keep the license text and copyright notice with any copy you redistribute, and it places no obligation on your own application code. LibreYOLO downloads these checkpoints directly from the official Hugging Face repositories at a pinned revision rather than copying them into its own organization, and verifies each file against a recorded SHA-256 checksum before use. The DINOv2 encoder MoGe-2 builds on is separately licensed Apache-2.0 by Meta AI; LibreYOLO reuses the DINOv2 implementation already bundled for its Depth Anything V2 family rather than copying it again here.

LibreYOLO не копіює ці контрольні точки до власної організації. LibreYOLO("LibreMoGe2s-normal.pt") завантажує відповідний розмір безпосередньо з офіційних репозиторіїв Hugging Face у зафіксованій редакції та перед використанням перевіряє файл за записаною контрольною сумою SHA-256.

Цитування

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

Скопійовано з блоку цитування авторів на сторінці github.com/microsoft/MoGe#-citation.

Перевірено з LibreYOLO v1.5.0. Таблиці підтримки, контрольні точки й результати бенчмарків на цій сторінці згенеровано з випущеної бібліотеки та опублікованих ваг, а не написано вручну.