ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому

Экспорт ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с Ultralytics YOLO

Ultralytics YOLO ЭкосистСма ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠšΠΎΠ½Π΅Ρ‡Π½Π°Ρ Ρ†Π΅Π»ΡŒ обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ - Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π΅ для примСнСния Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅. Π Π΅ΠΆΠΈΠΌ экспорта Π² Ultralytics YOLOv8 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΡ†ΠΈΠΉ для экспорта Ρ‚Π²ΠΎΠ΅ΠΉ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠΉ для развСртывания Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈ устройствах. Π­Ρ‚ΠΎ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ руководство ΠΏΡ€ΠΈΠ·Π²Π°Π½ΠΎ провСсти тСбя Ρ‡Π΅Ρ€Π΅Π· всС Π½ΡŽΠ°Π½ΡΡ‹ экспорта ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π², ΠΊΠ°ΠΊ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ максимальной совмСстимости ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.



Π‘ΠΌΠΎΡ‚Ρ€ΠΈ: Как ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΠΌΡƒΡŽ модСль Ultralytics YOLOv8 ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΆΠΈΠ²ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡŽ Π½Π° Π²Π΅Π±-ΠΊΠ°ΠΌΠ΅Ρ€Π΅.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ стоит Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ YOLOv8'Export Mode?

  • Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Экспортируй Π² мноТСство Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ONNX, TensorRT, CoreML ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Π£ΡΠΊΠΎΡ€ΡŒΡΡ Π² 5 Ρ€Π°Π· Π΄ΠΎ GPU с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TensorRT ΠΈ Π² 3 Ρ€Π°Π·Π° Π΄ΠΎ CPU с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ONNX ΠΈΠ»ΠΈ OpenVINO.
  • Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ: Π‘Π΄Π΅Π»Π°ΠΉ свою модСль ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ для развСртывания Π² многочислСнных Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдах.
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° использования: простыС CLI ΠΈ Python API для быстрого ΠΈ понятного экспорта ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности Ρ€Π΅ΠΆΠΈΠΌΠ° экспорта

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй:

  • Экспорт Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ: ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для экспорта Π² Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹.
  • ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ экспорт: Экспортируй ΠΌΠΎΠ΄Π΅Π»ΠΈ, способныС ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌΡƒ Π°Π½Π°Π»ΠΈΠ·Ρƒ.
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄: ЭкспортируСмыС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Π±ΠΎΠ»Π΅Π΅ быстрого Π²Ρ‹Π²ΠΎΠ΄Π°.
  • ΠžΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ: ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ руководства ΠΈ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π΅Π±Π΅ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

НаконСчник

  • Экспортируй Π² ONNX ΠΈΠ»ΠΈ OpenVINO для ускорСния Π² 3 Ρ€Π°Π·Π° CPU .
  • Экспортируй Π² TensorRT для ускорСния Π΄ΠΎ 5 Ρ€Π°Π· GPU .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

Экспортируй модСль YOLOv8n Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ONNX ΠΈΠ»ΠΈ TensorRT. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² экспорта смотри Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "АргумСнты" Π½ΠΈΠΆΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolov8n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

АргумСнты

Π’ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠΏΡ†ΠΈΠΈ, доступныС для экспорта ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ YOLO Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹. Π­Ρ‚ΠΈ настройки ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ совмСстимости экспортированной ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСдах. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ настройка Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ модСль Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ Π² ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ.

АргумСнт Π’ΠΈΠΏ По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ОписаниС
format str 'torchscript' Π¦Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ экспортируСмой ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 'onnx', 'torchscript', 'tensorflow', ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ срСдами развСртывания.
imgsz int ΠΈΠ»ΠΈ tuple 640 Π–Π΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния Π½Π° Π²Ρ…ΠΎΠ΄Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΌ числом для ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΌ (height, width) Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹.
keras bool False Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ экспорт Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Keras для TensorFlow SavedModel , обСспСчивая ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с сСрвисами ΠΈ API TensorFlow .
optimize bool False ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств ΠΏΡ€ΠΈ экспортС Π² TorchScript, ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.
half bool False Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ FP16 (ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ точности), ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ускоряя Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ.
int8 bool False АктивируСт ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ INT8, Π΅Ρ‰Π΅ большС сТимая модСль ΠΈ ускоряя Π²Ρ‹Π²ΠΎΠ΄ с минимальной ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ точности, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для ΠΊΡ€Π°Π΅Π²Ρ‹Ρ… устройств.
dynamic bool False ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ динамичСскиС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для экспорта ONNX ΠΈ TensorRT, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с изобраТСниями Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².
simplify bool False Π£ΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ построСниС Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ для ONNX exports с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ onnxslim, ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ.
opset int None Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ опСнсСта ONNX для совмСстимости с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ парсСрами ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ выполнСния ONNX. Если Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ послСдняя поддСрТиваСмая вСрсия.
workspace float 4.0 УстанавливаСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ пространства Π² GiB для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ TensorRT , балансируя ΠΌΠ΅ΠΆΠ΄Ρƒ использованиСм памяти ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.
nms bool False ДобавляСт Non-Maximum Suppression (NMS) Π² экспорт CoreML, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈ эффСктивной постобработки дСтСктирования.
batch int 1 Π—Π°Π΄Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ экспорта ΠΈΠ»ΠΈ максимальноС количСство ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ экспортируСмая модСль Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π² predict Ρ€Π΅ΠΆΠΈΠΌ.

Настройка этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² позволяСт ΠΏΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ процСсс экспорта ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ трСбования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ срСда развСртывания, Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ ограничСния ΠΈ Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Ρ‹Π±ΠΎΡ€ подходящСго Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈ настроСк Π²Π°ΠΆΠ΅Π½ для достиТСния ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ баланса ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ экспорта

ДоступныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ экспорта 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 ΠšΡ€Π°ΠΉ 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

Π’ΠžΠŸΠ ΠžΠ‘Π« И ΠžΠ’Π’Π•Π’Π«

Как ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ модСль YOLOv8 Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX ?

Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ модСль YOLOv8 Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX ΠΏΡ€ΠΎΡ‰Π΅ всСго с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ultralytics. Он прСдоставляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Python ΠΈ CLI для экспорта ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolov8n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± этом процСссС, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ONNX Ρ€Π°Π·Π΄Π΅Π».

Π’ Ρ‡Π΅ΠΌ прСимущСства использования TensorRT для экспорта ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ?

ИспользованиС TensorRT для экспорта ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. МодСли YOLOv8 , экспортированныС Π² TensorRT , ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‚ΡΡ Π² 5 Ρ€Π°Π· ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с GPU , Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

  • Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ установку.
  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ: ДобСйся Π±ΠΎΠ»Π΅Π΅ быстрого Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π° счСт ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ.
  • Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ: Плавно интСгрируйся с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ NVIDIA .

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ TensorRT, смотри TensorRT руководство ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ.

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ INT8 ΠΏΡ€ΠΈ экспортС ΠΌΠΎΠ΄Π΅Π»ΠΈ YOLOv8 ?

ΠšΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ INT8 - ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ΡΠΆΠ°Ρ‚ΡŒ модСль ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, особСнно Π½Π° edge-устройствах. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ‚Ρ‹ моТСшь Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ INT8:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

from ultralytics import YOLO

model = YOLO("yolov8n.pt")  # Load a model
model.export(format="onnx", int8=True)
yolo export model=yolov8n.pt format=onnx int8=True   # export model with INT8 quantization

ΠšΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ INT8 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ TensorRT ΠΈ CoreML. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ " Экспорт ".

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈ экспортС ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π²Π°ΠΆΠ΅Π½ динамичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…?

ДинамичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… позволяСт экспортируСмой ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, обСспСчивая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ оптимизируя ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… случаСв использования. ΠŸΡ€ΠΈ экспортС Π² Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, ΠΊΠ°ΠΊ ONNX ΠΈΠ»ΠΈ TensorRT, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ динамичСского Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ модСль смоТСт Π»Π΅Π³ΠΊΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ dynamic=True Ρ„Π»Π°Π³ Π²ΠΎ врСмя экспорта:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(format="onnx", dynamic=True)
yolo export model=yolov8n.pt format=onnx dynamic=True

Π—Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ контСкстом обращайся ΠΊ настройкС динамичСского Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π²Ρ…ΠΎΠ΄Π°.

КакиС основныС экспортныС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ?

ПониманиС ΠΈ настройка Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² экспорта ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ:

  • format: Π¦Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ экспортируСмой ΠΌΠΎΠ΄Π΅Π»ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, onnx, torchscript, tensorflow).
  • imgsz: Π–Π΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния для Π²Ρ…ΠΎΠ΄Π° Π² модСль (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 640 ΠΈΠ»ΠΈ (height, width)).
  • half: Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ FP16, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ускоряя Π²Ρ‹Π²ΠΎΠ΄.
  • optimize: ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… условий.
  • int8: Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ INT8, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΏΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ список ΠΈ объяснСния всСх Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² экспорта Ρ‚Ρ‹ найдСшь Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ " АргумСнты экспорта".



Боздано 2023-11-12, ОбновлСно 2024-07-04
Авторы: glenn-jocher (17), Burhan-Q (4), Kayzwer (2)

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ