Ultralytics YOLO11 DeepStream SDK kullanarak NVIDIA Jetson'da ve TensorRT
İzle: Jetson Nano üzerinde DeepStream SDK ile Birden Fazla Akış Nasıl Çalıştırılır Ultralytics YOLO11
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
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.
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
- For JetPack 6.1, install DeepStream 7.1
İ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!
-
Install Ultralytics with necessary dependencies
-
Clone the DeepStream-Yolo repository
-
Copy the
export_yoloV8.py
file fromDeepStream-Yolo/utils
directory to theultralytics
klasörNot
export_yoloV8.py
works for both YOLOv8 and YOLO11 models. -
Download Ultralytics YOLO11 detection model (.pt) of your choice from YOLO11 releases. Here we use yolo11s.pt.
Not
Özel eğitimli bir YOLO11 modeli de kullanabilirsiniz.
-
Modeli şuna dönüştür ONNX
Yukarıdaki komuta aşağıdaki argümanları iletin
DeepStream 6.0.1 için opset 12 veya daha düşük bir değer kullanın. Varsayılan opset 16'dır.
Çıkarım boyutunu değiştirmek için (varsayılan: 640)
1280 için örnek:
ONNX modelini basitleştirmek için (DeepStream >= 6.0)
Dinamik yığın boyutu kullanmak için (DeepStream >= 6.1)
Statik parti boyutu kullanmak için (parti boyutu = 4 için örnek)
-
Copy the generated
.onnx
model file andlabels.txt
file to theDeepStream-Yolo
klasör -
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:
For Jetpack 6.1:
-
Kütüphaneyi derleyin
-
Düzenleyin
config_infer_primary_yoloV8.txt
file according to your model (for YOLO11s with 80 classes) -
Düzenleyin
deepstream_app_config
dosya -
Video kaynağını şu adresten de değiştirebilirsiniz
deepstream_app_config
dosya. Burada varsayılan bir video dosyası yüklenir
Çıkarım Çalıştır
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
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çeride config_infer_primary_yoloV8.txt
INT8 Kalibrasyonu
Çıkarım için INT8 hassasiyetini kullanmak istiyorsanız, aşağıdaki adımları izlemeniz gerekir
Not
Currently INT8 does not work with TensorRT 10.x. This section of the guide has been tested with TensorRT 8.x which is expected to work.
-
Set
OPENCV
ortam değişkeni -
Kütüphaneyi 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 setinden 1000 rastgele görüntü seçmek için aşağıdakileri çalıştırın
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 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üncelleme
config_infer_primary_yoloV8.txt
dosyaKimden
için
Çıkarım Çalıştır
MultiStream Kurulumu
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.
-
Set
num-sources=4
ve ekleuri
4 akışın tamamının
Çıkarım Çalıştır
Benchmark Sonuçları
The following benchmarks summarizes how YOLO11 models perform at different TensorRT precision levels with an input size of 640x640 on NVIDIA Jetson Orin NX 16GB.
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_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.
NVIDIA Jetson Orin NX üzerinde YOLO için performans kıyaslamaları nelerdir?
The performance of YOLO11 models on NVIDIA Jetson Orin NX 16GB varies based on TensorRT precision levels. For example, YOLO11s models achieve:
- FP32 Precision: 14.6 ms/im, 68.5 FPS
- FP16 Hassasiyeti: 7,94 ms/im, 126 FPS
- INT8 Precision: 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.