コンピュータビジョン

Hugging Face で学ぶマルチモーダルモデル

James Chapman

Curriculum Manager, DataCamp

ビジョンモデル

ビジョンタスクの図

1 https://arxiv.org/abs/1409.1556
Hugging Face で学ぶマルチモーダルモデル

分類

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

野球の試合の画像

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
Hugging Face で学ぶマルチモーダルモデル

物体検出

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

武術の試合(バウンディングボックスなし)

Hugging Face で学ぶマルチモーダルモデル

物体検出

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)
Hugging Face で学ぶマルチモーダルモデル

物体検出

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

武術の試合(バウンディングボックス付き)

Hugging Face で学ぶマルチモーダルモデル

セグメンテーション

セマンティックセグメンテーション

  • 出力: 入力と同じサイズの2次元配列
  • 背景除去: 各ピクセルは1(前景)または0(背景)
  • 画像 × 出力 → 背景を除去した画像
Hugging Face で学ぶマルチモーダルモデル

セグメンテーション

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

outputs = pipe(image)

plt.imshow(outputs) plt.show()

武術の試合(背景なし)

Hugging Face で学ぶマルチモーダルモデル

Passons à la pratique !

Hugging Face で学ぶマルチモーダルモデル

Preparing Video For Download...