Datasets documentation

Clasificación de imágenes

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

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 examples

Use 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)

Ahora 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.

Update on GitHub