Datasets documentation

Klasifikasi gambar

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Klasifikasi gambar

Dataset klasifikasi gambar digunakan untuk melatih model mengklasifikasikan seluruh gambar. Terdapat beragam aplikasi yang didukung oleh dataset ini, seperti mengidentifikasi spesies satwa liar yang terancam punah atau melakukan skrining penyakit pada gambar medis. Panduan ini akan menunjukkan cara menerapkan transformasi pada dataset klasifikasi gambar.

Sebelum memulai, pastikan Anda telah menginstal versi terbaru dari albumentations dan cv2:

pip install -U albumentations opencv-python

Panduan ini menggunakan dataset Beans untuk mengidentifikasi jenis penyakit tanaman kacang berdasarkan gambar daunnya.

Muat dataset dan lihat contohnya:

>>> 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}

Dataset memiliki tiga bidang:

  • image: objek gambar PIL.
  • image_file_path: jalur ke file gambar.
  • labels: label atau kategori dari gambar.

Selanjutnya, lihat sebuah gambar:

Sekarang terapkan beberapa augmentasi dengan albumentations. Anda akan memotong gambar secara acak, membaliknya secara horizontal, dan menyesuaikan kecerahannya.

>>> 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),
... ])

Buat fungsi untuk menerapkan transformasi ke gambar:

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

Gunakan fungsi set_transform() untuk menerapkan transformasi secara langsung pada batch dataset guna mengurangi penggunaan ruang disk:

>>> dataset.set_transform(transforms)

Anda dapat memverifikasi bahwa transformasi berhasil dengan mengindeks ke dalam pixel_values dari contoh pertama:

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

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

Sekarang setelah Anda tahu cara memproses dataset untuk klasifikasi gambar, pelajari bagaimana cara melatih model klasifikasi gambar dan menggunakannya untuk inferensi.

Update on GitHub