zeromodels/eomt_large_coco_instance_640
*See [our collection](https://huggingface.co/collections/zeromodels/eomt-6a8eaf6dac390eae4c54893b) for all versions of EoMT.*
Run EoMT with Keras 3: JAX, PyTorch, or TensorFlow
  
zeromodels/eomtlargecocoinstance640
Paper: Your ViT is Secretly an Image Segmentation Model (arXiv:2503.19108) · HF Papers
EoMT (Encoder-only Mask Transformer) keeps segmentation inside a plain ViT: learned query tokens are concatenated with patch tokens and run through the same ViT blocks. No pixel decoder, no deformable attention decoder.
For more details on the model, please go to the upstream model card.
Pure-Keras 3 conversion of `tue-mps/coco_instance_eomt_large_640` for zeromodels. One implementation runs unmodified on TensorFlow / Torch / JAX.
This is a instance checkpoint (EoMTUniversalSegment).
✨ Quick start
import os
os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow"
from PIL import Image
from zeromodels.models.eomt import EoMTUniversalSegment, EoMTImageProcessor
model = EoMTUniversalSegment.from_weights("zeromodels/eomt_large_coco_instance_640")
processor = EoMTImageProcessor.from_weights("zeromodels/eomt_large_coco_instance_640")
image = Image.open("your_image.jpg").convert("RGB")
output = model(processor(image)["pixel_values"], training=False)
result = processor.post_process_instance_segmentation(
output, target_size=(image.height, image.width)
)
print(result.keys())Load any EoMT variant the same way with from_weights("zeromodels/<variant>"):
Tips
- Set
KERAS_BACKENDbefore importing Keras / zeromodels. - Use the post-processor that matches the checkpoint task (panoptic / instance / semantic).
- See EoMT docs and Loading Weights.
- Community / upstream weights:
EoMTUniversalSegment.from_weights("hf:tue-mps/coco_instance_eomt_large_640").
Special Thanks
A huge thank you to the TU/e MPS EoMT authors for creating and releasing these models.
License: MIT.
