"Tüm Çerezleri Kabul Et" seçeneğine tıklayarak, sitede gezinmeyi geliştirmek, site kullanımını analiz etmek ve pazarlama çabalarımıza yardımcı olmak için cihazınızda çerezlerin saklanmasını kabul edersiniz. Daha fazla bilgi
Çerez Ayarları
"Tüm Çerezleri Kabul Et" seçeneğine tıklayarak, sitede gezinmeyi geliştirmek, site kullanımını analiz etmek ve pazarlama çabalarımıza yardımcı olmak için cihazınızda çerezlerin saklanmasını kabul edersiniz. Daha fazla bilgi
Gerçek zamanlı uygulamalar için NVIDIA GPU'larda daha hızlı, daha verimli yapay zeka performansı elde etmek üzere Ultralytics YOLO modellerini TensorRT entegrasyonunu kullanarak nasıl dışa aktaracağınızı öğrenin.
Yoğun bir caddede ilerleyen ve kaldırımdan inen bir yayayı algılamak için yalnızca milisaniyeleri olan otonom bir aracı düşünün. Aynı zamanda, bir ağaç tarafından kısmen gizlenmiş bir dur işaretini tanıması veya yakındaki bir aracın kendi şeridine doğru savrulmasına hızla tepki vermesi gerekebilir. Bu tür durumlarda, hız ve gerçek zamanlı yanıtlar kritik öneme sahiptir.
İşte burada yapay zeka (AI), özellikle de makinelerin görsel verileri yorumlamasına yardımcı olan bir yapay zeka dalı olan bilgisayarlı görü önemli 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 yerine getirmesi 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ırmasıdır. NVIDIA GPU'ları, düşük gecikme süresi ve yüksek verim sağlama yetenekleri sayesinde bu tür görevler için özellikle iyi bilinir.
Ancak, bir modeli bir GPU'da olduğu gibi çalıştırmak her zaman optimum performansı garanti etmez. Görüntüleme yapay zeka modelleri, donanım cihazlarının yeteneklerinden tam olarak yararlanmak için genellikle optimizasyon gerektirir. Belirli donanımla tam performans elde etmek için, modeli donanım için özel talimat kümesini 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 kitaplığıdır. 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 NVIDIA donanımında daha hızlı, daha verimli dağıtım için YOLO11 modelinizi nasıl dışa aktarabileceğinizi adım adım göstereceğiz. Hadi başlayalım!
TensorRT'ye genel bakış
TensorRT, yapay zeka 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. Otonom araçlar ve ü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 gecikme süresiyle çalışmasını ve daha yüksek bir verimi yönetebilmesini sağlamak için arka planda çalışabilen derleyiciler ve model optimizasyon araçları gibi araçlar içerir.
Ultralytics tarafından desteklenen TensorRT entegrasyonu, kesinliği azaltma gibi yöntemler kullanarak YOLO modelinizi GPU'larda daha verimli çalışacak şekilde optimize ederek çalışır. Bu, bellek kullanımını azaltan ve doğruluk üzerinde minimum etkiyle hesaplamayı hızlandıran 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ını ifade eder.
Ayrıca, uyumlu sinir ağı katmanları, bellek kullanımını azaltmak için optimize edilmiş TensorRT modellerinde birleştirilir ve bu da daha hızlı ve daha verimli çıkarımla sonuçlanır.
Şekil 2. TensorRT'nin katman birleştirme 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, Jetson, NVIDIA DRIVE ve veri merkezleri gibi platformlarda yüksek hızlı yapay zeka motorlarının geliştirilmesini sağlayan MATLAB'ı da destekler.
Triton ile ölçeklenebilir dağıtım: TensorRT formatında optimize edilmiş modeller, giriş toplama, eşzamanlı model yürütme, model topluluk desteği ve gerçek zamanlı ses/video akışı gibi özellikler aracılığıyla verimliliği artıran NVIDIA Triton Inference Server kullanılarak ölçekli olarak dağıtılabilir.
Cihazlar arasında 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.
TensorRT entegrasyonu nasıl çalışır?
Ultralytics YOLO11 gibi Ultralytics YOLO modellerini TensorRT model formatına aktarmak kolaydır. Gelin, bu işlemin adımlarını inceleyelim.
Başlamak için, ‘pip’ gibi bir paket yöneticisi kullanarak Ultralytics Python paketini 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 tespiti, sınıflandırma ve örnek segmentasyonu gibi çeşitli bilgisayarlı görü 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 Sık Karşılaşılan 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çasını kullanın. Önceden eğitilmiş bir YOLO11 modelinin 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 nasıl çıkarım yapılacağını gösterir. Çıkarım, yeni veriler üzerinde tahminler yapmak için eğitilmiş modelin kullanılmasını içerir. Bu durumda, modeli test etmek için bir köpeğin giriş görüntüsünü kullanacağız.
Ultralytics Python paketi, YOLO modellerini TorchScript, CoreML, ONNX ve TensorRT gibi farklı formatlara aktarmaya olanak tanıyan çeşitli entegrasyonları destekler. Peki, TensorRT entegrasyonunu ne zaman kullanmayı tercih etmelisiniz?
İş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 küçültebilir. FP32'den INT8'e niceleme, 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 kullanımı sağlar.
Daha düşük güç kullanımı: INT8 nicelemesi yalnızca model boyutunu küçültmekle kalmaz, aynı zamanda güç tüketimini de azaltır. INT8'e aktarılmış YOLO modelleri için azaltılmış hassasiyet işlemleri, FP32 modellerine kıyasla daha az güç tüketebilir; bu da özellikle dronlar, 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 optimizasyonuyla birleştirmek, çıkarım hızlarını artırabilir.
YOLO11 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 yapay zeka 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.
Perakende mağazalarında akıllı ödeme gişeleri
Perakende mağazalarındaki barkodları tarama, ürünleri tartma veya ürünleri paketleme gibi çok çeşitli görevler hala personel tarafından manuel olarak yapılmaktadır. Ancak, yalnızca çalışanlara güvenmek operasyonları yavaşlatabilir ve özellikle ödeme sırasında müşteri hayal kırıklığına yol açabilir. Uzun kuyruklar hem alışveriş yapanlar hem de mağaza sahipleri için sakıncalıdır. Akıllı self-servis ödeme gişeleri bu soruna harika bir çözümdür.
Bu gişeler, süreci hızlandırmaya yardımcı olmak 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ılmış 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.
YOLO11 gibi bir bilgisayarlı görü modeli, üretim endüstrisinde kusurlu ürünleri tespit etmek için özel olarak eğitilebilir. Eğitimden sonra, model yüksek performanslı yapay zeka sistemleriyle donatılmış tesislerde dağıtım için TensorRT formatına aktarılabilir.
Ürünler taşıma bantları üzerinde 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ına, hataları azaltmasına ve verimliliği artırmasına olanak tanır.
Benzer şekilde, ilaç gibi endüstriler de bu tür sistemleri tıbbi ambalajlardaki kusurları belirlemek için kullanıyor. Aslında, akıllı kusur tespit sistemleri için 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 bulundurulması gereken hususlar
TensorRT entegrasyonu, daha hızlı çıkarım hızları ve azaltılmış gecikme gibi birçok avantajı beraberinde getirse de, akılda tutulması gereken birkaç sınırlama şunlardır:
Hafif doğruluk düşüşü: Modelinizi TensorRT formatında dışa aktardığınızda, dışa aktarılan modeliniz orijinali kadar doğru olmayabilir. Performans metrikleri olan kesinlik, geri çağırma ve modelin nesneleri ne kadar iyi tespit ettiği (mAP skorları) gibi değerlerde hafif düşüşler olabilir. Bu, 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ı zorlaştırabilir.
Batch boyutu hassasiyeti: TensorRT'nin performans kazanımları, daha büyük batch boyutlarında daha belirgindir. Tek görüntüleri veya küçük batch'leri işleyen uygulamalar için, performans iyileştirmeleri daha az önemli olabilir.
Önemli çıkarımlar
Ultralytics YOLO modellerini TensorRT formatına aktarmak, onların önemli ölçüde daha hızlı ve daha verimli çalışmasını sağlayarak, fabrikalardaki kusurları tespit etme, akıllı ödeme sistemlerini güçlendirme veya yoğun şehir alanlarını izleme gibi gerçek zamanlı görevler için ideal hale getirir.
Bu optimizasyon, tahminleri hızlandırarak ve bellek ve güç kullanımını azaltarak modellerin NVIDIA GPU'larda 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 kuran herkes için harika bir seçim haline getirir.