Ultralytics YOLO11 on NVIDIA Jetson using DeepStream SDK and TensorRT
İzle: How to Run Multiple Streams with DeepStream SDK on Jetson Nano using Ultralytics YOLO11
This comprehensive guide provides a detailed walkthrough for deploying Ultralytics YOLO11 on NVIDIA Jetson devices using DeepStream SDK and TensorRT. Here we use TensorRT to maximize the inference performance on the Jetson platform.
Not
Bu kılavuz, 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 ile test edilmiştir. En yeni ve eski dahil olmak üzere tüm NVIDIA Jetson donanım serisinde çalışması beklenmektedir.
NVIDIA DeepStream nedir?
NVIDIA's DeepStream SDK is a complete streaming analytics toolkit based on GStreamer for AI-based multi-sensor processing, video, audio, and image understanding. It's ideal for vision AI developers, software partners, startups, and OEMs building IVA (Intelligent Video Analytics) apps and services. You can now create stream-processing pipelines that incorporate neural networks and other complex processing tasks like tracking, video encoding/decoding, and video rendering. These pipelines enable real-time analytics on video, image, and sensor data. DeepStream's multi-platform support gives you a faster, easier way to develop vision AI applications and services on-premise, at the edge, and in the cloud.
Ön Koşullar
Bu kılavuzu izlemeye başlamadan önce:
- Visit our documentation, Quick Start Guide: NVIDIA Jetson with Ultralytics YOLO11 to set up your NVIDIA Jetson device with 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
İ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 Configuration for 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!
-
Yükleme bağımlılıkları
-
Aşağıdaki depoyu kopyalayın
-
Download Ultralytics YOLO11 detection model (.pt) of your choice from YOLO11 releases. Here we use yolov8s.pt.
Not
You can also use a custom trained YOLO11 model.
-
Modeli şuna dönüştür ONNX
Aşağıdaki bağımsız değişkenleri yukarıdaki komuta iletin
DeepStream 6.0.1 için opset 12 veya daha düşük bir sürümü kullanın. Varsayılan işlem kümesi 16'dır.
Çıkarım boyutunu değiştirmek için (varsayılan: 640)
1280 için örnek:
Basitleştirmek için ONNX modeli (DeepStream >= 6.0)
Dinamik toplu iş boyutu kullanmak için (DeepStream >= 6.1)
Statik toplu iş boyutu kullanmak için (toplu iş boyutu = 4 için örnek)
-
CUDA sürümünü kurulu JetPack sürümüne göre ayarlayın
JetPack 4.6.4 için:
JetPack 5.1.3 için:
-
Kitaplığı derleyin
-
Düzenleyin
config_infer_primary_yoloV8.txt
modelinize göre dosya ( YOLOv8s 80 sınıflı) -
Düzenleyin
deepstream_app_config
dosya -
Video kaynağını şuradan da değiştirebilirsiniz:
deepstream_app_config
dosya. Burada varsayılan bir video dosyası yüklenir
Çıkarımı Çalıştır
Not
Oluşturmak uzun zaman alacak TensorRT Çıkarıma başlamadan önce motor dosyası. Bu yüzden lütfen sabırlı olun.
İpucu
If you want to convert the model to FP16 precision, simply set model-engine-file=model_b1_gpu0_fp16.engine
ve network-mode=2
içinde config_infer_primary_yoloV8.txt
INT8 Kalibrasyonu
Çıkarım için INT8 hassasiyetini kullanmak istiyorsanız, aşağıdaki adımları izlemeniz gerekir
-
Ayarlamak
OPENCV
ortam değişkeni -
Kitaplığı derleyin
-
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
-
Kalibrasyonu çalıştırmak üzere COCO veri kümesinden 1000 rastgele görüntü seçmek için aşağıdakileri çalıştırın
Not
NVIDIA recommends at least 500 images to get a good accuracy. On this example, 1000 images are chosen to get better accuracy (more images = more accuracy). You can set it from head -1000. For example, for 2000 images, head -2000. This process can take a long time.
-
Oluştur
calibration.txt
Seçilen tüm görüntüleri içeren dosya -
Ortam değişkenlerini ayarlama
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üncelle
config_infer_primary_yoloV8.txt
dosyaKimden
için
Çıkarımı Çalıştır
MultiStream Kurulumu
Tek bir derin akış uygulaması altında birden fazla akış ayarlamak için, deepstream_app_config.txt
dosya
-
Sahip olmak istediğiniz akış sayısına göre bir ızgara görüntüsü 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.
-
Ayarlamak
num-sources=4
ve ekleuri
4 akışın tümünün
Çıkarımı Çalıştır
Benchmark Sonuçları
Aşağıdaki tabloda YOLOv8s modellerinin NVIDIA Jetson Orin NX 16GB üzerinde 640x640 giriş boyutuyla farklı TensorRT hassasiyet seviyelerinde nasıl performans gösterdiği özetlenmektedir.
Model Adı | Hassasiyet | Çıkarım Süresi (ms/im) | FPS |
---|---|---|---|
YOLOv8s | FP32 | 15.63 | 64 |
FP16 | 7.94 | 126 | |
INT8 | 5.53 | 181 |
Teşekkür
Bu rehber başlangıçta Seeed Studio, Lakshantha ve Elaine'deki arkadaşlarımız tarafından oluşturuldu.
SSS
How do I set up Ultralytics YOLO11 on an NVIDIA Jetson device?
To set up Ultralytics YOLO11 on an NVIDIA Jetson device, you first need to install the DeepStream SDK compatible with your JetPack version. Follow the step-by-step guide in our Quick Start Guide to configure your NVIDIA Jetson for YOLO11 deployment.
What is the benefit of using TensorRT with YOLO11 on NVIDIA Jetson?
Using TensorRT with YOLO11 optimizes the model for inference, significantly reducing latency and improving throughput on NVIDIA Jetson devices. TensorRT provides high-performance, low-latency deep learning inference through layer fusion, precision calibration, and kernel auto-tuning. This leads to faster and more efficient execution, particularly useful for real-time applications like video analytics and autonomous machines.
Can I run Ultralytics YOLO11 with DeepStream SDK across different NVIDIA Jetson hardware?
Yes, the guide for deploying Ultralytics YOLO11 with the DeepStream SDK and TensorRT is compatible across the entire NVIDIA Jetson lineup. This includes devices like the Jetson Orin NX 16GB with JetPack 5.1.3 and the Jetson Nano 4GB with JetPack 4.6.4. Refer to the section DeepStream Configuration for YOLO11 for detailed steps.
How can I convert a YOLO11 model to ONNX for DeepStream?
To convert a YOLO11 model to ONNX format for deployment with DeepStream, use the utils/export_yoloV8.py
komut dosyasından DeepStream-Yolo Depo.
İşte örnek bir komut:
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.
What are the performance benchmarks for YOLO on NVIDIA Jetson Orin NX?
The performance of YOLO11 models on NVIDIA Jetson Orin NX 16GB varies based on TensorRT precision levels. For example, YOLOv8s models achieve:
- FP32 Hassasiyeti: 15,63 ms/im, 64 FPS
- FP16 Hassasiyeti: 7,94 ms/im, 126 FPS
- INT8 Hassasiyeti: 5,53 ms/im, 181 FPS
These benchmarks underscore the efficiency and capability of using TensorRT-optimized YOLO11 models on NVIDIA Jetson hardware. For further details, see our Benchmark Results section.