
TensorRT Neden Kullanılır?
TensorRT tabanlı uygulamalar, çıkarım sırasında yalnızca CPU tabanlı platformlara göre 36 kat daha hızlı performans gösterir. 7 ms’nin altında düşük bir yanıt süresine sahiptir ve hedefe özel optimizasyonlar gerçekleştirebilir. Böylece geliştiricilerin, PyTorch, TensorFlow, ONNX ve Matlab gibi tüm büyük çerçevelerde eğitilmiş sinir ağı modellerini daha hızlı çıkarım için optimize etmelerini sağlar. Ayrıca NVIDIA DeepStream, Riva, Merlin, Maxine, Modulus, Morpheus ve Broadcast Engine gibi uygulama spesifik yazılım geliştirme kitleri ile entegre edilebilir.
TensorRT Optimizasyonu Nasıl Gerçekleştirir?
Geliştiricilerin TensorRT’nin nasıl yardımcı olabileceğini okuduk, ancak şimdi TensorRT’nin çalışmasını sağlayan altı sürece bakalım.
1. Ağırlık ve Aktivasyon Hassasiyeti Kalibrasyonu
Neredeyse tüm derin öğrenme modelleri, daha geniş bir dinamik aralıktan yararlanmak için FP32’de eğitilmektedir. Ancak, bu modeller uzun tahmin süreleri gerektirir ve gerçek zamanlı yanıtları geciktirir.
Bu süreçte, model kuantizasyonu parametreleri ve aktivasyonları FP16 veya INT8’e dönüştürür. Bu genellikle daha düşük doğruluk ve gecikme ile model boyutunda bir azalmaya neden olur. Ancak KL-çeşitliliği kullanarak, TensorRT farkı ölçebilir ve minimize edebilir, böylece doğruluğu korurken verimliliği artırır. Yukarıdaki resimden FP32 ve INT8/FP16 arasındaki farkı görebiliriz.
2. Katman ve Tensor Birleştirme
Bu süreçte, TensorRT, katmanları ve tensor birleştirmeyi kullanarak GPU’nun belleğini ve bant genişliğini optimize eder; düğümleri dikey veya yatay olarak (bazen her ikisi) birleştirir. Bu, her katman için tensor verilerini okuma ve yazma maliyetini azaltır.
Yukarıdaki resimden, TensorRT’nin benzer girişlere ve filtre boyutlarına sahip tüm katmanları tanıdığını ve bunları tek bir katman oluşturmak için birleştirdiğini görebiliriz. Ayrıca, yukarıdaki resimde görüldüğü gibi birleştirme katmanlarını ortadan kaldırır (“concat”).
Genel olarak, bu, daha az katman ve kernel başlatması ile daha küçük, daha hızlı ve daha verimli bir grafik oluşturur ve bu da çıkarım gecikmesini azaltır.
3. Kernel Otomatik Ayarlama
Bu süreçte, TensorRT, hedef GPU platformuna göre en iyi katmanları, algoritmaları ve batch boyutunu seçerek en iyi performansı bulur. Bu, dağıtılan modelin her dağıtım platformu için ayarlandığını garanti eder.
4. Dinamik Tensor Belleği
Bu süreçte, TensorRT bellek ayak izini minimize eder ve bellek kullanımını yeniden kullanarak, her tensor için yalnızca kullanım süresi boyunca bellek ayırır ve daha hızlı ve daha verimli bir yürütme için bellek ayırma maliyetini önler.
5. Çoklu Akış Yürütme
TensorRT, bu süreçte birden fazla giriş akışını paralel olarak işlemek üzere tasarlanmıştır.
6. Zaman Birleştirme
Çıktı aşamasına geçmeden önceki son adımda, TensorRT, dinamik olarak üretilen kernel’ler ile zaman adımlarında tekrarlayan sinir ağlarını optimize edebilir.
Hangi Modeller TensorRT’ye Dönüştürülebilir?
TensorRT, Caffe, TensorFlow, PyTorch ve ONNX gibi modellerin dönüşümünü resmi olarak destekler.
Ayrıca, modelleri dönüştürmek için üç yol sunar:
- TensorFlow’da TF-TRT kullanarak TensorRT’yi entegre edin.
- torch2trt: TensorRT Python API’sini kullanan PyTorch’dan TensorRT’ye dönüştürücü.
- Model yapısını oluşturun ve ardından ağırlık bilgilerini manuel olarak taşıyın, tensorrtx: TensorRT ağ tanım API’leri ile popüler derin öğrenme ağlarını uygulayın.
Bu NVIDIA Jetson İçin Ne Anlama Geliyor?
Not: Tüm modeller FP32 hassasiyetinde çalıştırılmaktadır.

NVIDIA Jetson, uçta AI çalıştırma yeteneğine sahip gömülü cihazlar ailesidir. AI çıkarımı yapabilen geleneksel sistemlerle, örneğin bir GPU’ya sahip masaüstü PC ile karşılaştırıldığında, Jetson cihazları çok küçüktür. Ancak, büyük sistemlerle karşılaştırıldığında performansı sınırlıdır. Bu Jetson sistemlerinden en iyi performansı elde etmek için TensorRT’nin uygulanması çok faydalıdır.
Şimdi, bir Jetson cihazında TensorRT kullanarak ne kadar performans artışı bekleyebileceğimizi karşılaştıralım. Örnek olarak, bir Jetson Nano cihazında YOLOv5 kullanarak çıkarım yaptık ve TensorRT ile ve onsuz çıkarım performansını kontrol ettik.
TensorRT olmadan çıkarım için, ultralytics/yolov5 deposunu yolov5n önceden eğitilmiş modeli ile kullandık.
- Adım 1: bu wiki bölümünde adım 1 – adım 8’e bakın.
- Adım 2: Jetson cihazına bir webcam bağlayın ve YOLOv5 dizininde aşağıdakileri çalıştırın.
python3 detect.py –source 0 –weights yolov5n.pt
Gördüğünüz gibi, çıkarım süresi yaklaşık 0.060s = 60ms, bu da neredeyse 1000/60 = 16.7fps’ye eşdeğerdir.
TensorRT ile çıkarım için, ultralytics/yolov5 deposunu wang-xinyu/tensorrtx deposu ile yolov5n önceden eğitilmiş modeli ile birlikte kullandık.
- Adım 1: bu wiki bölümünde adım 1 – adım 20’ye bakın.
- Adım 2: Çıkarım için gerekli görüntülerin “images” dizinine yüklendiğinden emin olun ve aşağıdakileri çalıştırın.
sudo ./yolov5 -d yolov5n.engine images
Gördüğünüz gibi, çıkarım süresi yaklaşık 0.037s = 37ms, bu da neredeyse 1000/37 = 27fps’ye eşdeğerdir.
Ayrıca, Jetson Xavier NX cihazında YOLOv5n önceden eğitilmiş modeli kullanarak çıkarım yaptık ve TensorRT ile çıkarım performansını kontrol ettik. Burada ultralytics/yolov5 deposunu marcoslucianops/DeepStream-Yolo deposu ile yolov5n önceden eğitilmiş modeli ile birlikte kullandık.
- Adım 1: bu wiki bölümünde adım 1 – adım 10’a bakın.
- Adım 2: Çıkarımı görüntülemek için aşağıdakileri çalıştırın.
deepstream-app -c deepstream_app_config.txt

Yukarıdaki sonuç, FP32 ile Jetson Xavier NX üzerinde çalıştırılmaktadır. FPS’nin yaklaşık 60 olduğunu görebiliriz.
Sonuç olarak, Jetson platformunda TensorRT kullanıldığında, bilgisayarla görme görevlerinde çok daha iyi bir çıkarım performansı elde edebileceğimizi söyleyebiliriz!
Ayrıca, hızlı bir şekilde TensorRT’ye dönüştürme için Deci Platformunu kontrol etmenizi öneririz.
Aşağıdaki tablo, optimizasyon sonuçlarını özetlemekte ve optimize edilmiş TensorRT™ modelinin her açıdan çıkarımda daha iyi olduğunu kanıtlamaktadır.

TensorRT ve NVIDIA Jetson Projeleri
Get started with Hello AI World

Hello AI World, TensorRT ve NVIDIA Jetson ile derin öğrenme çıkarım ağlarını ve derin görsel primitifleri dağıtmak için bir kılavuzdur. Bu kılavuz, TensorRT’yi kullanarak gömülü Jetson platformuna sinir ağlarını verimli bir şekilde nasıl dağıtacağınızı gösterecek ve grafik optimizasyonları, kernel birleştirmesi ve FP16/INT8 hassasiyeti kullanarak performansı ve enerji verimliliğini artıracaktır.
Bu kılavuz esas olarak görüntü sınıflandırması, nesne tespiti, anlamsal segmentasyon, poz tahmini ve mono derinlik konularını kapsayacaktır. Her model için video eğitimleri bu GitHub bağlantısında bulunabilir.
MMDetection, daha önce bahsedilen PyTorch tabanlı açık kaynaklı bir nesne tespiti araç takımıdır. Eğitim tarifleri, önceden eğitilmiş modeller ve veri seti desteği içerir. Linux, Windows ve macOS üzerinde çalışır ve Python 3.6+, CUDA 9.2+ ve PyTorch 1.5+ gerektirir. Ayrıca bilgisayarla görme araştırmaları için bir mmcv kütüphanesi de yayınladılar. Modül çağırma yöntemi ile, az miktarda kod ile yeni bir algoritma uygulayabiliriz. Kodun yeniden kullanım oranını büyük ölçüde artırır.
MMDeploy, açık kaynaklı bir derin öğrenme modeli dağıtım araç setidir. OpenMMLab projesinin bir parçasıdır. NVIDIA Jetson kenar platformları, örneğin Seeed’in reComputer’ında MMDeploy’u nasıl kuracağınızı öğrenmek için bu kılavuza göz atın.
Jetson platformlarındaki MMDeploy Model Dönüştürücüsü, MMCV ve çıkarım motoru TensorRT‘ye bağlıdır. MMDeploy C/C++ Çıkarım SDK’sı ise spdlog, OpenCV ve ppl.cv‘ye, ayrıca TensorRT’ye dayanır.
Otomatik Plaka Tanıma
Peru’nun başkenti Lima, 2018’de dünyanın en kötü üçüncü trafiğine sahipti. Bu nedenle, Pazartesi ve Çarşamba günleri yalnızca tek numaralı plakalara izin veren bir sürüş kısıtlama politikası uyguladılar, Salı ve Perşembe günleri ise yalnızca çift numaralı plakalara izin verilmektedir. Şu anda, trafik polisleri sokaklarda manuel olarak kontrol yapıyor, bu da zaman alıcı ve vergi mükelleflerinin paralarının israfıdır. Otomasyon ile manuel iş gücü en aza indirilebilir ve otoyoldaki tüm noktalar tespit edilebilir!
Bu çözüm taşınabilir ve ucuzdur ve benzer trafik sıkışıklığı sorunları yaşayan diğer şehirlerde de kullanılabilir. Webcam, sokakların gerçek zamanlı videosunu çekecek ve TensorRT için optimize edilmiş bir Mobilenet SSD modeli kullanarak araçları ve plaka numaralarını tespit edecektir. Daha sonra, farklı günlerde yasalara uygun olup olmadığını kontrol etmek için OpenALPR modülüne gönderilecektir. Bir suçlu tespit edildiğinde bir buzzer da çalacaktır.
Bu proje için ihtiyacınız olanlar:
- NVIDIA Jetson Nano/ reComputer J1010
- 16×2 LCD
- USB Webcam
- Buzzer
- TensorFlow
- TensorRT
- pycuda
- LLVM
- Numba
- scikit-learn
- SciPy
- OpenALPR
Trafik Işık Yönetimi
Bir ALPR projesinden sonra, trafik ışığı yönetimi ile de ilgilenebilirsiniz, bu da trafik sıkışıklığını azaltmayı hedefliyor!

Trafik ışıkları, düzgün yapılmadığında trafik darboğazlarının ana nedenleridir. Bu proje, gerçek zamanlı yanıt sağlamak için YOLOv4 tabanlı DeepSORT nesne izleme algoritmasını kullanarak bu tür sorunları çözmeyi amaçlamaktadır. Jetson Xavier NX üzerinde optimizasyon ve kuantizasyon için TensorRT kullanılmıştır.
Bu proje için ihtiyacınız olanlar:
- NVIDIA Jetson Xavier NX/ reComputer J2012 (Jetson Xavier NX)
- Intel Neural Compute Stick 2
- Raspberry Pi 4 Model B
- USB Çok Fonksiyonlu Test Cihazı
- TensorFlow
- TensorRT
- OpenVINO
- Raspberry Pi Raspbian
- DeepSORT
- YOLOv4
Gerçek Zamanlı İnsan Takibi ve Sayımı
Bu proje, belirli bir yerden (bir çizgi ile gösterilen) giren ve çıkan insanlar hakkında gerçek zamanlı bilgi tespit edebilir. Bu, bir alışveriş merkezi girişinde bekleyen bir insan sayıcı tutmaktan çok daha iyi ve ucuzdur. İnsan hatalarına daha az eğilimlidir ve maliyetler önemli ölçüde daha düşük olacaktır.
Bu proje için ihtiyacınız olanlar:
- NVIDIA Jetson Nano/ reComputer J1010 (Jetson Nano)
- Raspberry Pi Kamera / USB Webcam
- TensorRT
- JetPack
Çukur Tespit Cihazı
Çukurlar araçlara zarar verir ve jantlarda çatlaklar ve eğrilere neden olabilir, bu da tekerlek hizalamasını etkiler ve değiştirmek için önemli miktarda para harcatır. Bu proje, hükümetin veya yerel otoritelerin çukurları tespit etmesine ve bu sorunun asla yaşanmamasını sağlamaya yardımcı olmayı amaçlamaktadır.
Bu proje için ihtiyaç duyduğunuz şeyler:
- NVIDIA Jetson Nano/ reComputer J1010 (Jetson Nano)
- Raspberry Pi Kamera / USB Webcam
- TensorRT
- TensorFlow
Lösemi Sınıflandırıcı
Bu tıbbi destek projesi, Akut Lenfoblastik Lösemi’yi (ALL) tespit etmeyi amaçlamaktadır. ALL, çocuklarda en yaygın lösemi türüdür ve yetişkinlerdeki akut lösemilerin %20’sine kadar katkıda bulunmaktadır. Proje, Intel’in oneAPI ve Optimizasyon kullanılarak geliştirilmiştir. Jetson Nano üzerinde yüksek performanslı çıkarım için TensorRT kullanılmıştır ve bu, eğitim sürecini hızlandırmıştır.
Ancak, bu proje hakkında birkaç uyarı:
- Bu model doğru olabilir ve kağıt üzerinde ve gerçek dünya testlerinde iyi sonuçlar gösterebilir, ancak küçük bir veri seti üzerinde eğitilmiştir.
- Bu depoya katkıda bulunan hiçbir doktor, tıp veya kanser uzmanı yer almamaktadır.
Bu proje için ihtiyaç duyduğunuz şeyler:
- NVIDIA Jetson Nano/ reComputer J1010.
- Intel NUC Kit
- Intel oneAPI
- TensorFlow
- TensorFlow RunTime
- TensorRT
- ONNX
Yüz Maskesi Tespit Sistemi
Covid-19 pandemisi ile birlikte herkes günümüzde yüz maskesi takıyor. Bu nedenle birçok yüz tanıma teknolojisi yüzleri tespit etmekte zorlanıyor.
Bu proje, NVIDIA Jetson kartları üzerinde tek atış yöntemi için mevcut en hızlı model olan SSD-MobileNet algoritmasını kullanmaktadır. Ayrıca, buradan indirilebilen Kaggle veri setini kullanmaktadır. Tespit süresini iyileştirmek için TensorRT kullanılmıştır ve bu sayede Jetson Xavier NX’in 100FPS’den daha yüksek bir performans sergilemesi sağlanmıştır.
Bu proje için ihtiyaç duyduğunuz şeyler:
- NVIDIA Jetson Nano/ reComputer J1010 (Jetson Nano) (bu projede NVIDIA Jetson Xavier NX/ reComputer J2012 (Jetson Xavier NX) kullanılmıştır)
- Raspberry Pi Kamera (bu projede USB Webcam kullanılmıştır)
- PyTorch
- TensorRT
Güvenlik Kaskı Tespit Sistemi
Güvenlik kaskları, iş yerlerinde işçileri kazalardan korumak için en önemli ekipmanlardır. Bu proje, işçilerin çalışma sırasında güvenlik kasklarını takıp takmadığını tespit etmeyi amaçlamaktadır. En son YOLOv7’yi kullanarak, güvenlik kaskı takan işçileri tespit etmek için özel bir nesne tespit modeli eğitmiştir ve derin öğrenme platformunu çalıştırmak için TensorRT kullanılmıştır.
Bu proje için ihtiyaç duyduğunuz şeyler:
- NVIDIA Jetson Nano / NVIDIA Jetson Xavier NX/ reComputer J1010 (Jetson Nano)/ reComputer J2012 (Jetson Xavier NX)
- Microsoft VScode
- YOLOv7
- TensorRT
DeepStream Video Analitiği Robotu
Kaynak: Attila Tőkés
Yukarıdaki Deep Eye robotu, NVIDIA DeepStream tabanlı video analitiği uygulamaları için hızlı prototipleme platformudur. TensorRT, Deep Eye’ın donanım hızlandırmalı çıkarım ve tespit gerçekleştirmesine olanak tanımıştır.
3 ana bileşen bulunmaktadır:
- Jetson Nano ile kullanılacak donanım platformu
- DeepLib, DeepStream tabanlı video işleme için kolay kullanım sağlayan bir Python kütüphanesi
- DeepStream tabanlı uygulamaların kolayca oluşturulmasını sağlayan Web IDE
Bu proje için ihtiyaç duyduğunuz şeyler:
- NVIDIA Jetson Nano/ reComputer J1010 (Jetson Nano)
- Raspberry Pi Kamera
- SG90 Mikro Servo Motor
- Step Motor
- Adafruit 16-Kanal 12-bit PWM/Servo Shield – I2C arayüzü
- A4988 Stepper motor sürücü kartı
- Prototip (FreeCAD’de tasarlandı, eğitim burada bulunabilir)
- JetPack
- DeepStream SDK
- DeepStream Python Bağlantıları
- TensorRT
- SDK Yöneticisi
Eylem Takibi & Aktivite Tanıma
Bu akıllı video analitiği projesi, çoklu kişi takibi ve aktivite tanıma gerçekleştirmeyi amaçlamaktadır. Öncelikle, videoları elde etmek ve işlemek için OpenCV kullanılmıştır. Ardından, poz tahmini için Openpose kullanılmış ve kişi örneklerini takip etmek için scikit-learn uygulaması kullanılmıştır. Jetson Nano üzerinde optimize edilmiş çıkarım için TensorRT dönüştürücüleri ile birlikte, takip ve tanıma projelerini başarıyla tamamlamışlardır.
Bu proje için ihtiyaç duyduğunuz şeyler:
- NVIDIA Jetson Nano/ reComputer J1010 (Jetson Nano)
- Webcam
- TensorFlow
- TensorRT
- PyTorch
- DeepStream SDK
- scikit-learn
- Openpose
- OpenCV
İşte TensorRT’yi NVIDIA Jetson Nano’da nasıl kullanacağınıza dair bir kılavuz. Göz atın ve umarım yukarıda listelenen projelerle denemek için bir fırsat bulursunuz! Ayrıca, yolculuğunuza başlamanızı sağlayacak Jetson Nano ürünlerine de aşağıdan göz atabilirsiniz.
