# 이미지 분류

이미지 분류 데이터셋은 모델이 전체 이미지를 분류하도록 학습하는 데 사용됩니다. 이러한 데이터셋을 통해 멸종 위기 야생 동물 종 식별이나 의료 이미지에서 질병 선별과 같은 다양한 애플리케이션을 구현할 수 있습니다. 이 가이드에서는 이미지 분류 데이터셋에 변환을 적용하는 방법을 보여줍니다.

시작하기 전에 `albumentations`와 `cv2`의 최신 버전이 설치되어 있는지 확인하세요:

```bash
pip install -U albumentations opencv-python
```

이 가이드는 잎의 이미지를 기반으로 콩 식물 질병의 유형을 식별하기 위해 [Beans](https://huggingface.co/datasets/beans) 데이터셋을 사용합니다.

데이터셋을 로드하고 예시를 확인해 보세요:

```py
>>> 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`를 사용하여 몇 가지 증강을 적용합니다. 이미지를 무작위로 잘라내고, 수평으로 뒤집고, 밝기를 조정합니다.

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

이미지에 변환을 적용하는 함수를 생성합니다:

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

[set_transform()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_transform) 함수를 사용하여 데이터셋의 배치에 변환을 온더플라이로 적용하여 디스크 공간을 덜 사용하도록 할 수 있습니다:

```py
>>> dataset.set_transform(transforms)
```

첫 번째 예시의 `pixel_values`에 인덱싱하여 변환이 제대로 수행되었는지 확인할 수 있습니다:

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

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

    
    

> [!TIP]
> 이미지 분류를 위한 데이터셋 처리 방법을 알게 되셨으니, [이미지 분류 모델을 학습하는 방법](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/image_classification.ipynb)과 추론 시 사용법을 배워보세요.

