λ€μμ μ¬μ©νμ¬ λͺ¨λΈ λ΄λ³΄λ΄κΈ° Ultralytics YOLO
μκ°
λͺ¨λΈ νμ΅μ κΆκ·Ήμ μΈ λͺ©νλ μ€μ μ ν리μΌμ΄μ μ λ°°ν¬νλ κ²μ λλ€. Ultralytics YOLO11 μ λ΄λ³΄λ΄κΈ° λͺ¨λμμλ νμ΅λ λͺ¨λΈμ λ€μν ν¬λ§·μΌλ‘ λ΄λ³΄λΌ μ μλ λ€μν μ΅μ μ μ 곡νμ¬ λ€μν νλ«νΌκ³Ό λλ°μ΄μ€μ λ°°ν¬ν μ μμ΅λλ€. μ΄ ν¬κ΄μ μΈ κ°μ΄λλ λͺ¨λΈ λ΄λ³΄λ΄κΈ°μ λ―Έλ¬ν μ°¨μ΄λ₯Ό μλ΄νκ³ νΈνμ±κ³Ό μ±λ₯μ κ·Ήλννλ λ°©λ²μ 보μ¬μ€λλ€.
Watch: μ¬μ©μ μ§μ νμ΅λ Ultralytics YOLO λͺ¨λΈμ λ΄λ³΄λ΄κ³ μΉμΊ μμ λΌμ΄λΈ μΆλ‘ μ μ€ννλ λ°©λ².
YOLO11 μ λ΄λ³΄λ΄κΈ° λͺ¨λλ₯Ό μ ννλ μ΄μ λ 무μμΈκ°μ?
- λ€μ©λμ±: ONNX , TensorRT, CoreML, λ± λ€μν νμμΌλ‘ λ΄λ³΄λΌ μ μμ΅λλ€.
- μ±λ₯: TensorRT μΌλ‘ μ΅λ 5λ°° GPU μλ ν₯μ, ONNX λλ OpenVINO λ‘ 3λ°° CPU μλ ν₯μ .
- νΈνμ±: λ€μν νλμ¨μ΄ λ° μννΈμ¨μ΄ νκ²½μμ λͺ¨λΈμ λ²μ©μ μΌλ‘ λ°°ν¬ν μ μμ΅λλ€.
- μ¬μ© νΈμμ±: κ°λ¨ν CLI λ° Python APIλ‘ λΉ λ₯΄κ³ κ°νΈνκ² λͺ¨λΈμ λ΄λ³΄λΌ μ μμ΅λλ€.
λ΄λ³΄λ΄κΈ° λͺ¨λμ μ£Όμ κΈ°λ₯
λ€μμ λͺ κ°μ§ λμ λλ κΈ°λ₯μ λλ€:
- μν΄λ¦ λ΄λ³΄λ΄κΈ°: λ€μν νμμΌλ‘ λ΄λ³΄λ΄κΈ°λ₯Ό μν κ°λ¨ν λͺ λ Ήμ΄μ λλ€.
- μΌκ΄ λ΄λ³΄λ΄κΈ°: μΌκ΄ μΆλ‘ μ΄ κ°λ₯ν λͺ¨λΈμ λ΄λ³΄λ λλ€.
- μΆλ‘ μ΅μ ν: λ΄λ³΄λΈ λͺ¨λΈμ μΆλ‘ μκ°μ λ¨μΆνλλ‘ μ΅μ νλμ΄ μμ΅λλ€.
- νν λ¦¬μΌ λμμ: μνν λ΄λ³΄λ΄κΈ° νκ²½μ μν μ¬μΈ΅ κ°μ΄λ λ° νν 리μΌμ λλ€.
ν
μ¬μ© μ
ONNX λλ TensorRT κ³Ό κ°μ λ€λ₯Έ νμμΌλ‘ YOLO11n λͺ¨λΈμ λ΄λ³΄λ λλ€. λ΄λ³΄λ΄κΈ° μΈμμ μ 체 λͺ©λ‘μ μλμ μΈμ μΉμ μ μ°Έμ‘°νμΈμ.
μ
μΈμ
μ΄ νμλ YOLO λͺ¨λΈμ λ€μν νμμΌλ‘ λ΄λ³΄λ΄λ λ° μ¬μ©ν μ μλ κ΅¬μ± λ° μ΅μ μ΄ μμΈν μ€λͺ λμ΄ μμ΅λλ€. μ΄λ¬ν μ€μ μ λ΄λ³΄λΈ λͺ¨λΈμ μ±λ₯, ν¬κΈ° λ° λ€μν νλ«νΌκ³Ό νκ²½μμμ νΈνμ±μ μ΅μ ννλ λ° λ§€μ° μ€μν©λλ€. μ μ ν ꡬμ±μ ν΅ν΄ λͺ¨λΈμ΄ μ΅μ μ ν¨μ¨μ±μΌλ‘ μλν μ ν리μΌμ΄μ μ λ°°ν¬λ μ μλλ‘ μ€λΉν μ μμ΅λλ€.
μΈμ | μ ν | κΈ°λ³Έκ° | μ€λͺ |
---|---|---|---|
format |
str |
'torchscript' |
λ΄λ³΄λΈ λͺ¨λΈμ λμ νμμ λ€μκ³Ό κ°μ΅λλ€. 'onnx' , 'torchscript' , 'tensorflow' λ±μ μ¬μ©νμ¬ λ€μν λ°°ν¬ νκ²½κ³Όμ νΈνμ±μ μ μν©λλ€. |
imgsz |
int λλ tuple |
640 |
λͺ¨λΈ μ
λ ₯μ μ¬μ©ν μνλ μ΄λ―Έμ§ ν¬κΈ°μ
λλ€. μ μ¬κ°ν μ΄λ―Έμ§μ κ²½μ° μ μ λλ ννμΌ μ μμ΅λλ€. (height, width) λ₯Ό μ
λ ₯ν©λλ€. |
keras |
bool |
False |
μ λν΄ Keras νμμΌλ‘ λ΄λ³΄λ΄κΈ°λ₯Ό νμ±νν©λλ€. TensorFlow SavedModel λ‘ λ΄λ³΄λΌ μ μλλ‘ μ€μ νμ¬ TensorFlow μλΉμ€ λ° APIμμ νΈνμ±μ μ 곡ν©λλ€. |
optimize |
bool |
False |
TorchScript μΌλ‘ λ΄λ³΄λΌ λ λͺ¨λ°μΌ μ₯μΉμ λν μ΅μ νλ₯Ό μ μ©νμ¬ λͺ¨λΈ ν¬κΈ°λ₯Ό μ€μ΄κ³ μ±λ₯μ κ°μ ν μ μμ΅λλ€. |
half |
bool |
False |
FP16(λ°μ λ°) μμνλ₯Ό νμ±ννμ¬ λͺ¨λΈ ν¬κΈ°λ₯Ό μ€μ΄κ³ μ§μλλ νλμ¨μ΄μμ μΆλ‘ μλλ₯Ό λμΌ μ μμ΅λλ€. |
int8 |
bool |
False |
INT8 μμνλ₯Ό νμ±ννμ¬ λͺ¨λΈμ λμ± μμΆνκ³ μ£Όλ‘ μμ§ λλ°μ΄μ€μ κ²½μ° μ νλ μμ€μ μ΅μννλ©΄μ μΆλ‘ μλλ₯Ό λμ λλ€. |
dynamic |
bool |
False |
ONNX, TensorRT λ° OpenVINO λ΄λ³΄λ΄κΈ°μ λν λμ μ λ ₯ ν¬κΈ°λ₯Ό νμ©νμ¬ λ€μν μ΄λ―Έμ§ ν¬κΈ°λ₯Ό μ μ°νκ² μ²λ¦¬ν μ μμ΅λλ€. |
simplify |
bool |
True |
λ€μμ μ¬μ©νμ¬ ONNX λ΄λ³΄λ΄κΈ°μ λν λͺ¨λΈ κ·Έλνλ₯Ό λ¨μνν©λλ€. onnxslim λ₯Ό μ¬μ©νμ¬ μ±λ₯κ³Ό νΈνμ±μ κ°μ ν μ μμ΅λλ€. |
opset |
int |
None |
λ€λ₯Έ ONNX νμ λ° λ°νμκ³Όμ νΈνμ±μ μν΄ ONNX μ΅μ λ²μ μ μ§μ ν©λλ€. μ€μ νμ§ μμΌλ©΄ μ§μλλ μ΅μ λ²μ μ μ¬μ©ν©λλ€. |
workspace |
float |
4.0 |
TensorRT μ΅μ νλ₯Ό μν μ΅λ μμ κ³΅κ° ν¬κΈ°λ₯Ό GiB λ¨μλ‘ μ€μ νμ¬ λ©λͺ¨λ¦¬ μ¬μ©λκ³Ό μ±λ₯μ κ· νμ λ§μΆ₯λλ€. |
nms |
bool |
False |
μ ννκ³ ν¨μ¨μ μΈ νμ§ νμ²λ¦¬λ₯Ό μν΄ νμμ μΈ λΉμ΅λ μ΅μ (NMS)λ₯Ό CoreML λ΄λ³΄λ΄κΈ°μ μΆκ°ν©λλ€. |
batch |
int |
1 |
λ΄λ³΄λ΄κΈ° λͺ¨λΈ μΌκ΄ μΆλ‘ ν¬κΈ° λλ λ΄λ³΄λΈ λͺ¨λΈμ΄ λμμ μ²λ¦¬ν μ΅λ μ΄λ―Έμ§ μλ₯Ό μ§μ ν©λλ€. predict λͺ¨λλ‘ μ νν©λλ€. |
device |
str |
None |
λ΄λ³΄λΌ μ₯μΉλ₯Ό μ§μ ν©λλ€: GPU (device=0 ), CPU (device=cpu ), μ ν μ€λ¦¬μ½μ κ²½μ° MPS (device=mps ) λλ DLA for NVIDIA Jetson(device=dla:0 λλ device=dla:1 ). |
μ΄λ¬ν 맀κ°λ³μλ₯Ό μ‘°μ νλ©΄ λ°°ν¬ νκ²½, νλμ¨μ΄ μ μ½ μ‘°κ±΄, μ±λ₯ λͺ©ν λ± νΉμ μꡬμ¬νμ λ§κ² λ΄λ³΄λ΄κΈ° νλ‘μΈμ€λ₯Ό μ¬μ©μ μ§μ ν μ μμ΅λλ€. λͺ¨λΈ ν¬κΈ°, μλ, μ νλ κ°μ μ΅μ μ κ· νμ μ΄λ£¨λ €λ©΄ μ μ ν νμκ³Ό μ€μ μ μ ννλ κ²μ΄ μ€μν©λλ€.
λ΄λ³΄λ΄κΈ° νμ
μ¬μ© κ°λ₯ν YOLO11 λ΄λ³΄λ΄κΈ° νμμ μλ νμ λμ μμ΅λλ€. λ΄λ³΄λ΄λ νμμ format
μΈμ, μ¦ format='onnx'
λλ format='engine'
. λ΄λ³΄λΈ λͺ¨λΈμμ μ§μ μμΈ‘νκ±°λ κ²μ¦ν μ μμ΅λλ€. yolo predict model=yolo11n.onnx
. λ΄λ³΄λ΄κΈ°κ° μλ£λ ν λͺ¨λΈμ λν μ¬μ© μκ° νμλ©λλ€.
νμ | format μΈμ |
λͺ¨λΈ | λ©νλ°μ΄ν° | μΈμ |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
β | - |
TorchScript | torchscript |
yolo11n.torchscript |
β | imgsz , optimize , batch |
ONNX | onnx |
yolo11n.onnx |
β | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolo11n_openvino_model/ |
β | imgsz , half , int8 , batch |
TensorRT | engine |
yolo11n.engine |
β | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolo11n.mlpackage |
β | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
β | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolo11n.pb |
β | imgsz , batch |
TF Lite | tflite |
yolo11n.tflite |
β | imgsz , half , int8 , batch |
TF Edge TPU | edgetpu |
yolo11n_edgetpu.tflite |
β | imgsz |
TF.js | tfjs |
yolo11n_web_model/ |
β | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
β | imgsz , batch |
MNN | mnn |
yolo11n.mnn |
β | imgsz , batch , int8 , half |
NCNN | ncnn |
yolo11n_ncnn_model/ |
β | imgsz , half , batch |
IMX500 | imx |
yolov8n_imx_model/ |
β | imgsz , int8 |
μμ£Ό 묻λ μ§λ¬Έ
YOLO11 λͺ¨λΈμ ONNX νμμΌλ‘ λ΄λ³΄λ΄λ €λ©΄ μ΄λ»κ² νλμ?
YOLO11 λͺ¨λΈμ ONNX νμμΌλ‘ λ΄λ³΄λ΄λ λ°©λ²μ Ultralytics μ μ¬μ©νλ©΄ κ°λ¨ν©λλ€. Python κ³Ό CLI λ κ°μ§ λ°©λ²μΌλ‘ λͺ¨λΈμ λ΄λ³΄λΌ μ μμ΅λλ€.
μ
λ€μν μ λ ₯ ν¬κΈ° μ²λ¦¬μ κ°μ κ³ κΈ μ΅μ μ ν¬ν¨νμ¬ νλ‘μΈμ€μ λν μμΈν λ΄μ©μ ONNX μΉμ μ μ°Έμ‘°νμΈμ.
λͺ¨λΈ λ΄λ³΄λ΄κΈ°μ TensorRT μ μ¬μ©νλ©΄ μ΄λ€ μ΄μ μ΄ μλμ?
TensorRT YOLO11 λͺ¨λΈμ λ‘ λ΄λ³΄λ΄λ©΄ μ΅λ 5λ°°μ μλ ν₯μμ λ¬μ±ν μ μμ΄ μ€μκ° μΆλ‘ μ ν리μΌμ΄μ μ μ΄μμ μ λλ€. TensorRT GPU
- λ€μ©λμ±: νΉμ νλμ¨μ΄ μ€μ μ λ§κ² λͺ¨λΈμ μ΅μ ννμΈμ.
- μλ: κ³ κΈ μ΅μ νλ₯Ό ν΅ν΄ λ λΉ λ₯Έ μΆλ‘ μ λ¬μ±νμΈμ.
- νΈνμ±: NVIDIA νλμ¨μ΄μ μννκ² ν΅ν©λ©λλ€.
TensorRT ν΅ν©μ λν΄ μμΈν μμλ³΄λ €λ©΄ TensorRT ν΅ν© κ°μ΄λλ₯Ό μ°Έμ‘°νμΈμ.
YOLO11 λͺ¨λΈμ λ΄λ³΄λΌ λ INT8 μ λνλ₯Ό νμ±ννλ €λ©΄ μ΄λ»κ² ν΄μΌ νλμ?
INT8 μμνλ νΉν μ£μ§ λλ°μ΄μ€μμ λͺ¨λΈμ μμΆνκ³ μΆλ‘ μλλ₯Ό λμΌ μ μλ νλ₯ν λ°©λ²μ λλ€. INT8 μμνλ₯Ό νμ±ννλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€:
μ
INT8 μ λνλ TensorRT λ° CoreML κ³Ό κ°μ λ€μν νμμ μ μ©ν μ μμ΅λλ€. μμΈν λ΄μ©μ λ΄λ³΄λ΄κΈ° μΉμ μμ νμΈν μ μμ΅λλ€.
λͺ¨λΈμ λ΄λ³΄λΌ λ λμ μ λ ₯ ν¬κΈ°κ° μ€μν μ΄μ λ 무μμΈκ°μ?
λμ μ λ ₯ ν¬κΈ°λ₯Ό μ¬μ©νλ©΄ λ΄λ³΄λΈ λͺ¨λΈμ΄ λ€μν μ΄λ―Έμ§ ν¬κΈ°λ₯Ό μ²λ¦¬ν μ μμ΄ μ μ°μ±μ μ 곡νκ³ λ€μν μ¬μ© μ¬λ‘μ λ§κ² μ²λ¦¬ ν¨μ¨μ μ΅μ νν μ μμ΅λλ€. ONNX λλ TensorRT κ³Ό κ°μ νμμΌλ‘ λ΄λ³΄λΌ λ λμ μ λ ₯ ν¬κΈ°λ₯Ό νμ±ννλ©΄ λͺ¨λΈμ΄ λ€μν μ λ ₯ λͺ¨μμ μννκ² μ μν μ μμ΅λλ€.
μ΄ κΈ°λ₯μ μ¬μ©νλ €λ©΄ dynamic=True
νλκ·Έλ₯Ό λ΄λ³΄λ΄λ μ€μ
λλ€:
μ
μμΈν λ΄μ©μ λμ μ λ ₯ ν¬κΈ° ꡬμ±μ μ°Έμ‘°νμΈμ.
λͺ¨λΈ μ±λ₯μ μ΅μ ννκΈ° μν΄ κ³ λ €ν΄μΌ ν μ£Όμ λ΄λ³΄λ΄κΈ° μΈμλ 무μμΈκ°μ?
λ΄λ³΄λ΄κΈ° μΈμλ₯Ό μ΄ν΄νκ³ κ΅¬μ±νλ κ²μ λͺ¨λΈ μ±λ₯μ μ΅μ ννλ λ° λ§€μ° μ€μν©λλ€:
format:
λ΄λ³΄λΈ λͺ¨λΈμ λμ νμ(μ,onnx
,torchscript
,tensorflow
).imgsz:
λͺ¨λΈ μ λ ₯μ λν μνλ μ΄λ―Έμ§ ν¬κΈ°(μ640
λλ(height, width)
).half:
FP16 μμνλ₯Ό μ§μνμ¬ λͺ¨λΈ ν¬κΈ°λ₯Ό μ€μ΄κ³ μΆλ‘ μλλ₯Ό λμΌ μ μμ΅λλ€.optimize:
λͺ¨λ°μΌ λλ μ νλ νκ²½μ μν νΉμ μ΅μ νλ₯Ό μ μ©ν©λλ€.int8:
INT8 μ λνλ₯Ό μ§μνμ¬ μ£μ§ λ°°ν¬μ λ§€μ° μ μ©ν©λλ€.
λͺ¨λ λ΄λ³΄λ΄κΈ° μΈμμ λν μμΈν λͺ©λ‘κ³Ό μ€λͺ μ λ΄λ³΄λ΄κΈ° μΈμ μΉμ μ μ°Έμ‘°νμΈμ.