DeepStream 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ı kılavuz, DeepStream SDK ve TensorRT kullanarak NVIDIA Jetson cihazlarına Ultralytics YOLO26 dağıtımı için ayrıntılı bir rehber sunar. Burada, Jetson platformunda çıkarım performansını en üst düzeye çıkarmak için TensorRT kullanıyoruz.
Bu kılavuz YOLO26 için DeepStream yapılandırması, INT8 kalibrasyonu, çoklu akış kurulumu ve kıyaslama sonuçları konularını ele alır.

Bu kılavuz, en son kararlı JP6.1 JetPack sürümünü çalıştıran NVIDIA Jetson Orin Nano Super Developer Kit, NVIDIA Jetson Orin NX 16GB tabanlı ve JetPack JP5.1.3 sürümünü çalıştıran Seeed Studio reComputer J4012 ile NVIDIA Jetson Nano 4GB tabanlı ve JetPack JP4.6.4 sürümünü çalıştıran Seeed Studio reComputer J1020 v2 üzerinde test edilmiştir. En yeni ve eski sürümler dahil tüm NVIDIA Jetson donanım serisinde çalışması beklenmektedir.
NVIDIA DeepStream nedir?#
NVIDIA'nın DeepStream SDK'sı, yapay zeka tabanlı çoklu sensör işleme, video, ses ve görüntü anlama için GStreamer tabanlı eksiksiz bir akış analiz 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 oluşturma gibi diğer karmaşık işleme görevlerini içeren akış işleme boru hatları oluşturabilirsiniz. Bu boru hatları, video, görüntü ve sensör verileri üzerinde gerçek zamanlı analitiği mümkün kılar. DeepStream'in çoklu platform desteği, şirket içinde, uçta ve bulutta vizyon yapay zeka uygulamaları ve hizmetleri geliştirmeniz için daha hızlı ve daha kolay bir yol sunar.
Ön koşullar#
Bu rehberi takip etmeye başlamadan önce:
- NVIDIA Jetson cihazınızı Ultralytics YOLO26 ile kurmak için belgelerimizi ziyaret edin: Hızlı Başlangıç Kılavuzu: Ultralytics YOLO26 ile NVIDIA Jetson
- JetPack sürümüne göre DeepStream SDK yükleyin
- JetPack 4.6.4 için DeepStream 6.0.1 yükleyin
- JetPack 5.1.3 için DeepStream 6.3 yükleyin
- JetPack 6.1 için DeepStream 7.1 yükleyin
- JetPack 7.1 için DeepStream 9.0 yükleyin
Bu kılavuzda, DeepStream SDK'yı Jetson cihazına yüklemek için Debian paket yöntemini kullandık. DeepStream'in eski sürümlerine erişmek için Jetson üzerinde DeepStream SDK (Arşivlenmiş) sayfasını da ziyaret edebilirsiniz.
YOLO26 için DeepStream Yapılandırması#
Burada, YOLO modelleri için NVIDIA DeepStream SDK desteği içeren marcoslucianops/DeepStream-Yolo GitHub depolarını kullanıyoruz. Katkılarından ötürü 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 kopyalayıncp ~/DeepStream-Yolo/utils/export_yolo26.py ~/ultralytics cd ultralytics -
YOLO26 projesinden tercih ettiğiniz bir Ultralytics YOLO26 algılama modelini (.pt) indirin. Burada yolo26s.pt kullanıyoruz.
wget https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26s.pt
Ayrıca özel eğitilmiş bir YOLO26 modeli de kullanabilirsiniz.
-
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ın ve opset 12 veya daha düşük bir sürümünü kullanın. 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 kopyalayıncp yolo26s.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ı modelinize göre düzenleyin (80 sınıflı YOLO26s için)[property] ... onnx-file=yolo26s.onnx ... num-detected-classes=80 ... parse-bbox-func-name=NvDsInferParseYolo ...
YOLO26, girdiyi merkez dolgusu ile yeniden boyutlandırır ve NMS olmadan çalışır. En iyi accuracy için, config_infer_primary_yolo26.txt öğesinin [property] bölümüne aşağıdakini ekle:
[property]
...
maintain-aspect-ratio=1
symmetric-padding=1
cluster-mode=4
...-
deepstream_app_configdosyasını düzenleyin... [primary-gie] ... config-file=config_infer_primary_yolo26.txt -
Ayrıca
deepstream_app_configdosyasındaki video kaynağını değiştirebilirsiniz. Burada varsayılan bir video dosyası yüklenir... [source0] ... uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4
Çı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.

Modeli FP16 hassasiyetine dönüştürmek istiyorsan, config_infer_primary_yolo26.txt içindeki model-engine-file=model_b1_gpu0_fp16.engine ve network-mode=2 değerlerini ayarla
INT8 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 ayarlayınexport OPENCV=1 -
Kütüphaneyi derle.
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
COCO veri seti için val2017 öğesini indirin, çıkarın ve
DeepStream-Yoloklasörüne taşıyın -
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ü önermektedir. 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 ayarlayabilirsiniz. Örneğin, 2000 görüntü için head -2000. Bu işlem uzun sürebilir.
-
Seçilen tüm görüntülerle
calibration.txtdosyasını oluşturunrealpath 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üncelleyinŞ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 ...
INT8 Çıkarımını Çalıştır#
INT8 motorunu oluşturmak ve çıkarımı başlatmak için aynı komutu çalıştır:
deepstream-app -c deepstream_app_config.txtÇ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ış ayarlamak için deepstream_app_config.txt dosyasında şu değişiklikleri yapın:
-
İ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 -
Her akış için ayrı bir
[sourceN]grubu ekleyin; her birinin kendiurivenum-sources=1değeri olsun.[source0] enable=1 type=3 uri=file:///path/to/video1.mp4 num-sources=1 [source1] enable=1 type=3 uri=file:///path/to/video2.mp4 num-sources=1 [source2] enable=1 type=3 uri=file:///path/to/video3.mp4 num-sources=1 [source3] enable=1 type=3 uri=file:///path/to/video4.mp4 num-sources=1
Çoklu Akış Çıkarımını Çalıştır#
Tüm akışları döşemeli ekranda (tiled display) başlatmak için aynı komutu çalıştır:
deepstream-app -c deepstream_app_config.txt
Kıyaslama (Benchmark) Sonuçları#
Aşağıdaki kıyaslamalar, NVIDIA Jetson Orin NX 16GB üzerinde 640x640 giriş boyutuyla YOLO11 modellerinin farklı TensorRT hassasiyet seviyelerinde nasıl performans gösterdiğini özetlemektedir. YOLO26, yukarıda açıklanan aynı DeepStream dışa aktarma ve çıkarım iş akışını kullanır.
Karşılaştırma Tablosu#

Ayrı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 |
Teşekkürler#
Bu rehber başlangıçta Seeed Studio'dan arkadaşlarımız Lakshantha ve Elaine tarafından oluşturulmuştur.
SSS#
Bir NVIDIA Jetson cihazında Ultralytics YOLO26'yı nasıl kurarım?#
Bir NVIDIA Jetson cihazında Ultralytics YOLO26 kurmak için öncelikle JetPack sürümünüzle uyumlu DeepStream SDK yüklemeniz gerekir. NVIDIA Jetson'ınızı YOLO26 dağıtımı için yapılandırmak üzere Hızlı Başlangıç Kılavuzu bölümümüzdeki adım adım kılavuzu izleyin.
NVIDIA Jetson üzerinde YOLO26 ile TensorRT kullanmanın faydası nedir?#
YOLO26 ile TensorRT kullanmak, modeli çıkarım için optimize ederek NVIDIA Jetson cihazlarında gecikmeyi önemli ölçüde azaltır ve iş hacmini artırır. TensorRT; katman birleştirme, hassasiyet kalibrasyonu ve çekirdek otomatik ayarı yoluyla yüksek performanslı, 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 yürütmeye yol açar.
Ultralytics 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 kılavuzu, tüm NVIDIA Jetson serisiyle uyumludur. Buna JetPack 5.1.3 içeren Jetson Orin NX 16GB ve JetPack 4.6.4 içeren 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ın.
YOLO26 modelini DeepStream için nasıl ONNX'e dönüştürebilirim?#
Bir YOLO26 modelini DeepStream ile dağıtım için ONNX formatına dönüştürmek üzere DeepStream-Yolo deposundaki utils/export_yolo26.py betiğini kullan.
İş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ın.
DeepStream üzerinde YOLO26 ile INT8 çıkarımını nasıl çalıştırırım?#
INT8 çıkarımı çalıştırmak için modeli temsil eden bir görüntü setinde kalibre edin ve DeepStream yapılandırmasını INT8 moduna geçirin. COCO val2017 görüntülerinden indirin, yaklaşık 1000 kalibrasyon görüntüsü seçin, INT8_CALIB_IMG_PATH ve INT8_CALIB_BATCH_SIZE ortam değişkenlerini ayarlayın, ardından config_infer_primary_yolo26.txt öğesini model-engine-file=model_b1_gpu0_int8.engine, int8-calib-file=calib.table ve network-mode=1 ile güncelleyin. Tüm adımlar için INT8 Kalibrasyonu bölümüne bakın. INT8 şu anda TensorRT 8.x gerektirmektedir.
Jetson üzerinde DeepStream ile birden fazla kamera akışını nasıl çalıştırırım?#
Tek bir DeepStream uygulamasında birden fazla akışı işlemek için, döşemeli ekran (tiled-display) ızgarası eklemek ve her kaynak URI'sini listelemek üzere deepstream_app_config.txt dosyasını düzenle. Izgarayı oluşturmak için [tiled-display] altında rows ve columns değerlerini ayarla, kendi uri ve num-sources=1 özelliklerine sahip her akış için ayrı bir [sourceN] grubu ekle ve ızgarayı akış sayısına uyacak şekilde ayarla. Eksiksiz bir örnek için MultiStream Setup bölümüne göz at.
NVIDIA Jetson Orin NX üzerinde YOLO için performans kıyaslamaları nelerdir?#
YOLO11 modellerinin NVIDIA Jetson Orin NX 16GB üzerindeki performansı, TensorRT hassasiyet seviyelerine göre değişir. Örneğin, YOLO11s modelleri şunları elde eder:
- FP32 Hassasiyeti: 14.53 ms/im, 68.8 FPS
- FP16 Hassasiyeti: 7.91 ms/im, 126 FPS
- INT8 Hassasiyeti: 6.05 ms/im, 165 FPS
Bu kıyaslamalar, NVIDIA Jetson donanımında TensorRT ile optimize edilmiş YOLO11 modellerini kullanmanın verimliliğini ve yeteneğini vurgulamaktadır. Daha fazla ayrıntı için Kıyaslama Sonuçları bölümümüze bakın.