Datasets documentation

画像分類

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

画像分類

画像分類データセットは、画像全体を分類するモデルの学習に使用されます。これらのデータセットにより、絶滅危惧種の野生動物の識別や、医療画像における疾患のスクリーニングなど、幅広いアプリケーションが実現できます。このガイドでは、画像分類データセットにトランスフォーメーションを適用する方法を示します。

開始する前に、albumentationsとcv2の最新バージョンがインストールされていることを確認してください。

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}

データセットには3つのフィールドがあります:

  • 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() 関数を使用して、データセットのバッチにトランスフォーメーションをオンザフライで適用し、ディスク容量の消費を削減できます:

>>> dataset.set_transform(transforms)

pixel_values の最初の例にインデックスを指定することで、変換が正常に実行されたことを確認できます。

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

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

画像分類用のデータセットの処理方法が分かったところで、画像分類モデルの学習方法と、推論での使用方法を学びましょう。

Update on GitHub