项目介绍:maskformer-swin-base-ade
概述
maskformer-swin-base-ade是一个基于MaskFormer模型的项目,专注于图像的语义分割。模型是利用ADE20k数据集训练的,采用了Swin Transformer作为模型的骨干。MaskFormer模型在学术论文“Per-Pixel Classification is Not All You Need for Semantic Segmentation”中被首次介绍,并在GitHub仓库中首次发布。
模型描述
MaskFormer模型能够同时处理图像的实例分割、语义分割以及全景分割任务。项目的方法论是通过预测一组遮罩(mask)以及对应的标签来实现这三种任务,因此,它们都被视作实例分割问题来处理。如下图所示,提供了maskformer的架构图。
主要功能与局限性
maskformer-swin-base-ade模型主要用于语义分割任务。如果有兴趣,可以访问模型库中查看其他针对不同任务进行微调的版本。
如何使用
以下是项目的使用方式,展示了如何对一张图片进行语义分割:
from transformers import MaskFormerFeatureExtractor, MaskFormerForInstanceSegmentation
from PIL import Image
import requests
# 下载和打开图像
url = "https://huggingface.co/datasets/hf-internal-testing/fixtures_ade20k/resolve/main/ADE_val_00000001.jpg"
image = Image.open(requests.get(url, stream=True).raw)
# 特征提取
feature_extractor = MaskFormerFeatureExtractor.from_pretrained("facebook/maskformer-swin-base-ade")
inputs = feature_extractor(images=image, return_tensors="pt")
# 模型加载与预测
model = MaskFormerForInstanceSegmentation.from_pretrained("facebook/maskformer-swin-base-ade")
outputs = model(**inputs)
# 获取预测结果
class_queries_logits = outputs.class_queries_logits
masks_queries_logits = outputs.masks_queries_logits
# 处理预测结果,以实现可视化
predicted_semantic_map = feature_extractor.post_process_semantic_segmentation(outputs, target_sizes=[image.size[::-1]])[0]
更多代码示例和详细使用指南,可以参阅官方文档。