🚀 模型卡片:GroupViT
GroupViT是一个视觉语言模型,受CLIP启发,能够对任意给定的词汇类别进行零样本语义分割。它通过文本监督自动生成语义片段,在相关数据集上取得了不错的零样本准确率。
🚀 快速开始
使用Transformers库调用模型
from PIL import Image
import requests
from transformers import AutoProcessor, GroupViTModel
model = GroupViTModel.from_pretrained("nvidia/groupvit-gcc-yfcc")
processor = AutoProcessor.from_pretrained("nvidia/groupvit-gcc-yfcc")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True)
outputs = model(**inputs)
logits_per_image = outputs.logits_per_image
probs = logits_per_image.softmax(dim=1)
✨ 主要特性
- 零样本语义分割:能够对任意给定的词汇类别进行零样本语义分割。
- 文本监督学习:仅通过文本监督,无需任何像素级注释,即可学习对语义区域进行分组。
- 层次化分组:提出了层次化的分组视觉Transformer(GroupViT),超越了常规的网格结构表示,学习将图像区域分组为逐渐变大的任意形状的片段。
📚 详细文档
模型详情
摘要
分组和识别是视觉场景理解的重要组成部分,例如用于目标检测和语义分割。在端到端的深度学习系统中,图像区域的分组通常通过来自像素级识别标签的自上而下的监督隐式发生。相反,在本文中,我们提出将分组机制带回深度网络,这使得仅通过文本监督就可以自动出现语义片段。我们提出了一种层次化的分组视觉Transformer(GroupViT),它超越了常规的网格结构表示,并学习将图像区域分组为逐渐变大的任意形状的片段。我们通过对比损失在大规模图像 - 文本数据集上与文本编码器联合训练GroupViT。仅通过文本监督且无需任何像素级注释,GroupViT学习将语义区域分组在一起,并以零样本方式成功迁移到语义分割任务,即无需任何进一步的微调。它在PASCAL VOC 2012上实现了52.3%的零样本mIoU准确率,在PASCAL Context数据集上实现了22.4%的mIoU准确率,并且与需要更高监督水平的最先进的迁移学习方法具有竞争力。
相关文档
更多使用示例
更多代码示例请参考文档。
BibTeX引用
@article{xu2022groupvit,
author = {Xu, Jiarui and De Mello, Shalini and Liu, Sifei and Byeon, Wonmin and Breuel, Thomas and Kautz, Jan and Wang, Xiaolong},
title = {GroupViT: Semantic Segmentation Emerges from Text Supervision},
journal = {arXiv preprint arXiv:2202.11094},
year = {2022},
}
📦 数据情况
该模型在公开可用的图像 - 文本数据上进行训练。这是通过抓取一些网站和使用常用的现有图像数据集(如YFCC100M)的组合完成的。大部分数据来自于互联网抓取。这意味着数据更能代表与互联网连接最紧密的人群和社会,这些人群往往偏向于更发达的国家以及年轻的男性用户。