MoGe-2
MoGe-2 adalah model geometri monokular satu forward pass yang memprediksi field surface normal padat dari satu gambar RGB. LibreYOLO hanya mendukungnya untuk estimasi normal melalui checkpoint resmi ViT-S, ViT-B, dan ViT-L.
- Task
- surface normals
- Ukuran
- s, b, l at 518 px
- Instalasi
pip install libreyolo- Tier dukungan
- Hanya inferensi, sejak v1.5.0. Hanya prediksi, validasi, dan ekspor. Fitur pelatihan tidak berlaku.
- Lisensi
- Kode MIT, bobot MIT. Penggunaan komersial
Instalasi
MoGe-2 tidak memerlukan extra opsional. Semua yang diimpornya tersedia dalam instalasi dasar.
pip install libreyoloPrediksi
Bobot diunduh otomatis saat pertama kali dipakai. Ukuran s dan l memakai mirror LibreYOLO; b tetap memakai checkpoint upstream.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreMoGe2s-normal.pt")result = model(SAMPLE_IMAGE, save=True) normal = result.normal_mapprint(normal.array.shape) # unit vector float32 (H, W, 3)libreyolo predict model=LibreMoGe2s-normal.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueMoGe-2 mengembalikan field padat, bukan sekumpulan deteksi, sehingga
result.boxes kosong dan conf, iou, serta max_det tidak berpengaruh.
result.normal_map memuat hasilnya, yaitu array unit vector (H, W, 3) dalam
frame kamera OpenCV. +x mengarah ke kanan, +y ke bawah, +z masuk ke dalam
adegan, dan permukaan yang menghadap kamera terbaca sebagai (0, 0, -1).
Memprediksi daftar gambar menjalankan satu forward pass per gambar. Family ini
tidak memiliki jalur cepat batch bertumpuk. Lihat prediksi
untuk sumber, streaming, dan penanganan hasil.
Varian
Ada tiga ukuran encoder yang disediakan sebagai checkpoint terpisah: ViT-S, ViT-B, dan ViT-L, semuanya pada resolusi input yang sama. Harness benchmark LibreYOLO belum mengukur family ini, sehingga belum ada angka akurasi yang dipublikasikan sebagai pembanding. Pilih ukuran sesuai anggaran komputasi Anda.
Validasi
val() mengukur error sudut terhadap dataset normal map berpasangan: gambar
berdampingan dengan PNG normal 16-bit bernama stem sama, dengan mask validitas
opsional agar piksel padding dan tidak valid tidak pernah dihitung. Fungsi ini
mengembalikan error sudut mean dan median dalam derajat, serta persentase piksel
dalam batas 11.25, 22.5, dan 30 derajat.
from libreyolo import LibreYOLO model = LibreYOLO("LibreMoGe2s-normal.pt")metrics = model.val(data="my-dataset.yaml", imgsz=518) print(metrics["metrics/mean_angular_error"]) # derajatprint(metrics["metrics/median_angular_error"])print(metrics["metrics/within_11_25"]) # persentase piksellibreyolo val model=LibreMoGe2s-normal.pt data=my-dataset.yaml imgsz=518Ekspor
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Surface normals | Surface normals to ONNX: didukung | Surface normals to TorchScript: didukung | Surface normals to ExecuTorch: didukung | Surface normals to TensorRT: didukung | Surface normals to OpenVINO: didukung | Surface normals to Paddle: tidak didukung | Surface normals to MNN: tidak didukung | Surface normals to RKNN: tidak didukung | Surface normals to ncnn: didukung | Surface normals to TFLite: tidak didukung | Surface normals to CoreML: tidak didukung | Surface normals to Core AI: tidak didukung |
Ekspor normal memakai kontrak runtime resolusi tetap dengan batch 1. dynamic
dan batch selain 1 ditolak, serta imgsz harus habis dibagi ukuran patch
encoder ViT, yang diperiksa LibreYOLO sebelum run dimulai. Artefak hasil ekspor
dapat dimuat kembali melalui LibreYOLO() berdasarkan akhiran berkasnya,
sehingga berkas .onnx berperilaku seperti checkpoint dan mengembalikan
Results yang sama.
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)Lisensi
Periksa lisensi di repositori Hugging Face untuk bobot tertentu yang diunduh. Setiap checkpoint di organisasi LibreYOLO memiliki lisensi, dan lisensinya tidak selalu sama dalam satu family. Repositori tersebut adalah sumber resmi. Ringkasan di bawah menjelaskan ketentuan yang berlaku saat halaman ini terakhir diverifikasi.
Ini adalah deskripsi lisensi yang terlibat, bukan nasihat hukum. Jika jawabannya penting secara komersial, baca sendiri lisensinya dan mintalah nasihat dari penasihat hukum Anda.
- Karya asli
- MoGe-2, Microsoft
- Lisensi upstream
- MIT
- Sumber upstream
- github.com/microsoft/MoGe
- Kode LibreYOLO
- MIT
- Bobot
- MIT, dipublikasikan ulang di huggingface.co/LibreYOLO
- Interpretasi
- 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.
Checkpoint s dan l tersedia di mirror LibreYOLO; b tetap di upstream. Artefak yang diunduh mempertahankan lisensi penerbitnya.
Sitasi
@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},
}Disalin dari blok sitasi penulis di github.com/microsoft/MoGe#-citation.