Sıfır-atış görüntü sınıflandırma

Hugging Face ile Multi-Modal Modeller

James Chapman

Curriculum Manager, DataCamp

CLIP

  • Contrastive Language-Image Pre-training
  • Görüntü ve metin benzerliğini puanlar
  • 400M görüntü-metin çiftiyle eğitildi
  • İki kodlayıcı:
    • Görsel kodlayıcı
    • Metin kodlayıcı
  • Yakın görüntü-metin eşleşmeleri benzer diziler üretir

CLIP metin ve görüntü kodlama diyagramı

1 https://openai.com/index/clip/
Hugging Face ile Multi-Modal Modeller

Sıfır-atış öğrenme

  • Modelin eğitilmediği görevleri yapar

Bir uçağın sıfır-atış sıralaması

1 https://openai.com/index/clip/
Hugging Face ile Multi-Modal Modeller

Kullanım örneği: ürün kategorileri

from datasets import load_dataset
import matplotlib.pyplot as plt

dset = "rajuptvs/ecommerce_products_clip"
dataset = load_dataset(dset)

print(dataset["train"][0]["Description"])
plt.imshow(dataset["train"][0]["image"]) plt.show()
Blive Yüksek kaliteli premium Uzun kollu baskılı 
Gömlek üreticilerden doğrudan. Size 
temiz ve şık bir görünüm sağlarken aynı zamanda 
rahat hissettirir. Güvenilir 
çevrimiçi marka ve kaliteden ödün yoktur.

Veri setinden bir gömlek resmi

Hugging Face ile Multi-Modal Modeller

CLIP ile sıfır-atış öğrenme

model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32")
processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32")


categories = ["shirt", "trousers", "shoes", "dress", "hat", "bag", "watch"]
inputs = processor(text=categories, images=dataset["train"][0]["image"], return_tensors="pt", padding=True) outputs = model(**inputs)
probs = outputs.logits_per_image.softmax(dim=1)
categories[probs.argmax().item()]
shirt
Hugging Face ile Multi-Modal Modeller

CLIP puanı

  • Kodlanmış görüntü ile açıklama benzerliği
  • 100 (tam uyum) ile 0 (uyum yok) aralığı
from torchmetrics.functional.multimodal import clip_score


image = dataset["train"][0]["image"] description = dataset["train"][0]["Description"]
from torchvision.transforms import ToTensor image = ToTensor()(image)*255
score = clip_score(image, description, "openai/clip-vit-base-patch32")
print(f"CLIP puanı: {score}")
CLIP puanı: 28.495952606201172
Hugging Face ile Multi-Modal Modeller

Hadi pratik yapalım!

Hugging Face ile Multi-Modal Modeller

Preparing Video For Download...