TensorRT entegrasyonu ile Ultralytics YOLO modellerini optimize etmek
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 aktaracağını öğren.

Yoğun bir caddede ilerleyen ve kaldırımdan inen bir yayayı tespit etmek için sadece milisaniyeleri olan sürücüsüz bir araba düşün. Aynı zamanda, bir ağaç tarafından kısmen gizlenmiş bir dur tabelasını tanıması veya şeridine giren yakındaki bir araca hızla tepki vermesi gerekebilir. Bu tür durumlarda hız ve gerçek zamanlı tepkiler kritiktir.
İşte yapay zeka (AI), özellikle de makinelerin görsel verileri yorumlamasına yardımcı olan bir yapay zeka dalı olan bilgisayarlı görü, burada kilit bir rol oynar. Bilgisayarlı görü çözümlerinin gerçek dünya ortamlarında güvenilir bir şekilde çalışması için genellikle bilgileri hızlı bir şekilde işlemesi, aynı anda birden fazla görevi yönetmesi ve belleği verimli kullanması gerekir.
Bunu başarmanın bir yolu, modelleri daha hızlı çalıştırmak için grafik işlem birimleri (GPU'lar) gibi özel cihazlar kullanarak donanım hızlandırmadan geçer. NVIDIA GPU'lar, düşük gecikme süresi ve yüksek verimlilik sunma yetenekleri sayesinde bu tür görevler için özellikle bilinir.
Ancak, bir modeli GPU üzerinde olduğu gibi çalıştırmak her zaman optimum performansı garanti etmez. Vision AI 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 setlerini 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 formatı 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 optimum şekilde çalışmasını sağlar.
Bu makalede, Ultralytics tarafından desteklenen TensorRT entegrasyonunu keşfedeceğiz ve YOLO11 modelini NVIDIA donanımı üzerinde daha hızlı ve daha verimli bir şekilde dağıtmak için nasıl dışa aktarabileceğinize dair adımları inceleyeceğiz. Hadi başlayalım!
Link to this sectionTensorRT'ye genel bir bakış#
TensorRT, AI modellerinin NVIDIA GPU'larında 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 ile üretim ve ilaç sektöründeki 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 gecikme süresiyle çalışmasını sağlamak ve daha yüksek verimliliği işleyebilmek için arka planda çalışabilen derleyiciler ve model iyileştiriciler gibi araçlar içerir.
Ultralytics tarafından desteklenen TensorRT entegrasyonu, hassasiyeti düşürmek 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 noktalı (FP16) veya 8 bit tam sayı (INT8) gibi daha düşük bitli formatların kullanılması anlamına gelir; bu da bellek kullanımını azaltır ve doğruluk üzerinde minimum etkiyle hesaplamayı hızlandırır.
Ayrıca, uyumlu sinir ağı katmanları, bellek kullanımını azaltmak ve sonuçta daha hızlı ve daha verimli bir çıkarım elde etmek için optimize edilmiş TensorRT modellerinde birleştirilir.

Şekil 2. TensorRT'nin katman birleştirme tekniğine bir bakış.
Link to this sectionTensorRT dışa aktarma formatının temel özellikleri#
YOLO11'i TensorRT entegrasyonunu kullanarak 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 AI çerçeveleriyle doğrudan entegrasyonu destekler ve 6 kata kadar daha hızlı performans sunar. Ayrıca, Jetson, NVIDIA DRIVE ve veri merkezleri gibi platformlarda yüksek hızlı AI motorlarının geliştirilmesini sağlayan MATLAB'ı da destekler.
-
Triton ile ölçeklenebilir dağıtım: TensorRT formatında optimize edilmiş modeller, giriş 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 ölçekli bir şekilde dağıtılabilir.
-
Cihazlar arası esneklik: Küçük uç cihazlardan güçlü sunuculara kadar TensorRT, 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ı destekleyerek tüm NVIDIA ekosisteminde çalışır.
Link to this sectionTensorRT entegrasyonu nasıl çalışır?#
Ultralytics YOLO modellerini, örneğin Ultralytics YOLO11'i, TensorRT model formatına aktarmak kolaydır. İlgili adımları inceleyelim.
Başlamak için Ultralytics Python paketini 'pip' gibi bir paket yöneticisi kullanarak yükleyebilirsin. Bu, komut isteminizde veya terminalinizde “pip install ultralytics” komutunu çalıştırarak yapılabilir.
Ultralytics Python paketini başarıyla yükledikten sonra, nesne tespiti, sınıflandırma ve örnek bölümleme gibi çeşitli bilgisayarlı görü görevleri için modelleri eğitebilir, test edebilir, ince ayar yapabilir, dışa aktarabilir ve dağıtabilirsin. Paketi yüklerken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar kılavuzuna başvurabilirsin.
Bir sonraki adım için bir NVIDIA cihazına ihtiyacın olacak. YOLO11'i yüklemek ve TensorRT model formatına aktarmak için aşağıdaki kod parçacığını kullan. YOLO11 modelinin (yolo11n.pt) önceden eğitilmiş nano bir varyantını yükler ve onu 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")Modelini TensorRT formatına dönüştürdükten sonra, çeşitli uygulamalar için dağıtabilirsin.
Aşağıdaki örnek, dışa aktarılan YOLO11 modelini (yolo11n.engine) nasıl yükleyeceğini ve onunla nasıl çıkarım yapacağını gösterir. Çıkarım, eğitilmiş modelin yeni veriler üzerinde tahminler yapmasını sağlamayı içerir. Bu örnekte, modeli test etmek için bir köpek giriş görseli 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ığında, aşağıdaki çıktı görüntüsü runs/detect/predict klasörüne kaydedilecektir.

Şekil 3. TensorRT formatındaki dışa aktarılmış YOLO11 modelini kullanarak çıkarım yapmanın sonucu.
Link to this sectionTensorRT entegrasyonundan ne zaman yararlanmalısın?#
Ultralytics Python paketi, YOLO modellerini TorchScript, CoreML, ONNX ve TensorRT gibi farklı formatlara aktarmaya olanak tanıyan çeşitli entegrasyonları destekler. Peki, neden TensorRT entegrasyonunu kullanmayı seçmelisin?
İşte TensorRT model formatını diğer dışa aktarma entegrasyonu seçeneklerinden ayıran birkaç faktör:
-
Daha küçük model boyutu: Bir YOLO modelini INT8 hassasiyetiyle TensorRT formatına aktarmak, model boyutunu önemli ölçüde azaltabilir. FP32'den INT8'e kuantizasyon, model boyutunda 4 kat azalma sağlayabilir, bu da daha hızlı indirme süreleri, daha düşük depolama gereksinimleri ve dağıtım sırasında daha az bellek kullanımı sağlar.
-
Daha düşük güç kullanımı: INT8 kuantizasyonu 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ış hassasiyetli işlemler, FP32 modellerine kıyasla daha az güç tüketebilir; bu, dronlar, akıllı telefonlar veya uç cihazlar gibi pille çalışan cihazlar için özellikle faydalıdır.
-
Daha hızlı performans: YOLO'nun verimli mimarisini TensorRT'nin INT8 optimizasyonuyla birleştirmek, çıkarım hızlarını artırabilir.
Link to this sectionYOLO11 ve TensorRT model formatının uygulamaları#
TensorRT formatına aktarılan Ultralytics YOLO modelleri, çok çeşitli gerçek dünya senaryolarında dağıtılabilir. Bu optimize edilmiş modeller, özellikle hızlı ve verimli AI performansının önemli olduğu yerlerde kullanışlıdır. Bunların nasıl kullanılabileceğine dair bazı ilginç örneklere göz atalım.
Link to this sectionPerakende mağazalarındaki akıllı ödeme kasaları#
Perakende mağazalarındaki barkod tarama, ürün tartma veya paketleme gibi çok çeşitli görevler hala personel tarafından manuel olarak yapılmaktadır. Ancak sadece çalışanlara güvenmek operasyonları yavaşlatabilir ve özellikle ödeme sırasında müşteri memnuniyetsizliğine yol açabilir. Uzun kuyruklar hem alışveriş yapanlar hem de mağaza sahipleri için zahmetlidir. Akıllı self-servis ödeme kasaları bu sorun için harika bir çözümdür.
Bu kasalar, işlemi hızlandırmak için bilgisayarlı görü ve GPU'ları kullanır ve bekleme sürelerini azaltmaya yardımcı olur. Bilgisayarlı görü, bu sistemlerin nesne tespiti 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.
Bu dışa aktarılan modeller, özellikle uç AI 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ı ödeme kasası örneği.
Link to this sectionÜretimde otomatik kusur tespiti#
YOLO11 gibi bir bilgisayarlı görü modeli, üretim endüstrisindeki kusurlu ürünleri tespit etmek için özel olarak eğitilebilir. Eğitildikten sonra, model, yüksek performanslı AI sistemleriyle donatılmış tesislerde dağıtım için TensorRT formatına aktarılabilir.
Ürünler konveyör bantları üzerinde ilerlerken, kameralar görüntüleri yakalar ve TensorRT formatında çalışan YOLO11 modeli, hataları tespit etmek için bunları gerçek zamanlı olarak analiz eder. Bu kurulum, şirketlerin sorunları hızlı ve doğru bir şekilde yakalamasına, hataları azaltmasına ve verimliliği artırmasına olanak tanır.
Benzer şekilde, ilaç endüstrisi gibi sektörler, tıbbi paketlemedeki kusurları tanımlamak için bu tür sistemleri kullanıyor. Hatta akıllı kusur tespit sistemleri için küresel pazar 2026 yılına kadar 5 milyar dolara ulaşacak.

Şekil 5. İlaç endüstrisindeki kusurları tespit etmek için YOLO kullanma.
Link to this sectionTensorRT'yi kullanırken aklında bulundurman gereken hususlar#
TensorRT entegrasyonu, daha hızlı çıkarım hızları ve azaltılmış gecikme süresi gibi birçok avantaj sağlasa da, aklında bulundurman gereken birkaç sınırlama vardır:
-
Doğrulukta hafif düşüş: Modelini TensorRT formatında dışa aktardığında, dışa aktarılan model orijinali kadar doğru olmayabilir. Hassasiyet, hatırlama ve modelin nesneleri ne kadar iyi tespit ettiği (mAP skorları) gibi performans metrikleri hafifçe düşebilir. Bu, kuantizasyon sırasında temsili bir veri kümesi kullanılarak hafifletilebilir.
-
Artan hata ayıklama karmaşıklığı: TensorRT tarafından yapılan optimizasyonlar, özellikle sonuçları orijinal modelle karşılaştırırken hataların izini sürmeyi veya beklenmedik davranışları anlamayı daha zor hale getirebilir.
-
Grup boyutu hassasiyeti: TensorRT'nin performans kazanımları, daha büyük grup boyutlarıyla daha belirgindir. Tek görüntüleri veya küçük grupları işleyen uygulamalar için performans iyileştirmeleri daha az önemli olabilir.
Link to this sectionÖne çıkanlar#
Ultralytics YOLO modellerini TensorRT formatına aktarmak, onların çok daha hızlı ve verimli çalışmasını sağlar; bu da onları fabrikalardaki kusurların tespiti, akıllı ödeme sistemlerine güç verilmesi veya yoğun kentsel alanların izlenmesi gibi gerçek zamanlı görevler için ideal hale getirir.
Bu optimizasyon, tahminleri hızlandırarak, bellek ve güç kullanımını azaltarak modellerin NVIDIA GPU'larında daha iyi performans göstermesine yardımcı olur. Birkaç sınırlama olsa da, performans artışı, TensorRT entegrasyonunu NVIDIA donanımı üzerinde yüksek hızlı bilgisayarlı görü sistemleri oluşturan herkes için harika bir seçim haline getiriyor.
Yapay zeka hakkında daha fazla bilgi mi istiyorsun? GitHub depomuzu keşfet, topluluğumuzla bağlantı kur ve bilgisayarlı görü projeni hızlandırmak için lisanslama seçeneklerimize göz at. Çözüm sayfalarımızda üretimde yapay zeka ve lojistik sektöründe bilgisayarlı görü gibi yenilikler hakkında daha fazla bilgi edin.






