You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

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 정보는 내보내기 페이지에서 확인하세요.