模型:
nvidia/groupvit-gcc-yfcc
此检查点由Jiarui Xu上传。
GroupViT模型是由Jiarui Xu,Shalini De Mello,Sifei Liu,Wonmin Byeon,Thomas Breuel,Jan Kautz,Xiaolong Wang于2022年提出的。受到CLIP的启发,GroupViT是一个视觉-语言模型,可以对任何给定的词汇类别进行零样本语义分割。
2022年6月
分组和识别是视觉场景理解的重要组成部分,例如目标检测和语义分割。在端到端的深度学习系统中,图像区域的分组通常通过来自像素级识别标签的自上而下监督隐含地实现。然而,在本文中,我们提出将分组机制重新引入到深层网络中,这样可以让语义分割自动产生,只需文本监督即可。我们提出了一种层次化的分组视觉Transformer(GroupViT),它超越了常规的网格结构表示,并学习将图像区域分组成逐渐变大的任意形状的段。我们通过对比损失,在大规模图像-文本数据集上联合训练GroupViT和文本编码器。只通过文本监督,没有任何像素级注释,GroupViT学会将语义区域分组在一起,并成功地以零样本的方式转移到语义分割任务,即无需进一步微调。它在PASCAL VOC 2012数据集上实现了52.3%的零样本mIoU准确率,在PASCAL Context数据集上实现了22.4%的零样本mIoU准确率,并且与需要更高级别监督的最先进的迁移学习方法相竞争。
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 # this is the image-text similarity score probs = logits_per_image.softmax(dim=1) # we can take the softmax to get the label probabilities
该模型是在公开可用的图像-标题数据上进行训练的。这是通过爬取一些网站和使用常用的现有图像数据集(例如 YFCC100M )的组合实现的。数据的很大一部分来自我们对互联网的爬取。这意味着数据更具代表性,更接近与互联网联系最紧密的人们和社会,这些人倾向于更发达的国家和年轻的男性用户。
更多的代码示例,请参阅 documentation 。
@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}, }