🚀 OneFormer
OneFormer是一个在COCO数据集上训练的模型(大尺寸版本,采用Swin骨干网络)。它能够有效解决图像分割问题,为语义、实例和全景分割任务提供了统一的解决方案,提升了图像分割的效率和准确性。
🚀 快速开始
OneFormer模型可用于语义、实例和全景分割任务。你可以参考以下使用示例对该模型进行调用。若需查找在其他数据集上微调的版本,请访问模型中心。
✨ 主要特性
- OneFormer是首个多任务通用图像分割框架。仅需使用单一通用架构、单一模型,并在单一数据集上进行一次训练,就能在语义、实例和全景分割任务中超越现有的专门模型。
- OneFormer使用任务令牌来使模型专注于当前任务,使架构在训练时具有任务导向性,在推理时具有任务动态性,且所有操作都基于单一模型完成。
💻 使用示例
基础用法
from transformers import OneFormerProcessor, OneFormerForUniversalSegmentation
from PIL import Image
import requests
url = "https://huggingface.co/datasets/shi-labs/oneformer_demo/blob/main/coco.jpeg"
image = Image.open(requests.get(url, stream=True).raw)
processor = OneFormerProcessor.from_pretrained("shi-labs/oneformer_coco_swin_large")
model = OneFormerForUniversalSegmentation.from_pretrained("shi-labs/oneformer_coco_swin_large")
semantic_inputs = processor(images=image, task_inputs=["semantic"], return_tensors="pt")
semantic_outputs = model(**semantic_inputs)
predicted_semantic_map = processor.post_process_semantic_segmentation(outputs, target_sizes=[image.size[::-1]])[0]
instance_inputs = processor(images=image, task_inputs=["instance"], return_tensors="pt")
instance_outputs = model(**instance_inputs)
predicted_instance_map = processor.post_process_instance_segmentation(outputs, target_sizes=[image.size[::-1]])[0]["segmentation"]
panoptic_inputs = processor(images=image, task_inputs=["panoptic"], return_tensors="pt")
panoptic_outputs = model(**panoptic_inputs)
predicted_semantic_map = processor.post_process_panoptic_segmentation(outputs, target_sizes=[image.size[::-1]])[0]["segmentation"]
更多示例请参考文档。
📚 详细文档
预期用途和限制
你可以使用此特定检查点进行语义、实例和全景分割。若需查找在其他数据集上微调的版本,请访问模型中心。
引用
@article{jain2022oneformer,
title={{OneFormer: One Transformer to Rule Universal Image Segmentation}},
author={Jitesh Jain and Jiachen Li and MangTik Chiu and Ali Hassani and Nikita Orlov and Humphrey Shi},
journal={arXiv},
year={2022}
}
📄 许可证
本项目采用MIT许可证。
信息表格
属性 |
详情 |
模型类型 |
用于图像分割的Transformer模型 |
训练数据 |
ydshieh/coco_dataset_script |
模型示例展示

交互小部件示例