Datasets documentation

Görüntü sınıflandırma

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Görüntü sınıflandırma

Görüntü sınıflandırma veri setleri, bir modelin tüm bir görüntüyü sınıflandırması için eğitilmesinde kullanılır. Tehlike altındaki yaban hayatı türlerini tanımlama veya tıbbi görüntülerde hastalık taraması yapma gibi bu veri setleri tarafından mümkün kılınan çok çeşitli uygulamalar vardır. Bu kılavuz, bir görüntü sınıflandırma veri setine dönüşümler (transformations) uygulamayı size gösterecektir.

Başlamadan önce, albumentations ve cv2 kütüphanelerinin güncel sürümlerinin yüklü olduğundan emin olun:

pip install -U albumentations opencv-python

Bu kılavuz, yaprak görüntüsüne dayanarak fasulye bitkisi hastalığının türünü belirlemek için Beans veri setini kullanır.

Veri setini yükleyin ve bir örneğe göz atın:

>>> from datasets import load_dataset

>>> dataset = load_dataset("AI-Lab-Makerere/beans")
>>> dataset["train"][10]
{'image': <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=500x500 at 0x7F8D2F4D7A10>,
 'image_file_path': '/root/.cache/huggingface/datasets/downloads/extracted/b0a21163f78769a2cf11f58dfc767fb458fc7cea5c05dccc0144a2c0f0bc1292/train/angular_leaf_spot/angular_leaf_spot_train.204.jpg',
 'labels': 0}

Veri seti üç alana sahiptir:

  • image: bir PIL görüntü nesnesi.
  • image_file_path: görüntü dosyasının yolu.
  • labels: görüntünün etiketi veya kategorisi.

Ardından bir görüntüye göz atın:

Şimdi albumentations ile bazı artırma işlemleri uygulayın. Görseli rastgele kırpacak, yatay olarak çevirecek ve parlaklığını ayarlayacaksınız.

>>> import cv2
>>> import albumentations
>>> import numpy as np

>>> transform = albumentations.Compose([
...     albumentations.RandomCrop(width=256, height=256),
...     albumentations.HorizontalFlip(p=0.5),
...     albumentations.RandomBrightnessContrast(p=0.2),
... ])

Görsellere dönüşümü uygulamak için bir fonksiyon oluşturun:

>>> def transforms(examples):
...     examples["pixel_values"] = [
...         transform(image=np.array(image))["image"] for image in examples["image"]
...     ]
... 
...     return examples

Dizinin toplu verilerine (batch) dönüşümü anlık olarak uygulamak ve daha az disk alanı tüketmek için set_transform() fonksiyonunu kullanın:

>>> dataset.set_transform(transforms)

Dönüşümün çalıştığını, ilk örneğin pixel_values dizinine indeksleyerek doğrulayabilirsiniz:

>>> import numpy as np
>>> import matplotlib.pyplot as plt

>>> img = dataset["train"][0]["pixel_values"]
>>> plt.imshow(img)

Bir görüntü sınıflandırma veri setini nasıl işleyeceğinizi öğrendiğinize göre, şimdi bir görüntü sınıflandırma modelini nasıl eğiteceğinizi ve çıkarım için nasıl kullanacağınızı öğrenin.

Update on GitHub