資料集文件

影像分類

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

影像分類

影像分類資料集用於訓練模型,將整張影像進行分類。這些資料集能實現多種應用,例如辨識瀕危野生動物物種,或在醫學影像中篩檢疾病。本指南將向您展示如何對影像分類資料集套用轉換處理。

開始之前,請確保您已安裝最新版本的 albumentationscv2

pip install -U albumentations opencv-python

本指南使用 Beans 資料集,根據葉片影像來辨識豆類植物的疾病類型。

載入資料集並查看範例

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

該資料集包含三個欄位

  • image:PIL 影像物件。
  • image_file_path:影像檔案的路徑。
  • labels:影像的標籤或類別。

接著,查看一張影像

現在使用 albumentations 套用一些增強功能。您將隨機裁切影像、進行水平翻轉,並調整其亮度。

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

建立一個函數,將轉換套用到影像上

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

使用 set_transform() 函數,在資料集批次處理時即時 (on-the-fly) 套用轉換,以節省硬碟空間。

>>> dataset.set_transform(transforms)

您可以透過索引第一個範例的 pixel_values 來驗證轉換是否成功

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

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

既然您已經知道如何處理用於影像分類的資料集,請學習如何訓練影像分類模型並將其用於推論。

在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.