Link to this sectionDeepStream SDK ve TensorRT kullanarak NVIDIA Jetson üzerinde Ultralytics YOLO26#
Watch: How to use Ultralytics YOLO26 models with NVIDIA Deepstream on Jetson Orin NX 🚀
Bu kapsamlı rehber, DeepStream SDK ve TensorRT kullanarak Ultralytics YOLO26 modelini NVIDIA Jetson cihazlarda dağıtmanız için ayrıntılı bir izlenecek yol sunar. Burada, Jetson platformunda çıkarım performansını en üst düzeye çıkarmak için TensorRT kullanıyoruz.

This guide has been tested with NVIDIA Jetson Orin Nano Super Developer Kit running the latest stable JetPack release of JP6.1, Seeed Studio reComputer J4012 which is based on NVIDIA Jetson Orin NX 16GB running JetPack release of JP5.1.3 and Seeed Studio reComputer J1020 v2 which is based on NVIDIA Jetson Nano 4GB running JetPack release of JP4.6.4. It is expected to work across all the NVIDIA Jetson hardware lineup including latest and legacy.
Link to this sectionNVIDIA DeepStream nedir?#
NVIDIA'nın DeepStream SDK sürümü; yapay zeka tabanlı çoklu sensör işleme, video, ses ve görüntü anlama için GStreamer tabanlı eksiksiz bir akış analizi araç setidir. IVA (Akıllı Video Analitiği) uygulamaları ve hizmetleri geliştiren vizyon yapay zeka geliştiricileri, yazılım ortakları, girişimler ve OEM'ler için idealdir. Artık sinir ağlarını ve izleme, video kodlama/kod çözme ve video işleme gibi karmaşık işleme görevlerini içeren akış işleme hatları oluşturabilirsin. Bu hatlar, video, görüntü ve sensör verileri üzerinde gerçek zamanlı analiz sağlar. DeepStream'in çoklu platform desteği; şirket içi, uç nokta ve bulutta vizyon yapay zeka uygulamaları ve hizmetleri geliştirmen için sana daha hızlı ve daha kolay bir yol sunar.
Link to this sectionÖn koşullar#
Bu rehberi takip etmeye başlamadan önce:
- NVIDIA Jetson cihazını Ultralytics YOLO26 ile kurmak için Hızlı Başlangıç Rehberi: Ultralytics YOLO26 ile NVIDIA Jetson dokümantasyonumuzu ziyaret et.
- DeepStream SDK sürümünü JetPack sürümüne göre kur.
- JetPack 4.6.4 için DeepStream 6.0.1 kur.
- JetPack 5.1.3 için DeepStream 6.3 kur.
- JetPack 6.1 için DeepStream 7.1 kur.
- JetPack 7.1 için DeepStream 9.0 kur.
Bu rehberde, DeepStream SDK'yı Jetson cihazına kurmak için Debian paket yöntemini kullandık. Ayrıca, DeepStream'in eski sürümlerine erişmek için Jetson üzerinde DeepStream SDK (Arşivlenmiş) sayfasını ziyaret edebilirsin.
Link to this sectionYOLO26 için DeepStream Yapılandırması#
Burada, YOLO modelleri için NVIDIA DeepStream SDK desteği içeren marcoslucianops/DeepStream-Yolo GitHub deposunu kullanıyoruz. Katkılarından dolayı marcoslucianops'a teşekkür ederiz!
-
Ultralytics'i gerekli bağımlılıklarla birlikte kur.
cd ~ pip install -U pip git clone https://github.com/ultralytics/ultralytics cd ultralytics pip install -e ".[export]" onnxslim -
DeepStream-Yolo deposunu klonla.
cd ~ git clone https://github.com/marcoslucianops/DeepStream-Yolo -
export_yolo26.pydosyasınıDeepStream-Yolo/utilsdizinindenultralyticsklasörüne kopyala.cp ~/DeepStream-Yolo/utils/export_yolo26.py ~/ultralytics cd ultralytics -
Seçtiğin Ultralytics YOLO26 tespit modelini (.pt) YOLO26 sürümlerinden indir. Burada yolo26s.pt kullanıyoruz.
wget https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26s.pt
Ayrıca özel olarak eğitilmiş bir YOLO26 modeli de kullanabilirsin.
-
Modeli ONNX'e dönüştür.
python3 export_yolo26.py -w yolo26s.pt
DeepStream 5.1 için --dynamic argümanını kaldır ve opset 12 veya daha düşük bir sürümünü kullan. Varsayılan opset 17'dir.
--opset 12Çıkarım boyutunu değiştirmek için (varsayılan: 640)
-s SIZE
--size SIZE
-s HEIGHT WIDTH
--size HEIGHT WIDTH1280 için örnek:
-s 1280
or
-s 1280 1280ONNX modelini sadeleştirmek için (DeepStream >= 6.0)
--simplifyDinamik toplu iş boyutu (batch-size) kullanmak için (DeepStream >= 6.1)
--dynamicSabit toplu iş boyutu kullanmak için (toplu iş boyutu = 4 için örnek)
--batch 4-
Oluşturulan
.onnxmodel dosyasını velabels.txtdosyasınıDeepStream-Yoloklasörüne kopyala.cp yolo26s.pt.onnx labels.txt ~/DeepStream-Yolo cd ~/DeepStream-Yolo -
CUDA sürümünü kurulu JetPack sürümüne göre ayarla.
JetPack 4.6.4 için:
export CUDA_VER=10.2JetPack 5.1.3 için:
export CUDA_VER=11.4JetPack 6.1 için:
export CUDA_VER=12.6 -
Kütüphaneyi derle.
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
config_infer_primary_yolo26.txtdosyasını modeline göre düzenle (80 sınıflı YOLO26s için).[property] ... onnx-file=yolo26s.pt.onnx ... num-detected-classes=80 ... -
deepstream_app_configdosyasını düzenle.... [primary-gie] ... config-file=config_infer_primary_yolo26.txt -
deepstream_app_configdosyasındaki video kaynağını da değiştirebilirsin. Burada varsayılan bir video dosyası yüklü.... [source0] ... uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4
Link to this sectionÇıkarımı Çalıştır.#
deepstream-app -c deepstream_app_config.txtÇıkarımı başlatmadan önce TensorRT motor dosyasını oluşturmak uzun sürecektir. Lütfen sabırlı ol.

If you want to convert the model to FP16 precision, simply set model-engine-file=model_b1_gpu0_fp16.engine and network-mode=2 inside config_infer_primary_yolo26.txt
Link to this sectionINT8 Kalibrasyonu#
Çıkarım için INT8 hassasiyeti kullanmak istersen, aşağıdaki adımları izlemen gerekir:
Şu an INT8, TensorRT 10.x ile çalışmamaktadır. Rehberin bu bölümü, çalışması beklenen TensorRT 8.x ile test edilmiştir.
-
OPENCVortam değişkenini ayarla.export OPENCV=1 -
Kütüphaneyi derle.
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
COCO veri kümesi için val2017 dosyasını indir, çıkar ve
DeepStream-Yoloklasörüne taşı. -
Kalibrasyon görüntüleri için yeni bir dizin oluştur.
mkdir calibration -
Kalibrasyonu çalıştırmak için COCO veri kümesinden rastgele 1000 görüntü seçmek üzere aşağıdakini çalıştır.
for jpg in $(ls -1 val2017/*.jpg | sort -R | head -1000); do cp ${jpg} calibration/ done
NVIDIA, iyi bir doğruluk elde etmek için en az 500 görüntü önerir. Bu örnekte, daha iyi doğruluk elde etmek için 1000 görüntü seçilmiştir (daha fazla görüntü = daha fazla doğruluk). Bunu head -1000 ile ayarlayabilirsin. Örneğin, 2000 görüntü için head -2000 kullan. Bu işlem uzun sürebilir.
-
Seçilen tüm görüntüleri içeren
calibration.txtdosyasını oluştur.realpath calibration/*jpg > calibration.txt -
Ortam değişkenlerini ayarla.
export INT8_CALIB_IMG_PATH=calibration.txt export INT8_CALIB_BATCH_SIZE=1
Daha yüksek INT8_CALIB_BATCH_SIZE değerleri daha fazla doğruluk ve daha hızlı kalibrasyon hızı sağlayacaktır. GPU belleğine göre ayarla.
-
config_infer_primary_yolo26.txtdosyasını güncelle.Şuradan
... model-engine-file=model_b1_gpu0_fp32.engine #int8-calib-file=calib.table ... network-mode=0 ...Şuna
... model-engine-file=model_b1_gpu0_int8.engine int8-calib-file=calib.table ... network-mode=1 ...
Link to this sectionÇıkarımı Çalıştır.#
deepstream-app -c deepstream_app_config.txtLink to this sectionÇoklu Akış (MultiStream) Kurulumu#
Watch: How to Run Multi-Stream Inference with Ultralytics YOLO26 using NVIDIA DeepStream on Jetson Orin 🚀
Tek bir DeepStream uygulaması altında birden fazla akış kurmak için deepstream_app_config.txt dosyasında şu değişiklikleri yap:
-
İstediğin akış sayısına göre ızgara görünümü oluşturmak için satır ve sütunları değiştir. Örneğin, 4 akış için 2 satır ve 2 sütun ekleyebiliriz.
[tiled-display] rows=2 columns=2 -
num-sources=4olarak ayarla ve dört akışın tamamı içinurigirişlerini ekle.[source0] enable=1 type=3 uri=path/to/video1.jpg uri=path/to/video2.jpg uri=path/to/video3.jpg uri=path/to/video4.jpg num-sources=4
Link to this sectionÇıkarımı Çalıştır.#
deepstream-app -c deepstream_app_config.txt
Link to this sectionKıyaslama (Benchmark) Sonuçları#
Aşağıdaki kıyaslamalar, NVIDIA Jetson Orin NX 16GB üzerinde 640x640 giriş boyutu ile YOLO26 modellerinin farklı TensorRT hassasiyet seviyelerinde nasıl performans gösterdiğini özetlemektedir.
Link to this sectionKarşılaştırma Tablosu#

Link to this sectionAyrıntılı Karşılaştırma Tablosu#
| Format | Durum | Çıkarım süresi (ms/im) |
|---|---|---|
| TensorRT (FP32) | ✅ | 8.64 |
| TensorRT (FP16) | ✅ | 5.27 |
| TensorRT (INT8) | ✅ | 4.54 |
Link to this sectionTeşekkürler#
Bu rehber başlangıçta Seeed Studio'dan arkadaşlarımız Lakshantha ve Elaine tarafından oluşturulmuştur.
Link to this sectionSSS#
Link to this sectionBir NVIDIA Jetson cihazında Ultralytics YOLO26'yı nasıl kurarım?#
Ultralytics YOLO26'yı bir NVIDIA Jetson cihazında kurmak için, önce JetPack sürümünle uyumlu DeepStream SDK sürümünü yüklemen gerekir. NVIDIA Jetson'ını YOLO26 dağıtımı için yapılandırmak üzere Hızlı Başlangıç Rehberi bölümündeki adım adım kılavuzu izle.
Link to this sectionNVIDIA Jetson üzerinde YOLO26 ile TensorRT kullanmanın faydası nedir?#
YOLO26 ile TensorRT kullanmak, modeli çıkarım için optimize eder, NVIDIA Jetson cihazlarında gecikmeyi önemli ölçüde azaltır ve verimi artırır. TensorRT; katman birleştirme, hassasiyet kalibrasyonu ve çekirdek otomatik ayarlama yoluyla yüksek performanslı ve düşük gecikmeli derin öğrenme çıkarımı sağlar. Bu, özellikle video analitiği ve otonom makineler gibi gerçek zamanlı uygulamalar için yararlı olan daha hızlı ve daha verimli bir yürütme sağlar.
Link to this sectionUltralytics YOLO26'yı DeepStream SDK ile farklı NVIDIA Jetson donanımlarında çalıştırabilir miyim?#
Evet, Ultralytics YOLO26'yı DeepStream SDK ve TensorRT ile dağıtma rehberi tüm NVIDIA Jetson serisiyle uyumludur. Buna JetPack 5.1.3 çalıştıran Jetson Orin NX 16GB ve JetPack 4.6.4 çalıştıran Jetson Nano 4GB gibi cihazlar dahildir. Ayrıntılı adımlar için YOLO26 için DeepStream Yapılandırması bölümüne bak.
Link to this sectionYOLO26 modelini DeepStream için nasıl ONNX'e dönüştürebilirim?#
To convert a YOLO26 model to ONNX format for deployment with DeepStream, use the utils/export_yolo26.py script from the DeepStream-Yolo repository.
İşte bir örnek komut:
python3 utils/export_yolo26.py -w yolo26s.pt --opset 12 --simplifyModel dönüştürme hakkında daha fazla ayrıntı için model dışa aktarma bölümümüze göz at.
Link to this sectionNVIDIA Jetson Orin NX üzerinde YOLO için performans kıyaslamaları nelerdir?#
YOLO26 modellerinin NVIDIA Jetson Orin NX 16GB üzerindeki performansı, TensorRT hassasiyet seviyelerine göre değişir. Örneğin, YOLO26s modelleri şunları başarır:
- FP32 Hassasiyeti: 14.6 ms/im, 68.5 FPS
- FP16 Hassasiyeti: 7.94 ms/im, 126 FPS
- INT8 Hassasiyeti: 5.95 ms/görüntü, 168 FPS
Bu kıyaslama sonuçları, NVIDIA Jetson donanımı üzerinde TensorRT ile optimize edilmiş YOLO26 modellerini kullanmanın verimliliğini ve yeteneğini vurgular. Daha fazla detay için Benchmark Results bölümümüze göz at.