Datasets 文档
图像分类
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
图像分类
图像分类数据集用于训练模型对整个图像进行分类。这些数据集支持多种应用,例如识别濒危野生动物物种或筛查医学图像中的疾病。本指南将向您展示如何对图像分类数据集应用变换。
在开始之前,请确保您已安装最新版本的 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}数据集有三个字段
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)

在 GitHub 上更新现在您知道了如何处理图像分类数据集,请学习 如何训练图像分类模型 并将其用于推理。