Sleeping-post-detection-fir.../docs/ko/tasks/classify.md

11 KiB

comments description keywords
true YOLOv8 분류 모델에 대한 이미지 분류 정보를 알아보세요. 사전 훈련된 모델 목록과 모델 학습, 검증, 예측, 내보내기 방법에 대한 자세한 정보를 확인하실 수 있습니다. Ultralytics, YOLOv8, 이미지 분류, 사전 훈련된 모델, YOLOv8n-cls, 학습, 검증, 예측, 모델 내보내기

이미지 분류

Image classification examples

이미지 분류는 가장 단순한 세 가지 작업 중 하나로, 전체 이미지를 미리 정의된 클래스 집합 중 하나로 분류하는 작업입니다.

이미지 분류기의 출력은 단일 클래스 라벨과 신뢰도 점수입니다. 이미지 분류는 클래스의 이미지만 알고 싶고 해당 클래스의 객체가 어디에 위치하고 있는지 또는 그 정확한 형태가 무엇인지 알 필요가 없을 때 유용합니다.

!!! Tip "팁"

YOLOv8 분류 모델은 `-cls` 접미사를 사용합니다. 예: `yolov8n-cls.pt`이며, [ImageNet](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/ImageNet.yaml)에서 사전 훈련되었습니다.

모델

여기에는 사전 훈련된 YOLOv8 분류 모델이 표시됩니다. Detect, Segment 및 Pose 모델은 COCO 데이터셋에서 사전 훈련되고, 분류 모델은 ImageNet 데이터셋에서 사전 훈련됩니다.

모델은 첫 사용 시 최신 Ultralytics 릴리스에서 자동으로 다운로드됩니다.

모델 크기
(픽셀)
정확도
top1
정확도
top5
속도
CPU ONNX
(ms)
속도
A100 TensorRT
(ms)
매개변수
(M)
FLOPs
(B) at 640
YOLOv8n-cls 224 66.6 87.0 12.9 0.31 2.7 4.3
YOLOv8s-cls 224 72.3 91.1 23.4 0.35 6.4 13.5
YOLOv8m-cls 224 76.4 93.2 85.4 0.62 17.0 42.7
YOLOv8l-cls 224 78.0 94.1 163.0 0.87 37.5 99.7
YOLOv8x-cls 224 78.4 94.3 232.0 1.01 57.4 154.8
  • 정확도 값은 ImageNet 데이터셋 검증 세트에서의 모델 정확도입니다.
    ImageNet에서 재현 가능합니다: yolo val classify data=path/to/ImageNet device=0
  • 속도Amazon EC2 P4d 인스턴스를 사용해 ImageNet 검증 이미지들의 평균 속도입니다.
    ImageNet에서 재현 가능합니다: yolo val classify data=path/to/ImageNet batch=1 device=0|cpu

학습

YOLOv8n-cls 모델을 MNIST160 데이터셋에서 100 에포크 동안 학습시키고 이미지 크기는 64로 설정합니다. 가능한 모든 인자는 설정 페이지에서 확인할 수 있습니다.

!!! Example "예제"

=== "Python"

    ```python
    from ultralytics import YOLO

    # 모델 불러오기
    model = YOLO('yolov8n-cls.yaml')  # YAML에서 새 모델 구축
    model = YOLO('yolov8n-cls.pt')  # 사전 훈련된 모델 불러오기 (학습용 추천)
    model = YOLO('yolov8n-cls.yaml').load('yolov8n-cls.pt')  # YAML로 구축하고 가중치 전송

    # 모델 학습
    result = model.train(data='mnist160', epochs=100, imgsz=64)
    ```

=== "CLI"

    ```bash
    # YAML에서 새 모델을 구축하고 처음부터 학습 시작
    yolo classify train data=mnist160 model=yolov8n-cls.yaml epochs=100 imgsz=64

    # 사전 훈련된 *.pt 모델에서 학습 시작
    yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64

    # YAML에서 새 모델을 구축하고 사전 훈련된 가중치를 전송한 뒤 학습 시작
    yolo classify train data=mnist160 model=yolov8n-cls.yaml pretrained=yolov8n-cls.pt epochs=100 imgsz=64
    ```

데이터셋 형식

YOLO 분류 데이터셋 형식은 데이터셋 가이드에서 자세히 확인할 수 있습니다.

검증

학습된 YOLOv8n-cls 모델의 정확도를 MNIST160 데이터셋에서 검증합니다. model은 모델 속성으로 훈련 시 data 및 인자를 유지하므로 추가 인자를 전달할 필요가 없습니다.

!!! Example "예제"

=== "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 모델을 사용하여 이미지에 대한 예측을 실행합니다.

!!! Example "예제"

=== "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 모드 정보는 예측 페이지에서 확인하세요.

내보내기

YOLOv8n-cls 모델을 ONNX, CoreML 등과 같은 다른 형식으로 내보냅니다.

!!! Example "예제"

=== "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를 사용할 수 있습니다. 내보내기가 완료된 후 모델에 대한 사용 예제들이 표시됩니다.

형식 format 인자 모델 메타데이터 인자
PyTorch - yolov8n-cls.pt -
TorchScript torchscript yolov8n-cls.torchscript imgsz, optimize
ONNX onnx yolov8n-cls.onnx imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n-cls_openvino_model/ imgsz, half
TensorRT engine yolov8n-cls.engine imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n-cls.mlpackage imgsz, half, int8, nms
TF SavedModel saved_model yolov8n-cls_saved_model/ imgsz, keras
TF GraphDef pb yolov8n-cls.pb imgsz
TF Lite tflite yolov8n-cls.tflite imgsz, half, int8
TF Edge TPU edgetpu yolov8n-cls_edgetpu.tflite imgsz
TF.js tfjs yolov8n-cls_web_model/ imgsz
PaddlePaddle paddle yolov8n-cls_paddle_model/ imgsz
ncnn ncnn yolov8n-cls_ncnn_model/ imgsz, half

자세한 export 정보는 내보내기 페이지에서 확인하세요.