Datasets documentation
Classification d'images
Classification d'images
Les jeux de données de classification d’images servent à entraîner un modèle à classer une image entière. Ces jeux de données permettent de nombreuses applications, comme l’identification d’espèces de faune menacées ou le dépistage de maladies sur des images médicales. Ce guide vous montre comment appliquer des transformations à un jeu de données de classification d’images.
Avant de commencer, assurez-vous d'avoir installé des versions à jour de albumentations et cv2 :
pip install -U albumentations opencv-python
Ce guide utilise le jeu de données Beans pour identifier le type de maladie des plants de haricots à partir d'une image de leur feuille.
Chargez le jeu de données et examinez un exemple :
>>> 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}Le jeu de données comporte trois champs :
image: un objet d'image PIL.image_file_path: le chemin vers le fichier image.labels: l'étiquette ou la catégorie de l'image.
Ensuite, examinez une image :

Appliquez maintenant quelques augmentations avec albumentations. Vous allez recadrer l’image aléatoirement, la retourner horizontalement et ajuster sa luminosité.
>>> 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),
... ])Créez une fonction pour appliquer la transformation aux images :
>>> def transforms(examples):
... examples["pixel_values"] = [
... transform(image=np.array(image))["image"] for image in examples["image"]
... ]
...
... return examplesUtilisez la fonction set_transform() pour appliquer la transformation à la volée aux lots du jeu de données afin de réduire l’espace disque utilisé :
>>> dataset.set_transform(transforms)Vous pouvez vérifier que la transformation a fonctionné en accédant aux pixel_values du premier exemple :
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> img = dataset["train"][0]["pixel_values"]
>>> plt.imshow(img)

Update on GitHubMaintenant que vous savez comment traiter un jeu de données pour la classification d'images, apprenez comment entraîner un modèle de classification d'images et l'utiliser pour l'inférence.