MoGe-2
MoGe-2 là mô hình hình học đơn ảnh một forward pass, dự đoán trường pháp tuyến bề mặt dense từ một ảnh RGB. LibreYOLO chỉ hỗ trợ mô hình để ước lượng pháp tuyến qua các checkpoint ViT-S, ViT-B và ViT-L chính thức.
- Tác vụ
- surface normals
- Kích thước
- s, b, l at 518 px
- Cài đặt
pip install libreyolo- Bậc hỗ trợ
- Chỉ suy luận, từ v1.5.0. Chỉ dự đoán, kiểm định và xuất. Không áp dụng các tính năng huấn luyện.
- Giấy phép
- Mã nguồn MIT, trọng số MIT. Sử dụng thương mại
Cài đặt
MoGe-2 không cần extra tùy chọn. Mọi thành phần mà mô hình import đều có trong bản cài đặt cơ sở.
pip install libreyoloDự đoán
Trọng số tự động tải về ở lần dùng đầu tiên. Các kích thước s và l dùng bản sao của LibreYOLO; b tiếp tục dùng 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) # vector đơn vị 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 trả về trường dense thay vì tập detection, vì vậy result.boxes trống và conf, iou cùng max_det không có tác dụng. result.normal_map chứa kết quả: mảng vector đơn vị (H, W, 3) trong hệ tọa độ camera OpenCV, trong đó +x hướng sang phải, +y hướng xuống, +z hướng vào cảnh, còn bề mặt hướng về camera có giá trị (0, 0, -1). Dự đoán danh sách ảnh chạy một forward pass cho mỗi ảnh; họ mô hình này không có tuyến nhanh batch xếp chồng. Xem dự đoán để biết về nguồn, xử lý luồng và kết quả.
Biến thể
Ba kích thước encoder được cung cấp dưới dạng checkpoint riêng: ViT-S, ViT-B và ViT-L, tất cả ở cùng độ phân giải đầu vào. Bộ công cụ benchmark của LibreYOLO chưa đo họ mô hình này, vì vậy không có số liệu độ chính xác đã công bố để so sánh; hãy chọn kích thước theo ngân sách tính toán của bạn.
Xác thực
val() đo sai số góc trên dataset normal-map theo cặp: ảnh đặt cạnh PNG pháp tuyến 16 bit có cùng phần tên gốc, cùng mặt nạ hợp lệ tùy chọn để pixel padding và không hợp lệ không bao giờ được tính. Hàm trả về sai số góc trung bình và trung vị theo độ, cùng phần trăm pixel trong phạm vi 11,25, 22,5 và 30 độ.
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"]) # phần trăm pixellibreyolo val model=LibreMoGe2s-normal.pt data=my-dataset.yaml imgsz=518Xuất
| Tác vụ | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Surface normals | Surface normals to ONNX: được hỗ trợ | Surface normals to TorchScript: được hỗ trợ | Surface normals to ExecuTorch: được hỗ trợ | Surface normals to TensorRT: được hỗ trợ | Surface normals to OpenVINO: được hỗ trợ | Surface normals to Paddle: không được hỗ trợ | Surface normals to MNN: không được hỗ trợ | Surface normals to RKNN: không được hỗ trợ | Surface normals to ncnn: được hỗ trợ | Surface normals to TFLite: không được hỗ trợ | Surface normals to CoreML: không được hỗ trợ | Surface normals to Core AI: không được hỗ trợ |
Việc xuất pháp tuyến dùng hợp đồng runtime batch 1, độ phân giải cố định: dynamic và batch khác 1 bị từ chối, còn imgsz phải chia hết cho kích thước patch của encoder ViT, được LibreYOLO kiểm tra trước khi bắt đầu lượt chạy. Artifact đã xuất được tải lại qua LibreYOLO() dựa trên hậu tố tệp, vì vậy tệp .onnx hoạt động như checkpoint và trả về cùng đối tượng Results.
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)Giấy phép
Hãy kiểm tra giấy phép trong repo Hugging Face của trọng số cụ thể mà bạn tải xuống. Mỗi checkpoint trong tổ chức LibreYOLO đều có giấy phép riêng và giấy phép có thể khác nhau trong cùng một họ. Repo đó là nguồn có thẩm quyền; phần tóm tắt dưới đây mô tả các điều khoản áp dụng khi trang này được kiểm chứng lần gần nhất.
Đây là phần mô tả các giấy phép liên quan, không phải tư vấn pháp lý. Nếu câu trả lời có ý nghĩa về mặt thương mại, hãy tự đọc các giấy phép và tham khảo cố vấn của riêng bạn.
- Công trình gốc
- MoGe-2, Microsoft
- Giấy phép thượng nguồn
- MIT
- Nguồn thượng nguồn
- github.com/microsoft/MoGe
- Mã nguồn LibreYOLO
- MIT
- Trọng số
- MIT, được phát hành lại tại huggingface.co/LibreYOLO
- Diễn giải
- 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.
LibreYOLO lưu bản sao checkpoint s và l; b vẫn ở upstream. Các tệp tải về giữ giấy phép của nhà phát hành.
Trích dẫn
@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},
}Được sao chép từ khối trích dẫn của tác giả tại github.com/microsoft/MoGe#-citation.