Meet YOLO26: next-gen vision AI.

Link to this sectionYOLO26 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.

Bilgisayarlı görü modellerini dağıtırken, genellikle hem esnek hem de birden fazla platformla uyumlu bir model formatına ihtiyaç duyarsın.

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



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

Link to this sectionONNX ve ONNX Runtime#

ONNX, which stands for Open Neural Network Exchange, is a community project that Facebook and Microsoft initially developed. The ongoing development of ONNX is a collaborative effort supported by various organizations like IBM, Amazon (through AWS), and Google. The project aims to create an open file format designed to represent machine learning models in a way that allows them to be used across different AI frameworks and hardware.

ONNX modelleri, farklı çerçeveler arasında sorunsuz bir şekilde geçiş yapmak için kullanılabilir. Örneğin, PyTorch'ta eğitilmiş bir derin öğrenme 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ü, platformlar arası bir 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 dağıtımı ve uyumluluğu için esnek bir çözüm sunar.

Link to this sectionONNX 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.

Link to this sectionONNX'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.

Link to this sectionCPU 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.

Link to this sectionDesteklenen Dağıtım Seçenekleri#

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

  • GPU Hızlandırma: ONNX, özellikle NVIDIA CUDA olmak üzere GPU hızlandırmasını tam olarak destekler. Bu, yüksek hesaplama gücü gerektiren görevler için NVIDIA GPU'larda verimli yürütme sağlar.

  • Uç ve Mobil Cihazlar: ONNX, uç ve mobil cihazlara kadar uzanır; cihaz üzerinde ve gerçek zamanlı çıkarım senaryoları için mükemmeldir. Hafiftir ve uç donanımlarla uyumludur; Snapdragon cihazlar için Qualcomm QNN ve Rockchip NPU'lar için RKNN gibi satıcı NPU formatlarının temelini 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.

Link to this sectionYOLO26 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ırabilen basit bir dışa aktarma süreci sunar.

Link to this sectionKurulum#

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ın. YOLO26 için gerekli paketleri kurarken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza başvurun.

Link to this sectionKullanım#

Kullanım talimatlarına geçmeden önce, Ultralytics tarafından sunulan YOLO26 modelleri yelpazesine göz attığından 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 doğrulamak 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")

Link to this sectionDış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 (height, width) şeklinde bir demet olabilir.
quantizeint veya strNoneNiceleme hassasiyeti: 16 (FP16) veya 8 (data'dan kalibrasyon görüntüleri kullanan ONNX Runtime ile INT8 statik niceleme, _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 dosyası. 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.
simplifyboolTrueModel grafiğini onnxslim ile basitleştirerek performansı ve uyumluluğu potansiyel olarak iyileştirir.
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 eşzamanlı olarak 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 aktarma süreci hakkında daha fazla ayrıntı için dışa aktarma hakkındaki Ultralytics dokümantasyon sayfasına git.

Link to this sectionDış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 Belgeleri: Bu kılavuz, ONNX Runtime kullanarak ONNX modellerini yüklemek ve çalıştırmak için temel bilgiler sağlar.

  • Uç Cihazlarda Dağıtım: Uç cihazlarda ONNX modellerini dağıtmanın farklı örnekleri için bu belgeler sayfasına göz at.

  • GitHub'daki ONNX Eğitimleri: ONNX modellerini kullanmanın ve uygulamanın çeşitli yönlerini farklı senaryolarda 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.

Link to this sectionÖ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 aktarma, Ultralytics YOLO26 tarafından desteklenen birçok dışa aktarma formatından sadece biridir ve modellerini neredeyse her ortamda dağıtmana olanak tanır. Ö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 resmi belgelerini ziyaret et.

Ayrıca, diğer Ultralytics YOLO26 entegrasyonları hakkında daha fazla bilgi edinmek istersen entegrasyon kılavuzu sayfamızı ziyaret et. Orada birçok yararlı kaynak ve içgörü bulabilirsin.

Link to this sectionSSS#

Link to this sectionUltralytics 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 dışa aktarma belgelerini ziyaret et.

Link to this sectionYOLO26 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.
  • Çerçeveler arası birlikte çalışabilirlik: PyTorch veya TensorFlow gibi popüler çerçevelerde eğitilen 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.

Daha fazla bilgi edinmek için ONNX Runtime belgelerine göz at.

Link to this sectionONNX'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 dağıtım seçenekleri hakkındaki kılavuzumuzu keşfet.

Link to this sectionUltralytics 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.

YOLO26 modellerini ONNX'e dışa aktarma hakkındaki kapsamlı kılavuza başvur.

Link to this sectionYOLO26 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 belgelerine göz at.
  3. Hata mesajlarını ipuçları için incele ve Ultralytics Yaygın Sorunlar kılavuzuna danış.
  4. simplify=True gibi farklı dışa aktarma argümanlarını kullanmayı veya opset sürümünü ayarlamayı dene.
  5. Dinamik giriş boyutu sorunları için dışa aktarma sırasında dynamic=True ayarını yap.

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

Yorumlar