Ultralytics YOLO11 on NVIDIA Jetson using DeepStream SDK and TensorRT
Xem: 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.
Ghi
Hướng dẫn này đã được thử nghiệm với cả Seeed Studio reComputer J4012 dựa trên NVIDIA Jetson Orin NX 16GB chạy bản phát hành JetPack của JP5.1.3 và Seeed Studio reComputer J1020 v2 dựa trên NVIDIA Jetson Nano 4GB chạy JetPack phát hành JP4.6.4. Nó dự kiến sẽ hoạt động trên tất cả các NVIDIA Dòng sản phẩm phần cứng Jetson bao gồm mới nhất và kế thừa.
Là gì NVIDIA DeepStream?
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.
Điều kiện tiên quyết
Trước khi bạn bắt đầu làm theo hướng dẫn này:
- Visit our documentation, Quick Start Guide: NVIDIA Jetson with Ultralytics YOLO11 to set up your NVIDIA Jetson device with Ultralytics YOLO11
-
Cài đặt DeepStream SDK theo phiên bản JetPack
- Đối với JetPack 4.6.4, cài đặt DeepStream 6.0.1
- Đối với JetPack 5.1.3, cài đặt DeepStream 6.3
Mẹo
Trong hướng dẫn này, chúng tôi đã sử dụng phương pháp gói Debian để cài đặt SDK DeepStream vào thiết bị Jetson. Bạn cũng có thể truy cập SDK DeepStream trên Jetson (Đã lưu trữ) để truy cập các phiên bản cũ của DeepStream.
DeepStream Configuration for YOLO11
Ở đây chúng tôi đang sử dụng marcosluciaops / DeepStream-Yolo Kho lưu trữ GitHub bao gồm NVIDIA Hỗ trợ SDK DeepStream cho YOLO Mô hình. Chúng tôi đánh giá cao những nỗ lực của Marcoslucianops vì những đóng góp của anh ấy!
-
Cài đặt dependencies
-
Sao chép kho lưu trữ sau
-
Download Ultralytics YOLO11 detection model (.pt) of your choice from YOLO11 releases. Here we use yolov8s.pt.
Ghi
You can also use a custom trained YOLO11 model.
-
Chuyển đổi mô hình thành ONNX
Chuyển các đối số dưới đây đến lệnh trên
Đối với DeepStream 6.0.1, sử dụng opset 12 hoặc thấp hơn. Đối lập mặc định là 16.
Để thay đổi kích cỡ suy luận (mặc định: 640)
Ví dụ cho 1280:
Để đơn giản hóa ONNX mô hình (DeepStream > = 6.0)
Để sử dụng kích thước lô động (DeepStream >= 6.1)
Để sử dụng kích thước lô tĩnh (ví dụ cho batch-size = 4)
-
Đặt CUDA phiên bản theo phiên bản JetPack được cài đặt
Đối với JetPack 4.6.4:
Đối với JetPack 5.1.3:
-
Biên dịch thư viện
-
Chỉnh sửa
config_infer_primary_yoloV8.txt
tệp theo mô hình của bạn (đối với YOLOv8s với 80 lớp) -
Chỉnh sửa
deepstream_app_config
tệp -
Bạn cũng có thể thay đổi nguồn video trong
deepstream_app_config
tệp. Ở đây một tệp video mặc định được tải
Chạy suy luận
Ghi
Sẽ mất nhiều thời gian để tạo ra TensorRT công cụ trước khi bắt đầu suy luận. Vì vậy, hãy kiên nhẫn.
Mẹo
If you want to convert the model to FP16 precision, simply set model-engine-file=model_b1_gpu0_fp16.engine
và network-mode=2
trong config_infer_primary_yoloV8.txt
Hiệu chuẩn INT8
Nếu bạn muốn sử dụng độ chính xác INT8 để suy luận, bạn cần làm theo các bước dưới đây
-
Cài
OPENCV
biến môi trường -
Biên dịch thư viện
-
Đối với tập dữ liệu COCO, hãy tải xuống Val2017, trích xuất và di chuyển đến
DeepStream-Yolo
thư mục -
Tạo một thư mục mới cho hình ảnh hiệu chuẩn
-
Chạy như sau để chọn 1000 hình ảnh ngẫu nhiên từ tập dữ liệu COCO để chạy hiệu chuẩn
Ghi
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.
-
Tạo
calibration.txt
với tất cả các hình ảnh đã chọn -
Đặt biến môi trường
Ghi
Giá trị INT8_CALIB_BATCH_SIZE cao hơn sẽ dẫn đến độ chính xác cao hơn và tốc độ hiệu chuẩn nhanh hơn. Đặt nó theo bạn GPU trí nhớ.
-
Cập nhật
config_infer_primary_yoloV8.txt
tệpTừ
Đến
Chạy suy luận
Thiết lập MultiStream
Để thiết lập nhiều luồng trong một ứng dụng deepstream, bạn có thể thực hiện các thay đổi sau đối với deepstream_app_config.txt
tệp
-
Thay đổi các hàng và cột để xây dựng hiển thị lưới theo số lượng luồng bạn muốn có. Ví dụ: đối với 4 luồng, chúng ta có thể thêm 2 hàng và 2 cột.
-
Cài
num-sources=4
và thêmuri
của tất cả 4 luồng
Chạy suy luận
Kết quả điểm chuẩn
Bảng sau đây tóm tắt cách thức YOLOv8s Các mô hình hoạt động ở các mức khác nhau TensorRT Mức độ chính xác với kích thước đầu vào 640x640 bật NVIDIA Máy bay phản lực Orin NX 16GB.
Tên Model | Chính xác | Thời gian suy luận (ms/im) | FPS |
---|---|---|---|
YOLOv8s | FP32 | 15.63 | 64 |
FP16 | 7.94 | 126 | |
INT8 | 5.53 | 181 |
Lời cảm ơn
Hướng dẫn này ban đầu được tạo ra bởi những người bạn của chúng tôi tại Seeed Studio, Lakshantha và Elaine.
FAQ
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
kịch bản từ DeepStream-Yolo Kho.
Đây là một lệnh ví dụ:
Để biết thêm chi tiết về chuyển đổi mô hình, hãy xem phần xuất mô hình của chúng tôi.
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:
- Độ chính xác FP32: 15,63 ms/im, 64 FPS
- Độ chính xác FP16: 7,94 ms / im, 126 khung hình / giây
- Độ chính xác INT8: 5,53 ms / im, 181 khung hình / giây
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.