Datasets documentation

Phân loại hình ảnh

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

Phân loại hình ảnh

Bộ dữ liệu phân loại hình ảnh được sử dụng để huấn luyện mô hình phân loại toàn bộ một hình ảnh. Có rất nhiều ứng dụng được hỗ trợ bởi các bộ dữ liệu này, chẳng hạn như nhận diện các loài động vật hoang dã đang có nguy cơ tuyệt chủng hoặc sàng lọc bệnh trong các hình ảnh y tế. Hướng dẫn này sẽ cho bạn thấy cách áp dụng các phép biến đổi vào một bộ dữ liệu phân loại hình ảnh.

Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt các phiên bản mới nhất của albumentations và cv2:

pip install -U albumentations opencv-python

Hướng dẫn này sử dụng bộ dữ liệu Beans để xác định loại bệnh của cây đậu dựa trên hình ảnh lá của nó.

Tải bộ dữ liệu và xem một ví dụ:

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

Bộ dữ liệu có ba trường:

  • image: một đối tượng ảnh PIL.
  • image_file_path: đường dẫn đến tệp ảnh.
  • labels: nhãn hoặc danh mục của hình ảnh.

Tiếp theo, hãy xem một hình ảnh:

Bây giờ hãy áp dụng một số phép tăng dữ liệu với albumentations. Bạn sẽ cắt ngẫu nhiên hình ảnh, lật ngang và điều chỉnh độ sáng của nó.

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

Tạo một hàm để áp dụng phép biến đổi lên các hình ảnh:

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

Sử dụng hàm set_transform() để áp dụng phép biến đổi trực tiếp lên các lô dữ liệu của tập dữ liệu nhằm tiết kiệm dung lượng ổ đĩa:

>>> dataset.set_transform(transforms)

Bạn có thể kiểm tra xem phép biến đổi đã hoạt động hay chưa bằng cách truy cập vào pixel_values của ví dụ đầu tiên:

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

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

Bây giờ bạn đã biết cách xử lý một tập dữ liệu cho phân loại hình ảnh, hãy tìm hiểu cách huấn luyện một mô hình phân loại hình ảnh và sử dụng nó để suy luận.

Update on GitHub