Ultralytics YOLO modellerini dışa aktarmak için ONNX entegrasyonunu kullanma
Ultralytics YOLO11 modellerini ONNX'e aktarmayı, aktarılan modelle çıkarım çalıştırmayı ve modeli CPU'lar, GPU'lar, mobil ve uç cihazlarda dağıtmayı öğren.
Abirami Vina9 dakikalık okuma
Yapay zekâ çözümleri ilk kez ilgi görmeye başladığında çoğu model, kontrollü ortamlardaki güçlü sunucularda devreye alınıyordu. Ancak teknoloji ilerledikçe dağıtım, veri merkezlerinin çok ötesine yayıldı.
Günümüzde yapay zekâ modelleri bulut sunucularından masaüstü bilgisayarlara, akıllı telefonlardan uç cihazlara kadar pek çok ortamda çalışıyor. Bu değişim daha hızlı işlemeyi, çevrim dışı çalışmayı ve verilerin üretildiği noktaya daha yakın çalışan daha akıllı sistemleri destekliyor.
Bunun özellikle belirgin olduğu alanlardan biri, makinelerin görsel verileri yorumlamasını sağlayan bir yapay zekâ dalı olan bilgisayarlı görü. Bilgisayarlı görü; yüz tanıma, otonom sürüş ve gerçek zamanlı video analizi gibi uygulamalarda kullanılıyor. Bu kullanım alanları büyüdükçe çeşitli 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. Donanım, işletim sistemleri ve desteklenen çerçeveler açısından farklılık gösteren cihazlar, esnekliği ve uyumluluğu zorunlu kılar.
Bu nedenle, Ultralytics YOLO11 gibi bilgisayarlı görü modellerini farklı biçimlere 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 kullanılan çerçeveden bağımsız hâle getiren ve platformlar arasında dağıtıma hazır kılan açık bir biçimdir.

Şekil 1. ONNX, bir çerçevede eğitilmiş bir modeli kolayca 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 keşfedeceğiz.
ONNX ve ONNX Runtime nedir?#
Open Neural Network Exchange, 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 bir modeli PyTorch gibi bir çerçevede eğitip TensorFlow gibi başka bir çerçevede çalıştırmasına olanak tanır. Bu özellik, ö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 yalnızca bir kez dışa aktarabilir ve neredeyse her yerde dağıtabilirsin: CPU'larda (merkezi işlem birimleri), GPU'larda (grafik işlem birimleri), mobil cihazlarda veya uç donanımlarda.
Ayrıca ONNX Runtime, özellikle ONNX biçimindeki modelleri çalıştırmak için geliştirilmiş, yüksek performanslı bir çıkarım motorudur. ONNX modellerini sunucular, mobil cihazlar ve uç donanımlar dâhil olmak üzere çok çeşitli platformlarda daha hızlı ve verimli çalıştırmak için 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 aktaracağını ele almadan önce, ONNX model biçiminin bazı temel özelliklerine göz atalım.
Araçlar arasında geçiş yaparken, farklı cihazlara dağıtım gerçekleştirirken veya sistemleri yükseltirken 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, modellerin katmanlar ve işlemler gibi nasıl oluşturulduğunu (bunları yapı taşları olarak düşünebilirsin) açıklamak için ortak bir yöntem kullanır. 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ı sağlar. Böylece ONNX her güncellendiğinde modellerini yeniden eğitmen veya baştan oluşturman gerekmez.
- Graf 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 grafları olarak yapılandırılır. Bu graf tabanlı tasarım, benzer hesaplama grafı yapıları kullanan çeşitli sistemlerle entegrasyonu kolaylaştırır.
- Geliştirici dostu araçlar: Modellerini dönüştürmene, doğrulamama ve optimize etmene yardımcı olacak çok çeşitli araçlar sunar. 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 kolaydır ve birkaç adımda yapılabilir.
Başlamak için pip gibi bir paket yöneticisi kullanarak Ultralytics Python paketini yükle. Bunu komut isteminde veya terminalde pip install ultralytics komutunu çalıştırarak yapabilirsin.
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. Kurulum sırasında 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ükleyip ONNX biçimine aktarabilirsin. Bu örnek, önceden eğitilmiş bir YOLO11 modelini (yolo11n.pt) yükler ve onu ONNX dosyası (yolo11n.onnx) olarak dışa aktarır; böylece farklı platform ve cihazlarda dağıtıma hazır hâle gelir.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="onnx")Aynı adımlar Ultralytics YOLO26 gibi daha yeni modeller için de geçerlidir. Modelini ONNX biçimine dönüştürdükten ve orijinaliyle aynı sonuçları verdiğini doğruladıktan sonra modeli çeşitli platformlarda devreye alabilirsin.
Aşağıdaki örnekte dışa aktarılan YOLO11 modelinin (yolo11n.onnx) nasıl yükleneceği ve modelle çıkarımın nasıl çalıştırılacağı gösteriliyor. Çıkarım, kısaca eğitilmiş modeli yeni veriler üzerinde tahmin yapmak için kullanmak demektir. Bu örnekte modeli test etmek için otobüs görüntüsünün URL'sini kullanacağız.
onnx_model = YOLO("yolo11n.onnx")
results = onnx_model("https://ultralytics.com/images/bus.jpg", save=True)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 tercih etmelisin?#
Ultralytics Python paketi; TorchScript, CoreML, TensorRT ve ONNX dâhil olmak üzere çeşitli biçimlerde model dışa aktarımını destekler. Peki neden ONNX'i tercih etmelisin?
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 sayede bulut sunucularında, mobil uygulamalarda veya uç cihazlarda çalışıyor olsan da ONNX yüksek taşınabilirlik sunar, donanımlarla uyumludur ve platformlar arası dağıtım için idealdir.
ONNX entegrasyonunun Ultralytics YOLO11 projelerin için ideal bir tercih olmasının bazı nedenleri şunlardır:
- Taşınabilir dağıtım: Ultralytics YOLO11 modelini ONNX'e aktardıktan sonra kodu değiştirmeden veya modeli yeniden eğitmeden çeşitli platformlarda dağıtabilirsin.
- Sektör genelinde destek: Büyük yapay zekâ şirketleri ve çerçeveler ONNX'i destekler; bu da onu güvenilir ve yaygın kabul gören bir biçim hâline getirir. PDF'lerin farklı cihazlarda ç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, modellerinin yeni veya farklı ortamlarda bile güncel ve kullanılabilir kalmasını sağlar.
- Tedarikçiye bağımlılık yok: Bazı araçlar seni yalnızca kendi sistemlerini kullanmaya zorlayarak modelinin yapabileceklerini kısıtlayabilir. ONNX, tek bir kurulumla sınırlı kalmadan ihtiyaçlarına en uygun platformu seçmene olanak tanıyarak bu sorunu ortadan kaldırır.
Ultralytics YOLO11 uygulamaları ve ONNX model biçiminin rolü#
Şimdi, ONNX entegrasyonunun yardımıyla Ultralytics YOLO11'in kullanılabileceği bazı gerçek dünya uygulamalarını inceleyelim.
Ultralytics YOLO11 ile depolardaki envanteri takip etme#
Yoğun depolarda her ürünü ve paketi sürekli takip etmek zordur. Bilgisayarlı görü sistemleri, çalışanların raflardaki ürünleri bulmasına ve ürün sayısı, türü gibi bilgilere ulaşmasına yardımcı olabilir. Bu sistemler, işletmelerin büyük envanterlerini otomatik olarak yönetmelerine ve depo çalışanlarının ciddi ölçüde zaman kazanmasına yardımcı olabilir.
Özellikle akıllı depolarda, ONNX biçimine aktarılmış Ultralytics YOLO11 modelleri, kameralar ve uç cihazlar kullanarak öğeleri gerçek zamanlı olarak tanımlayıp sayabilir. Dışa aktarılan model, stok düzeylerini, eksik ürünleri veya boş alanları tespit etmek için rafları ya da paletleri taramaya yardımcı olabilir. ONNX modelleri çok çeşitli donanımlarda verimli çalıştığından, pahalı sunuculara veya sürekli bulut erişimine gerek kalmadan doğrudan akıllı kameralar gibi küçük uç cihazlarda çalışabilir.

Şekil 4. Paketleri tespit edip 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 (tek kullanımlık veya kontamine olmuş makas ve bistüriler gibi) kadar her gün büyük miktarda atık üretiyor. Araştırmalar, hastanelerin her yıl 5 milyon tondan fazla atık ürettiğini, bunun da günlük yatak başına 29 pound atığa karşılık geldiğini gösteriyor.
Bu tür atıkları doğru şekilde ayırmak hijyen, güvenlik ve mevzuata uyum açısından çok önemlidir. ONNX biçiminde dışa aktarılan Ultralytics YOLO11 modelleriyle hastaneler, atık bertarafını gerçek zamanlı olarak otomatikleştirmek ve izlemek için sağlık hizmetlerinde bilgisayarlı görüden yararlanabilir.
Örneğin ameliyathane veya koridor gibi alanlardaki atık 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 Ultralytics YOLO11 modeli görüntüleri analiz ederek neyin atıldığını belirleyebilir. Kullanılmış bir şırınganın normal çöpe atılması gibi bir öğe yanlış kutuya atılırsa sistem, kontaminasyonu önlemeye ve mevzuata uyumu sağlamaya yardımcı olmak için ışık veya ses yoluyla çalışanları hemen uyaracak şekilde ayarlanabilir.

Şekil 5. Tıbbi aletleri tespit etmek için Ultralytics YOLO11 kullanımı.
Ultralytics YOLO11 ile ürün izleme#
Ürünleri hasat etmek için doğru zamanı bilmek, hem ürün kalitesini hem de çiftliğin genel verimliliğini büyük ölçüde etkileyebilir. Geleneksel olarak çiftçiler deneyimlerine ve manuel denetimlere güvenir; ancak teknolojideki son gelişmelerle bu durum değişmeye başlıyor.
Artık çiftçiler, ONNX biçiminde dışa aktarılan YOLO11 gibi bilgisayarlı görü yenilikleriyle sahada otomasyon ve hassasiyetten yararlanabilir. Çiftçiler, dronlar veya traktörlere ya da direklere monte edilmiş kameralar kullanarak ürünlerinin (domates, elma veya buğday gibi) görüntülerini çekebilir. Ardından YOLO11; renk, boyut ve ürünlerin dağılımı gibi önemli göstergeleri tespit etmek için kullanılabilir. Çiftçiler bu bilgilere dayanarak ürünlerin hasada hazır olup olmadığını, olgunlaşmaya devam edip etmediğini veya en verimli dönemini geride bırakıp bırakmadığını belirleyebilir.

Şekil 6. YOLO11, havadan çekilen drone görüntülerinde ürünleri 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 pek çok avantaj sunsa da göz önünde bulundurman gereken bazı sınırlamalar vardır:
- Model boyutu: Modelleri ONNX biçimine dönüştürmek, bazen dosya boyutlarının özgün biçimlerine kıyasla büyümesine neden olabilir. Niceleme ve budama gibi teknikler, performansı önemli ölçüde etkilemeden model boyutunu küçülterek bu sorunu azaltabilir.
- Çalışma zamanı uyumluluğu: ONNX Runtime platformlar arası uyumluluk için tasarlanmış olsa da performans ve destek, farklı donanım ve işletim sistemlerine göre değişebilir.
- 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ı olabileceğinden sorunların kaynağını bulmak zorlaşabilir. Ancak model görselleştirme aracı Netron ve ONNX Runtime'ın günlük kaydı özellikleri sorun gidermeye yardımcı olabilir.
Önemli çıkarımlar#
Ultralytics YOLO11'i ONNX'e aktarmak, eğitilmiş bir bilgisayarlı görü modelini dizüstü bilgisayarda, mobil cihazda, hatta kompakt bir akıllı kamerada neredeyse her yerde kolayca dağıtmanı sağlar. ONNX entegrasyonuyla tek bir çerçeveye veya platforma bağlı kalmaz, 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 et ister hastane atıklarının doğru şekilde bertaraf edilmesini sağla; 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ü projenize başlamak için GitHub depomuzu keşfet, topluluğumuza katıl 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 fazlasını keşfetmek için çözüm sayfalarımızı ziyaret et.
Yazan
Yorumlar
Soru sor, sonuçlarını paylaş veya başka birine yardım et.










