这个模型是一个经过微调的 CLIP by OpenAI 。它旨在改进零样本图像分类、文本到图像和图像到图像检索,特别适用于遥感图像。
2021年7月
基础模型使用 ViT-B/32 Transformer 架构作为图像编码器,并使用带有掩码的自注意力 Transformer 作为文本编码器。通过对比损失函数训练这些编码器,以最大化 (图像,文本) 对的相似性。
我们发布了 clip-rsicd 模型的多个检查点。有关每个检查点的零样本分类性能指标,请参阅 our github repo 。
要复现微调过程,可以使用已发布的 script 。该模型使用批大小为1024的 adafactor 优化器,带有线性预热和衰减,峰值学习率为1e-4,在1个 TPU-v3-8 上进行训练。训练运行的完整日志可以在 WandB 上找到。
使用 this demo 来查看模型的文本到图像和图像到图像能力。
from PIL import Image import requests from transformers import CLIPProcessor, CLIPModel model = CLIPModel.from_pretrained("flax-community/clip-rsicd-v2") processor = CLIPProcessor.from_pretrained("flax-community/clip-rsicd-v2") url = "https://raw.githubusercontent.com/arampacha/CLIP-rsicd/master/data/stadium_1.jpg" image = Image.open(requests.get(url, stream=True).raw) labels = ["residential area", "playground", "stadium", "forest", "airport"] inputs = processor(text=[f"a photo of a {l}" for l in labels], 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 for l, p in zip(labels, probs[0]): print(f"{l:<16} {p:.4f}")
该模型旨在成为研究社区的研究成果。我们希望这个模型能帮助研究人员更好地理解和探索零样本、任意图像分类。
此外,我们可以想象在国防和执法、气候变化和全球变暖,甚至一些消费者应用中的应用。可以在 here 中找到部分应用列表。通常情况下,我们认为这样的模型可以作为人类在搜索大量图像集合时的数字助手。
我们还希望它能用于跨学科研究,以研究这种模型的潜在影响。CLIP 论文中包含了关于潜在下游影响的讨论,提供了这种分析的示例。
主要预期用途这些模型的主要预期用户是AI研究人员。
我们主要想象该模型将被研究人员使用,以更好地理解计算机视觉模型的稳健性、泛化性和其他能力、偏差和约束。
该模型使用公开可用的遥感图像字幕数据集进行训练。具体是 RSICD 、 UCM 和 Sydney 。有关使用的数据集的更多信息,请参阅 our project page 。
Model-name | k=1 | k=3 | k=5 | k=10 |
---|---|---|---|---|
original CLIP | 0.572 | 0.745 | 0.837 | 0.939 |
clip-rsicd-v2 (this model) | 0.883 | 0.968 | 0.982 | 0.998 |
该模型是在 RSI 数据上进行微调的,但可能包含原始 CLIP 模型的一些偏差和限制。有关详细信息,请参阅 CLIP model card 。