μΈμ€ν΄μ€ μΈλΆν
μΈμ€ν΄μ€ λΆν μ κ°μ²΄ κ°μ§λ³΄λ€ ν λ¨κ³ λ λμκ° μ΄λ―Έμ§μμ κ°λ³ κ°μ²΄λ₯Ό μλ³νκ³ λλ¨Έμ§ μ΄λ―Έμ§μμ κ°μ²΄λ₯Ό λΆν νλ μμ μ ν¬ν¨ν©λλ€.
μΈμ€ν΄μ€ λΆν λͺ¨λΈμ μΆλ ₯μ μ΄λ―Έμ§μ κ° κ°μ²΄μ λν ν΄λμ€ λ μ΄λΈ λ° μ λ’° μ μμ ν¨κ» κ° κ°μ²΄μ μ€κ³½μ λνλ΄λ λ§μ€ν¬ λλ μ€κ³½μ μ§ν©μ λλ€. μΈμ€ν΄μ€ μΈλΆνλ μ΄λ―Έμ§μμ κ°μ²΄μ μμΉλΏλ§ μλλΌ μ νν λͺ¨μμ μμμΌ ν λ μ μ©ν©λλ€.
Watch: Python μμ μ¬μ νμ΅λ Ultralytics YOLOv8 λͺ¨λΈμ μ¬μ©νμ¬ μΈλΆνλ₯Ό μ€νν©λλ€.
ν
YOLOv8 μΈκ·Έλ¨ΌνΈ λͺ¨λΈμ -seg
μ λ―Έμ¬, μ¦ yolov8n-seg.pt
μ λν΄ μ¬μ κ΅μ‘μ λ°μμΌλ©° COCO.
λͺ¨λΈ
YOLOv8 μ¬μ νμ΅λ μΈκ·Έλ¨ΌνΈ λͺ¨λΈμ΄ μ¬κΈ°μ λμ μμ΅λλ€. κ°μ§, μΈκ·Έλ¨ΌνΈ λ° ν¬μ¦ λͺ¨λΈμ COCO λ°μ΄ν° μΈνΈμμ μ¬μ νμ΅λ λͺ¨λΈμ΄λ©°, λΆλ₯ λͺ¨λΈμ ImageNet λ°μ΄ν° μΈνΈμμ μ¬μ νμ΅λ λͺ¨λΈμ λλ€.
λͺ¨λΈμ μ²μ μ¬μ©ν λ μ΅μ Ultralytics 릴리μ€μμ μλμΌλ‘ λ€μ΄λ‘λλ©λλ€.
λͺ¨λΈ | ν¬κΈ° (ν½μ ) |
mAPbox 50-95 |
mAPmask 50-95 |
μλ CPU ONNX (ms) |
μλ A100 TensorRT (ms) |
맀κ°λ³μ (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
- μλ λ₯Ό μ¬μ©νμ¬ COCO κ° μ΄λ―Έμ§μ λν νκ· μ ꡬν©λλ€. Amazon EC2 P4d μΈμ€ν΄μ€.
볡μ λμyolo val segment data=coco8-seg.yaml batch=1 device=0|cpu
κΈ°μ°¨
μ΄λ―Έμ§ ν¬κΈ° 640μΌλ‘ 100κ° μν¬ν¬μ λν΄ COCO128-seg λ°μ΄ν° μΈνΈμμ YOLOv8n-segλ₯Ό νλ ¨ν©λλ€. μ¬μ© κ°λ₯ν μΈμμ μ 체 λͺ©λ‘μ κ΅¬μ± νμ΄μ§λ₯Ό μ°Έμ‘°νμΈμ.
μ
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n-seg.yaml") # build a new model from YAML
model = YOLO("yolov8n-seg.pt") # load a pretrained model (recommended for training)
model = YOLO("yolov8n-seg.yaml").load("yolov8n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo segment train data=coco8-seg.yaml model=yolov8n-seg.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolov8n-seg.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo segment train data=coco8-seg.yaml model=yolov8n-seg.yaml pretrained=yolov8n-seg.pt epochs=100 imgsz=640
λ°μ΄ν° μ§ν© νμ
YOLO μΈλΆν λ°μ΄ν° μΈνΈ νμμ λ°μ΄ν° μΈνΈ κ°μ΄λμμ μμΈν νμΈν μ μμ΅λλ€. κΈ°μ‘΄ λ°μ΄ν°μ μ λ€λ₯Έ νμ(μ: COCO λ±)μμ YOLO νμμΌλ‘ λ³ννλ €λ©΄ JSON2YOLO λꡬ( Ultralytics)λ₯Ό μ¬μ©νμΈμ.
Val
Validate trained YOLOv8n-seg model accuracy on the COCO128-seg dataset. No arguments are needed as the model
κ΅μ‘ μ μ§ data
λ° μΈμλ₯Ό λͺ¨λΈ μμ±μΌλ‘ μ¬μ©ν©λλ€.
μ
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n-seg.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95(B)
metrics.box.map50 # map50(B)
metrics.box.map75 # map75(B)
metrics.box.maps # a list contains map50-95(B) of each category
metrics.seg.map # map50-95(M)
metrics.seg.map50 # map50(M)
metrics.seg.map75 # map75(M)
metrics.seg.maps # a list contains map50-95(M) of each category
μμΈ‘
νμ΅λ YOLOv8n-seg λͺ¨λΈμ μ¬μ©νμ¬ μ΄λ―Έμ§μ λν μμΈ‘μ μ€νν©λλ€.
μ
μ 체 보기 predict
λͺ¨λ μΈλΆ μ 보μμ μμΈ‘ νμ΄μ§λ‘ μ΄λν©λλ€.
λ΄λ³΄λ΄κΈ°
YOLOv8n-seg λͺ¨λΈμ ONNX, CoreML λ±κ³Ό κ°μ λ€λ₯Έ νμμΌλ‘ λ΄λ³΄λ λλ€.
μ
μ¬μ© κ°λ₯ν YOLOv8-seg λ΄λ³΄λ΄κΈ° νμμ μλ νμ λμ μμ΅λλ€. λ΄λ³΄λ΄κΈ° νμμ format
μΈμ, μ¦ format='onnx'
λλ format='engine'
. λ΄λ³΄λΈ λͺ¨λΈμμ μ§μ μμΈ‘νκ±°λ μ ν¨μ±μ κ²μ¬ν μ μμ΅λλ€. yolo predict model=yolov8n-seg.onnx
. λ΄λ³΄λ΄κΈ°κ° μλ£λ ν λͺ¨λΈμ λν μ¬μ© μκ° νμλ©λλ€.
νμ | format μΈμ |
λͺ¨λΈ | λ©νλ°μ΄ν° | μΈμ |
---|---|---|---|---|
PyTorch | - | yolov8n-seg.pt |
β | - |
TorchScript | torchscript |
yolov8n-seg.torchscript |
β | imgsz , optimize , batch |
ONNX | onnx |
yolov8n-seg.onnx |
β | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n-seg_openvino_model/ |
β | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n-seg.engine |
β | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolov8n-seg.mlpackage |
β | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n-seg_saved_model/ |
β | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n-seg.pb |
β | imgsz , batch |
TF Lite | tflite |
yolov8n-seg.tflite |
β | imgsz , half , int8 , batch |
TF Edge TPU | edgetpu |
yolov8n-seg_edgetpu.tflite |
β | imgsz |
TF.js | tfjs |
yolov8n-seg_web_model/ |
β | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n-seg_paddle_model/ |
β | imgsz , batch |
NCNN | ncnn |
yolov8n-seg_ncnn_model/ |
β | imgsz , half , batch |
μ 체 보기 export
μΈλΆ μ 보μμ λ΄λ³΄λ΄κΈ° νμ΄μ§λ‘ μ΄λν©λλ€.
μμ£Ό 묻λ μ§λ¬Έ
μ¬μ©μ μ§μ λ°μ΄ν° μ§ν©μμ YOLOv8 μΈλΆν λͺ¨λΈμ νλ ¨νλ €λ©΄ μ΄λ»κ² νλμ?
μ¬μ©μ μ§μ λ°μ΄ν° μΈνΈμμ YOLOv8 μΈλΆν λͺ¨λΈμ νλ ¨νλ €λ©΄ λ¨Όμ λ°μ΄ν° μΈνΈλ₯Ό YOLO μΈλΆν νμμΌλ‘ μ€λΉν΄μΌ ν©λλ€. JSON2YOLOμ κ°μ λꡬλ₯Ό μ¬μ©νμ¬ λ€λ₯Έ νμμ λ°μ΄ν° μΈνΈλ₯Ό λ³νν μ μμ΅λλ€. λ°μ΄ν° μΈνΈκ° μ€λΉλλ©΄ Python λλ CLI λͺ λ Ήμ μ¬μ©νμ¬ λͺ¨λΈμ νμ΅μν¬ μ μμ΅λλ€:
μ
μ¬μ© κ°λ₯ν μΈμλ κ΅¬μ± νμ΄μ§μμ νμΈνμΈμ.
YOLOv8 μμ κ°μ²΄ κ°μ§μ μΈμ€ν΄μ€ μΈλΆνμ μ°¨μ΄μ μ 무μμΈκ°μ?
κ°μ²΄ κ°μ§λ κ°μ²΄ μ£Όλ³μ κ²½κ³ μμλ₯Ό κ·Έλ € μ΄λ―Έμ§ λ΄μμ κ°μ²΄λ₯Ό μλ³νκ³ μμΉλ₯Ό νμ νλ λ°λ©΄, μΈμ€ν΄μ€ λΆν μ κ²½κ³ μμλ₯Ό μλ³ν λΏλ§ μλλΌ κ° κ°μ²΄μ μ νν λͺ¨μμ λ¬μ¬ν©λλ€. YOLOv8 μΈμ€ν΄μ€ λΆν λͺ¨λΈμ κ°μ§λ κ° κ°μ²΄μ μ€κ³½μ λνλ΄λ λ§μ€ν¬ λλ μ€κ³½μ μ 곡νλ―λ‘ μλ£ μμμ΄λ μμ¨ μ£Όνμ²λΌ μ νν λͺ¨μ νμ μ΄ μ€μν μμ μμ νΉν μ μ©ν©λλ€.
μΈμ€ν΄μ€ μΈλΆνμ YOLOv8 μ μ¬μ©νλ μ΄μ λ 무μμΈκ°μ?
Ultralytics YOLOv8 λ λμ μ νλμ μ€μκ° μ±λ₯μΌλ‘ μΈμ λ°μ μ΅μ²¨λ¨ λͺ¨λΈλ‘, μΈμ€ν΄μ€ μΈλΆν μμ μ μ΄μμ μ λλ€. YOLOv8 μΈκ·Έλ¨ΌνΈ λͺ¨λΈμ COCO λ°μ΄ν° μΈνΈμ λν΄ μ¬μ νμ΅λ μνλ‘ μ 곡λλ―λ‘ λ€μν μ€λΈμ νΈμμ κ°λ ₯ν μ±λ₯μ 보μ₯ν©λλ€. λν YOLOv8 μ μνν ν΅ν©μ ν΅ν΄ νλ ¨, κ²μ¦, μμΈ‘ λ° λ΄λ³΄λ΄κΈ° κΈ°λ₯μ μ§μνλ―λ‘ μ°κ΅¬ λ° μ°μ μ ν리μΌμ΄μ λͺ¨λμ λ§€μ° μ μ©νκ² μ¬μ©ν μ μμ΅λλ€.
μ¬μ νμ΅λ YOLOv8 μΈλΆν λͺ¨λΈμ λ‘λνκ³ μ ν¨μ±μ κ²μ¬νλ €λ©΄ μ΄λ»κ² ν΄μΌ νλμ?
μ¬μ νμ΅λ YOLOv8 μΈλΆν λͺ¨λΈμ λ‘λνκ³ μ ν¨μ±μ κ²μ¬νλ κ²μ κ°λ¨ν©λλ€. Python κ³Ό CLI μ μ¬μ©νμ¬ μννλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€:
μ
μ΄λ¬ν λ¨κ³λ₯Ό ν΅ν΄ λͺ¨λΈ μ±λ₯μ νκ°νλ λ° μ€μν νκ· μ λ°λ(mAP)μ κ°μ κ²μ¦ μ§νλ₯Ό μ»μ μ μμ΅λλ€.
YOLOv8 μΈλΆν λͺ¨λΈμ ONNX νμμΌλ‘ λ΄λ³΄λ΄λ €λ©΄ μ΄λ»κ² ν΄μΌ νλμ?
YOLOv8 μΈλΆν λͺ¨λΈμ ONNX νμμΌλ‘ λ΄λ³΄λ΄λ λ°©λ²μ κ°λ¨νλ©° Python λλ CLI λͺ λ Ήμ μ¬μ©νμ¬ μνν μ μμ΅λλ€:
μ
λ€μν νμμΌλ‘ λ΄λ³΄λ΄λ λ°©λ²μ λν μμΈν λ΄μ©μ λ΄λ³΄λ΄κΈ° νμ΄μ§λ₯Ό μ°Έμ‘°νμΈμ.