ile Model İhracatı Ultralytics YOLO
Giriş
Bir modeli eğitmenin nihai amacı, onu gerçek dünya uygulamaları için dağıtmaktır. Ultralytics YOLOv8 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 YOLOv8 Modeli Nasıl Dışa Aktarılır ve Web Kamerasında Canlı Çıkarım Nasıl Çalıştırılır.
Neden YOLOv8'un Dışa Aktarma Modunu Seçmelisiniz?
- Çok yönlülük: ONNX , TensorRT, CoreML ve daha fazlası dahil olmak üzere birden fazla formata aktarın.
- Performans: TensorRT ile 5 kata kadar GPU hızlandırması ve ONNX veya OpenVINO ile 3 kata kadar CPU hızlandırması elde edin.
- 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
- 3 kata kadar CPU hızlandırması için ONNX veya OpenVINO adresine aktarın.
- 5 kata kadar GPU hızlandırması için TensorRT adresine aktarın.
Kullanım Örnekleri
Bir YOLOv8n 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
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' , 'tensorflow' veya diğerleri, çeşitli dağıtım ortamlarıyla uyumluluğu tanımlar. |
imgsz |
int veya tuple |
640 |
Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya bir tuple olabilir (height, width) belirli boyutlar için. |
keras |
bool |
False |
TensorFlow SavedModel için Keras formatına aktarımı etkinleştirerek TensorFlow hizmeti ve API'leri ile uyumluluk sağlar. |
optimize |
bool |
False |
TorchScript adresine aktarırken mobil cihazlar için optimizasyon uygular, potansiyel olarak model boyutunu azaltır ve performansı artırır. |
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 |
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. |
dynamic |
bool |
False |
ONNX ve TensorRT dışa aktarımları için dinamik giriş boyutlarına izin vererek, farklı görüntü boyutlarının işlenmesinde esnekliği artırır. |
simplify |
bool |
False |
ONNX dışa aktarımları için model grafiğini basitleştirerek performansı ve uyumluluğu potansiyel olarak iyileştirir. |
opset |
int |
None |
Farklı ONNX ayrıştırıcıları ve çalışma zamanları ile uyumluluk için ONNX opset sürümünü belirtir. Ayarlanmamışsa, desteklenen en son sürümü kullanır. |
workspace |
float |
4.0 |
Bellek kullanımı ve performansı dengeleyen TensorRT optimizasyonları için maksimum çalışma alanı boyutunu GB cinsinden ayarlar. |
nms |
bool |
False |
CoreML dışa aktarımına, doğru ve verimli algılama sonrası işleme için gerekli olan Maksimum Olmayan Bastırma (NMS) ekler. |
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 Mod. |
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 YOLOv8 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=yolov8n.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 | - | 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 Kenar 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 |