İçeriğe geç

ile Model İhracatı Ultralytics YOLO

Ultralytics YOLO ekosistem ve entegrasyonlar

Giriş

Bir modeli eğitmenin nihai amacı, onu gerçek dünya uygulamaları için dağıtmaktır. Ultralytics YOLO11 adresindeki Dışa Aktarma modu, eğittiğiniz modeli farklı formatlara aktarmak için çok yönlü seçenekler sunarak çeşitli platform ve cihazlara dağıtılabilir hale getirir. Bu kapsamlı kılavuz, maksimum uyumluluk ve performansın nasıl elde edileceğini göstererek model dışa aktarmanın nüansları konusunda size yol göstermeyi amaçlamaktadır.



İzle: Özel Eğitilmiş Ultralytics YOLO Modeli Nasıl Dışa Aktarılır ve Web Kamerasında Canlı Çıkarım Nasıl Çalıştırılır.

Neden YOLO11'un Dışa Aktarma Modunu Seçmelisiniz?

  • Çok yönlülük: Aşağıdakiler dahil birden fazla formata dışa aktarın ONNX, TensorRT, CoreMLve daha fazlası.
  • Performans: TensorRT ile 5 kata kadar GPU hızlandırması ve ONNX ile 3 kata kadar CPU hızlandırması elde edin veya OpenVINO.
  • Uyumluluk: Modelinizi çok sayıda donanım ve yazılım ortamına evrensel olarak dağıtılabilir hale getirin.
  • Kullanım Kolaylığı: Hızlı ve basit model dışa aktarımı için basit CLI ve Python API.

Dışa Aktarma Modunun Temel Özellikleri

İşte öne çıkan işlevlerden bazıları:

  • Tek Tıkla Dışa Aktarma: Farklı formatlara dışa aktarma için basit komutlar.
  • Toplu Dışa Aktarma: Toplu çıkarım yapabilen modelleri dışa aktarın.
  • Optimize Edilmiş Çıkarım: Dışa aktarılan modeller daha hızlı çıkarım süreleri için optimize edilmiştir.
  • Eğitici Videolar: Sorunsuz bir dışa aktarma deneyimi için derinlemesine kılavuzlar ve öğreticiler.

İpucu

  • Dışa aktar ONNX veya OpenVINO 3 kata kadar CPU hızlandırma için.
  • Dışa aktar TensorRT 5 kata kadar GPU hızlandırma için.

Kullanım Örnekleri

Bir YOLO11n modelini ONNX veya TensorRT gibi farklı bir formata dışa aktarın. Dışa aktarma argümanlarının tam listesi için aşağıdaki Argümanlar bölümüne bakın.

Örnek

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt format=onnx      # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

Argümanlar

Bu tabloda, YOLO modellerini farklı formatlara aktarmak için kullanılabilecek yapılandırmalar ve seçenekler ayrıntılı olarak açıklanmaktadır. Bu ayarlar, dışa aktarılan modelin performansını, boyutunu ve çeşitli platformlar ve ortamlar arasındaki uyumluluğunu optimize etmek için kritik öneme sahiptir. Doğru yapılandırma, modelin amaçlanan uygulamada optimum verimlilikle dağıtıma hazır olmasını sağlar.

Tartışma Tip Varsayılan Açıklama
format str 'torchscript' Dışa aktarılan model için hedef format, örneğin 'onnx', 'torchscript', 'engine' TensorRT) veya diğerleri. Her format farklı formatlarla uyumluluk sağlar dağıtım ortamları.
imgsz int veya tuple 640 Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı olabilir (örn, 640 640×640 için) veya bir tuple (height, width) belirli boyutlar için.
keras bool False için Keras formatına aktarmayı etkinleştirir TensorFlow SavedModel TensorFlow hizmet ve API'leri ile uyumluluk sağlar.
optimize bool False TorchScript'e aktarırken mobil cihazlar için optimizasyon uygular, potansiyel olarak model boyutunu azaltır ve çıkarım performansını artırır. NCNN formatı veya CUDA cihazları ile uyumlu değildir.
half bool False FP16 (yarım hassasiyetli) nicemlemeyi etkinleştirerek model boyutunu azaltır ve desteklenen donanımda çıkarımı potansiyel olarak hızlandırır. INT8 niceleme veya ONNX için CPU dışa aktarımı ile uyumlu değildir.
int8 bool False INT8 nicelemeyi etkinleştirerek modeli daha da sıkıştırır ve özellikle uç cihazlar için minimum doğruluk kaybıyla çıkarımı hızlandırır. TensorRT ile kullanıldığında, eğitim sonrası niceleme (PTQ) gerçekleştirir.
dynamic bool False ONNX, TensorRT ve OpenVINO dışa aktarımları için dinamik giriş boyutlarına izin vererek değişen görüntü boyutlarının işlenmesinde esnekliği artırır. Otomatik olarak şu şekilde ayarlanır True INT8 ile TensorRT kullanırken.
simplify bool True ile ONNX ihracatları için model grafiğini basitleştirir. onnxslimpotansiyel olarak performansı ve çıkarım motorlarıyla uyumluluğu artırır.
opset int None Farklı operatörlerle uyumluluk için ONNX opset sürümünü belirtir. ONNX ayrıştırıcılar ve çalışma zamanları. Ayarlanmamışsa, desteklenen en son sürümü kullanır.
workspace float veya None None için GiB cinsinden maksimum çalışma alanı boyutunu ayarlar. TensorRT optimizasyonları, bellek kullanımı ve performansı dengeleme. Kullanım None TensorRT tarafından cihaz maksimum değerine kadar otomatik tahsis için.
nms bool False Desteklendiğinde (bkz. Dışa Aktarma Biçimleri) dışa aktarılan modele Maksimum Olmayan Bastırma (NMS) ekleyerek algılama sonrası işleme verimliliğini artırır. End2end modelleri için mevcut değildir.
batch int 1 Dışa aktarılan model toplu çıkarım boyutunu veya dışa aktarılan modelin eşzamanlı olarak işleyeceği maksimum görüntü sayısını belirtir predict modu. Edge TPU dışa aktarımları için bu otomatik olarak 1'e ayarlanır.
device str None Dışa aktarma için cihazı belirtir: GPU (device=0), CPU (device=cpu), Apple silikonları için MPS (device=mps) veya NVIDIA Jetson için DLA (device=dla:0 veya device=dla:1). TensorRT dışa aktarımları otomatik olarak GPU kullanır.
data str 'coco8.yaml' Yol veri kümesi yapılandırma dosyası (varsayılan: coco8.yaml), INT8 niceleme kalibrasyonu için gereklidir. INT8 etkinken belirtilmezse, varsayılan bir veri kümesi atanacaktır.

Bu parametrelerin ayarlanması, dışa aktarma işleminin dağıtım ortamı, donanım kısıtlamaları ve performans hedefleri gibi belirli gereksinimlere uyacak şekilde özelleştirilmesine olanak tanır. Uygun format ve ayarların seçilmesi, model boyutu, hız ve doğruluk arasında en iyi dengeyi sağlamak için çok önemlidir.

Dışa Aktarma Biçimleri

Mevcut YOLO11 dışa aktarma formatları aşağıdaki tabloda yer almaktadır. kullanarak herhangi bir formata dışa aktarabilirsiniz. format argümanı, yani format='onnx' veya format='engine'. Doğrudan dışa aktarılan modeller üzerinde tahmin veya doğrulama yapabilirsiniz, örn. yolo predict model=yolo11n.onnx. Dışa aktarma tamamlandıktan sonra modeliniz için kullanım örnekleri gösterilir.

Biçim format Tartışma Model Metadata Argümanlar
PyTorch - yolo11n.pt -
TorchScript torchscript yolo11n.torchscript imgsz, optimize, nms, batch
ONNX onnx yolo11n.onnx imgsz, half, dynamic, simplify, opset, nms, batch
OpenVINO openvino yolo11n_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data
TensorRT engine yolo11n.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data
CoreML coreml yolo11n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n_saved_model/ imgsz, keras, int8, nms, batch
TF GraphDef pb yolo11n.pb imgsz, batch
TF Lite tflite yolo11n.tflite imgsz, half, int8, nms, batch, data
TF Kenar TPU edgetpu yolo11n_edgetpu.tflite imgsz
TF.js tfjs yolo11n_web_model/ imgsz, half, int8, nms, 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, data
RKNN rknn yolo11n_rknn_model/ imgsz, batch, name

SSS

Bir YOLO11 modelini ONNX formatına nasıl aktarabilirim?

Bir YOLO11 modelini ONNX formatına aktarmak Ultralytics ile kolaydır. Modelleri dışa aktarmak için hem Python hem de CLI yöntemleri sağlar.

Örnek

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt format=onnx      # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

Farklı girdi boyutlarının işlenmesi gibi gelişmiş seçenekler de dahil olmak üzere süreç hakkında daha fazla ayrıntı için ONNX entegrasyon kılavuzuna bakın.

Model aktarımı için TensorRT adresini kullanmanın faydaları nelerdir?

Model dışa aktarımı için TensorRT kullanılması önemli performans iyileştirmeleri sunar. TensorRT adresine aktarılan YOLO11 modelleri 5 kata kadar GPU hızlanmasına ulaşabilir ve bu da onu gerçek zamanlı çıkarım uygulamaları için ideal hale getirir.

  • Çok yönlülük: Modelleri belirli bir donanım kurulumu için optimize edin.
  • Hız: Gelişmiş optimizasyonlar sayesinde daha hızlı çıkarım elde edin.
  • Uyumluluk: NVIDIA donanımı ile sorunsuz bir şekilde entegre olur.

TensorRT entegrasyonu hakkında daha fazla bilgi edinmek için TensorRT entegrasyon kılavuzuna bakın.

YOLO11 modelimi dışa aktarırken INT8 nicelemeyi nasıl etkinleştiririm?

INT8 niceleme, modeli sıkıştırmak ve özellikle uç cihazlarda çıkarımı hızlandırmak için mükemmel bir yoldur. INT8 nicelemeyi nasıl etkinleştirebileceğiniz aşağıda açıklanmıştır:

Örnek

from ultralytics import YOLO

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

INT8 niceleme aşağıdaki gibi çeşitli formatlara uygulanabilir TensorRT, OpenVINOve CoreML. Optimum nicemleme sonuçları için, temsili bir veri kümesi kullanarak data parametre.

Modelleri dışa aktarırken dinamik girdi boyutu neden önemlidir?

Dinamik giriş boyutu, dışa aktarılan modelin değişen görüntü boyutlarını işlemesine olanak tanıyarak esneklik sağlar ve farklı kullanım durumları için işleme verimliliğini optimize eder. gibi formatlara aktarırken ONNX veya TensorRTdinamik girdi boyutunun etkinleştirilmesi, modelin farklı girdi şekillerine sorunsuz bir şekilde adapte olabilmesini sağlar.

Bu özelliği etkinleştirmek için dynamic=True dışa aktarma sırasında bayrak:

Örnek

from ultralytics import YOLO

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

Dinamik giriş boyutlandırma, özellikle video işleme veya farklı kaynaklardan gelen görüntülerin işlenmesi gibi giriş boyutlarının değişebileceği uygulamalar için kullanışlıdır.

Model performansını optimize etmek için dikkate alınması gereken temel ihracat argümanları nelerdir?

Dışa aktarma argümanlarını anlamak ve yapılandırmak, model performansını optimize etmek için çok önemlidir:

  • format: Dışa aktarılan model için hedef format (örn, onnx, torchscript, tensorflow).
  • imgsz: Model girişi için istenen görüntü boyutu (örn, 640 veya (height, width)).
  • half: FP16 nicelemeyi etkinleştirerek model boyutunu azaltır ve potansiyel olarak çıkarımı hızlandırır.
  • optimize: Mobil veya kısıtlı ortamlar için özel optimizasyonlar uygular.
  • int8: INT8 kuantizasyonunu etkinleştirir, aşağıdakiler için oldukça faydalıdır uç yapay zeka dağıtımlar.

Belirli donanım platformlarında dağıtım için, aşağıdaki gibi özel dışa aktarma formatlarını kullanmayı düşünün TensorRTNVIDIA GPU'lar için, CoreML Apple cihazları için veya Google Coral cihazları için Edge TPU.

📅1 yıl önce oluşturuldu ✏️ 4 gün önce güncellendi

Yorumlar