YOLO26 Modelleri için ONNX Dışa Aktarımı

~%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 verimli bir dağıtım imkanı 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 sağlar. Bu rehber, YOLO26 modellerini nasıl kolayca ONNX'e dönüştürebileceğini ve gerçek dünya uygulamalarındaki ölçeklenebilirliklerini ve etkinliklerini nasıl artırabileceğini gösterecektir.



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

ONNX 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 geçiş yapmak için kullanılabilir. Örneğin, PyTorch'ta eğitilmiş bir derin öğrenme modeli ONNX formatına dışa aktarılabilir ve ardından TensorFlow'a kolayca içe aktarılabilir.

ONNX model portability across deep learning frameworks

Alternatif olarak, ONNX modelleri ONNX Runtime ile kullanılabilir. ONNX Runtime, PyTorch, TensorFlow, TFLite, scikit-learn gibi ç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 uyumluluk için esnek bir çözüm sunar.

ONNX Modellerinin Temel Özellikleri

ONNX'in çeşitli formatları yönetebilme yeteneği, aşağıdaki temel özelliklere atfedilebilir:

  • 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 eski sürümlerde oluşturulan modellerin kullanılabilir kalmasını sağlar. Geriye dönük uyumluluk, modellerin hızlı bir şekilde eskimesini önleyen kritik bir özelliktir.

  • Grafik Tabanlı Model Temsili: ONNX, modelleri hesaplama grafikleri olarak temsil eder. Bu grafik tabanlı yapı, makine öğrenimi modellerini temsil etmenin evrensel bir yoludur; burada düğümler işlemleri veya hesaplamaları, kenarlar ise aralarında akan tensörleri temsil eder. 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 mevcuttur. 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 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ı uygulanabilir hale getirir.

Desteklenen Dağıtım Seçenekleri

ONNX modelleri yaygın olarak 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ütmeyi sağlar.

  • Uç ve Mobil Cihazlar: ONNX, uç ve mobil cihazlara uzanarak cihaz içi ve gerçek zamanlı çıkarım senaryoları için mükemmeldir. Hafiftir ve uç donanımlarla uyumludur.

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

YOLO26 Modellerini ONNX'e Aktarma

YOLO26 modellerini ONNX formatına dönüştürerek model uyumluluğunu ve dağıtım esnekliğini genişletebilirsin. Ultralytics YOLO26, modelinin performansını farklı platformlarda önemli ölçüde artırabilen basit 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 rehberimize göz at. YOLO26 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar rehberimize başvur.

Kullanım

Kullanım talimatlarına dalmadan önce, Ultralytics tarafından sunulan YOLO26 modellerine göz atmayı unutma. Bu, proje gereksinimlerin için en uygun modeli seçmene yardımcı olacaktır.

Kullanım
from ultralytics import YOLO

# Load the 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")

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 adına çeşitli argümanları kullanarak süreci özelleştirebilirsin:

ArgümanTürVarsayı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 tuple640Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions.
halfboolFalseFP16 (yarım hassasiyet) nicelemeyi etkinleştirerek model boyutunu küçültür ve desteklenen donanımlarda çıkarım hızını potansiyel olarak artırır.
dynamicboolFalseDeğişken görüntü boyutlarını işlemede esnekliği artırarak dinamik giriş boyutlarına izin verir.
simplifyboolTrueModel grafiğini onnxslim ile basitleştirir, potansiyel olarak performansı ve uyumluluğu artırır.
opsetintNoneFarklı ONNX ayrıştırıcıları ve çalışma zamanları ile 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 Maksimum Olmayan Bastırma (NMS) özelliğini ekler.
batchint1Modelin dışa aktarılan 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 ile ilgili Ultralytics dokümantasyon sayfasını ziyaret et.

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

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

  • ONNX Runtime Python API Dokümantasyonu: Bu rehber, ONNX Runtime kullanarak ONNX modellerini yüklemek ve çalıştırmak için temel bilgileri sağlar.

  • Uç Cihazlarda Dağıtım: Uç cihazlarda ONNX modellerini dağıtmanın farklı örnekleri için bu doküman 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.

Özet

Bu rehberde, Ultralytics YOLO26 modellerini, çeşitli platformlarda birlikte çalışabilirliklerini ve performanslarını artırmak için nasıl ONNX formatına 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 birçok dışa aktarma formatından sadece biridir ve modellerini hemen hemen 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ımla ilgili daha fazla ayrıntı için ONNX resmi dokümantasyonunu ziyaret et.

Ayrıca, diğer Ultralytics YOLO26 entegrasyonları hakkında daha fazla bilgi edinmek istersen, entegrasyon rehberi sayfamızı ziyaret et. Orada pek çok yararlı kaynak ve içgörü 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 the 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 dokümantasyonunu 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ğlar.
  • Çerçeve birlikte çalışabilirliği: PyTorch veya TensorFlow gibi popüler çerçevelerde eğitilen modeller, ONNX formatına kolayca 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 hale getirir.

ONNX Runtime dokümantasyonuna göz atarak daha fazla bilgi edin.

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

ONNX'e dışa 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 içi çıkarım için hafif modellerin uç ve mobil cihazlarda çalıştırılması.
  • Web tarayıcıları: Etkileşimli web tabanlı uygulamalar için modellerin doğrudan web tarayıcılarında 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 rehberimizi keşfet.

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

Ultralytics YOLO26 modelleri için ONNX formatını kullanmak sayısız 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 farklı platformlarda değişiklik yapmadan kullanmana olanak tanır.
  • Standardizasyon: ONNX, sektör genelinde geniş çapta desteklenen standart bir format sunarak uzun vadeli uyumluluk sağlar.

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

YOLO26 modellerini ONNX'e dışa 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ğunu doğrula.
  2. Desteklenen operatörler ve özellikler için resmi ONNX dokümantasyonunu kontrol et.
  3. Hata mesajlarını ipuçları için incele ve Ultralytics Yaygın Sorunlar rehberine 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ği ile iletişime geç.

Yorumlar