🚀 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团队编写。