이미지 분류는 가장 단순한 세 가지 작업 중 하나로, 전체 이미지를 미리 정의된 클래스 집합 중 하나로 분류하는 작업입니다.
이미지 분류기의 출력은 단일 클래스 라벨과 신뢰도 점수입니다. 이미지 분류는 클래스의 이미지만 알고 싶고 해당 클래스의 객체가 어디에 위치하고 있는지 또는 그 정확한 형태가 무엇인지 알 필요가 없을 때 유용합니다.
!!! 팁 "팁"
YOLOv8 분류 모델은 `-cls` 접미사를 사용합니다. 예: `yolov8n-cls.pt`이며, [ImageNet](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/ImageNet.yaml)에서 사전 훈련되었습니다.
여기에는 사전 훈련된 YOLOv8 분류 모델이 표시됩니다. Detect, Segment 및 Pose 모델은 [COCO](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml) 데이터셋에서 사전 훈련되고, 분류 모델은 [ImageNet](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/ImageNet.yaml) 데이터셋에서 사전 훈련됩니다.
[모델](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/models)은 첫 사용 시 최신 Ultralytics [릴리스](https://github.com/ultralytics/assets/releases)에서 자동으로 다운로드됩니다.
YOLO 분류 데이터셋 형식은 [데이터셋 가이드](../../datasets/classify/index.md)에서 자세히 확인할 수 있습니다.
## 검증
학습된 YOLOv8n-cls 모델의 정확도를 MNIST160 데이터셋에서 검증합니다. `model`은 모델 속성으로 훈련 시 `data` 및 인자를 유지하므로 추가 인자를 전달할 필요가 없습니다.
!!! 예제 ""
=== "Python"
```python
from ultralytics import YOLO
# 모델 불러오기
model = YOLO('yolov8n-cls.pt') # 공식 모델 불러오기
model = YOLO('path/to/best.pt') # 사용자 모델 불러오기
# 모델 검증
metrics = model.val() # 추가 인자 불필요, 데이터셋 및 설정 기억함
metrics.top1 # top1 정확도
metrics.top5 # top5 정확도
```
=== "CLI"
```bash
yolo classify val model=yolov8n-cls.pt # 공식 모델 검증
yolo classify val model=path/to/best.pt # 사용자 모델 검증
```
## 예측
학습된 YOLOv8n-cls 모델을 사용하여 이미지에 대한 예측을 실행합니다.
!!! 예제 ""
=== "Python"
```python
from ultralytics import YOLO
# 모델 불러오기
model = YOLO('yolov8n-cls.pt') # 공식 모델 불러오기
model = YOLO('path/to/best.pt') # 사용자 모델 불러오기
# 예측 실행
results = model('https://ultralytics.com/images/bus.jpg') # 이미지에 대한 예측 실행
```
=== "CLI"
```bash
yolo classify predict model=yolov8n-cls.pt source='https://ultralytics.com/images/bus.jpg' # 공식 모델로 예측 실행
yolo classify predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # 사용자 모델로 예측 실행
```
자세한 `predict` 모드 정보는 [예측](https://docs.ultralytics.com/modes/predict/) 페이지에서 확인하세요.
## 내보내기
YOLOv8n-cls 모델을 ONNX, CoreML 등과 같은 다른 형식으로 내보냅니다.
!!! 예제 ""
=== "Python"
```python
from ultralytics import YOLO
# 모델 불러오기
model = YOLO('yolov8n-cls.pt') # 공식 모델 불러오기
model = YOLO('path/to/best.pt') # 사용자 훈련 모델 불러오기
# 모델 내보내기
model.export(format='onnx')
```
=== "CLI"
```bash
yolo export model=yolov8n-cls.pt format=onnx # 공식 모델 내보내기
yolo export model=path/to/best.pt format=onnx # 사용자 훈련 모델 내보내기
```
아래 표에 사용 가능한 YOLOv8-cls 내보내기 형식이 나와 있습니다. 내보낸 모델에서 바로 예측하거나 검증할 수 있습니다. 즉, `yolo predict model=yolov8n-cls.onnx`를 사용할 수 있습니다. 내보내기가 완료된 후 모델에 대한 사용 예제들이 표시됩니다.