🚀 Video Mask2Former
Video Mask2Former是一個用於視頻實例分割的模型,在YouTubeVIS - 2021數據集上進行訓練(小型版本,採用Swin骨幹網絡)。它在論文Mask2Former for Video Instance Segmentation中被提出,並首次在此倉庫發佈。該模型是原Mask2Former論文Masked - attention Mask Transformer for Universal Image Segmentation的擴展。
📄 許可證
本項目採用MIT許可證。
🔍 標籤
📊 數據集
🚀 快速開始
本模型可用於實例分割任務。你可以在[模型中心](https://huggingface.co/models?search=video - mask2former)查找該模型其他可能令你感興趣的微調版本。
✨ 主要特性
- 統一範式:Mask2Former使用相同的範式處理實例分割、語義分割和全景分割,即通過預測一組掩碼和相應的標籤,將這3種任務都視為實例分割。
- 性能優越:相較於之前的SOTA模型MaskFormer,Mask2Former在性能和效率上都更勝一籌。具體通過以下方式實現:
- 用更先進的多尺度可變形注意力Transformer取代像素解碼器。
- 採用帶掩碼注意力的Transformer解碼器,在不增加額外計算量的情況下提升性能。
- 通過在子採樣點上計算損失而非整個掩碼,提高訓練效率。
- 視頻分割表現出色:在論文Mask2Former for Video Instance Segmentation中表明,Mask2Former在不修改架構、損失函數甚至訓練流程的情況下,在視頻實例分割任務上也能達到SOTA性能。

📚 詳細文檔
模型描述
Mask2Former以相同的範式處理實例、語義和全景分割:通過預測一組掩碼和相應的標籤,將所有3種任務都當作實例分割來處理。它在性能和效率上都超越了之前的SOTA模型MaskFormer,具體改進如下:
- 用更先進的多尺度可變形注意力Transformer替換像素解碼器。
- 採用帶掩碼注意力的Transformer解碼器,在不引入額外計算的情況下提升性能。
- 通過在子採樣點上計算損失而非整個掩碼,提高訓練效率。
在論文Mask2Former for Video Instance Segmentation中,作者表明Mask2Former在不修改架構、損失函數甚至訓練流程的情況下,在視頻實例分割任務上也能取得SOTA性能。
預期用途與限制
你可以使用此特定檢查點進行實例分割。若想了解該模型其他可能感興趣的微調版本,請查看[模型中心](https://huggingface.co/models?search=video - mask2former)。
💻 使用示例
基礎用法
import torch
import torchvision
from huggingface_hub import hf_hub_download
from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
processor = AutoImageProcessor.from_pretrained("facebook/video-mask2former-swin-small-youtubevis-2021-instance")
model = Mask2FormerForUniversalSegmentation.from_pretrained("facebook/video-mask2former-swin-small-youtubevis-2021-instance")
file_path = hf_hub_download(repo_id="shivi/video-demo", filename="cars.mp4", repo_type="dataset")
video = torchvision.io.read_video(file_path)[0]
video_frames = [image_processor(images=frame, return_tensors="pt").pixel_values for frame in video]
video_input = torch.cat(video_frames)
with torch.no_grad():
outputs = model(**video_input)
class_queries_logits = outputs.class_queries_logits
masks_queries_logits = outputs.masks_queries_logits
result = image_processor.post_process_video_instance_segmentation(outputs, target_sizes=[tuple(video.shape[1:3])])[0]
predicted_video_instance_map = result["segmentation"]
更多代碼示例,請參考文檔。
免責聲明
發佈Mask2Former的團隊未為此模型編寫模型卡片,此模型卡片由Hugging Face團隊編寫。