🚀 模型卡片:clip-rsicd
本模型是基於 OpenAI的CLIP 進行微調的。其設計目的是專門針對遙感圖像,提升零樣本圖像分類、文本到圖像以及圖像到圖像的檢索能力。
🚀 快速開始
模型詳情
- 模型日期:2021年7月
- 模型類型:基礎模型使用ViT - B/32 Transformer架構作為圖像編碼器,並使用掩碼自注意力Transformer作為文本編碼器。這些編碼器通過對比損失進行訓練,以最大化(圖像,文本)對的相似度。
- 模型版本:我們為
clip-rsicd
模型發佈了多個檢查點。有關每個檢查點在零樣本分類上的性能指標,請參考 我們的GitHub倉庫。
- 訓練:要復現微調過程,可以使用發佈的 腳本。該模型在1個TPU - v3 - 8上,使用批量大小為1024、帶有線性預熱和衰減的adafactor優化器進行訓練,峰值學習率為1e - 4。完整的訓練日誌可以在 WandB 上找到。
- 演示:通過 此演示 查看模型的文本到圖像和圖像到圖像的檢索能力。
- 文檔:在Colab上使用TPU通過HuggingFace和flax/jax對RSICD上的CLIP進行微調
與Transformers一起使用
from PIL import Image
import requests
from transformers import CLIPProcessor, CLIPModel
model = CLIPModel.from_pretrained("flax-community/clip-rsicd")
processor = CLIPProcessor.from_pretrained("flax-community/clip-rsicd")
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", "forrest", "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
probs = logits_per_image.softmax(dim=1)
for l, p in zip(labels, probs[0]):
print(f"{l:<16} {p:.4f}")
在Colab上嘗試
✨ 主要特性
模型使用
預期用途
該模型是為研究社區提供的研究成果。我們希望該模型能幫助研究人員更好地理解和探索零樣本、任意圖像分類。此外,我們設想它可應用於國防和執法、氣候變化和全球變暖等領域,甚至一些消費級應用。部分應用列表可在 此處 找到。總體而言,我們認為此類模型可作為人類搜索大量圖像集的數字助手。我們也希望它能用於跨學科研究,探討此類模型的潛在影響 - CLIP論文中包含了對潛在下游影響的討論,可作為此類分析的示例。
主要預期用途
這些模型的主要預期用戶是AI研究人員。我們主要設想研究人員使用該模型,以更好地理解計算機視覺模型的魯棒性、泛化能力以及其他性能、偏差和侷限性。
數據
該模型在公開可用的遙感圖像字幕數據集上進行訓練,即 RSICD、UCM 和 Sydney。有關所用數據集的更多信息,請參閱 我們的項目頁面。
性能和侷限性
性能
模型名稱 |
k = 1 |
k = 3 |
k = 5 |
k = 10 |
原始CLIP |
0.572 |
0.745 |
0.837 |
0.939 |
clip - rsicd(本模型) |
0.843 |
0.958 |
0.977 |
0.993 |
侷限性
該模型在遙感圖像數據上進行了微調,但可能包含原始CLIP模型的一些偏差和侷限性。有關詳細信息,請參考 CLIP模型卡片。
📦 信息表格
屬性 |
詳情 |
模型類型 |
基礎模型使用ViT - B/32 Transformer架構作為圖像編碼器,並使用掩碼自注意力Transformer作為文本編碼器。這些編碼器通過對比損失進行訓練,以最大化(圖像,文本)對的相似度。 |
訓練數據 |
該模型在公開可用的遙感圖像字幕數據集上進行訓練,即 RSICD、UCM 和 Sydney。 |