Wizja komputerowa

Modele multimodalne z Hugging Face

James Chapman

Curriculum Manager, DataCamp

Modele wizyjne

Diagram zadań wizyjnych

1 https://arxiv.org/abs/1409.1556
Modele multimodalne z Hugging Face

Klasyfikacja

from datasets import load_dataset
dataset = load_dataset("nlphuji/flickr30k")
image = dataset['test'][134]["image"]

Zdjęcie z meczu baseballowego

from transformert import pipeline
pipe = pipeline("image-classification", 
"google/mobilenet_v2_1.0_224") # 224x224 input

pred = pipe(image) print("Predicted class:", pred[0]['label'])
Predicted class: ballplayer, baseball player
Modele multimodalne z Hugging Face

Wykrywanie obiektów

dataset['test'][52]["image"]

Zawody sztuk walki z ramkami ograniczającymi

Modele multimodalne z Hugging Face

Wykrywanie obiektów

pipe = pipeline("object-detection", "facebook/detr-resnet-50", revision="no_timm")

outputs = pipe(image, threshold=0.95)
for obj in outputs: box = obj['box']
print(f"Detected {obj['label']} with confidence {obj['score']:.2f} at ({box['xmin']}, {box['ymin']}) to ({box['xmax']}, {box['ymax']})")
Detected person with confidence 0.97 at (381, 131) to (499, 330)
Detected person with confidence 0.96 at (381, 36) to (427, 103)
Detected person with confidence 0.98 at (253, 39) to (294, 125)
Detected person with confidence 1.00 at (144, 36) to (296, 170)
Detected person with confidence 0.95 at (280, 60) to (399, 294)
Modele multimodalne z Hugging Face

Wykrywanie obiektów

import matplotlib.pyplot as plt
import matplotlib.patches as patches
ax = plt.gca()
colors = ['r', 'g', 'b', 'y', 'm', 'c', 'k']

plt.imshow(image)
for n, obj in enumerate(outputs): box = obj['box']
rect = patches.Rectangle( (box['xmin'], box['ymin']), box['xmax']-box['xmin'], box['ymax']-box['ymin'],
linewidth=1, edgecolor=colors[n], facecolor='none')
ax.add_patch(rect)
plt.show()

Zawody sztuk walki z ramkami ograniczającymi

Modele multimodalne z Hugging Face

Segmentacja

segmentacja semantyczna

  • Wyjście: tablica 2D o tych samych wymiarach co wejście
  • Usuwanie tła: każdy piksel to 1 (pierwszy plan) lub 0 (tło)
  • Obraz $\times$ Wyjście → Obraz bez tła
Modele multimodalne z Hugging Face

Segmentacja

pipe = pipeline("image-segmentation", 
                model="briaai/RMBG-1.4", 
                trust_remote_code=True)

outputs = pipe(image)

plt.imshow(outputs) plt.show()

Zawody sztuk walki bez tła

Modele multimodalne z Hugging Face

Czas na ćwiczenia!

Modele multimodalne z Hugging Face

Preparing Video For Download...