🚀 Mask2Former
Mask2Former是一個用於圖像分割的模型,它在COCO全景分割任務上進行了訓練(基礎版本,採用Swin骨幹網絡)。該模型能夠以統一的範式處理實例分割、語義分割和全景分割任務,為圖像分割領域提供了高效且強大的解決方案。
🚀 快速開始
Mask2Former模型可用於圖像的實例、語義和全景分割任務。你可以使用以下代碼示例快速上手:
import requests
import torch
from PIL import Image
from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-base-coco-panoptic")
model = Mask2FormerForUniversalSegmentation.from_pretrained("facebook/mask2former-swin-base-coco-panoptic")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
class_queries_logits = outputs.class_queries_logits
masks_queries_logits = outputs.masks_queries_logits
result = processor.post_process_panoptic_segmentation(outputs, target_sizes=[image.size[::-1]])[0]
predicted_panoptic_map = result["segmentation"]
更多代碼示例可參考文檔。
✨ 主要特性
- 統一範式:Mask2Former使用相同的範式處理實例、語義和全景分割任務,將這3種任務都視為實例分割問題。
- 性能卓越:相比之前的SOTA模型MaskFormer,Mask2Former在性能和效率上都有顯著提升。具體通過以下方式實現:
- 先進的注意力機制:用更高級的多尺度可變形注意力Transformer替換像素解碼器。
- 掩碼注意力解碼器:採用帶有掩碼注意力的Transformer解碼器,在不增加額外計算量的情況下提升性能。
- 高效訓練:通過在子採樣點上計算損失而不是在整個掩碼上計算,提高訓練效率。

📚 詳細文檔
模型描述
Mask2Former通過預測一組掩碼和相應的標籤來處理實例、語義和全景分割任務。它將所有3種任務都當作實例分割任務來處理。相比之前的SOTA模型MaskFormer,Mask2Former在性能和效率上都更勝一籌,其改進方式包括:用更高級的多尺度可變形注意力Transformer替換像素解碼器;採用帶有掩碼注意力的Transformer解碼器來提升性能且不增加額外計算量;通過在子採樣點上計算損失而非整個掩碼來提高訓練效率。
預期用途和限制
你可以使用此特定的檢查點進行全景分割。若想查找針對其他感興趣任務的微調版本,可查看模型中心。
使用方法
以下是使用該模型的示例代碼:
import requests
import torch
from PIL import Image
from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-base-coco-panoptic")
model = Mask2FormerForUniversalSegmentation.from_pretrained("facebook/mask2former-swin-base-coco-panoptic")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
class_queries_logits = outputs.class_queries_logits
masks_queries_logits = outputs.masks_queries_logits
result = processor.post_process_panoptic_segmentation(outputs, target_sizes=[image.size[::-1]])[0]
predicted_panoptic_map = result["segmentation"]
更多代碼示例可參考文檔。
📄 許可證
許可證類型:其他
屬性 |
詳情 |
模型類型 |
用於圖像分割的Mask2Former模型 |
訓練數據 |
COCO數據集 |
⚠️ 重要提示
發佈Mask2Former的團隊並未為此模型編寫模型卡片,此模型卡片由Hugging Face團隊編寫。
💡 使用建議
若要查找針對其他感興趣任務的微調版本,可查看模型中心。