Yeşil çek
Panoya kopyalanan bağlantı

Ultralytics YOLO modellerini TensorRT entegrasyonu ile optimize etme

Gerçek zamanlı uygulamalar için NVIDIA GPU'larda daha hızlı, daha verimli yapay zeka performansı için TensorRT entegrasyonunu kullanarak Ultralytics YOLO modellerini nasıl dışa aktaracağınızı öğrenin.

Kalabalık bir caddede ilerleyen ve kaldırımdan inen bir yayayı tespit etmek için sadece milisaniyeleri olan sürücüsüz bir araç düşünün. Aynı zamanda, bir ağaç tarafından kısmen gizlenmiş bir dur işaretini fark etmesi veya şeridine giren yakındaki bir araca hızlı bir şekilde tepki vermesi gerekebilir. Bu gibi durumlarda hız ve gerçek zamanlı tepkiler kritik önem taşır.

Yapay zekanın (AI), özellikle de makinelerin görsel verileri yorumlamasına yardımcı olan bir AI dalı olan bilgisayarla görmenin kilit bir rol oynadığı yer burasıdır. Bilgisayarla görme çözümlerinin gerçek dünya ortamlarında güvenilir bir şekilde çalışabilmesi için çoğu zaman bilgileri hızlı bir şekilde işlemesi, aynı anda birden fazla görevi yerine getirmesi ve belleği verimli bir şekilde kullanması gerekir.

Bunu başarmanın bir yolu, modelleri daha hızlı çalıştırmak için grafik işleme birimleri (GPU'lar) gibi özel cihazlar kullanarak donanım hızlandırması yapmaktır. NVIDIA GPU'ları, düşük gecikme süresi ve yüksek verim sunma yetenekleri sayesinde bu tür görevler için özellikle iyi bilinmektedir.

Ancak bir modeli GPU üzerinde olduğu gibi çalıştırmak her zaman optimum performansı garanti etmez. Görsel yapay zeka modelleri genellikle donanım cihazlarının yeteneklerinden tam olarak yararlanmak için optimizasyon gerektirir. Belirli bir donanımla tam performans elde etmek için, modeli donanıma özel talimat setini kullanacak şekilde derlememiz gerekir.

Örneğin TensorRT , üst düzey makinelerde performansı artırmak için NVIDIA tarafından geliştirilen bir dışa aktarma biçimi ve optimizasyon kütüphanesidir. Doğruluğu korurken çıkarım süresini önemli ölçüde azaltmak için gelişmiş teknikler kullanır.

Şekil 1. NVIDIA TensorRT , modellerin çeşitli NVIDIA cihazlarında en iyi şekilde çalışmasını sağlar.

Bu makalede, Ultralytics tarafından desteklenen TensorRT entegrasyonunu keşfedeceğiz ve NVIDIA donanımında daha hızlı, daha verimli dağıtım için YOLO11 modelinizi nasıl dışa aktarabileceğinizi inceleyeceğiz. Hadi başlayalım!

TensorRT'ye genel bir bakış

TensorRT , yapay zeka modellerinin NVIDIA GPU'larda daha hızlı ve daha verimli çalışmasına yardımcı olmak için NVIDIA tarafından geliştirilen bir araç setidir. Sürücüsüz arabalar, üretim ve ilaç sektörlerinde kalite kontrolü gibi hız ve performansın gerçekten önemli olduğu gerçek dünya uygulamaları için tasarlanmıştır. 

TensorRT , modellerinizin düşük gecikmeyle çalıştığından ve daha yüksek bir verimi kaldırabildiğinden emin olmak için perde arkasında çalışabilen derleyiciler ve model iyileştiriciler gibi araçlar içerir.

Ultralytics tarafından desteklenen TensorRT entegrasyonu, hassasiyeti azaltmak gibi yöntemler kullanarak YOLO modelinizi GPU'larda daha verimli çalışacak şekilde optimize ederek çalışır. Bu, model verilerini temsil etmek için 16 bit kayan nokta (FP16) veya 8 bit tamsayı (INT8) gibi daha düşük bit formatlarının kullanılması anlamına gelir; bu, bellek kullanımını azaltır ve doğruluk üzerinde minimum etki ile hesaplamayı hızlandırır. 

Ayrıca, bellek kullanımını azaltmak için uyumlu sinir ağı katmanları optimize edilmiş TensorRT modellerinde birleştirilerek daha hızlı ve daha verimli çıkarım elde edilir.

Şekil 2. TensorRT'nin katman füzyon tekniğine bir bakış.

TensorRT dışa aktarma formatının temel özellikleri

TensorRT entegrasyonunu kullanarak YOLO11 'i nasıl dışa aktarabileceğinizi tartışmadan önce, TensorRT model formatının bazı temel özelliklerine bir göz atalım:

  • Kolay çerçeve entegrasyonu: TensorRT , PyTorch, Hugging Face ve ONNX gibi popüler yapay zeka çerçeveleriyle doğrudan entegrasyonu destekleyerek 6 kata kadar daha hızlı performans sunar. Ayrıca MATLAB'ı destekleyerek Jetson, NVIDIA DRIVE ve veri merkezleri gibi platformlarda yüksek hızlı yapay zeka motorlarının geliştirilmesini sağlar.
  • Triton ile ölçeklenebilir dağıtım: TensorRT formatında optimize edilen modeller, girdi gruplama, eş zamanlı model yürütme, model topluluğu desteği ve gerçek zamanlı ses/video akışı gibi özelliklerle verimliliği artıran NVIDIA Triton Inference Server kullanılarak büyük ölçekte dağıtılabilir.
  • Cihazlar arasında esneklik: TensorRT , küçük uç cihazlardan güçlü sunuculara kadar tüm NVIDIA ekosisteminde çalışarak video için DeepStream, konuşma yapay zekası için Riva ve siber güvenlik, öneriler ve daha fazlası için diğer araçları destekler.

TensorRT entegrasyonu nasıl çalışır?

Ultralytics YOLO11 gibi Ultralytics YOLO11 modellerini TensorRT model formatına aktarmak kolaydır. İlgili adımları gözden geçirelim.

Başlamak için Ultralytics Python paketini 'pip' gibi bir paket yöneticisi kullanarak yükleyebilirsiniz. Bu, komut isteminizde veya terminalinizde "pip install ultralytics" komutunu çalıştırarak yapılabilir.

Ultralytics Python Paketini başarıyla yükledikten sonra, nesne algılama, sınıflandırma ve örnek segmentasyonu gibi çeşitli bilgisayarla görme görevleri için modelleri eğitebilir, test edebilir, ince ayar yapabilir, dışa aktarabilir ve dağıtabilirsiniz. Paketi yüklerken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Ortak Sorunlar kılavuzuna başvurabilirsiniz.

Bir sonraki adım için bir NVIDIA cihazına ihtiyacınız olacak. YOLOv11'i TensorRT model formatına yüklemek ve dışa aktarmak için aşağıdaki kod parçacığını kullanın. YOLO11 modelinin önceden eğitilmiş bir nano varyantını (yolo11n.pt) yükler ve bir TensorRT motor dosyası (yolo11n.engine) olarak dışa aktararak NVIDIA cihazlarında dağıtıma hazır hale getirir.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="engine")

Modelinizi TensorRT formatına dönüştürdükten sonra çeşitli uygulamalar için dağıtabilirsiniz. 

Aşağıdaki örnek, dışa aktarılan YOLO11 modelinin (yolo11n.engine) nasıl yükleneceğini ve kullanılarak bir çıkarımın nasıl çalıştırılacağını göstermektedir. Çıkarım, yeni veriler üzerinde tahminler yapmak için eğitilmiş modeli kullanmayı içerir. Bu durumda, modeli test etmek için bir köpeğin girdi görüntüsünü kullanacağız. 

tensorrt_model = YOLO("yolo11n.engine")

results = tensorrt_model("https://images.pexels.com/photos/1254140/pexels-photo-1254140.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2.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. TensorRT formatında dışa aktarılan YOLO11 modelini kullanarak bir çıkarım çalıştırmanın sonucu.

TensorRT entegrasyonundan ne zaman yararlanılmalı

Ultralytics Python paketi, YOLO modellerinin TorchScript, CoreML, ONNX ve TensorRT gibi farklı formatlara aktarılmasını sağlayan çeşitli entegrasyonları destekler. Peki, TensorRT entegrasyonunu ne zaman kullanmayı seçmelisiniz?

İşte TensorRT model formatını diğer dışa aktarma entegrasyon seçeneklerinden ayıran birkaç faktör:

  • Daha küçük model boyutu: Bir YOLO modelinin INT8 hassasiyetiyle TensorRT formatına aktarılması model boyutunu önemli ölçüde azaltabilir. FP32'den INT8'e kuantizasyon, model boyutunda 4 kat azalmaya yol açabilir, bu da daha hızlı indirme süreleri, daha düşük depolama gereksinimleri ve dağıtım sırasında daha az bellek ayak izi sağlar.
  • Daha düşük güç kullanımı: INT8 niceleme sadece model boyutunu küçültmekle kalmaz, aynı zamanda güç tüketimini de azaltır. INT8 dışa aktarılan YOLO modelleri için azaltılmış hassasiyet işlemleri, FP32 modellerine kıyasla daha az güç tüketebilir; bu da özellikle drone'lar, akıllı telefonlar veya uç cihazlar gibi pille çalışan cihazlar için faydalıdır.
  • Daha hızlı performans: YOLO'nun verimli mimarisini TensorRT'nin INT8 optimizasyonu ile birleştirmek çıkarım hızlarını artırabilir.

YOLO11 ve TensorRT model formatı uygulamaları

TensorRT formatına aktarılan Ultralytics YOLO modelleri, çok çeşitli gerçek dünya senaryolarında kullanılabilir. Bu optimize edilmiş modeller, özellikle hızlı ve verimli yapay zeka performansının önemli olduğu durumlarda kullanışlıdır. Nasıl kullanılabileceklerine dair bazı ilginç örnekleri inceleyelim.

Perakende mağazalarında akıllı ödeme bankoları

Perakende mağazalarında barkod tarama, ürün tartma veya ürün paketleme gibi çok çeşitli görevler hala personel tarafından manuel olarak gerçekleştirilmektedir. Ancak, yalnızca çalışanlara güvenmek işlemleri yavaşlatabilir ve özellikle kasada müşterilerin hayal kırıklığına uğramasına neden olabilir. Uzun kuyruklar hem müşteriler hem de mağaza sahipleri için rahatsız edicidir. Akıllı self-checkout bankoları bu soruna harika bir çözümdür.

Bu sayaçlar süreci hızlandırmak için bilgisayar görüşü ve GPU'ları kullanarak bekleme sürelerini azaltmaya yardımcı olur. Bilgisayar görüşü, bu sistemlerin nesne algılama gibi görevler aracılığıyla çevrelerini görmelerini ve anlamalarını sağlar. YOLO11 gibi gelişmiş modeller, TensorRT gibi araçlarla optimize edildiğinde GPU cihazlarında çok daha hızlı çalışabilir.

Dışa aktarılan bu modeller, özellikle uç yapay zeka uygulamaları için tasarlanmış NVIDIA Jetson Nano gibi kompakt ancak güçlü donanım cihazları kullanan akıllı perakende kurulumları için çok uygundur.

Şekil 4. Akıllı bir kasa örneği.

Üretimde otomatik hata tespiti

YOLO11 gibi bir bilgisayarla görme modeli, imalat endüstrisindeki kusurlu ürünleri tespit etmek için özel olarak eğitilebilir. Model eğitildikten sonra, yüksek performanslı yapay zeka sistemleriyle donatılmış tesislerde kullanılmak üzere TensorRT formatına aktarılabilir. 

Ürünler konveyör bantları boyunca hareket ederken kameralar görüntüleri yakalar ve TensorRT formatında çalışan YOLO11 modeli, kusurları tespit etmek için bunları gerçek zamanlı olarak analiz eder. Bu kurulum, şirketlerin sorunları hızlı ve doğru bir şekilde yakalamasını sağlayarak hataları azaltır ve verimliliği artırır.

Benzer şekilde, ilaç gibi sektörler de tıbbi ambalajlardaki kusurları tespit etmek için bu tür sistemleri kullanmaktadır. Aslında, akıllı hata tespit sistemlerine yönelik küresel pazarın 2026 yılına kadar 5 milyar dolara ulaşması bekleniyor.

Şekil 5. İlaç endüstrisinde kusurları tespit etmek için YOLO kullanımı.

TensorRT kullanırken akılda tutulması gereken hususlar

TensorRT entegrasyonu, daha yüksek çıkarım hızları ve daha düşük gecikme süresi gibi birçok avantajı masaya getirirken, akılda tutulması gereken birkaç sınırlama vardır:

  • Doğrulukta hafif düşüş: Modelinizi TensorRT formatında dışa aktardığınızda, dışa aktarılan modeliniz orijinali kadar doğru olmayabilir. Kesinlik, geri çağırma ve modelin nesneleri ne kadar iyi algıladığı (mAP puanları) gibi performans ölçümleri biraz düşebilir. Bu durum, niceleme sırasında temsili bir veri kümesi kullanılarak azaltılabilir. 
  • Artan hata ayıklama karmaşıklığı: TensorRT tarafından yapılan optimizasyonlar, özellikle sonuçları orijinal modelle karşılaştırırken hataları izlemeyi veya beklenmedik davranışları anlamayı daha zor hale getirebilir.
  • Parti boyutu hassasiyeti: TensorRT'nin performans kazanımları daha büyük parti boyutlarında daha belirgindir. Tek görüntüleri veya küçük partileri işleyen uygulamalar için performans iyileştirmeleri daha az önemli olabilir.

Önemli çıkarımlar

Ultralytics YOLO modellerinin TensorRT formatına aktarılması, modellerin önemli ölçüde daha hızlı ve daha verimli çalışmasını sağlayarak fabrikalardaki kusurları tespit etmek, akıllı ödeme sistemlerine güç sağlamak veya yoğun kentsel alanları izlemek gibi gerçek zamanlı görevler için ideal hale getirir. 

Bu optimizasyon, tahminleri hızlandırıp bellek ve güç kullanımını azaltarak modellerin NVIDIA GPU'larda daha iyi performans göstermesine yardımcı olur. Bazı sınırlamalar olsa da performans artışı, TensorRT entegrasyonunu NVIDIA donanımında yüksek hızlı bilgisayarla görme sistemleri kuran herkes için mükemmel bir seçim haline getiriyor.

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. Çözüm sayfalarımızda üretimde yapay zeka ve lojistik sektöründe bilgisayarla görme gibi yenilikler hakkında daha fazla bilgi edinin.

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