Datasets documentation
Clasificación de imágenes
Clasificación de imágenes
Los conjuntos de datos de clasificación de imágenes se utilizan para entrenar un modelo que clasifica una imagen completa. Estos conjuntos de datos habilitan una amplia variedad de aplicaciones, como la identificación de especies de vida silvestre en peligro de extinción o el cribado de enfermedades en imágenes médicas. Esta guía te mostrará cómo aplicar transformaciones a un conjunto de datos de clasificación de imágenes.
Antes de comenzar, asegúrate de tener instaladas las versiones más recientes de albumentations y cv2:
pip install -U albumentations opencv-python
Esta guía utiliza el conjunto de datos Beans para identificar el tipo de enfermedad de la planta de frijol a partir de una imagen de su hoja.
Cargue el conjunto de datos y eche un vistazo a un ejemplo:
>>> 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}El conjunto de datos tiene tres campos:
image: un objeto de imagen PIL.image_file_path: la ruta al archivo de imagen.labels: la etiqueta o categoría de la imagen.
A continuación, echa un vistazo a una imagen:

Ahora aplica algunas aumentaciones con albumentations. Recortarás aleatoriamente la imagen, la volcarás horizontalmente y ajustarás su brillo.
>>> 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),
... ])Cree una función para aplicar la transformación a las imágenes:
>>> def transforms(examples):
... examples["pixel_values"] = [
... transform(image=np.array(image))["image"] for image in examples["image"]
... ]
...
... return examplesUse la función set_transform() para aplicar la transformación al vuelo a los lotes del conjunto de datos y consumir menos espacio en disco:
>>> dataset.set_transform(transforms)Puedes verificar que la transformación funcionó indexando en pixel_values del primer ejemplo:
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> img = dataset["train"][0]["pixel_values"]
>>> plt.imshow(img)

Update on GitHubAhora que sabe cómo procesar un conjunto de datos para la clasificación de imágenes, aprenda cómo entrenar un modelo de clasificación de imágenes y usarlo para la inferencia.