Ultralytics YOLO modellerini dışa aktarmak için ONNX entegrasyonunu kullanma
Ultralytics YOLO11 gibi Ultralytics YOLO modellerini çeşitli donanımlarda platformlar arası dağıtım için ONNX entegrasyonunu kullanarak nasıl dışa aktaracağını öğren.

Yapay zekâ çözümleri ilk kez ilgi görmeye başladığında, çoğu model kontrollü ortamlardaki güçlü sunucularda dağıtılıyordu. Ancak teknoloji ilerledikçe dağıtım, veri merkezlerinin çok ötesine yayıldı.
Günümüzde yapay zekâ modelleri bulut sunucularından ve masaüstü bilgisayarlardan akıllı telefonlara ve uç cihazlara kadar her yerde çalışıyor. Bu değişim; daha hızlı işlemeyi, çevrim dışı işlevselliği ve verilerin üretildiği yere daha yakın çalışan daha akıllı sistemleri destekliyor.
Bunun özellikle açıkça görüldüğü alanlardan biri, makinelerin görsel verileri yorumlamasını sağlayan bir yapay zekâ dalı olan bilgisayarlı görü alanıdır. Bilgisayarlı görü; yüz tanıma, otonom sürüş ve gerçek zamanlı video analizi gibi uygulamalara güç vermek için kullanılıyor. Bu kullanım alanları büyüdükçe, farklı donanım ve platformlarda sorunsuz çalışabilen modellere duyulan ihtiyaç da artıyor.
Ancak bilgisayarlı görü modellerini çeşitli dağıtım hedeflerinde çalıştırmak her zaman kolay değildir. Cihazlar donanım, işletim sistemleri ve desteklenen çerçeveler bakımından farklılık gösterir; bu nedenle esneklik ve uyumluluk büyük önem taşır.
İşte bu nedenle, Ultralytics YOLO11 gibi bilgisayarlı görü modellerini farklı biçimlere dışa aktarma seçeneğine sahip olmak çok önemlidir. Örneğin Ultralytics tarafından desteklenen ONNX (Açık Sinir Ağı Değişimi) entegrasyonu, eğitim ile dağıtım arasındaki boşluğu kapatmak için pratik bir yol sunar. ONNX, modelleri çerçeveden bağımsız ve platformlar genelinde dağıtıma hazır hâle getiren açık bir biçimdir.

Şekil 1. ONNX, bir çerçevede eğitilen modeli kolayca alıp başka bir çerçevede çalıştırmana yardımcı olur.
Bu makalede, Ultralytics tarafından desteklenen ONNX entegrasyonunu daha yakından inceleyecek ve YOLO11 modelini esnek, platformlar arası dağıtım için nasıl dışa aktarabileceğini ele alacağız.
ONNX ve ONNX Runtime nedir?#
Açık Sinir Ağı Değişimi, makine öğrenimi modelleri için standart bir biçim tanımlayan açık kaynaklı bir projedir. İlk olarak Microsoft ve Facebook tarafından geliştirilen bu proje, geliştiricilerin PyTorch gibi bir çerçevede model eğitip TensorFlow gibi başka bir çerçevede çalıştırmasına olanak tanır. Bu da özellikle bilgisayarlı görü gibi alanlarda yapay zekâ geliştirmeyi daha esnek, iş birliğine açık ve erişilebilir hâle getirir.
ONNX, ortak bir operatör kümesi ve birleşik bir dosya biçimi sunarak modelleri farklı araçlar, çerçeveler, çalışma zamanları ve derleyiciler arasında taşımayı kolaylaştırır. Normalde bir çerçevede eğitilen model başka bir çerçeveyle kolayca uyumlu olmaz; ancak ONNX ile modelini bir kez dışa aktarabilir ve neredeyse her yerde dağıtabilirsin: CPU'larda (Merkezi İşlem Birimleri), GPU'larda (Grafik İşlem Birimleri), mobil cihazlarda veya uç donanımlarda.
Ayrıca ONNX Runtime, modelleri ONNX biçiminde ç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 dâhil olmak üzere çok çeşitli platformlarda daha hızlı ve verimli çalışmasını sağlamak üzere tasarlanmıştır. ONNX Runtime; PyTorch, TensorFlow, TensorFlow Lite ve scikit-learn gibi popüler çerçevelerle uyumludur. Bu sayede farklı iş akışlarına kolayca entegre edilebilir ve modeller ihtiyaç duyulan her yerde dağıtılabilir.

Şekil 2. ONNX ve ONNX Runtime, esnek platformlar arası model dağıtımını mümkün kılar.
ONNX'in temel özellikleri#
Ultralytics YOLO11'i ONNX biçimine nasıl dışa aktaracağını ele almadan önce, ONNX model biçiminin bazı temel özelliklerine göz atalım.
İster araçlar arasında geçiş yapıyor, ister farklı cihazlara dağıtım gerçekleştiriyor, ister sistemlerini yükseltiyor ol; ONNX her şeyin sorunsuz çalışmasına yardımcı olur. ONNX model biçimini benzersiz kılan özellikler şunlardır:
-
Tek bir standart biçim: ONNX, katmanlar ve işlemler gibi modellerin nasıl oluşturulduğunu açıklamak için ortak bir yöntem kullanır; bunları yapı taşları olarak düşünebilirsin. Bir model ONNX'e dönüştürüldüğünde bu standardı izler; böylece ONNX'i destekleyen her sistem modeli anlayıp çalıştırabilir.
-
Geriye dönük uyumluluk: ONNX gelişmeye devam ederken eski modellerin yeni sürümlerle çalışmasını da sağlar. Bu, ONNX her güncellendiğinde modellerini yeniden eğitmen veya baştan oluşturman gerekmediği anlamına gelir.
-
Grafik tabanlı model tasarımı: ONNX modelleri, her düğümün bir işlemi (katman veya matematiksel işlev gibi) temsil ettiği ve kenarların veri akışını gösterdiği hesaplama grafikleri şeklinde yapılandırılı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: ONNX; modellerini dönüştürmene, doğrulamana ve optimize etmene yardımcı olan çok çeşitli araçlarla birlikte gelir. Bu araçlar, modelleri farklı çerçeveler arasında taşıma sürecini basitleştirir ve özellikle bilgisayarlı görü uygulamalarında dağıtımı hızlandırabilir.
ONNX entegrasyonuna genel bakış#
Ultralytics YOLO11 gibi Ultralytics YOLO modellerini ONNX biçiminde dışa aktarmak oldukça kolaydır ve birkaç adımda gerçekleştirilebilir.
Başlamak için Ultralytics Python paketini ‘pip’ gibi bir paket yöneticisi kullanarak yükle. Başlamak için komut isteminde veya terminalde “pip install ultralytics” komutunu çalıştırman yeterlidir.
Ultralytics paketiyle çeşitli bilgisayarlı görü görevleri için modelleri kolayca eğitebilir, test edebilir, ince ayar yapabilir, dışa aktarabilir ve dağıtabilirsin; böylece tüm süreç daha hızlı ve verimli hâle gelir. Yükleme sırasında herhangi bir sorunla karşılaşırsan çözüm ve ipuçları için Yaygın Sorunlar kılavuzuna başvurabilirsin.
Ultralytics paketi yüklendikten sonra aşağıdaki kodu kullanarak YOLO11 modelini yükleyebilir ve ONNX biçimine aktarabilirsin. Bu örnek, önceden eğitilmiş bir YOLO11 modelini (yolo11n.pt) yükler ve farklı platform ve cihazlarda dağıtıma hazır hâle getirerek ONNX dosyası (yolo11n.onnx) olarak dışa aktarır.
Modelini ONNX biçimine dönüştürdükten sonra çeşitli platformlarda dağıtabilirsin.
Aşağıdaki örnekte, dışa aktarılan YOLO11 modelinin (yolo11n.onnx) nasıl yükleneceği ve bununla çıkarımın nasıl çalıştırılacağı gösteriliyor. Çıkarım, basitçe eğitilmiş modelin yeni veriler üzerinde tahmin yapmak için kullanılmasıdır. Bu örnekte modeli test etmek için bir otobüs görselinin URL'sini kullanacağız.
Bu kodu çalıştırdığında aşağıdaki çıktı görseli runs/detect/predict klasörüne kaydedilir.

Şekil 3. Dışa aktarılan Ultralytics YOLO11 modeliyle bir görsel üzerinde çıkarım çalıştırma.
ONNX entegrasyonunu ne zaman seçmelisin?#
Ultralytics Python paketi; TorchScript, CoreML, TensorRT ve ONNX dâhil olmak üzere çeşitli biçimlere model dışa aktarmayı destekler. Peki neden ONNX'i seçmelisin?
ONNX'i öne çıkaran özellik, çerçeveden bağımsız bir biçim olmasıdır. Diğer birçok dışa aktarma biçimi belirli araçlara veya ortamlara bağlıyken ONNX, standartlaştırılmış bir biçim ve ortak bir operatör kümesi kullanır. Bu da onu son derece taşınabilir, donanım dostu ve platformlar arası dağıtım için ideal hâle getirir; ister bulut sunucularıyla, ister mobil uygulamalarla, ister uç cihazlarla çalışıyor ol.
ONNX entegrasyonunun Ultralytics YOLO11 projelerin için ideal bir seçim olmasının bazı nedenleri şunlardır:
-
Taşınabilir dağıtım: Ultralytics YOLO11 modelini ONNX'e aktardıktan sonra kod değişikliği veya yeniden eğitim gerektirmeden çeşitli platformlarda dağıtabilirsin.
-
Sektör genelinde destek: ONNX, önde gelen yapay zekâ şirketleri ve çerçeveleri tarafından desteklenir; bu da onu güvenilir ve geniş ölçüde kabul gören bir biçim hâline getirir. PDF'lerin cihazlar arasında çalışmasına benzer şekilde uzun vadeli uyumluluk sağlar.
-
Geleceğe hazır geliştirme: ONNX kullanmak, model yatırımlarını korumaya yardımcı olur. Araçlar geliştikçe ONNX, yeni veya farklı ortamlarda bile modellerinin güncel ve kullanılabilir kalmasını sağlar.
-
Tedarikçi bağımlılığı yok: Bazı araçlar seni yalnızca kendi sistemlerini kullanmaya zorlar ve bu durum modelinin yapabileceklerini sınırlayabilir. ONNX, tek bir kuruluma bağlı kalmadan ihtiyaçlarına en uygun platformu seçmene izin vererek bu sorunu ortadan kaldırır.
Ultralytics YOLO11 ve ONNX model biçiminin uygulamaları#
Sırada, ONNX entegrasyonunun yardımıyla Ultralytics YOLO11'in dağıtılabileceği bazı gerçek dünya uygulamalarını inceleyelim.
Ultralytics YOLO11 kullanarak depolardaki envanteri takip etme#
Yoğun depolarda her ürünü ve paketi her an takip etmek zordur. Bilgisayarlı görü sistemleri, çalışanların raflardaki ürünleri bulmasına ve ürün sayısı, türü gibi bilgiler edinmesine yardımcı olabilir. Bu tür sistemler, işletmelerin geniş envanterlerini otomatik olarak yönetmesine yardımcı olur ve depo çalışanlarına önemli ölçüde zaman kazandırır.
Özellikle akıllı depolarda, ONNX'e aktarılmış Ultralytics YOLO11 modelleri kameralar ve uç cihazlar kullanarak öğeleri gerçek zamanlı olarak tanımlamak ve saymak için kullanılabilir. Dışa aktarılan model, stok düzeylerini, eksik öğeleri veya boş alanları tespit etmek üzere rafları ya da paletleri taramaya yardımcı olabilir. ONNX'e aktarma modeli hafif ve verimli hâle getirdiğinden, pahalı sunuculara veya sürekli bulut erişimine ihtiyaç duymadan akıllı kameralar gibi küçük uç cihazlarda doğrudan çalışabilir.

Şekil 4. Paketleri tespit etmek ve saymak için YOLO11 kullanımına bir örnek.
Ultralytics YOLO11 ile hastane atık yönetimi#
Dünyanın dört bir yanındaki hastaneler, kullanılmış eldiven ve şırıngalardan ameliyat sırasında kullanılan ekipmanlara (makas ve bistüri gibi tek kullanımlık veya kontamine cerrahi aletlere) kadar her gün büyük miktarlarda atık üretir. Araştırmalar, hastanelerin her yıl yaklaşık 5 milyon ton atık ürettiğini; bunun yatak başına günde 29 pound atık anlamına geldiğini gösteriyor.
Bu tür atıkların doğru şekilde ayrıştırılması hijyen, güvenlik ve yönetmeliklere uyum açısından çok önemlidir. ONNX biçiminde dışa aktarılan Ultralytics YOLO11 modelleriyle hastaneler atık bertarafını otomatikleştirebilir ve gerçek zamanlı olarak izleyebilir.
Örneğin ameliyathaneler veya koridorlar gibi alanlarda atık kutularının yakınına yerleştirilen kameralar, atılan öğeleri izleyebilir. Farklı tıbbi atık türlerini tanıyacak şekilde eğitilmiş özel bir Ultralytics YOLO11 modeli görüntüleri analiz ederek neyin atıldığını belirleyebilir. Bir öğe yanlış kutuya atılırsa (örneğin kullanılmış bir şırınga normal çöpe atılırsa), sistem çalışanları ışık veya sesle anında uyaracak şekilde yapılandırılabilir; böylece kontaminasyonun önlenmesine ve uyumluluğun sağlanmasına yardımcı olur.

Şekil 5. Tıbbi aletleri tespit etmek için Ultralytics YOLO11 kullanımı.
Ultralytics YOLO11 destekli mahsul izleme#
Mahsulleri hasat etmek için doğru zamanı bilmek, hem ürün kalitesini hem de bir çiftliğin genel verimliliğini büyük ölçüde etkileyebilir. Geleneksel olarak çiftçiler deneyimlerine ve manuel kontrollere güvenir; ancak teknolojideki son gelişmelerle bu durum değişmeye başlıyor.
Artık ONNX biçiminde dışa aktarılan YOLO11 gibi bilgisayarlı görü yenilikleriyle çiftçiler, otomasyonu ve hassasiyeti tarlaya taşıyabilir. Çiftçiler dronları veya traktörlere ya da direklere monte edilmiş kameraları kullanarak mahsullerinin (domates, elma veya buğday gibi) görüntülerini yakalayabilir. Ardından YOLO11; renk, boyut ve mahsul dağılımı gibi temel göstergeleri tespit etmek için kullanılabilir. Çiftçiler bu bilgilere dayanarak mahsullerin hasada hazır olup olmadığını, hâlâ olgunlaşıp olgunlaşmadığını veya en verimli dönemini geride bırakıp bırakmadığını belirleyebilir.

Şekil 6. YOLO11, havadan çekilen drone görüntülerinde mahsulleri tespit etmek için kullanılabilir.
Dikkate alınması gereken ONNX sınırlamaları#
ONNX taşınabilirlik, platformlar arası uyumluluk ve çerçeveler arası birlikte çalışabilirlik gibi çok sayıda avantaj sunsa da akılda tutulması gereken bazı sınırlamalar vardır:
-
Model boyutu: Modelleri ONNX biçimine dönüştürmek, bazen özgün biçimlerine kıyasla daha büyük dosya boyutlarıyla sonuçlanabilir. Niceleme ve budama gibi teknikler, performansı önemli ölçüde etkilemeden model boyutunu azaltarak bu sorunun etkisini hafifletebilir.
-
Çalışma zamanı uyumluluğu: ONNX Runtime platformlar arası uyumluluk için tasarlanmış olsa da performans ve destek, farklı donanım ve işletim sistemleri arasında değişiklik gösterebilir.
-
Hata ayıklama zorlukları: ONNX modellerinde hata ayıklamak, PyTorch veya TensorFlow gibi yerel çerçevelere kıyasla daha karmaşık olabilir. Hata mesajları daha az açıklayıcı olabilir ve bu da sorunların kaynağını belirlemeyi zorlaştırır. Ancak 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 neredeyse her yerde (dizüstü bilgisayarda, mobil cihazda veya kompakt bir akıllı kamerada bile) dağıtmayı kolaylaştırır. ONNX entegrasyonuyla tek bir çerçeveye veya platforma bağlı kalmazsın; modelini uygulamana en uygun ortamda çalıştırma esnekliğine sahip olursun.
Bu, eğitimden gerçek dünya dağıtımına geçişi daha hızlı ve verimli hâle getirir. İster bir depodaki envanteri takip ediyor ister hastane atıklarının doğru şekilde bertaraf edilmesini sağlıyor ol; 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 zekâ hakkında daha fazla bilgi edinmek ister misin? Bilgisayarlı görü projene hızlı bir başlangıç yapmak için GitHub depomuzu incele, topluluğumuzla bağlantı kur ve lisans seçeneklerimize göz at. Üretimde yapay zekâ ve otomotiv sektöründe bilgisayarlı görü gibi yenilikleri araştırıyorsan daha fazla bilgi edinmek için çözüm sayfalarımızı ziyaret et.









