EoMT

Mạng phân đoạn được xây dựng trên vision transformer thuần túy không có pixel decoder chuyên dụng: các query được học bổ sung vào chính encoder sẽ dự đoán mặt nạ. LibreYOLO hỗ trợ mô hình này cho phân đoạn ngữ nghĩa, thực thể và toàn cảnh.

Tác vụ
semantic, instance segmentation, panoptic
Kích thước
s, b, l at 512 px
Cài đặt
pip install libreyolo
Bậc hỗ trợ
Chỉ suy luận, từ v. 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.
Thượng nguồn
EoMT của TU Eindhoven, Mobile Perception Systems Lab, MIT. Bài báo, mã nguồn
Giấy phép
Mã nguồn MIT, trọng số MIT. Sử dụng thương mại

Cài đặt

EoMT 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ở.

bash
pip install libreyolo

Dự đoán

Trọng số được tải về từ Hugging Face trong lần sử dụng đầu tiên và được lưu vào bộ nhớ đệm cục bộ. Hậu tố tác vụ trong tên tệp (-sem, -seg, -panoptic) chọn tác vụ, còn LibreYOLO() suy ra tác vụ từ tên tệp đó nên không cần đối số task=.

Phân đoạn ngữ nghĩa
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreEoMTl-sem.pt")result = model(SAMPLE_IMAGE, save=True) mask = result.semantic_maskprint(mask.data.shape)   # (H, W) ID lớp đối tượngprint(mask.classes)      # các ID lớp đối tượng trong ảnh, đã sắp xếp
Phân đoạn thực thể
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Hậu tố -seg trong tên tệp chọn tác vụ thực thể, vì vậy không cần# đối số task ở đây.model = LibreYOLO("LibreEoMTl-seg.pt")result = model(SAMPLE_IMAGE, save=True) print(result.boxes.xyxy)print(result.masks.data.shape)
Phân đoạn toàn cảnh
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreEoMTl-panoptic.pt")result = model(SAMPLE_IMAGE, save=True) pan = result.panopticprint(pan.data.shape)       # (H, W) ID segmentprint(pan.segments_info)    # [{"id": ..., "category_id": ...}, ...]
CLI
libreyolo predict model=LibreEoMTl-sem.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

Phân đoạn ngữ nghĩa điền result.semantic_mask, một mảng ID lớp đối tượng (H, W) trong .data. Phân đoạn thực thể điền result.boxesresult.masks, cùng shape mà mọi họ phân đoạn khác trả về. Phân đoạn toàn cảnh điền result.panoptic: map ID segment (H, W) trong .data, cùng .segments_info, danh sách dict {"id", "category_id"}, mỗi segment một dict. conf lọc lựa chọn query; iou không có tác dụng với tác vụ ngữ nghĩa vì tác vụ dùng argmax theo từng pixel mà không có bước NMS. Xem dự đoán để biết về nguồn, xử lý luồng và kết quả.

Biến thể

Có ba kích thước encoder s/b/l, tất cả dựa trên DINOv2. Checkpoint ngữ nghĩa được huấn luyện trên ADE20K ở 512 px; checkpoint thực thể và toàn cảnh được huấn luyện trên COCO ở 640 px, cùng một checkpoint thực thể thứ hai được huấn luyện ở 1280 px. Upstream chỉ cung cấp trọng số phân đoạn thực thể DINOv2 ở kích thước l; s và b chỉ được phát hành cho tác vụ ngữ nghĩa và toàn cảnh. Các biến thể EoMT dựa trên DINOv3 có ở upstream nhưng không được cung cấp ở đây vì phụ thuộc vào trọng số DINOv3 phi thương mại có kiểm soát truy cập.

LibreYOLO không huấn luyện EoMT: train() phát sinh NotImplementedError cho họ mô hình này, được cấp hỗ trợ ở trên đánh dấu là chỉ dành cho inference.

Xác thực

val() điều phối theo tác vụ. Tác vụ ngữ nghĩa trả về metrics/mIoUmetrics/pixel_accuracy. Phân đoạn thực thể trả về cùng các key mAP mặt nạ và box như những họ phân đoạn khác. Tác vụ toàn cảnh trả về Panoptic Quality dưới dạng metrics/PQ, được tách thành metrics/SQ (chất lượng phân đoạn) và metrics/RQ (chất lượng nhận dạng), cùng metrics/PQ_thingsmetrics/PQ_stuff.

Semantic
from libreyolo import LibreYOLO model = LibreYOLO("LibreEoMTl-sem.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mIoU"])print(metrics["metrics/pixel_accuracy"])
Instance segmentation
from libreyolo import LibreYOLO model = LibreYOLO("LibreEoMTl-seg.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95(M)"])   # mặt nạprint(metrics["metrics/mAP50-95(B)"])   # box
Panoptic
from libreyolo import LibreYOLO model = LibreYOLO("LibreEoMTl-panoptic.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/PQ"])print(metrics["metrics/SQ"], metrics["metrics/RQ"])
CLI
libreyolo val model=LibreEoMTl-sem.pt data=my-dataset.yaml

Xuất

Tác vụONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
semanticsemantic to ONNX: được hỗ trợsemantic to TorchScript: được hỗ trợsemantic to ExecuTorch: không được hỗ trợsemantic to TensorRT: được hỗ trợsemantic to OpenVINO: được hỗ trợsemantic to Paddle: không được hỗ trợsemantic to MNN: không được hỗ trợsemantic to RKNN: không được hỗ trợsemantic to ncnn: không được hỗ trợsemantic to TFLite: không được hỗ trợsemantic to CoreML: không được hỗ trợsemantic to Core AI: không được hỗ trợ
Instance segmentationInstance segmentation to ONNX: không được hỗ trợInstance segmentation to TorchScript: không được hỗ trợInstance segmentation to ExecuTorch: không được hỗ trợInstance segmentation to TensorRT: không được hỗ trợInstance segmentation to OpenVINO: không được hỗ trợInstance segmentation to Paddle: không được hỗ trợInstance segmentation to MNN: không được hỗ trợInstance segmentation to RKNN: không được hỗ trợInstance segmentation to ncnn: không được hỗ trợInstance segmentation to TFLite: không được hỗ trợInstance segmentation to CoreML: không được hỗ trợInstance segmentation to Core AI: không được hỗ trợ
panopticpanoptic to ONNX: không được hỗ trợpanoptic to TorchScript: không được hỗ trợpanoptic to ExecuTorch: không được hỗ trợpanoptic to TensorRT: không được hỗ trợpanoptic to OpenVINO: không được hỗ trợpanoptic to Paddle: không được hỗ trợpanoptic to MNN: không được hỗ trợpanoptic to RKNN: không được hỗ trợpanoptic to ncnn: không được hỗ trợpanoptic to TFLite: không được hỗ trợpanoptic to CoreML: không được hỗ trợpanoptic to Core AI: không được hỗ trợ

Hiện chỉ tác vụ ngữ nghĩa có thể xuất: phân đoạn thực thể và toàn cảnh gọi export() sẽ nhận NotImplementedError vì đầu ra query-mask của chúng chưa có hợp đồng xuất runtime. Artifact ngữ nghĩa đã 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ặc .engine hoạt động như checkpoint và trả về cùng đối tượng Results.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreEoMTl-sem.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreEoMTl-sem.pt format=onnxlibreyolo export model=LibreEoMTl-sem.pt format=tensorrt half=True
Dùng tệp đã xuất
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Factory định tuyến dựa trên hậu tố tệp, vì vậy artifact đã xuất tải# như mọi checkpoint và trả về cùng đối tượng Results.model = LibreYOLO("LibreEoMTl-sem.onnx")result = model(SAMPLE_IMAGE) print(result.semantic_mask.data.shape)

Checkpoint

Mọi tệp trọng số đã phát hành cho họ mô hình này.

TệpĐầu vào (px)Giấy phép trọng số
semantic
LibreEoMTl-sem.pt512mit
Instance segmentation
LibreEoMTl-seg.pt640mit
LibreEoMTl-seg-1280.ptmit
panoptic
LibreEoMTs-panoptic.ptmit
LibreEoMTb-panoptic.ptmit
LibreEoMTl-panoptic.ptmit

Mọi tệp ở trên hiện đều có trong tổ chức LibreYOLO và được tải xuống trong lần sử dụng đầu tiên.

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
EoMT, TU Eindhoven, Mobile Perception Systems Lab
Giấy phép thượng nguồn
MIT
Nguồn thượng nguồn
github.com/tue-mps/eomt
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
MIT is a permissive license, so this code and these weights can be used in commercial and closed-source products. It asks only that you keep the copyright and license notice with any copy you redistribute. LibreYOLO ships only the DINOv2-backed EoMT checkpoints, sizes s/b/l; the DINOv3 EoMT variants are excluded because they depend on gated non-commercial DINOv3 weights. DINOv2 itself is Apache-2.0. The semantic checkpoint is trained on ADE20K and the instance and panoptic checkpoints on COCO; both are research datasets, and users remain responsible for dataset-license compliance when validating or fine-tuning against them.

Trích dẫn

@inproceedings{kerssies2025eomt,
  author    = {Kerssies, Tommie and Cavagnero, Niccol\`{o} and Hermans, Alexander and Norouzi, Narges and Averta, Giuseppe and Leibe, Bastian and Dubbelman, Gijs and {de Geus}, Daan},
  title     = {{Your ViT is Secretly an Image Segmentation Model}},
  booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  year      = {2025},
}

Được sao chép từ khối trích dẫn của tác giả tại github.com/tue-mps/eomt#bibtex-citation.

Đã kiểm chứng với LibreYOLO v1.5.0. Các bảng hỗ trợ, checkpoint và số liệu benchmark trên trang này được tạo từ thư viện đã phát hành và trọng số đã công bố, không phải viết thủ công.