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

A newer version of the Gradio SDK is available: 5.35.0

Upgrade
metadata
comments: true
description: >-
  Ultralytics 곡식 YOLOv8 λ¬Έμ„œμž…λ‹ˆλ‹€. λͺ¨λΈ ν›ˆλ ¨, 검증, 예츑 및 λ‹€μ–‘ν•œ ν˜•μ‹μœΌλ‘œ λͺ¨λΈ 내보내기 방법을 λ°°μš°μ‹­μ‹œμ˜€. 세뢀적인
  μ„±λŠ₯ 톡계λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
keywords: >-
  YOLOv8, Ultralytics, 객체 감지, 사전 ν›ˆλ ¨λœ λͺ¨λΈ, ν›ˆλ ¨, 검증, 예츑, λͺ¨λΈ 내보내기, COCO, ImageNet,
  PyTorch, ONNX, CoreML

객체 감지

객체 감지 예제

객체 κ°μ§€λŠ” 이미지 λ˜λŠ” λΉ„λ””μ˜€ 슀트림 λ‚΄μ˜ 객체의 μœ„μΉ˜μ™€ 클래슀λ₯Ό μ‹λ³„ν•˜λŠ” μž‘μ—…μž…λ‹ˆλ‹€.

객체 κ°μ§€κΈ°μ˜ 좜λ ₯은 이미지 속 객체λ₯Ό λ‚΄ν¬ν•˜λŠ” 경계 μƒμž(bounding box) μ„ΈνŠΈμ™€ 각 μƒμžμ— λŒ€ν•œ 클래슀 λ ˆμ΄λΈ”κ³Ό 신뒰도 점수λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€. μž₯λ©΄ λ‚΄ 관심 객체λ₯Ό 식별해야 ν•˜μ§€λ§Œ 객체의 μ •ν™•ν•œ μœ„μΉ˜λ‚˜ μ •ν™•ν•œ λͺ¨μ–‘을 μ•Œ ν•„μš”κ°€ 없을 λ•Œ 객체 감지가 쒋은 μ„ νƒμž…λ‹ˆλ‹€.



μ‹œμ²­ν•˜κΈ°: 사전 ν›ˆλ ¨λœ Ultralytics YOLOv8 λͺ¨λΈλ‘œ 객체 κ°μ§€ν•˜κΈ°.

!!! Tip "팁"

YOLOv8 Detect λͺ¨λΈλ“€μ€ κΈ°λ³Έ YOLOv8 λͺ¨λΈμ΄λ©° 예λ₯Ό λ“€μ–΄ `yolov8n.pt` 이 [COCO](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml) λ°μ΄ν„°μ…‹μ—μ„œ 사전 ν›ˆλ ¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λΈ

μ—¬κΈ°μ„œλŠ” YOLOv8 사전 ν›ˆλ ¨λœ Detect λͺ¨λΈμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. Detect, Segment, 및 Pose λͺ¨λΈμ€ COCO λ°μ΄ν„°μ…‹μ—μ„œ, Classify λͺ¨λΈμ€ ImageNet λ°μ΄ν„°μ…‹μ—μ„œ 사전 ν›ˆλ ¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λΈμ€ 첫 μ‚¬μš© μ‹œ Ultralytics의 μ΅œμ‹  λ¦΄λ¦¬μ¦ˆμ—μ„œ μžλ™μœΌλ‘œ λ‹€μš΄λ‘œλ“œλ©λ‹ˆλ‹€.

λͺ¨λΈ 크기
(ν”½μ…€)
mAPval
50-95
속도
CPU ONNX
(ms)
속도
A100 TensorRT
(ms)
νŒŒλΌλ―Έν„°
(M)
FLOPs
(B)
YOLOv8n 640 37.3 80.4 0.99 3.2 8.7
YOLOv8s 640 44.9 128.4 1.20 11.2 28.6
YOLOv8m 640 50.2 234.7 1.83 25.9 78.9
YOLOv8l 640 52.9 375.2 2.39 43.7 165.2
YOLOv8x 640 53.9 479.1 3.53 68.2 257.8
  • mAPval 값은 COCO val2017 λ°μ΄ν„°μ…‹μ—μ„œ 단일 λͺ¨λΈ 단일 μŠ€μΌ€μΌμ„ μ‚¬μš©ν•œ κ°’μž…λ‹ˆλ‹€.
    COCO 데이터와 yolo val detect data=coco.yaml device=0 λͺ…λ ΉμœΌλ‘œ μž¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ†λ„λŠ” Amazon EC2 P4d μΈμŠ€ν„΄μŠ€λ₯Ό μ‚¬μš©ν•΄ COCO val 이미지듀을 ν‰κ· ν•œ κ²ƒμž…λ‹ˆλ‹€.
    COCO128 데이터와 yolo val detect data=coco128.yaml batch=1 device=0|cpu λͺ…λ ΉμœΌλ‘œ μž¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν›ˆλ ¨

COCO128 λ°μ΄ν„°μ…‹μ—μ„œ 이미지 크기 640으둜 YOLOv8n λͺ¨λΈμ„ 100 에포크 λ™μ•ˆ ν›ˆλ ¨ν•©λ‹ˆλ‹€. κ°€λŠ₯ν•œ λͺ¨λ“  μΈμˆ˜μ— λŒ€ν•œ λͺ©λ‘μ€ μ„€μ • νŽ˜μ΄μ§€μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

!!! Example "예제"

=== "Python"

    ```python
    from ultralytics import YOLO

    # λͺ¨λΈ λ‘œλ“œν•˜κΈ°
    model = YOLO('yolov8n.yaml')  # YAMLμ—μ„œ μƒˆ λͺ¨λΈμ„ λΉŒλ“œν•©λ‹ˆλ‹€.
    model = YOLO('yolov8n.pt')  # 사전 ν›ˆλ ¨λœ λͺ¨λΈμ„ λ‘œλ“œν•©λ‹ˆλ‹€(ν›ˆλ ¨μ„ μœ„ν•΄ ꢌμž₯λ©λ‹ˆλ‹€).
    model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # YAMLμ—μ„œ λΉŒλ“œν•˜κ³  κ°€μ€‘μΉ˜λ₯Ό μ „λ‹¬ν•©λ‹ˆλ‹€.

    # λͺ¨λΈ ν›ˆλ ¨ν•˜κΈ°
    results = model.train(data='coco128.yaml', epochs=100, imgsz=640)
    ```
=== "CLI"

    ```bash
    # YAMLμ—μ„œ μƒˆ λͺ¨λΈμ„ λΉŒλ“œν•˜κ³  μ²˜μŒλΆ€ν„° ν›ˆλ ¨μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.
    yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640

    # 사전 ν›ˆλ ¨λœ *.pt λͺ¨λΈλ‘œλΆ€ν„° ν›ˆλ ¨μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.
    yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640

    # YAMLμ—μ„œ μƒˆ λͺ¨λΈμ„ λΉŒλ“œν•˜κ³ , 사전 ν›ˆλ ¨λœ κ°€μ€‘μΉ˜λ₯Ό μ „λ‹¬ν•œ ν›„ ν›ˆλ ¨μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.
    yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640
    ```

데이터셋 ν˜•μ‹

YOLO 감지 데이터셋 ν˜•μ‹μ€ 데이터셋 κ°€μ΄λ“œμ—μ„œ μžμ„Ένžˆ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ ν˜•μ‹(예: COCO λ“±)의 κΈ°μ‘΄ 데이터셋을 YOLO ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λ €λ©΄ Ultralytics의 JSON2YOLO 도ꡬλ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

검증

COCO128 λ°μ΄ν„°μ…‹μ—μ„œ ν›ˆλ ¨λœ YOLOv8n λͺ¨λΈμ˜ 정확도λ₯Ό κ²€μ¦ν•©λ‹ˆλ‹€. model은 ν›ˆλ ¨ μ‹œμ˜ data와 인수λ₯Ό λͺ¨λΈ μ†μ„±μœΌλ‘œ λ³΄μ‘΄ν•˜κΈ° λ•Œλ¬Έμ— 인수λ₯Ό 전달할 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

!!! Example "예제"

=== "Python"

    ```python
    from ultralytics import YOLO

    # λͺ¨λΈ λ‘œλ“œν•˜κΈ°
    model = YOLO('yolov8n.pt')  # 곡식 λͺ¨λΈμ„ λ‘œλ“œν•©λ‹ˆλ‹€.
    model = YOLO('path/to/best.pt')  # μ‚¬μš©μž μ •μ˜ λͺ¨λΈμ„ λ‘œλ“œν•©λ‹ˆλ‹€.

    # λͺ¨λΈ κ²€μ¦ν•˜κΈ°
    metrics = model.val()  # 데이터셋과 섀정을 κΈ°μ–΅ν•˜λ‹ˆ μΈμˆ˜λŠ” ν•„μš” μ—†μŠ΅λ‹ˆλ‹€.
    metrics.box.map    # map50-95
    metrics.box.map50  # map50
    metrics.box.map75  # map75
    metrics.box.maps   # 각 μΉ΄ν…Œκ³ λ¦¬μ˜ map50-95κ°€ ν¬ν•¨λœ λ¦¬μŠ€νŠΈμž…λ‹ˆλ‹€.
    ```
=== "CLI"

    ```bash
    yolo detect val model=yolov8n.pt  # 곡식 λͺ¨λΈ κ²€μ¦ν•˜κΈ°
    yolo detect val model=path/to/best.pt  # μ‚¬μš©μž μ •μ˜ λͺ¨λΈ κ²€μ¦ν•˜κΈ°
    ```

예츑

ν›ˆλ ¨λœ YOLOv8n λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ 이미지에 λŒ€ν•œ μ˜ˆμΈ‘μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

!!! Example "예제"

=== "Python"

    ```python
    from ultralytics import YOLO

    # λͺ¨λΈ λ‘œλ“œν•˜κΈ°
    model = YOLO('yolov8n.pt')  # 곡식 λͺ¨λΈμ„ λ‘œλ“œν•©λ‹ˆλ‹€.
    model = YOLO('path/to/best.pt')  # μ‚¬μš©μž μ •μ˜ λͺ¨λΈμ„ λ‘œλ“œν•©λ‹ˆλ‹€.

    # λͺ¨λΈλ‘œ μ˜ˆμΈ‘ν•˜κΈ°
    results = model('https://ultralytics.com/images/bus.jpg')  # 이미지에 λŒ€ν•΄ μ˜ˆμΈ‘ν•©λ‹ˆλ‹€.
    ```
=== "CLI"

    ```bash
    yolo detect predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'  # 곡식 λͺ¨λΈλ‘œ μ˜ˆμΈ‘ν•˜κΈ°
    yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # μ‚¬μš©μž μ •μ˜ λͺ¨λΈλ‘œ μ˜ˆμΈ‘ν•˜κΈ°
    ```

전체 'predict' λͺ¨λ“œ μ„ΈλΆ€ 사항은 Predict νŽ˜μ΄μ§€μ—μ„œ ν™•μΈν•˜μ„Έμš”.

내보내기

YOLOv8n λͺ¨λΈμ„ ONNX, CoreML λ“±κ³Ό 같은 λ‹€λ₯Έ ν˜•μ‹μœΌλ‘œ λ‚΄λ³΄λƒ…λ‹ˆλ‹€.

!!! Example "예제"

=== "Python"

    ```python
    from ultralytics import YOLO

    # λͺ¨λΈ λ‘œλ“œν•˜κΈ°
    model = YOLO('yolov8n.pt')  # 곡식 λͺ¨λΈμ„ λ‘œλ“œν•©λ‹ˆλ‹€.
    model = YOLO('path/to/best.pt')  # μ‚¬μš©μž μ •μ˜ λͺ¨λΈμ„ λ‘œλ“œν•©λ‹ˆλ‹€.

    # λͺ¨λΈ 내보내기
    model.export(format='onnx')
    ```
=== "CLI"

    ```bash
    yolo export model=yolov8n.pt format=onnx  # 곡식 λͺ¨λΈ 내보내기
    yolo export model=path/to/best.pt format=onnx  # μ‚¬μš©μž μ •μ˜ λͺ¨λΈ 내보내기
    ```

μ‚¬μš© κ°€λŠ₯ν•œ YOLOv8 내보내기 ν˜•μ‹μ€ μ•„λž˜ ν‘œμ— λ‚˜μ™€ μžˆμŠ΅λ‹ˆλ‹€. 내보내기 μ™„λ£Œ ν›„ μ‚¬μš© μ˜ˆμ‹œλŠ” λͺ¨λΈμ— λŒ€ν•΄ λ³΄μ—¬μ€λ‹ˆλ‹€.

ν˜•μ‹ format 인수 λͺ¨λΈ 메타데이터 인수
PyTorch - yolov8n.pt βœ… -
TorchScript torchscript yolov8n.torchscript βœ… imgsz, optimize
ONNX onnx yolov8n.onnx βœ… imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n_openvino_model/ βœ… imgsz, half
TensorRT engine yolov8n.engine βœ… imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n.mlpackage βœ… imgsz, half, int8, nms
TF SavedModel saved_model yolov8n_saved_model/ βœ… imgsz, keras
TF GraphDef pb yolov8n.pb ❌ imgsz
TF Lite tflite yolov8n.tflite βœ… imgsz, half, int8
TF Edge TPU edgetpu yolov8n_edgetpu.tflite βœ… imgsz
TF.js tfjs yolov8n_web_model/ βœ… imgsz
PaddlePaddle paddle yolov8n_paddle_model/ βœ… imgsz
ncnn ncnn yolov8n_ncnn_model/ βœ… imgsz, half

전체 'export' μ„ΈλΆ€ 사항은 Export νŽ˜μ΄μ§€μ—μ„œ ν™•μΈν•˜μ„Έμš”.