Datasets documentation

Classificação de imagens

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

Classificação de imagens

Conjuntos de dados de classificação de imagens são usados para treinar um modelo a classificar uma imagem inteira. Existe uma grande variedade de aplicações habilitadas por esses conjuntos de dados, como identificar espécies de vida selvagem em perigo de extinção ou rastrear doenças em imagens médicas. Este guia mostrará como aplicar transformações a um conjunto de dados de classificação de imagens.

Antes de começar, verifique se você tem as versões mais recentes de albumentations e cv2 instaladas:

pip install -U albumentations opencv-python

Este guia utiliza o conjunto de dados Beans para identificar o tipo de doença em plantas de feijão com base em uma imagem de sua folha.

Carregue o conjunto de dados e veja um exemplo:

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

O conjunto de dados possui três campos:

  • image: um objeto de imagem PIL.
  • image_file_path: o caminho para o arquivo de imagem.
  • labels: o rótulo ou a categoria da imagem.

A seguir, veja uma imagem:

Agora aplique algumas aumentações com albumentations. Você recortará aleatoriamente a imagem, a virará horizontalmente e ajustará sua luminosidade.

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

Crie uma função para aplicar a transformação às imagens:

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

Use a função set_transform() para aplicar a transformação em tempo real aos lotes do conjunto de dados, consumindo menos espaço em disco:

>>> dataset.set_transform(transforms)

Você pode verificar se a transformação funcionou indexando os pixel_values do primeiro exemplo:

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

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

Agora que você sabe como processar um dataset para classificação de imagens, aprenda como treinar um modelo de classificação de imagens e usá-lo para inferência.

Update on GitHub