Počítačové vidění

Multi-Modal Models with Hugging Face

James Chapman

Curriculum Manager, DataCamp

Modely pro vidění

Diagram úloh počítačového vidění

1 https://arxiv.org/abs/1409.1556
Multi-Modal Models with Hugging Face

Klasifikace

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

Záběr z baseballového zápasu

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
Multi-Modal Models with Hugging Face

Detekce objektů

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

Zápas bojových umění s ohraničovacími rámečky

Multi-Modal Models with Hugging Face

Detekce objektů

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)
Multi-Modal Models with Hugging Face

Detekce objektů

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()

Zápas bojových umění s ohraničovacími rámečky

Multi-Modal Models with Hugging Face

Segmentace

Sémantická segmentace

  • Výstup: 2D pole se stejnými rozměry jako vstup
  • Odstranění pozadí: každý pixel je 1 (popředí) nebo 0 (pozadí)
  • Obraz $\times$ výstup → obraz bez pozadí
Multi-Modal Models with Hugging Face

Segmentace

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

outputs = pipe(image)

plt.imshow(outputs) plt.show()

Zápas bojových umění bez pozadí

Multi-Modal Models with Hugging Face

Pojďme si procvičit!

Multi-Modal Models with Hugging Face

Preparing Video For Download...