Spaces:
Runtime error
A newer version of the Gradio SDK is available:
5.35.0
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
์ ์ ์ฒด ์ธ๋ถ ์ฌํญ์ ์์ถ ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค.