YOLO Vision 2026:

YOLO26 Modelleri için ONNX Dışa Aktarma#

~%43 daha hızlı çıkarım.
  • Ultralytics YOLO26 modelini ONNX'e dışa aktarmak, çıkarım hızında %43'e varan bir artış sağlayarak daha hızlı ve daha verimli bir dağıtım olanağı sunar.

Genellikle computer vision modellerini dağıtırken, hem esnek hem de birden fazla platformla uyumlu bir model formatına ihtiyaç duyarsın.

Ultralytics YOLO26 modellerini ONNX formatına aktarmak, dağıtımı kolaylaştırır ve çeşitli ortamlarda optimum performans sağlar. Bu kılavuz, YOLO26 modellerini ONNX'e nasıl kolayca dönüştüreceğini ve gerçek dünya uygulamalarındaki ölçeklenebilirliklerini ve etkinliklerini nasıl artıracağını gösterecektir.



Watch: Ultralytics YOLO26 vs Ultralytics YOLO11 ONNX Inference Test | ~43% Faster Inference with YOLO26 🚀

ONNX ve ONNX Runtime#

Açık Neural Network Değişimi anlamına gelen ONNX, başlangıçta Facebook ve Microsoft tarafından geliştirilen bir topluluk projesidir. ONNX'in devam eden geliştirilmesi, IBM, Amazon (AWS aracılığıyla) ve Google gibi çeşitli kuruluşlar tarafından desteklenen ortak bir çabadır. Proje, machine learning modellerini farklı AI çerçevelerinde ve donanımlarında kullanılabilecek şekilde temsil etmek için tasarlanmış açık bir dosya formatı oluşturmayı amaçlamaktadır.

ONNX modelleri, farklı çerçeveler arasında sorunsuz bir şekilde geçiş yapmak için kullanılabilir. Örneğin, PyTorch'ta eğitilmiş bir deep learning modeli ONNX formatına aktarılabilir ve ardından kolayca TensorFlow'a içe aktarılabilir.

ONNX model portability across deep learning frameworks

Alternatif olarak, ONNX modelleri ONNX Runtime ile kullanılabilir. ONNX Runtime, PyTorch, TensorFlow, scikit-learn vb. çerçevelerle uyumlu, makine öğrenimi modelleri için çok yönlü bir platformlar arası hızlandırıcıdır.

ONNX Runtime, donanıma özgü yeteneklerden yararlanarak ONNX modellerinin yürütülmesini optimize eder. Bu optimizasyon, modellerin CPU'lar, GPU'lar ve özel hızlandırıcılar dahil olmak üzere çeşitli donanım platformlarında verimli ve yüksek performansla çalışmasını sağlar.

ONNX Runtime cross-platform inference acceleration

İster bağımsız olarak ister ONNX Runtime ile birlikte kullanılsın, ONNX makine öğrenimi model deployment ve uyumluluk için esnek bir çözüm sunar.

ONNX Modellerinin Temel Özellikleri#

ONNX'in çeşitli formatları işleme yeteneği, aşağıdaki temel özelliklerine bağlanabilir:

  • Ortak Model Temsili: ONNX, ortak bir operatör kümesi (evrişimler, katmanlar vb.) ve standart bir veri formatı tanımlar. Bir model ONNX formatına dönüştürüldüğünde, mimarisi ve ağırlıkları bu ortak temsile çevrilir. Bu tekdüzelik, modelin ONNX'i destekleyen herhangi bir çerçeve tarafından anlaşılabilmesini sağlar.

  • Sürüm Oluşturma ve Geriye Dönük Uyumluluk: ONNX, operatörleri için bir sürüm sistemi sürdürür. Bu, standart geliştikçe bile eski sürümlerde oluşturulan modellerin kullanılabilir kalmasını sağlar. Geriye dönük uyumluluk, modellerin hızla eskimesini önleyen çok önemli bir özelliktir.

  • Grafik Tabanlı Model Temsili: ONNX, modelleri hesaplama grafikleri olarak temsil eder. Bu grafik tabanlı yapı, düğümlerin işlemleri veya hesaplamaları, kenarların ise aralarındaki tensör akışını temsil ettiği makine öğrenimi modellerini temsil etmenin evrensel bir yoludur. Bu format, modelleri grafik olarak temsil eden çeşitli çerçevelere kolayca uyarlanabilir.

  • Araçlar ve Ekosistem: ONNX etrafında, model dönüştürme, görselleştirme ve optimizasyona yardımcı olan zengin bir araç ekosistemi vardır. Bu araçlar, geliştiricilerin ONNX modelleriyle çalışmasını ve modelleri farklı çerçeveler arasında sorunsuz bir şekilde dönüştürmesini kolaylaştırır.

ONNX'in Yaygın Kullanımı#

YOLO26 modellerini ONNX formatına nasıl dışa aktaracağımıza geçmeden önce, ONNX modellerinin genellikle nerede kullanıldığına bir göz atalım.

CPU Dağıtımı#

ONNX modelleri, ONNX Runtime ile uyumlulukları nedeniyle genellikle CPU'larda dağıtılır. Bu çalışma zamanı, CPU yürütme için optimize edilmiştir. Çıkarım hızını önemli ölçüde artırır ve gerçek zamanlı CPU dağıtımlarını mümkün kılar.

Desteklenen Dağıtım Seçenekleri#

ONNX modelleri genellikle CPU'larda kullanılsa da, aşağıdaki platformlarda da dağıtılabilirler:

  • GPU Acceleration: ONNX, GPU hızlandırmasını, özellikle NVIDIA CUDA'yı tamamen destekler. AMD GPU'larında yerel eğitim ve çıkarım için PyTorch ROCm kullan; bir ONNX dosyası yine de AMD uyumlu bir çalışma zamanı gerektirir.

  • Edge and Mobile Devices: ONNX, uç cihazlara ve mobil cihazlara uzanır; cihaz üzerinde ve gerçek zamanlı çıkarım senaryoları için mükemmeldir. Hafiftir ve uç donanımla uyumludur; ayrıca Huawei Ascend, Snapdragon cihazlar için Qualcomm QNN ve Rockchip NPU'ları için RKNN gibi üretici NPU formatları için temel oluşturur.

  • Web Tarayıcıları: ONNX, doğrudan web tarayıcılarında çalışarak etkileşimli ve dinamik web tabanlı yapay zeka uygulamalarına güç verebilir.

Desteklenen Görevler#

ONNX dışa aktarımı, yedi Ultralytics görevinin tümünü destekler. Anlamsal segmentasyon ve derinlik tahmini, yalnızca bu başlıklara sahip tek aile olan YOLO26 ile kullanılabilir.

GörevYOLOv8YOLO11YOLO26
Algıla
Segmentlere Ayır
Anlamsal
Derinlik
Sınıflandır
Poz
OBB

YOLO26 Modellerini ONNX'e Dışa Aktarma#

YOLO26 modellerini ONNX formatına dönüştürerek model uyumluluğunu ve dağıtım esnekliğini genişletebilirsin. Ultralytics YOLO26, modelinin farklı platformlardaki performansını önemli ölçüde artırabilecek, anlaşılır bir dışa aktarma süreci sunar.

Kurulum#

Gerekli paketi yüklemek için şunu çalıştır:

Kurulum
# Install the required package for YOLO26
pip install ultralytics

Kurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için YOLO26 Kurulum kılavuzumuza göz at. YOLO26 için gerekli paketleri kurarken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza başvur.

Kullanım#

Kullanım talimatlarına dalmadan önce, Ultralytics tarafından sunulan YOLO26 modelleri yelpazesini incelediğinden emin ol. Bu, proje gereksinimlerin için en uygun modeli seçmene yardımcı olacaktır.

ONNX formatı Export, Predict ve Validate modlarını destekler. Modelini dışa aktar, ardından çıkarım çalıştırmak veya doğruluğunu onaylamak için dışa aktarılan modeli yükle.

Dışa Aktar (Export)
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo26n.onnx'

# Export an INT8-quantized ONNX model with calibration data
model.export(format="onnx", quantize=8, data="coco8.yaml")  # creates 'yolo26n_int8.onnx'
Tahmin Et (Predict)
from ultralytics import YOLO

# Load the exported ONNX model
model = YOLO("yolo26n.onnx")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Doğrula
from ultralytics import YOLO

# Load the exported ONNX model
model = YOLO("yolo26n.onnx")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Dışa Aktarma Argümanları#

YOLO26 modelini ONNX formatına dışa aktarırken, özel dağıtım ihtiyaçların için optimize etmek üzere çeşitli argümanlar kullanarak süreci özelleştirebilirsin:

ArgümanTipVarsayılanAçıklama
formatstr'onnx'Çeşitli dağıtım ortamlarıyla uyumluluğu tanımlayan, dışa aktarılan model için hedef format.
imgszint veya tuple640Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya belirli boyutlar için bir (height, width) demeti (tuple) olabilir.
quantizeint veya strNoneKuantizasyon hassasiyeti: 16 (FP16) veya data'den kalibrasyon görüntüleri kullanan ONNX Runtime ile 8 (INT8 statik kuantizasyonu, bir _int8.onnx modeli üretir); 32/ayarlanmamış ise FP32'dir. Kullanımdan kaldırılan half/int8 bayraklarının yerini alır.
datastrNoneINT8 kalibrasyonu için kullanılan Veri Kümesi YAML'si; sınıflandırma ise bunun yerine bir veri kümesi dizini veya yerleşik bir veri kümesi adı alır. quantize=8 ile atlanırsa, Ultralytics model görevi için varsayılan kalibrasyon veri kümesini seçer.
fractionfloat1.0INT8 nicemleme için kullanılacak kalibrasyon görüntülerinin oranı.
dynamicboolFalseDinamik giriş boyutlarına izin vererek farklı görüntü boyutlarını işlemede esnekliği artırır.
simplifyboolTrueonnxslim ile model grafiğini basitleştirerek olası performans ve uyumluluk artışı sağlar.
opsetintNoneFarklı ONNX ayrıştırıcıları ve çalışma zamanlarıyla uyumluluk için ONNX opset sürümünü belirtir. Ayarlanmazsa, desteklenen en son sürümü kullanır.
nmsboolFalseDoğru ve verimli tespit sonrası işleme için gerekli olan Non-Maximum Suppression (NMS) ekler.
batchint1Dışa aktarılan modelin toplu çıkarım boyutunu veya dışa aktarılan modelin predict modunda aynı anda işleyeceği maksimum görüntü sayısını belirtir.
devicestrNoneDışa aktarma için cihazı belirtir: GPU (device=0), CPU (device=cpu), Apple silikon için MPS (device=mps).

Dışa aktarım süreci hakkında daha fazla ayrıntı için Ultralytics documentation page on exporting sayfasını ziyaret edin.

Dışa Aktarılan YOLO26 ONNX Modellerini Dağıtma#

Ultralytics YOLO26 modellerini başarıyla ONNX formatına dışa aktardıktan sonra, bir sonraki adım bu modelleri çeşitli ortamlarda dağıtmaktır. ONNX modellerini dağıtmakla ilgili ayrıntılı talimatlar için aşağıdaki kaynaklara bir göz at:

  • ONNX Runtime Python API Documentation: Bu kılavuz, ONNX Runtime kullanarak ONNX modellerini yüklemek ve çalıştırmak için gerekli bilgileri sağlar.

  • Deploying on Edge Devices: ONNX modellerini uçta dağıtmanın farklı örnekleri için bu doküman sayfasına göz at.

  • ONNX Tutorials on GitHub: ONNX modellerini farklı senaryolarda kullanma ve uygulamanın çeşitli yönlerini kapsayan kapsamlı bir eğitim koleksiyonu.

  • Triton Inference Server: Yüksek performanslı, ölçeklenebilir dağıtımlar için ONNX modellerini NVIDIA'nın Triton Inference Server ile nasıl dağıtacağını öğren.

Özet#

Bu kılavuzda, Ultralytics YOLO26 modellerini, çeşitli platformlarda birlikte çalışabilirliklerini ve performanslarını artırmak için ONNX formatına nasıl dışa aktaracağını öğrendin. Ayrıca ONNX Runtime ve ONNX dağıtım seçenekleriyle de tanıştırıldın.

ONNX dışa aktarımı, Ultralytics YOLO26 tarafından desteklenen ve modellerini neredeyse her ortama dağıtmana olanak tanıyan pek çok export formats biridir. Özel ihtiyaçlarına bağlı olarak, maksimum GPU performansı için TensorRT veya Apple cihazları için CoreML gibi diğer dışa aktarma seçeneklerini de keşfetmek isteyebilirsin.

Kullanım hakkında daha fazla ayrıntı için ONNX official documentation adresini ziyaret et.

Ayrıca, diğer Ultralytics YOLO26 entegrasyonları hakkında daha fazla bilgi edinmek istiyorsan entegrasyon kılavuzu sayfamızı ziyaret et. Orada pek çok yararlı kaynak ve fikir bulacaksın.

SSS#

Ultralytics kullanarak YOLO26 modellerini ONNX formatına nasıl dışa aktarırım?#

Ultralytics kullanarak YOLO26 modellerini ONNX formatına dışa aktarmak için şu adımları izle:

Kullanım
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo26n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo26n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")

Daha fazla ayrıntı için export documentation adresini ziyaret et.

YOLO26 modellerini dağıtmak için ONNX Runtime kullanmanın avantajları nelerdir?#

YOLO26 modellerini dağıtmak için ONNX Runtime kullanmak çeşitli avantajlar sunar:

  • Platformlar arası uyumluluk: ONNX Runtime; Windows, macOS ve Linux gibi çeşitli platformları destekleyerek modellerinin farklı ortamlarda sorunsuz çalışmasını sağlar.
  • Donanım hızlandırma: ONNX Runtime, CPU'lar, GPU'lar ve özel hızlandırıcılar için donanıma özgü optimizasyonlardan yararlanarak yüksek performanslı çıkarım sağlayabilir.
  • Framework interoperability: PyTorch veya TensorFlow gibi popüler çerçevelerde eğitilmiş modeller kolayca ONNX formatına dönüştürülebilir ve ONNX Runtime kullanılarak çalıştırılabilir.
  • Performans optimizasyonu: ONNX Runtime, yerel PyTorch modellerine kıyasla 3 kata kadar CPU hız artışı sağlayabilir, bu da onu GPU kaynaklarının sınırlı olduğu dağıtım senaryoları için ideal kılar.

ONNX Runtime documentation adresini inceleyerek daha fazlasını öğren.

ONNX'e aktarılan YOLO26 modelleri için hangi dağıtım seçenekleri mevcuttur?#

ONNX'e aktarılan YOLO26 modelleri, aşağıdakiler dahil olmak üzere çeşitli platformlarda dağıtılabilir:

  • CPU'lar: Optimize edilmiş CPU çıkarımı için ONNX Runtime kullanımı.
  • GPU'lar: Yüksek performanslı GPU hızlandırması için NVIDIA CUDA'dan yararlanma.
  • Uç cihazlar: Gerçek zamanlı, cihaz üzerinde çıkarım için uç ve mobil cihazlarda hafif modellerin çalıştırılması.
  • Web tarayıcıları: Etkileşimli web tabanlı uygulamalar için modellerin doğrudan web tarayıcıları içinde yürütülmesi.
  • Bulut hizmetleri: Ölçeklenebilir çıkarım için ONNX formatını destekleyen bulut platformlarında dağıtım.

Daha fazla bilgi için model deployment options hakkındaki kılavuzumuzu keşfet.

Ultralytics YOLO26 modelleri için neden ONNX formatını kullanmalıyım?#

Ultralytics YOLO26 modelleri için ONNX formatını kullanmak çok sayıda fayda sağlar:

  • Birlikte çalışabilirlik: ONNX, modellerin farklı makine öğrenimi çerçeveleri arasında sorunsuz bir şekilde aktarılmasını sağlar.
  • Performans Optimizasyonu: ONNX Runtime, donanıma özgü optimizasyonlardan yararlanarak model performansını artırabilir.
  • Esneklik: ONNX, çeşitli dağıtım ortamlarını destekleyerek aynı modeli üzerinde değişiklik yapmadan farklı platformlarda kullanmanı sağlar.
  • Standardizasyon: ONNX, endüstri genelinde geniş çapta desteklenen, uzun vadeli uyumluluğu garanti eden standart bir format sağlar.

exporting YOLO26 models to ONNX hakkındaki kapsamlı kılavuza başvur.

YOLO26 modellerini ONNX'e aktarırken sorunları nasıl giderebilirim?#

YOLO26 modellerini ONNX'e dışa aktarırken, eşleşmeyen bağımlılıklar veya desteklenmeyen işlemler gibi yaygın sorunlarla karşılaşabilirsin. Bu sorunları gidermek için:

  1. Gerekli bağımlılıkların doğru sürümünün yüklü olduğundan emin ol.
  2. Desteklenen operatörler ve özellikler için resmi ONNX documentation adresini kontrol et.
  3. İpuçları için hata mesajlarını gözden geçir ve Ultralytics Common Issues guide kılavuzuna danış.
  4. simplify=True gibi farklı dışa aktarma argümanları kullanmayı dene veya opset sürümünü ayarla.
  5. Dinamik girdi boyutu sorunları için dışa aktarma sırasında dynamic=True değerini ayarla.

Sorunlar devam ederse, daha fazla yardım için Ultralytics desteğiyle iletişime geç.

Yorumlar