yolov8 / docs /ko /tasks /classify.md
ChelseaTang2023
added
ebdcee1

A newer version of the Gradio SDK is available: 5.35.0

Upgrade
metadata
comments: true
description: >-
  YOLOv8 ๋ถ„๋ฅ˜ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ์ •๋ณด๋ฅผ ์•Œ์•„๋ณด์„ธ์š”. ์‚ฌ์ „ ํ›ˆ๋ จ๋œ ๋ชจ๋ธ ๋ชฉ๋ก๊ณผ ๋ชจ๋ธ ํ•™์Šต, ๊ฒ€์ฆ, ์˜ˆ์ธก, ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ
  ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
keywords: 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 ์ •๋ณด๋Š” ๋‚ด๋ณด๋‚ด๊ธฐ ํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•˜์„ธ์š”.