Ultralytics YOLO11 DeepStream SDK kullanarak NVIDIA Jetson'da ve TensorRT
İzle: Ultralytics YOLO11 modelleri Jetson Orin NX üzerinde NVIDIA Deepstream ile nasıl kullanılır 🚀
Bu kapsamlı kılavuz, DeepStream SDK ve TensorRT kullanarak NVIDIA Jetson cihazlarında Ultralytics YOLO11 dağıtımı için ayrıntılı bir yol gösterir. Burada, Jetson platformunda çıkarım performansını en üst düzeye çıkarmak için TensorRT kullanıyoruz.
Not
Bu kılavuz, JP6.1'in en son kararlı JetPack sürümünü çalıştıran NVIDIA Jetson Orin Nano Super Developer Kit ile test edilmiştir, JP5.1.3 JetPack sürümünü çalıştıran NVIDIA Jetson Orin NX 16GB tabanlıSeeed Studio reComputer J4012 ve JP4.6.4 JetPack sürümünü çalıştıran NVIDIA Jetson Nano 4GB tabanlı Seeed Studio reComputer J1020 v2. En yeni ve eski dahil olmak üzere tüm NVIDIA Jetson donanım serisinde çalışması beklenmektedir.
NVIDIA DeepStream nedir?
NVIDIA'in 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ış analizi araç setidir. IVA (Akıllı Video Analitiği) uygulamaları ve hizmetleri geliştiren vizyon yapay zeka geliştiricileri, yazılım ortakları, yeni başlayanlar ve OEM'ler için idealdir. Artık sinir ağlarını ve izleme, video kodlama/kod çözme ve video işleme gibi diğer karmaşık işleme görevlerini içeren akış işleme ardışık düzenleri oluşturabilirsiniz. Bu işlem hatları video, görüntü ve sensör verileri üzerinde gerçek zamanlı analitik sağlar. DeepStream'in çoklu platform desteği, şirket içinde, uçta ve bulutta vizyon yapay zeka uygulamaları ve hizmetleri geliştirmenin daha hızlı ve kolay bir yolunu sunar.
Ön Koşullar
Bu kılavuzu takip etmeye başlamadan önce:
- Belgelerimizi ziyaret edin, Hızlı Başlangıç Kılavuzu: NVIDIA Jetson with Ultralytics YOLO11 ile NVIDIA Jetson cihazınızı kurmak için Ultralytics YOLO11
-
JetPack sürümüne göre DeepStream SDK 'yı yükleyin
- JetPack 4.6.4 için DeepStream 6.0.1'i yükleyin
- JetPack 5.1.3 için DeepStream 6.3'ü yükleyin
- JetPack 6.1 için DeepStream 7.1'i yükleyin
İpucu
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 DeepStream SDK on Jetson (Archived) sayfasını da ziyaret edebilirsiniz.
DeepStream Yapılandırması için YOLO11
Burada, YOLO modelleri için NVIDIA DeepStream SDK desteğini içeren marcoslucianops/DeepStream-Yolo GitHub deposunu kullanıyoruz. Katkıları için marcoslucianops'un çabalarını takdir ediyoruz!
-
Ultralytics adresini gerekli bağımlılıklarla birlikte yükleyin
cd ~ pip install -U pip git clone https://github.com/ultralytics/ultralytics cd ultralytics pip install -e ".[export]" onnxslim
-
DeepStream-Yolo deposunu klonlayın
cd ~ git clone https://github.com/marcoslucianops/DeepStream-Yolo
-
Kopyalama
export_yolo11.py
dosyasındanDeepStream-Yolo/utils
dizinineultralytics
klasörcp ~/DeepStream-Yolo/utils/export_yolo11.py ~/ultralytics cd ultralytics
-
YOLO11 sürümlerinden seçtiğiniz Ultralytics YOLO11 algılama modelini (.pt) indirin. Burada yolo11s.pt kullanıyoruz.
wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s.pt
Not
Özel eğitimli bir YOLO11 modeli de kullanabilirsiniz.
-
Modeli şuna dönüştür ONNX
python3 export_yolo11.py -w yolo11s.pt
Yukarıdaki komuta aşağıdaki argümanları iletin
DeepStream 5.1 için
--dynamic
arg ve kullanımopset
12 veya daha düşük. Varsayılanopset
17.--opset 12
Çıkarım boyutunu değiştirmek için (varsayılan: 640)
-s SIZE --size SIZE -s HEIGHT WIDTH --size HEIGHT WIDTH
1280 için örnek:
-s 1280 or -s 1280 1280
ONNX modelini basitleştirmek için (DeepStream >= 6.0)
--simplify
Dinamik yığın boyutu kullanmak için (DeepStream >= 6.1)
--dynamic
Statik parti boyutu kullanmak için (parti boyutu = 4 için örnek)
--batch 4
-
Oluşturulan kopyayı
.onnx
model dosyası velabels.txt
dosyasınaDeepStream-Yolo
klasörcp yolo11s.pt.onnx labels.txt ~/DeepStream-Yolo cd ~/DeepStream-Yolo
-
CUDA sürümünü kurulu JetPack sürümüne göre ayarlayın
JetPack 4.6.4 için:
export CUDA_VER=10.2
JetPack 5.1.3 için:
export CUDA_VER=11.4
Jetpack 6.1 için:
export CUDA_VER=12.6
-
Kütüphaneyi derleyin
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
-
Düzenleyin
config_infer_primary_yolo11.txt
modelinize göre dosya (80 sınıflı YOLO11'ler için)[property] ... onnx-file=yolo11s.pt.onnx ... num-detected-classes=80 ...
-
Düzenleyin
deepstream_app_config
dosya... [primary-gie] ... config-file=config_infer_primary_yolo11.txt
-
Video kaynağını şu adresten de değiştirebilirsiniz
deepstream_app_config
dosya. 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
Not
Çıkarsamaya başlamadan önce TensorRT motor dosyasının oluşturulması uzun zaman alacaktır. Bu yüzden lütfen sabırlı olun.

İpucu
Modeli FP16 hassasiyetine dönüştürmek istiyorsanız, sadece model-engine-file=model_b1_gpu0_fp16.engine
ve network-mode=2
içeride config_infer_primary_yolo11.txt
INT8 Kalibrasyonu
Çıkarım için INT8 hassasiyetini kullanmak istiyorsanız, aşağıdaki adımları izlemeniz gerekir
Not
Şu anda INT8, TensorRT 10.x ile çalışmamaktadır. Kılavuzun bu bölümü, çalışması beklenen TensorRT 8.x ile test edilmiştir.
-
Set
OPENCV
ortam değişkeniexport OPENCV=1
-
Kütüphaneyi derleyin
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
-
COCO veri kümesi için val2017'ye gidin, çıkarın ve
DeepStream-Yolo
klasör -
Kalibrasyon görüntüleri için yeni bir dizin oluşturun
mkdir calibration
-
Kalibrasyonu çalıştırmak üzere COCO veri setinden 1000 rastgele görüntü seçmek için aşağıdakileri çalıştırın
for jpg in $(ls -1 val2017/*.jpg | sort -R | head -1000); do cp ${jpg} calibration/ done
Not
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). Baş -1000 arasında ayarlayabilirsiniz. Örneğin, 2000 görüntü için head -2000. Bu işlem uzun sürebilir.
-
Oluşturmak
calibration.txt
tüm seçili görüntüleri içeren dosyarealpath calibration/*jpg > calibration.txt
-
Ortam değişkenlerini ayarlama
export INT8_CALIB_IMG_PATH=calibration.txt export INT8_CALIB_BATCH_SIZE=1
Not
Daha yüksek INT8_CALIB_BATCH_SIZE değerleri daha fazla doğruluk ve daha hızlı kalibrasyon hızı ile sonuçlanacaktır. Bunu GPU belleğinize göre ayarlayın.
-
Güncelleme
config_infer_primary_yolo11.txt
dosyaKimden
... model-engine-file=model_b1_gpu0_fp32.engine #int8-calib-file=calib.table ... network-mode=0 ...
için
... model-engine-file=model_b1_gpu0_int8.engine int8-calib-file=calib.table ... network-mode=1 ...
Çıkarım Çalıştır
deepstream-app -c deepstream_app_config.txt
MultiStream Kurulumu
İzle: Ultralytics YOLO11 kullanarak Jetson Nano'da DeepStream SDK ile Birden Fazla Akış Nasıl Çalıştırılır 🎉
Tek bir deepstream uygulaması altında birden fazla akış kurmak için aşağıdaki değişiklikleri yapabilirsiniz deepstream_app_config.txt
dosya
-
Sahip olmak istediğiniz akış sayısına göre bir ızgara ekranı oluşturmak için satırları ve sütunları değiştirin. Örneğin, 4 akış için 2 satır ve 2 sütun ekleyebiliriz.
[tiled-display] rows=2 columns=2
-
Set
num-sources=4
ve ekleuri
4 akışın tamamının[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
Çıkarım Çalıştır
deepstream-app -c deepstream_app_config.txt

Benchmark Sonuçları
Aşağıdaki kıyaslamalar YOLO11 modellerinin NVIDIA Jetson Orin NX 16GB üzerinde 640x640 girdi boyutuyla farklı TensorRT hassasiyet seviyelerinde nasıl performans gösterdiğini özetlemektedir.
Karşılaştırma Tablosu

Detaylı Karşılaştırma Tablosu
Performans
Biçim | Durum | Çıkarım süresi (ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 8.64 |
TensorRT (FP16) | ✅ | 5.27 |
TensorRT (INT8) | ✅ | 4.54 |
Biçim | Durum | Çıkarım süresi (ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 14.53 |
TensorRT (FP16) | ✅ | 7.91 |
TensorRT (INT8) | ✅ | 6.05 |
Biçim | Durum | Çıkarım süresi (ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 32.05 |
TensorRT (FP16) | ✅ | 15.55 |
TensorRT (INT8) | ✅ | 10.43 |
Biçim | Durum | Çıkarım süresi (ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 39.68 |
TensorRT (FP16) | ✅ | 19.88 |
TensorRT (INT8) | ✅ | 13.64 |
Biçim | Durum | Çıkarım süresi (ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 80.65 |
TensorRT (FP16) | ✅ | 39.06 |
TensorRT (INT8) | ✅ | 22.83 |
Teşekkür
Bu rehber ilk olarak Seeed Studio'daki arkadaşlarımız Lakshantha ve Elaine tarafından hazırlanmıştır.
SSS
Bir NVIDIA Jetson cihazında Ultralytics YOLO11 adresini nasıl kurabilirim?
Bir NVIDIA Jetson cihazında Ultralytics YOLO11 kurmak için öncelikle JetPack sürümünüzle uyumlu DeepStream SDK 'yı yüklemeniz gerekir. NVIDIA Jetson cihazınızı YOLO11 dağıtımı için yapılandırmak için Hızlı Başlangıç Kılavuzumuzdaki adım adım kılavuzu izleyin.
NVIDIA Jetson üzerinde YOLO11 ile TensorRT kullanmanın faydası nedir?
TensorRT 'u YOLO11 ile kullanmak, çıkarım için modeli optimize ederek gecikme süresini önemli ölçüde azaltır ve NVIDIA Jetson cihazlarında verimi artırır. TensorRT katman füzyonu, hassas kalibrasyon ve çekirdek otomatik ayarlama yoluyla yüksek performanslı, düşük gecikmeli derin öğrenme çıkarımı sağlar. Bu, özellikle video analizi ve otonom makineler gibi gerçek zamanlı uygulamalar için yararlı olan daha hızlı ve daha verimli yürütme sağlar.
Ultralytics YOLO11 adresini DeepStream SDK ile farklı NVIDIA Jetson donanımlarında çalıştırabilir miyim?
Evet, Ultralytics YOLO11 adresini DeepStream SDK ve TensorRT ile dağıtma kılavuzu NVIDIA Jetson serisinin tamamıyla uyumludur. Bu, JetPack 5.1.3 ile Jetson Orin NX 16GB ve JetPack 4.6.4 ile Jetson Nano 4GB gibi cihazları içerir. Ayrıntılı adımlar için YOLO11 için DeepStream Yapılandırması bölümüne bakın.
DeepStream için bir YOLO11 modelini ONNX adresine nasıl dönüştürebilirim?
Bir YOLO11 modelini DeepStream ile dağıtmak üzere ONNX biçimine dönüştürmek için utils/export_yolo11.py
komut dosyasından DeepStream-Yolo Depo.
İşte örnek bir komut:
python3 utils/export_yolo11.py -w yolo11s.pt --opset 12 --simplify
Model 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.
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 elde eder:
- FP32 Hassasiyeti: 14,6 ms/im, 68,5 FPS
- FP16 Hassasiyeti: 7,94 ms/im, 126 FPS
- INT8 Hassasiyeti: 5,95 ms/im, 168 FPS
Bu kıyaslamalar, NVIDIA Jetson donanımında TensorRT için optimize edilmiş YOLO11 modellerini kullanmanın verimliliğini ve kapasitesini vurgulamaktadır. Daha fazla ayrıntı için Kıyaslama Sonuçları bölümümüze bakın.