Yeşil çek
Panoya kopyalanan bağlantı

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

Çeşitli donanımlarda platformlar arası dağıtım için ONNX entegrasyonunu kullanarak Ultralytics YOLO11 gibi Ultralytics YOLO11 modellerinin nasıl dışa aktarılacağını öğrenin.

Yapay zeka çözümleri ilk kez dikkat çekmeye başladığında, çoğu model kontrollü ortamlardaki güçlü sunucularda kullanı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üstü bilgisayarlardan akıllı telefonlara ve uç cihazlara kadar her şeyde çalışmaktadır. Bu değişim daha hızlı işlemeyi, çevrimdışı işlevselliği ve verilerin üretildiği yere daha yakın çalışan daha akıllı sistemleri desteklemektedir.

Bu durumun özellikle belirgin olduğu alanlardan biri, makinelerin görsel verileri yorumlamasını sağlayan bir yapay zeka dalı olan bilgisayarla görmedir. 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ı arttıkça, farklı donanım ve platformlarda sorunsuz çalışabilen modellere duyulan ihtiyaç da artıyor.

Ancak bilgisayarla görü modellerini çeşitli dağıtım hedeflerine dağıtmak her zaman kolay 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 gerekli kılar.

Bu nedenle, aşağıdaki gibi bilgisayarla görme modellerini dışa aktarma seçeneğine sahip olmak Ultralytics YOLO11 farklı formatlara dönüştürmek çok önemlidir. Örneğin, Ultralytics tarafından desteklenen ONNX (Open Neural Network Exchange) entegrasyonu, eğitim ve dağıtım arasındaki boşluğu doldurmak için pratik bir yol sağlar. ONNX , modelleri çerçeveden bağımsız ve platformlar arasında dağıtıma hazır hale getiren açık bir formattır.

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

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

ONNX ve ONNX Runtime nedir?

Open Neural Network Exchange, 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ğitmesine ve TensorFlow gibi başka bir çerçevede çalıştırmasına olanak tanır. Bu, özellikle bilgisayarla görme gibi alanlarda yapay zeka geliştirmeyi daha esnek, işbirlikçi ve erişilebilir hale getiriyor.

ONNX , ortak bir operatör seti ve birleşik bir dosya formatı sağlayarak modellerin farklı araçlar, çerçeveler, çalışma zamanları ve derleyiciler arasında taşınmasını kolaylaştırır. Normalde, bir çerçevede eğitilen bir model diğeriyle kolayca uyumlu değildir - ancak ONNX ile modelinizi bir kez dışa aktarabilir ve neredeyse her yere dağıtabilirsiniz: CPU'larda (Merkezi İşlem Birimleri), GPU'larda (Grafik İşlem Birimleri), mobil cihazlarda veya uç donanımlarda.

Ayrıca ONNX Runtime, ONNX formatındaki modelleri ç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 da 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 Lite ve scikit-learn gibi popüler çerçevelerle uyumludur, bu da farklı iş akışlarına entegre olmayı ve modelleri ihtiyaç duyulan her yere dağıtmayı kolaylaştırır.

Şekil 2. ONNX ve ONNX Runtime, esnek çapraz platform model dağıtımı sağlar.

ONNX'in temel özellikleri 

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

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

  • Tek bir standart format: ONNX , katmanlar ve işlemler gibi modellerin nasıl oluşturulduğunu tanımlamak için ortak bir yol kullanır (bunları yapı taşları olarak düşünün). Bir model ONNX'e dönüştürüldüğünde, ONNX 'i destekleyen herhangi bir sistemin onu anlayabilmesi ve çalıştırabilmesi için bu standardı izler.
  • Geriye dönük uyumluluk: ONNX gelişmeye devam etse bile, eski modellerin yeni sürümlerle çalışmaya devam etmesini sağlar. Bu, ONNX her güncelleme aldığında modellerinizi yeniden eğitmeniz veya yeniden oluşturmanız gerekmediği anlamına gelir.
  • Grafik tabanlı model tasarımı: ONNX modelleri, her bir düğümün bir işlemi (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, modellerin farklı çerçeveler arasında taşınması sürecini basitleştirir ve özellikle bilgisayarla görme uygulamaları için dağıtımı hızlandırabilir.

ONNX entegrasyonuna genel bir bakış

Ultralytics YOLO11 gibi Ultralytics YOLO11 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. Bu, başlamak için komut isteminizde veya terminalinizde "pip install ultralytics" komutunu çalıştırarak yapılabilir.

Ultralytics paketi ile, çeşitli bilgisayarla görme görevleri için modelleri kolayca eğitebilir, test edebilir, ince ayar yapabilir, dışa aktarabilir ve dağıtabilirsiniz - tüm süreci daha hızlı ve daha verimli hale getirir. Yüklerken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Ortak 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 bir ONNX dosyası (yolo11nonnx) olarak dışa aktararak farklı platformlarda ve cihazlarda dağıtıma hazır hale getirir.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="onnx") 

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

Aşağıdaki örnek, dışa aktarılan YOLO11 modelinin (yolo11nonnx) nasıl yükleneceğini ve bununla bir çıkarımın nasıl çalıştırılacağını göstermektedir. Çıkarım yapmak basitçe, yeni veriler üzerinde tahminlerde bulunmak için eğitilmiş modeli kullanmak anlamına gelir. Bu durumda, modeli test etmek için bir otobüs resminin 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ığınızda, aşağıdaki çıktı görüntüsü runs/detect/predict klasörüne kaydedilecektir.

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

ONNX entegrasyonunu ne zaman seçmelisiniz?

Ultralytics Python paketi, modellerin TorchScript, CoreML, TensorRT ve ONNX dahil olmak üzere çeşitli formatlara aktarılmasını destekler. Peki, neden ONNX'i seçmelisiniz?

ONNX 'i öne çıkaran şey, çerçeveden 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 ortak bir operatör seti kullanır. Bu, onu son derece taşınabilir, donanım dostu ve platformlar arası dağıtım için ideal hale getirir - ister bulut sunucuları, ister mobil uygulamalar veya uç cihazlarla çalışıyor olun. 

İşte ONNX entegrasyonunun YOLO11 projeleriniz için ideal seçim olmasının bazı nedenleri:

  • Taşınabilir dağıtım: ONNX'e aktarıldıktan sonra, YOLO11 modeliniz kod değişiklikleri veya yeniden eğitim olmadan çeşitli platformlara dağıtılabilir.
  • Endüstri çapında destek: ONNX , büyük yapay zeka şirketleri ve çerçeveleri tarafından desteklenmektedir, bu da onu güvenilir ve yaygın olarak kabul gören bir format haline getirmektedir. PDF'lerin cihazlar arasında çalışması gibi 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 , yeni veya farklı ortamlarda bile modellerinizin güncel ve kullanılabilir kalmasını sağlar.
  • Satıcı kilitlenmesi yok: Bazı araçlar sizi yalnızca kendi sistemlerini kullanmaya bağlar, bu da modelinizin yapabileceklerini sınırlayabilir. ONNX , tek bir kuruluma bağlı kalmadan ihtiyaçlarınıza en uygun platformu seçmenize izin vererek bunu önler.

YOLO11 ve ONNX model formatı uygulamaları

Daha sonra, YOLO11 'in ONNX entegrasyonu yardımıyla kullanılabileceği bazı gerçek dünya uygulamalarını inceleyelim.

YOLO11 kullanarak depolardaki envanteri takip etme

Yoğun depolarda her ürüne ve pakete her zaman göz kulak olmak zordur. Bilgisayarla görme sistemleri, çalışanların raflardaki ürünleri bulmasına ve ürün sayısı, türü vb. gibi bilgileri almasına yardımcı olabilir. Bu tür sistemler, işletmelerin geniş envanterlerini otomatik olarak yönetmelerine yardımcı olabilir ve depo çalışanlarına çok zaman kazandırabilir.

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

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

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 neşter gibi tek kullanımlık veya kontamine cerrahi aletler gibi) kadar her gün büyük miktarlarda atık üretmektedir. Aslında araştırmalar, hastanelerin her yıl yaklaşık 5 milyon ton atık ürettiğini göstermektedir ki bu da yatak başına günde 29 kilo atık anlamına gelmektedir. 

Bu tür atıkların düzgün bir şekilde ayrıştırılması hijyen, güvenlik ve yönetmeliklere uyulması açısından çok önemlidir. ONNX formatında dışa aktarılan YOLO11 modelleri ile hastaneler atık bertarafını gerçek zamanlı olarak otomatikleştirebilir ve izleyebilir.

Örneğin, ameliyathaneler veya koridorlar gibi alanlardaki atık kutularının yakınına yerleştirilen kameralar, atılmakta olan eşyaları 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. Kullanılmış bir şırınganın normal çöp kutusuna atılması gibi bir öğe yanlış kutuya atılırsa, sistem personeli bir ışık veya sesle anında uyaracak şekilde ayarlanabilir, böylece kontaminasyonun önlenmesine ve uyumluluğun sağlanmasına yardımcı olur.

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

YOLO11 mahsul izleme

Ürün hasadı 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 elle yapılan denetimlere güvenirler, ancak teknolojideki son gelişmelerle birlikte bu durum değişmeye başlıyor.

Artık çiftçiler, ONNX formatında dışa aktarılan YOLO11 gibi bilgisayarla görme yenilikleriyle tarlaya otomasyon ve hassasiyet getirebilir. Çiftçiler drone'ları veya traktörlere ya da direklere monte edilmiş kameraları kullanarak mahsullerinin (domates, elma veya buğday gibi) görüntülerini yakalayabilir. YOLO11 daha sonra renk, boyut ve mahsullerin dağılımı gibi temel göstergeleri tespit etmek için kullanılabilir. Bu bilgilere dayanarak çiftçiler, mahsullerin hasada hazır olup olmadığını, hala olgunlaşıp olgunlaşmadığını veya zirveyi çoktan geçip geçmediğini belirleyebilirler.

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

Dikkate alınması gereken ONNX sınırlamaları

ONNX taşınabilirlik, platformlar arası uyumluluk ve çerçevelerin birlikte çalışabilirliği gibi çok sayıda avantaj 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. Niceleme ve budama gibi teknikler, performansı önemli ölçüde etkilemeden model boyutunu azaltarak 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ıklama PyTorch veya TensorFlow gibi yerel çerçevelere göre daha karmaşık olabilir. Hata mesajları daha az açıklayıcı olabilir, bu da sorunları saptamayı zorlaştırır. Bununla birlikte, model görselleştirme için Netron gibi araçlar ve ONNX Runtime'ın günlük tutma özellikleri sorun gidermeye yardımcı olabilir.

Önemli çıkarımlar

Ultralytics YOLO11 'i ONNX 'e aktarmak, eğitimli bir bilgisayarla görme modelini almayı ve ister bir dizüstü bilgisayarda, ister mobil cihazda, hatta kompakt bir akıllı kamerada olsun, neredeyse her yere dağıtmayı kolaylaştırır. ONNX entegrasyonu ile tek bir çerçeveye veya platforma bağlı kalmazsınız, bu da size 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 depodaki envanteri takip ediyor 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.

Bilgisayarla görme ve yapay zeka hakkında daha fazla bilgi edinmek ister misiniz? GitHub depomuzu keşfedin, topluluğumuzla bağlantı kurun ve bilgisayarla görme projenize hızlı bir başlangıç yapmak için lisanslama seçeneklerimize göz atın. Üretimde yapay zeka ve otomotiv sektöründe bilgisayarla görme gibi yenilikleri araştırıyorsanız, daha fazlasını keşfetmek için çözümler sayfalarımızı ziyaret edin. 

LinkedIn logosuTwitter logosuFacebook logosuKopya-bağlantı sembolü

Bu kategoride daha fazlasını okuyun

Yapay zekanın gelecekteki
adresini birlikte inşa edelim!

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