물체 κ°μ§
κ°μ²΄ κ°μ§λ μ΄λ―Έμ§ λλ λμμ μ€νΈλ¦Όμμ κ°μ²΄μ μμΉμ ν΄λμ€λ₯Ό μλ³νλ μμ μ λλ€.
κ°μ²΄ κ°μ§κΈ°μ μΆλ ₯μ μ΄λ―Έμ§μμ κ°μ²΄λ₯Ό λλ¬μΈλ κ²½κ³ μμ μ§ν©κ³Ό κ° μμμ λν ν΄λμ€ λ μ΄λΈ λ° μ λ’°λ μ μλ‘ κ΅¬μ±λ©λλ€. κ°μ²΄ κ°μ§λ μ₯λ©΄μμ κ΄μ¬ μλ κ°μ²΄λ₯Ό μλ³ν΄μΌ νμ§λ§ κ°μ²΄μ μ νν μμΉλ λͺ¨μμ μ νν μ νμλ μλ κ²½μ°μ μ ν©ν μ νμ λλ€.
Watch: μ¬μ νμ΅λ Ultralytics YOLOv8 λͺ¨λΈμ μ¬μ©ν κ°μ²΄ κ°μ§.
ν
YOLOv8 κ°μ§ λͺ¨λΈμ κΈ°λ³Έκ°μΈ YOLOv8 λͺ¨λΈμ
λλ€. yolov8n.pt
μ λν΄ μ¬μ κ΅μ‘μ λ°μμΌλ©° COCO.
λͺ¨λΈ
YOLOv8 μ¬μ νμ΅λ κ°μ§ λͺ¨λΈμ΄ μ¬κΈ°μ λμ μμ΅λλ€. κ°μ§, μΈκ·Έλ¨ΌνΈ λ° ν¬μ¦ λͺ¨λΈμ COCO λ°μ΄ν° μΈνΈμμ μ¬μ νμ΅λ λͺ¨λΈμ΄λ©°, λΆλ₯ λͺ¨λΈμ 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 λ°μ΄ν° μΈνΈ.
볡μ λμyolo val detect data=coco.yaml device=0
- μλ λ₯Ό μ¬μ©νμ¬ COCO κ° μ΄λ―Έμ§μ λν νκ· μ ꡬν©λλ€. Amazon EC2 P4d μΈμ€ν΄μ€.
볡μ λμyolo val detect data=coco8.yaml batch=1 device=0|cpu
κΈ°μ°¨
YOLOv8n μ μ΄λ―Έμ§ ν¬κΈ° 640μΌλ‘ 100κ°μ μν¬ν¬μ λν΄ COCO8 λ°μ΄ν°μ μΌλ‘ νλ ¨ν©λλ€. μ¬μ© κ°λ₯ν μΈμμ μ 체 λͺ©λ‘μ κ΅¬μ± νμ΄μ§λ₯Ό μ°Έμ‘°νμΈμ.
μ
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.yaml") # build a new model from YAML
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
model = YOLO("yolov8n.yaml").load("yolov8n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolov8n.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640
λ°μ΄ν° μ§ν© νμ
YOLO νμ§ λ°μ΄ν° μΈνΈ νμμ λ°μ΄ν° μΈνΈ κ°μ΄λμμ μμΈν νμΈν μ μμ΅λλ€. κΈ°μ‘΄ λ°μ΄ν°μ μ λ€λ₯Έ νμ(μ: COCO λ±)μμ YOLO νμμΌλ‘ λ³ννλ €λ©΄ JSON2YOLO λꡬ( Ultralytics)λ₯Ό μ¬μ©νμΈμ.
Val
COCO8 λ°μ΄ν° μΈνΈμμ νμ΅λ YOLOv8n λͺ¨λΈ μ νλλ₯Ό κ²μ¦ν©λλ€. μΈμλ₯Ό μ λ¬ν νμκ° μμ΅λλ€. model
κ΅μ‘ μ μ§ data
λ° μΈμλ₯Ό λͺ¨λΈ μμ±μΌλ‘ μ¬μ©ν©λλ€.
μ
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.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
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category
μμΈ‘
νμ΅λ YOLOv8n λͺ¨λΈμ μ¬μ©νμ¬ μ΄λ―Έμ§μ λν μμΈ‘μ μ€νν©λλ€.
μ
μ 체 보기 predict
λͺ¨λ μΈλΆ μ 보μμ μμΈ‘ νμ΄μ§λ‘ μ΄λν©λλ€.
λ΄λ³΄λ΄κΈ°
YOLOv8n λͺ¨λΈμ ONNX, CoreML λ±κ³Ό κ°μ λ€λ₯Έ νμμΌλ‘ λ΄λ³΄λ λλ€.
μ
μ¬μ© κ°λ₯ν YOLOv8 λ΄λ³΄λ΄κΈ° νμμ μλ νμ λμ μμ΅λλ€. λ΄λ³΄λ΄λ νμμ format
μΈμ, μ¦ format='onnx'
λλ format='engine'
. λ΄λ³΄λΈ λͺ¨λΈμμ μ§μ μμΈ‘νκ±°λ μ ν¨μ±μ κ²μ¬ν μ μμ΅λλ€. yolo predict model=yolov8n.onnx
. λ΄λ³΄λ΄κΈ°κ° μλ£λ ν λͺ¨λΈμ λν μ¬μ© μκ° νμλ©λλ€.
νμ | format μΈμ |
λͺ¨λΈ | λ©νλ°μ΄ν° | μΈμ |
---|---|---|---|---|
PyTorch | - | yolov8n.pt |
β | - |
TorchScript | torchscript |
yolov8n.torchscript |
β | imgsz , optimize , batch |
ONNX | onnx |
yolov8n.onnx |
β | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n_openvino_model/ |
β | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n.engine |
β | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolov8n.mlpackage |
β | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n_saved_model/ |
β | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n.pb |
β | imgsz , batch |
TF Lite | tflite |
yolov8n.tflite |
β | imgsz , half , int8 , batch |
TF Edge TPU | edgetpu |
yolov8n_edgetpu.tflite |
β | imgsz |
TF.js | tfjs |
yolov8n_web_model/ |
β | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n_paddle_model/ |
β | imgsz , batch |
NCNN | ncnn |
yolov8n_ncnn_model/ |
β | imgsz , half , batch |
μ 체 보기 export
μΈλΆ μ 보μμ λ΄λ³΄λ΄κΈ° νμ΄μ§λ‘ μ΄λν©λλ€.
μμ£Ό 묻λ μ§λ¬Έ
μ¬μ©μ μ§μ λ°μ΄ν° μ§ν©μμ YOLOv8 λͺ¨λΈμ νμ΅νλ €λ©΄ μ΄λ»κ² νλμ?
μ¬μ©μ μ§μ λ°μ΄ν° μ§ν©μμ YOLOv8 λͺ¨λΈμ νμ΅νλ €λ©΄ λͺ κ°μ§ λ¨κ³κ° νμν©λλ€:
- λ°μ΄ν° μ§ν©μ μ€λΉν©λλ€: λ°μ΄ν° μΈνΈκ° YOLO νμμΈμ§ νμΈν©λλ€. μ§μΉ¨μ λ°μ΄ν° μΈνΈ κ°μ΄λλ₯Ό μ°Έμ‘°νμΈμ.
- λͺ¨λΈμ λ‘λν©λλ€: Ultralytics YOLO λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ¬ μ¬μ νμ΅λ λͺ¨λΈμ λ‘λνκ±°λ YAML νμΌμμ μ λͺ¨λΈμ μμ±ν©λλ€.
- λͺ¨λΈ νλ ¨: μ€ν
train
λ©μλ λλ Python λλyolo detect train
λͺ λ ΉμΌλ‘ CLI.
μ
μμΈν κ΅¬μ± μ΅μ μ κ΅¬μ± νμ΄μ§λ₯Ό μ°Έμ‘°νμΈμ.
YOLOv8 μμ μ΄λ€ μ¬μ νμ΅λ λͺ¨λΈμ μ¬μ©ν μ μλμ?
Ultralytics YOLOv8 λ 물체 κ°μ§, λΆν , ν¬μ¦ μΆμ μ μν λ€μν μ¬μ νλ ¨λ λͺ¨λΈμ μ 곡ν©λλ€. μ΄λ¬ν λͺ¨λΈμ λΆλ₯ μμ μ μν΄ COCO λ°μ΄ν° μΈνΈ λλ ImageNetμμ μ¬μ νμ΅λ©λλ€. λ€μμ μ¬μ© κ°λ₯ν λͺ¨λΈ μ€ μΌλΆμ λλ€:
μμΈν λͺ©λ‘κ³Ό μ±λ₯ μ§νλ λͺ¨λΈ μΉμ μ μ°Έμ‘°νμΈμ.
νμ΅λ YOLOv8 λͺ¨λΈμ μ νλλ₯Ό κ²μ¦νλ €λ©΄ μ΄λ»κ² ν΄μΌ νλμ?
νμ΅λ YOLOv8 λͺ¨λΈμ μ νμ±μ κ²μ¦νλ €λ©΄ λ€μμ μ¬μ©ν μ μμ΅λλ€. .val()
λ©μλ λλ Python λλ yolo detect val
CLIλͺ
λ Ήμ μ€νν©λλ€. κ·Έλ¬λ©΄ mAP50-95, mAP50 λ±κ³Ό κ°μ λ©νΈλ¦μ΄ μ 곡λ©λλ€.
μ
μμΈν μΈμ¦ μ 보λ Val νμ΄μ§μμ νμΈνμΈμ.
YOLOv8 λͺ¨λΈμ μ΄λ€ νμμΌλ‘ λ΄λ³΄λΌ μ μλμ?
Ultralytics YOLOv8 λ₯Ό μ¬μ©νλ©΄ ONNX, TensorRT, CoreML λ±κ³Ό κ°μ λ€μν ν¬λ§·μΌλ‘ λͺ¨λΈμ λ΄λ³΄λ΄ λ€μν νλ«νΌκ³Ό λλ°μ΄μ€μμ νΈνμ±μ 보μ₯ν μ μμ΅λλ€.
μ
λ΄λ³΄λ΄κΈ° νμ΄μ§μμ μ§μλλ νμμ μ 체 λͺ©λ‘κ³Ό μ§μΉ¨μ νμΈνμΈμ.
물체 κ°μ§μ Ultralytics YOLOv8 μ μ¬μ©ν΄μΌ νλ μ΄μ λ 무μμΈκ°μ?
Ultralytics YOLOv8 λ 물체 κ°μ§, μΈλΆν, ν¬μ¦ μΆμ μ μν μ΅μ²¨λ¨ μ±λ₯μ μ 곡νλλ‘ μ€κ³λμμ΅λλ€. λͺ κ°μ§ μ£Όμ μ΄μ μ λ€μκ³Ό κ°μ΅λλ€:
- μ¬μ νμ΅λ λͺ¨λΈ: COCO λ° ImageNetκ³Ό κ°μ μΈκΈ° μλ λ°μ΄ν° μΈνΈμμ μ¬μ νμ΅λ λͺ¨λΈμ νμ©νμ¬ λ λΉ λ₯΄κ² κ°λ°ν μ μμ΅λλ€.
- λμ μ νλ: μΈμμ μΈ λ§΅ μ μλ₯Ό λ¬μ±νμ¬ μ λ’°ν μ μλ 물체 κ°μ§λ₯Ό 보μ₯ν©λλ€.
- μλ: μ€μκ° μΆλ‘ μ μ΅μ νλμ΄ μμ΄ μ μν μ²λ¦¬κ° νμν μ ν리μΌμ΄μ μ μ΄μμ μ λλ€.
- μ μ°μ±: μ¬λ¬ νλ«νΌμ λ°°ν¬ν μ μλλ‘ ONNX , TensorRT λ± λ€μν νμμΌλ‘ λͺ¨λΈμ λ΄λ³΄λΌ μ μμ΅λλ€.
λΈλ‘κ·Έμμ μ¬μ© μ¬λ‘μ μ±κ³΅ μ¬λ‘( YOLOv8 )λ₯Ό μ΄ν΄λ³΄μΈμ.
μμ± 2023-11-12, μ λ°μ΄νΈ 2024-07-04
μμ±μ: glenn-jocher (21), Burhan-Q (4), Laughing-q (1)