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

A newer version of the Gradio SDK is available: 5.35.0

Upgrade
metadata
comments: true
description: Ultralytics YOLO๋ฅผ ์ด์šฉํ•œ ์ธ์Šคํ„ด์Šค ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ ๋ชจ๋ธ ์‚ฌ์šฉ๋ฒ• ๋ฐฐ์šฐ๊ธฐ. ํ›ˆ๋ จ, ๊ฒ€์ฆ, ์ด๋ฏธ์ง€ ์˜ˆ์ธก ๋ฐ ๋ชจ๋ธ ์ˆ˜์ถœ์— ๋Œ€ํ•œ ์ง€์นจ.
keywords: >-
  yolov8, ์ธ์Šคํ„ด์Šค ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜, Ultralytics, COCO ๋ฐ์ดํ„ฐ์…‹, ์ด๋ฏธ์ง€ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜, ๊ฐ์ฒด ํƒ์ง€, ๋ชจ๋ธ ํ›ˆ๋ จ, ๋ชจ๋ธ ๊ฒ€์ฆ,
  ์ด๋ฏธ์ง€ ์˜ˆ์ธก, ๋ชจ๋ธ ์ˆ˜์ถœ

์ธ์Šคํ„ด์Šค ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜

์ธ์Šคํ„ด์Šค ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ ์˜ˆ์‹œ

์ธ์Šคํ„ด์Šค ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์€ ๊ฐ์ฒด ํƒ์ง€๋ฅผ ํ•œ ๋‹จ๊ณ„ ๋” ๋ฐœ์ „์‹œ์ผœ ์ด๋ฏธ์ง€์—์„œ ๊ฐ๊ฐ์˜ ๊ฐœ๋ณ„ ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์ด๋ฏธ์ง€์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์—์„œ ๋ถ„๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šค ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ ๋ชจ๋ธ์˜ ์ถœ๋ ฅ์€ ์ด๋ฏธ์ง€์˜ ๊ฐ ๊ฐ์ฒด๋ฅผ ์œค๊ณฝํ•˜๋Š” ๋งˆ์Šคํฌ๋‚˜ ์œค๊ณฝ ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ ๊ฐ์ฒด์— ๋Œ€ํ•œ ํด๋ž˜์Šค ๋ ˆ์ด๋ธ”๊ณผ ์‹ ๋ขฐ๋„ ์ ์ˆ˜๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด๋“ค์ด ์ด๋ฏธ์ง€ ์•ˆ์—์„œ ์–ด๋””์— ์žˆ๋Š”์ง€ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ทธ๋“ค์˜ ์ •ํ™•ํ•œ ํ˜•ํƒœ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„์•ผ ํ•  ๋•Œ ์ธ์Šคํ„ด์Šค ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.



์‹œ์ฒญํ•˜๊ธฐ: Python์—์„œ ์‚ฌ์ „ ํ›ˆ๋ จ๋œ Ultralytics YOLOv8 ๋ชจ๋ธ๋กœ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ ์‹คํ–‰.

!!! Tip "ํŒ"

YOLOv8 Segment ๋ชจ๋ธ์€ '-seg' ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ฆ‰, `yolov8n-seg.pt`์™€ ๊ฐ™์ด [COCO](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml) ๋ฐ์ดํ„ฐ์…‹์— ์‚ฌ์ „ ํ›ˆ๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ

์—ฌ๊ธฐ์—๋Š” YOLOv8 ์‚ฌ์ „ ํ›ˆ๋ จ ์„ธ๊ทธ๋จผํŠธ ๋ชจ๋ธ๋“ค์ด ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Detect, Segment, Pose ๋ชจ๋ธ๋“ค์€ COCO ๋ฐ์ดํ„ฐ์…‹์— ์‚ฌ์ „ ํ›ˆ๋ จ๋˜์–ด ์žˆ์œผ๋ฉฐ, Classify ๋ชจ๋ธ๋“ค์€ ImageNet ๋ฐ์ดํ„ฐ์…‹์— ์‚ฌ์ „ ํ›ˆ๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ์€ ์ฒซ ์‚ฌ์šฉ ์‹œ Ultralytics์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์—์„œ ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋ธ ํฌ๊ธฐ
(ํ”ฝ์…€)
mAP๋ฐ•์Šค
50-95
mAP๋งˆ์Šคํฌ
50-95
์†๋„
CPU ONNX
(๋ฐ€๋ฆฌ์ดˆ)
์†๋„
A100 TensorRT
(๋ฐ€๋ฆฌ์ดˆ)
๋งค๊ฐœ๋ณ€์ˆ˜
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1
  • mAPval ๊ฐ’๋“ค์€ COCO val2017 ๋ฐ์ดํ„ฐ์…‹์—์„œ ๋‹จ์ผ ๋ชจ๋ธ ๋‹จ์ผ ์Šค์ผ€์ผ๋กœ ์–ป์€ ๊ฐ’์ž…๋‹ˆ๋‹ค.
    ๋ณต์ œ๋Š” yolo val segment data=coco.yaml device=0 ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์†๋„๋Š” Amazon EC2 P4d ์ธ์Šคํ„ด์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ COCO ๊ฒ€์ฆ ์ด๋ฏธ์ง€๋กœ ํ‰๊ท  ๋‚ด์—ˆ์Šต๋‹ˆ๋‹ค.
    ๋ณต์ œ๋Š” yolo val segment data=coco128-seg.yaml batch=1 device=0|cpu ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ›ˆ๋ จ

COCO128-seg ๋ฐ์ดํ„ฐ์…‹์—์„œ ์ด๋ฏธ์ง€ ํฌ๊ธฐ 640์œผ๋กœ YOLOv8n-seg์„ 100 ์—ํฌํฌ ๋™์•ˆ ํ›ˆ๋ จํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ธ์ž ๋ชฉ๋ก์€ ์„ค์ • ํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

!!! Example "์˜ˆ์ œ"

=== "ํŒŒ์ด์ฌ"

    ```python
    from ultralytics import YOLO

    # ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค
    model = YOLO('yolov8n-seg.yaml')  # YAML์—์„œ ์ƒˆ๋กœ์šด ๋ชจ๋ธ์„ ๊ตฌ์„ฑ
    model = YOLO('yolov8n-seg.pt')    # ์‚ฌ์ „ ํ›ˆ๋ จ๋œ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ด (ํ›ˆ๋ จ์— ์ถ”์ฒœ)
    model = YOLO('yolov8n-seg.yaml').load('yolov8n.pt') # YAML์—์„œ ๊ตฌ์„ฑํ•˜๊ณ  ๊ฐ€์ค‘์น˜๋ฅผ ์ „๋‹ฌ

    # ๋ชจ๋ธ์„ ํ›ˆ๋ จ์‹œํ‚ต๋‹ˆ๋‹ค
    results = model.train(data='coco128-seg.yaml', epochs=100, imgsz=640)
    ```
=== "CLI"

    ```bash
    # YAML์—์„œ ์ƒˆ๋กœ์šด ๋ชจ๋ธ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ํ›ˆ๋ จ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค
    yolo segment train data=coco128-seg.yaml model=yolov8n-seg.yaml epochs=100 imgsz=640

    # ์‚ฌ์ „ ํ›ˆ๋ จ๋œ *.pt ๋ชจ๋ธ๋กœ ๋ถ€ํ„ฐ ํ›ˆ๋ จ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค
    yolo segment train data=coco128-seg.yaml model=yolov8n-seg.pt epochs=100 imgsz=640

    # YAML์—์„œ ์ƒˆ๋กœ์šด ๋ชจ๋ธ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์‚ฌ์ „ ํ›ˆ๋ จ๋œ ๊ฐ€์ค‘์น˜๋ฅผ ์ „๋‹ฌํ•œ ๋’ค ํ›ˆ๋ จ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค
    yolo segment train data=coco128-seg.yaml model=yolov8n-seg.yaml pretrained=yolov8n-seg.pt epochs=100 imgsz=640
    ```

๋ฐ์ดํ„ฐ์…‹ ํ˜•์‹

YOLO ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ ๋ฐ์ดํ„ฐ์…‹ ํ˜•์‹์€ ๋ฐ์ดํ„ฐ์…‹ ๊ฐ€์ด๋“œ์—์„œ ์ž์„ธํžˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฐ์ดํ„ฐ์…‹ (COCO ๋“ฑ)์„ YOLO ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด Ultralytics์˜ JSON2YOLO ๋„๊ตฌ๋ฅผ ์ด์šฉํ•˜์„ธ์š”.

๊ฒ€์ฆ

COCO128-seg ๋ฐ์ดํ„ฐ์…‹์—์„œ ํ›ˆ๋ จ๋œ YOLOv8n-seg ๋ชจ๋ธ์˜ ์ •ํ™•๋„๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์€ ํ›ˆ๋ จํ•  ๋•Œ์˜ data์™€ ์ธ์ž๋ฅผ ๋ชจ๋ธ ์†์„ฑ์œผ๋กœ ๊ธฐ์–ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์ธ์ž๋ฅผ ์ „๋‹ฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

!!! Example "์˜ˆ์ œ"

=== "ํŒŒ์ด์ฌ"

    ```python
    from ultralytics import YOLO

    # ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค
    model = YOLO('yolov8n-seg.pt')    # ๊ณต์‹ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ด
    model = YOLO('path/to/best.pt')    # ์ปค์Šคํ…€ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ด

    # ๋ชจ๋ธ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค
    metrics = model.val()  # ๋ฐ์ดํ„ฐ์…‹๊ณผ ์„ค์ •์ด ๊ธฐ์–ต๋˜์–ด ์žˆ์–ด ์ธ์ž๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค
    metrics.box.map    # map50-95(B)
    metrics.box.map50  # map50(B)
    metrics.box.map75  # map75(B)
    metrics.box.maps   # ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ map50-95(B) ๋ฆฌ์ŠคํŠธ
    metrics.seg.map    # map50-95(M)
    metrics.seg.map50  # map50(M)
    metrics.seg.map75  # map75(M)
    metrics.seg.maps   # ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ map50-95(M) ๋ฆฌ์ŠคํŠธ
    ```
=== "CLI"

    ```bash
    yolo segment val model=yolov8n-seg.pt  # ๊ณต์‹ ๋ชจ๋ธ๋กœ ๊ฒ€์ฆ
    yolo segment val model=path/to/best.pt  # ์ปค์Šคํ…€ ๋ชจ๋ธ๋กœ ๊ฒ€์ฆ
    ```

์˜ˆ์ธก

ํ›ˆ๋ จ๋œ YOLOv8n-seg ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์˜ˆ์ธก์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

!!! Example "์˜ˆ์ œ"

=== "ํŒŒ์ด์ฌ"

    ```python
    from ultralytics import YOLO

    # ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค
    model = YOLO('yolov8n-seg.pt')    # ๊ณต์‹ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ด
    model = YOLO('path/to/best.pt')    # ์ปค์Šคํ…€ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ด

    # ๋ชจ๋ธ๋กœ ์˜ˆ์ธก์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค
    results = model('https://ultralytics.com/images/bus.jpg')  # ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์˜ˆ์ธก
    ```
=== "CLI"

    ```bash
    yolo segment predict model=yolov8n-seg.pt source='https://ultralytics.com/images/bus.jpg'  # ๊ณต์‹ ๋ชจ๋ธ๋กœ ์˜ˆ์ธก ์‹คํ–‰
    yolo segment predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # ์ปค์Šคํ…€ ๋ชจ๋ธ๋กœ ์˜ˆ์ธก ์‹คํ–‰
    ```

predict ๋ชจ๋“œ์˜ ์ „์ฒด ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ์˜ˆ์ธก ํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์ถœ

ONNX, CoreML ๋“ฑ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํ˜•์‹์œผ๋กœ YOLOv8n-seg ๋ชจ๋ธ์„ ์ˆ˜์ถœํ•ฉ๋‹ˆ๋‹ค.

!!! Example "์˜ˆ์ œ"

=== "ํŒŒ์ด์ฌ"

    ```python
    from ultralytics import YOLO

    # ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค
    model = YOLO('yolov8n-seg.pt')    # ๊ณต์‹ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ด
    model = YOLO('path/to/best.pt')    # ์ปค์Šคํ…€ ํ›ˆ๋ จ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ด

    # ๋ชจ๋ธ์„ ์ˆ˜์ถœํ•ฉ๋‹ˆ๋‹ค
    model.export(format='onnx')
    ```
=== "CLI"

    ```bash
    yolo export model=yolov8n-seg.pt format=onnx  # ๊ณต์‹ ๋ชจ๋ธ์„ ์ˆ˜์ถœํ•ฉ๋‹ˆ๋‹ค
    yolo export model=path/to/best.pt format=onnx  # ์ปค์Šคํ…€ ํ›ˆ๋ จ ๋ชจ๋ธ์„ ์ˆ˜์ถœํ•ฉ๋‹ˆ๋‹ค
    ```

์•„๋ž˜ ํ‘œ์— ๋‚˜์—ด๋œ ๊ฒƒ์€ ๊ฐ€๋Šฅํ•œ YOLOv8-seg ์ˆ˜์ถœ ํ˜•์‹์ž…๋‹ˆ๋‹ค. ์ˆ˜์ถœ ์™„๋ฃŒ ํ›„ ๋ชจ๋ธ ์‚ฌ์šฉ ์˜ˆ๋Š” ๋ชจ๋ธ์„ ์ง์ ‘ ์˜ˆ์ธกํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ฆํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜•์‹ format ์ธ์ž ๋ชจ๋ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ธ์ž
PyTorch - yolov8n-seg.pt โœ… -
TorchScript torchscript yolov8n-seg.torchscript โœ… imgsz, optimize
ONNX onnx yolov8n-seg.onnx โœ… imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n-seg_openvino_model/ โœ… imgsz, half
TensorRT engine yolov8n-seg.engine โœ… imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n-seg.mlpackage โœ… imgsz, half, int8, nms
TF SavedModel saved_model yolov8n-seg_saved_model/ โœ… imgsz, keras
TF GraphDef pb yolov8n-seg.pb โŒ imgsz
TF Lite tflite yolov8n-seg.tflite โœ… imgsz, half, int8
TF Edge TPU edgetpu yolov8n-seg_edgetpu.tflite โœ… imgsz
TF.js tfjs yolov8n-seg_web_model/ โœ… imgsz
PaddlePaddle paddle yolov8n-seg_paddle_model/ โœ… imgsz
ncnn ncnn yolov8n-seg_ncnn_model/ โœ… imgsz, half

export์˜ ์ „์ฒด ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ์ˆ˜์ถœ ํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.