λͺ λ Ήμ€ μΈν°νμ΄μ€ μ¬μ©λ²
YOLO λͺ
λ Ήμ€ μΈν°νμ΄μ€(CLI)λ₯Ό μ¬μ©νλ©΄ Python νκ²½ μμ΄λ κ°λ¨ν ν μ€ λͺ
λ ΉμΌλ‘ μμ
μ μνν μ μμ΅λλ€. CLI μ¬μ©μ μ§μ μ΄λ Python μ½λκ° νμνμ§ μμ΅λλ€. ν°λ―Έλμμ λͺ¨λ μμ
μ κ°λ¨ν μ€νν μ μμ΅λλ€. yolo
λͺ
λ Ήμ μ¬μ©ν©λλ€.
Watch: λ§μ€ν°νκΈ° Ultralytics YOLOv8 : CLI
μ
Ultralytics yolo
λͺ
λ Ήμ λ€μ ꡬ문μ μ¬μ©ν©λλ€:
yolo TASK MODE ARGS
Where TASK (optional) is one of [detect, segment, classify]
MODE (required) is one of [train, val, predict, export, track]
ARGS (optional) are any number of custom 'arg=value' pairs like 'imgsz=320' that override defaults.
yolo cfg
μ΄κΈ° νμ΅λ₯ 0.01λ‘ 10κ°μ μν¬ν¬μ λν νμ§ λͺ¨λΈμ νλ ¨ν©λλ€.
μ΄λ―Έμ§ ν¬κΈ° 320μμ μ¬μ νμ΅λ μΈκ·Έλ¨Όν μ΄μ λͺ¨λΈμ μ¬μ©νμ¬ YouTube λμμμ μμΈ‘ν©λλ€:
λ°°μΉ ν¬κΈ° 1, μ΄λ―Έμ§ ν¬κΈ° 640μ μ¬μ νμ΅λ νμ§ λͺ¨λΈμ λλ€:
YOLOv8n λΆλ₯ λͺ¨λΈμ μ΄λ―Έμ§ ν¬κΈ° 224 x 128μ ONNX νμμΌλ‘ λ΄λ³΄λ΄κΈ°(μμ νμ μμ)
Where:
TASK
(μ ν μ¬ν)μ λ€μ μ€ νλμ λλ€.[detect, segment, classify]
. λͺ μμ μΌλ‘ μ λ¬λμ§ μμ κ²½μ° YOLOv8 μ λ€μμ μΆμΈ‘νλ €κ³ μλν©λλ€.TASK
λ₯Ό λͺ¨λΈ μ νμμ μ νν©λλ€.MODE
(νμ)λ λ€μ μ€ νλμ λλ€.[train, val, predict, export, track]
ARGS
(μ ν μ¬ν) μ¬μ©μ μ§μ arg=value
κ°μimgsz=320
κΈ°λ³Έκ°μ μ¬μ μν μ μμ΅λλ€. μ¬μ© κ°λ₯ν μ 체 λͺ©λ‘μARGS
λ₯Ό μ°Έμ‘°νμμμ€. κ΅¬μ± νμ΄μ§μdefaults.yaml
GitHub μΆμ².
κ²½κ³
μΈμλ λ€μκ³Ό κ°μ΄ μ λ¬λμ΄μΌ ν©λλ€. arg=val
μ, λ±νΈλ‘ λλ =
κΈ°νΈλ‘ ꡬλΆνκ³ κ³΅λ°±μΌλ‘ κ΅¬λΆ λ₯Ό μμΌλ‘ μ°κ²°ν©λλ€. μ¬μ©νμ§ λ§μμμ€.
--
μΈμ μ λμ¬ λλ μΌν ,
μΈμ μ¬μ΄μ μμ΅λλ€.
yolo predict model=yolov8n.pt imgsz=640 conf=0.25
Β βyolo predict model yolov8n.pt imgsz 640 conf 0.25
Β βyolo predict --model yolov8n.pt --imgsz 640 --conf 0.25
Β β
κΈ°μ°¨
YOLOv8n μ μ΄λ―Έμ§ ν¬κΈ° 640μΌλ‘ 100κ°μ μν¬ν¬μ λν΄ COCO8 λ°μ΄ν°μ μΌλ‘ νλ ¨ν©λλ€. μ¬μ© κ°λ₯ν μΈμμ μ 체 λͺ©λ‘μ κ΅¬μ± νμ΄μ§λ₯Ό μ°Έμ‘°νμΈμ.
μ
Val
COCO8 λ°μ΄ν° μΈνΈμμ νμ΅λ YOLOv8n λͺ¨λΈ μ νλλ₯Ό κ²μ¦ν©λλ€. μΈμλ₯Ό μ λ¬ν νμκ° μμ΅λλ€. model
κ΅μ‘ μ μ§ data
λ° μΈμλ₯Ό λͺ¨λΈ μμ±μΌλ‘ μ¬μ©ν©λλ€.
μ
μμΈ‘
νμ΅λ YOLOv8n λͺ¨λΈμ μ¬μ©νμ¬ μ΄λ―Έμ§μ λν μμΈ‘μ μ€νν©λλ€.
μ
λ΄λ³΄λ΄κΈ°
YOLOv8n λͺ¨λΈμ ONNX, CoreML λ±κ³Ό κ°μ λ€λ₯Έ νμμΌλ‘ λ΄λ³΄λ λλ€.
μ
μ¬μ© κ°λ₯ν YOLOv8 λ΄λ³΄λ΄κΈ° νμμ μλ νμ λμ μμ΅λλ€. λ΄λ³΄λ΄λ νμμ format
μΈμ, μ¦ format='onnx'
λλ format='engine'
.
νμ | 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 , 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 , batch |
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
μΈλΆ μ 보μμ λ΄λ³΄λ΄κΈ° νμ΄μ§λ‘ μ΄λν©λλ€.
κΈ°λ³Έ μΈμ μ¬μ μ
κΈ°λ³Έ μΈμλ CLI μ μΈμλ‘ μ λ¬νκΈ°λ§ νλ©΄ μ¬μ μν μ μμ΅λλ€. arg=value
μμ
λλ€.
λ€μμ λν νμ§ λͺ¨λΈ νμ΅ 10 epochs
μ ν¨κ» learning_rate
μ 0.01
μ΄λ―Έμ§ ν¬κΈ° 320μμ μ¬μ νμ΅λ μΈκ·Έλ¨Όν μ΄μ λͺ¨λΈμ μ¬μ©νμ¬ YouTube λμμμ μμΈ‘ν©λλ€:
κΈ°λ³Έ κ΅¬μ± νμΌ μ¬μ μ
μ¬μ μν μ μμ΅λλ€. default.yaml
κ΅¬μ± νμΌμ μμ ν μ νμΌλ‘ μ λ¬νμ¬ cfg
μΈμ, μ¦ cfg=custom.yaml
.
μ΄λ κ² νλ €λ©΄ λ¨Όμ default.yaml
λ₯Ό μ¬μ©νμ¬ νμ¬ μμ
λλ ν 리μ yolo copy-cfg
λͺ
λ Ήμ μ¬μ©ν©λλ€.
μ΄λ κ² νλ©΄ λ€μμ΄ μμ±λ©λλ€. default_copy.yaml
λ‘ μ λ¬ν μ μμ΅λλ€. cfg=default_copy.yaml
μ κ°μ μΆκ° μΈμμ ν¨κ» imgsz=320
μ΄ μμ μμλ
μμ± 2023-11-12, μ λ°μ΄νΈ 2024-04-27
μ μ: glenn-jocher (14), Burhan-Q (1), RizwanMunawar (1), AyushExel (1), Laughing-q (1), shuizhuyuanluo@126.com (1)