YOLO Vision 2025'i kaçırmayın!
25 Eylül 2025
10:00 — 18:00 BST
Hibrit etkinlik
Yolo Vision 2024

Ultralytics YOLO modellerini dışa aktarmak için ONNX entegrasyonunu kullanma

Abirami Vina

4 dakika okuma

2 Mayıs 2025

Çeşitli donanımlarda çapraz platform dağıtımı için ONNX entegrasyonunu kullanarak Ultralytics YOLO11 gibi Ultralytics YOLO modellerini nasıl dışa aktaracağınızı öğrenin.

Yapay zeka çözümleri ilk kez dikkat çekmeye başladığında, çoğu model kontrollü ortamlarda güçlü sunucularda dağıtılıyordu. Ancak, teknoloji ilerledikçe, dağıtım veri merkezinin çok ötesine geçti.

Günümüzde, yapay zeka modelleri bulut sunucuları ve masaüstlerinden akıllı telefonlara ve uç cihazlara kadar her şeyde çalışıyor. Bu değişim, daha hızlı işlemeyi, çevrimdışı işlevselliği ve verilerin oluşturulduğu yere daha yakın çalışan daha akıllı sistemleri destekler.

Bunun özellikle belirgin olduğu bir alan, makinelerin görsel verileri yorumlamasını sağlayan bir yapay zeka dalı olan bilgisayarlı görüdür. Yüz tanıma, otonom sürüş ve gerçek zamanlı video analizi gibi uygulamaları yönlendirmek için kullanılıyor. Bu kullanım alanları büyüdükçe, çeşitli donanım ve platformlarda sorunsuz çalışabilen modellere olan ihtiyaç da artıyor.

Ancak bilgisayarlı görü modellerini bir dizi dağıtım hedefinde dağıtmak her zaman basit değildir. Cihazlar donanım, işletim sistemleri ve desteklenen çerçeveler açısından farklılık gösterir, bu da esneklik ve uyumluluğu zorunlu kılar.

Bu nedenle, Ultralytics YOLO11 gibi bilgisayarlı görü modellerini farklı formatlara aktarma seçeneğine sahip olmak önemlidir. Örneğin, Ultralytics tarafından desteklenen ONNX (Açık Nöral Ağ Değişimi) entegrasyonu, eğitim ve dağıtım arasındaki boşluğu kapatmak için pratik bir yol sağlar. ONNX, modelleri çerçeveden bağımsız ve platformlar arası dağıtıma hazır hale getiren açık bir formattır.

Şekil 1. ONNX, bir çerçevede eğitilmiş bir modeli kolayca başka bir çerçevede çalıştırmanıza yardımcı olur.

Bu makalede, Ultralytics tarafından desteklenen ONNX entegrasyonuna daha yakından bakacağız ve esnek, çapraz platform dağıtımı için YOLO11 modelinizi nasıl dışa aktarabileceğinizi keşfedeceğiz.

ONNX ve ONNX Runtime nedir?

Açık Nöral Ağ Değişimi, makine öğrenimi modelleri için standart bir format tanımlayan açık kaynaklı bir projedir. Başlangıçta Microsoft ve Facebook tarafından geliştirilen bu proje, geliştiricilerin bir modeli PyTorch gibi bir çerçevede eğitmelerine ve TensorFlow gibi başka bir çerçevede çalıştırmalarına olanak tanır. Bu, özellikle bilgisayarlı görü gibi alanlarda yapay zeka geliştirmeyi daha esnek, işbirlikçi ve erişilebilir hale getirir.

ONNX, farklı araçlar, çerçeveler, çalışma zamanları ve derleyiciler arasında modelleri taşımayı kolaylaştıran ortak bir operatör kümesi ve birleşik bir dosya formatı sağlar. Normalde, bir çerçevede eğitilmiş bir model başka bir çerçeveyle kolayca uyumlu değildir - ancak ONNX ile modelinizi bir kez dışa aktarabilir ve neredeyse her yerde dağıtabilirsiniz: CPU'larda (Merkezi İşlem Birimleri), GPU'larda (Grafik İşleme Birimleri), mobil cihazlarda veya uç donanımda.

Ayrıca, ONNX Runtime, modelleri ONNX formatında çalıştırmak için özel olarak geliştirilmiş yüksek performanslı bir çıkarım motorudur. ONNX modellerinin sunucular, mobil cihazlar ve uç donanımlar dahil olmak üzere çok çeşitli platformlarda daha hızlı ve daha verimli çalışmasını sağlamak için tasarlanmıştır. ONNX Runtime, PyTorch, TensorFlow, TensorFlow Lite ve scikit-learn gibi popüler framework'lerle uyumludur ve farklı iş akışlarına entegre edilmesini ve modellerin ihtiyaç duyulan her yerde konuşlandırılmasını kolaylaştırır.

Şekil 2. ONNX ve ONNX Runtime, esnek çapraz platform model dağıtımını mümkün kılar.

ONNX'in temel özellikleri 

YOLO11'i ONNX formatına nasıl aktaracağımızı tartışmadan önce, ONNX model formatının bazı temel özelliklerine göz atalım. 

Araçlar arasında geçiş yapsanız, farklı cihazlara dağıtım yapsanız veya sistemleri yükseltseniz de, ONNX her şeyin sorunsuz çalışmasına yardımcı olur. İşte ONNX model formatını benzersiz kılan özellikler:

  • Tek standart format: ONNX, modellerin nasıl oluşturulduğunu (katmanlar ve işlemler gibi, bunları yapı taşları olarak düşünün) açıklamak için ortak bir yol kullanır. Bir model ONNX'e dönüştürüldüğünde, bu standardı izler, böylece ONNX'i destekleyen herhangi bir sistem onu anlayabilir ve çalıştırabilir.
  • Geriye dönük uyumluluk: ONNX gelişmeye devam ederken bile, eski modellerin yeni sürümlerle hala çalışmasını sağlar. Bu, ONNX her güncellendiğinde modellerinizi yeniden eğitmek veya yeniden oluşturmak zorunda kalmayacağınız anlamına gelir.
  • Grafik tabanlı model tasarımı: ONNX modelleri, her düğümün bir işlemi (bir katman veya matematiksel fonksiyon gibi) temsil ettiği ve kenarların veri akışını gösterdiği hesaplama grafikleri olarak yapılandırılmıştır. Bu grafik tabanlı tasarım, benzer hesaplama grafiği yapılarını kullanan çeşitli sistemlerle entegrasyonu kolaylaştırır.
  • Geliştirici dostu araçlar: Modellerinizi dönüştürmenize, doğrulamanıza ve optimize etmenize yardımcı olan çok çeşitli araçlarla birlikte gelir. Bu araçlar, modelleri farklı framework'ler arasında taşıma sürecini basitleştirir ve özellikle bilgisayarlı görü uygulamaları için dağıtımı hızlandırabilir.

ONNX entegrasyonuna genel bakış

Ultralytics YOLO11 gibi Ultralytics YOLO modellerini ONNX formatında dışa aktarmak basittir ve birkaç adımda yapılabilir. 

Başlamak için, ‘pip’ gibi bir paket yöneticisi kullanarak Ultralytics Python paketini yükleyin. Başlamak için komut isteminizde veya terminalinizde “pip install ultralytics” komutunu çalıştırarak bu yapılabilir.

Ultralytics paketi ile çeşitli bilgisayarlı görü görevleri için modelleri kolayca eğitebilir, test edebilir, ince ayar yapabilir, dışa aktarabilir ve dağıtabilir, böylece tüm süreç daha hızlı ve daha verimli hale gelir. Kurulum sırasında herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Sık Karşılaşılan Sorunlar kılavuzuna başvurabilirsiniz.

Ultralytics paketi yüklendikten sonra, aşağıdaki kodu kullanarak YOLO11 modelini yükleyebilir ve ONNX formatına aktarabilirsiniz. Bu örnek, önceden eğitilmiş bir YOLO11 modelini (yolo11n.pt) yükler ve farklı platformlarda ve cihazlarda dağıtıma hazır hale getirerek bir ONNX dosyası (yolo11n.onnx) olarak dışa aktarır.

Modelinizi ONNX formatına dönüştürdükten sonra, çeşitli platformlarda dağıtabilirsiniz. 

Aşağıdaki örnek, dışa aktarılan YOLO11 modelinin (yolo11n.onnx) nasıl yükleneceğini ve onunla nasıl çıkarım yapılacağını gösterir. Çıkarım yapmak basitçe, yeni veriler üzerinde tahminler yapmak için eğitilmiş modeli kullanmak anlamına gelir. Bu durumda, modeli test etmek için bir otobüsün görüntüsünün URL'sini kullanacağız.

Bu kodu çalıştırdığınızda, aşağıdaki çıktı görüntüsü runs/detect/predict klasörüne kaydedilecektir.

Şekil 3. Dışa aktarılan YOLO11 modelini bir görüntü üzerinde kullanarak çıkarım çalıştırma.

ONNX entegrasyonunu ne zaman seçmelisiniz?

Ultralytics Python paketi, TorchScript, CoreML, TensorRT ve ONNX dahil olmak üzere çeşitli formatlara model dışa aktarmayı destekler. Peki, neden ONNX'i seçmelisiniz?

ONNX'i öne çıkaran şey, framework'ten bağımsız bir format olmasıdır. Diğer birçok dışa aktarma formatı belirli araçlara veya ortamlara bağlıyken, ONNX standartlaştırılmış bir format ve paylaşılan bir operatör kümesi kullanır. Bu, onu son derece taşınabilir, donanım dostu ve bulut sunucularıyla, mobil uygulamalarla veya uç cihazlarla çalışıyor olsanız da çapraz platform dağıtımı için ideal hale getirir. 

İşte ONNX entegrasyonunun YOLO11 projeleriniz için neden ideal seçim olabileceğine dair bazı nedenler:

  • Taşınabilir dağıtım: ONNX'e aktarıldıktan sonra, YOLO11 modeliniz kod değişiklikleri veya yeniden eğitim olmadan çeşitli platformlarda dağıtılabilir.
  • Sektör çapında destek: ONNX, büyük AI şirketleri ve framework'leri tarafından desteklenir ve bu da onu güvenilir, yaygın olarak kabul gören bir format haline getirir. PDF'lerin cihazlar arasında çalışma şekline benzer şekilde, uzun vadeli uyumluluk sağlar.
  • Geleceğe dönük geliştirme: ONNX kullanmak, model yatırımlarınızı korumanıza yardımcı olur. Araçlar geliştikçe, ONNX, modellerinizi yeni veya farklı ortamlarda bile alakalı ve kullanılabilir tutar.
  • Satıcıya bağımlılık yok: Bazı araçlar sizi yalnızca kendi sistemlerini kullanmaya zorlar, bu da modelinizin yapabileceklerini sınırlayabilir. ONNX, tek bir kuruluma bağlı kalmadan, ihtiyaçlarınız için en uygun platformu seçmenize olanak tanıyarak bunu önler.

YOLO11 ve ONNX model formatının uygulamaları

Şimdi de YOLO11'in ONNX entegrasyonu yardımıyla nerelerde kullanılabileceğine dair bazı gerçek dünya uygulamalarını inceleyelim.

YOLO11 kullanarak depolarda envanter takibi

Yoğun depolarda, her ürünü ve paketi her zaman gözlemlemek zordur. Bilgisayarlı görü sistemleri, çalışanların raflardaki ürünleri bulmasına ve ürün sayısı, türü vb. gibi bilgilere ulaşmasına yardımcı olabilir. Bu tür sistemler, işletmelerin geniş envanterlerini otomatik olarak yönetmelerine ve depo çalışanlarına büyük ölçüde zaman kazandırabilir.

Özellikle akıllı depolarda, ONNX'e aktarılan YOLO11 modelleri, kameralar ve uç cihazlar kullanılarak gerçek zamanlı olarak öğeleri tanımlamak ve saymak için kullanılabilir. Dışa aktarılan model, stok seviyelerini, eksik öğeleri veya boş noktaları tespit etmek için rafları veya paletleri taramaya yardımcı olabilir. ONNX'e aktarım modeli hafif ve verimli hale getirdiğinden, pahalı sunuculara veya sürekli bulut erişimine ihtiyaç duymadan doğrudan akıllı kameralar gibi küçük uç cihazlarda çalışabilir.

Şekil 4. Paketleri tespit etmek ve saymak için YOLO11 kullanımına bir örnek.

YOLO11 ile hastane atık yönetimi

Dünya genelindeki hastaneler, kullanılmış eldivenlerden şırıngalara, ameliyat sırasında kullanılan ekipmanlara (tek kullanımlık veya kontamine olmuş makas ve neşter gibi cerrahi aletler) kadar her gün büyük miktarda atık üretmektedir. Aslında araştırmalar, hastanelerin her yıl yaklaşık 5 milyon ton atık ürettiğini ve bunun günde yatak başına 13 kilogram atığa denk geldiğini gösteriyor. 

Bu tür atıkların uygun şekilde ayrılması hijyen, güvenlik ve düzenlemelere uyum için çok önemlidir. ONNX formatında dışa aktarılan YOLO11 modelleri ile hastaneler atık bertarafını otomatikleştirip gerçek zamanlı olarak izleyebilir.

Örneğin, ameliyathaneler veya koridorlar gibi alanlardaki çöp kutularının yanına yerleştirilen kameralar, atılan öğeleri izleyebilir. Farklı tıbbi atık türlerini tanımak üzere eğitilmiş özel bir YOLO11 modeli, görüntüleri analiz edebilir ve neyin atıldığını belirleyebilir. Bir öğe yanlışlıkla normal çöpe atılırsa (kullanılmış bir şırınga gibi), sistem bir ışık veya sesle personeli derhal uyaracak şekilde ayarlanabilir, bu da kontaminasyonu önlemeye ve uyumluluğu sağlamaya yardımcı olur.

Şekil 5. Tıbbi aletleri tespit etmek için YOLO11 kullanımı.

YOLO11 özellikli ürün izleme

Ürünleri hasat etmek için doğru zamanı bilmek, hem ürünün kalitesi hem de bir çiftliğin genel verimliliği üzerinde büyük bir etkiye sahip olabilir. Geleneksel olarak, çiftçiler deneyime ve manuel denetimlere güvenirler - ancak teknolojideki son gelişmelerle birlikte bu durum değişmeye başlıyor.

Artık, ONNX formatında dışa aktarılan YOLO11 gibi bilgisayarlı görü yenilikleriyle, çiftçiler tarlaya otomasyon ve hassasiyet getirebilirler. Çiftçiler, dronlar veya traktörlere veya direklere monte edilmiş kameralar kullanarak ürünlerinin (domates, elma veya buğday gibi) görüntülerini yakalayabilirler. YOLO11 daha sonra renk, boyut ve ürünlerin dağılımı gibi temel göstergeleri tespit etmek için kullanılabilir. Bu bilgilere dayanarak, çiftçiler ürünlerin hasada hazır olup olmadığını, hala olgunlaşıp olgunlaşmadığını veya zaten zirvesini aşıp aşmadığını belirleyebilirler.

Şekil 6. YOLO11, havadan drone görüntülerinde ürünleri tespit etmek için kullanılabilir. 

Göz önünde bulundurulması gereken ONNX sınırlamaları

ONNX, taşınabilirlik, platformlar arası uyumluluk ve çerçeve birlikte çalışabilirliği gibi çok sayıda fayda sunarken, akılda tutulması gereken bazı sınırlamalar vardır:

  • Model boyutu: Modelleri ONNX formatına dönüştürmek bazen orijinal formatlarına kıyasla daha büyük dosya boyutlarına neden olabilir. Kuvantalama ve budama gibi teknikler, performansı önemli ölçüde etkilemeden model boyutunu küçülterek bu sorunu hafifletmeye yardımcı olabilir.
  • Çalışma zamanı uyumluluğu: ONNX Runtime, platformlar arası uyumluluk için tasarlanmış olsa da, performans ve destek farklı donanım ve işletim sistemlerinde değişiklik gösterebilir. 
  • Hata ayıklama zorlukları: ONNX modellerinde hata ayıklamak, PyTorch veya TensorFlow gibi yerel çerçevelere göre daha karmaşık olabilir. Hata mesajları daha az açıklayıcı olabilir ve bu da sorunları tespit etmeyi zorlaştırır. Bununla birlikte, model görselleştirme için Netron ve ONNX Runtime'ın günlük kaydı özellikleri gibi araçlar sorun gidermeye yardımcı olabilir.

Önemli çıkarımlar

Ultralytics YOLO11'i ONNX'e aktarmak, eğitilmiş bir bilgisayarlı görü modelini alıp neredeyse her yerde (ister bir dizüstü bilgisayarda, ister bir mobil cihazda, hatta kompakt bir akıllı kamerada) dağıtmayı kolaylaştırır. ONNX entegrasyonu ile tek bir çerçeveye veya platforma bağlı kalmazsınız, bu da modelinizi uygulamanıza en uygun ortamda çalıştırma esnekliği sağlar. 

Bu, eğitimden gerçek dünya dağıtımına geçişi daha hızlı ve daha verimli hale getirir. İster bir depoda envanteri takip ediyor olun, ister hastane atıklarının doğru şekilde bertaraf edilmesini sağlıyor olun, bu kurulum sistemlerin daha sorunsuz çalışmasına yardımcı olur, hataları azaltır ve değerli zamandan tasarruf sağlar.

Bilgisayarlı görü ve yapay zeka hakkında daha fazla bilgi edinmek ister misiniz? Bilgisayarlı görü projenize başlamak için GitHub depomuzu keşfedin, topluluğumuzla bağlantı kurun ve lisanslama seçeneklerimize göz atın. Üretimde yapay zeka ve otomotivde bilgisayarlı görü gibi yenilikleri araştırıyorsanız, daha fazlasını keşfetmek için çözüm sayfalarımızı ziyaret edin. 

Gelin, yapay zekanın geleceğini
birlikte inşa edelim!

Makine öğreniminin geleceği ile yolculuğunuza başlayın

Ücretsiz başlayın
Bağlantı panoya kopyalandı