Ultralytics YOLO11 TRÊN NVIDIA Jetson sử dụng DeepStream SDK và TensorRT
Đồng hồ: Cách chạy nhiều luồng với DeepStream SDK trên Jetson Nano bằng cách sử dụng Ultralytics YOLO11
Hướng dẫn toàn diện này cung cấp hướng dẫn chi tiết để triển khai Ultralytics YOLO11 trên các thiết bị NVIDIA Jetson sử dụng DeepStream SDK và TensorRT . Ở đây chúng tôi sử dụng TensorRT để tối đa hóa hiệu suất suy luận trên nền tảng Jetson.
Ghi chú
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.
Là gì NVIDIA Dòng sâu?
DeepStream SDK của NVIDIA là bộ công cụ phân tích luồng hoàn chỉnh dựa trên GStreamer để xử lý đa cảm biến dựa trên AI, hiểu video, âm thanh và hình ảnh. Bộ công cụ này lý tưởng cho các nhà phát triển AI về thị giác, đối tác phần mềm, công ty khởi nghiệp và OEM xây dựng các ứng dụng và dịch vụ IVA (Phân tích video thông minh). Giờ đây, bạn có thể tạo các đường ống xử lý luồng kết hợp mạng nơ-ron và các tác vụ xử lý phức tạp khác như theo dõi, mã hóa/giải mã video và kết xuất video. Các đường ống này cho phép phân tích dữ liệu video, hình ảnh và cảm biến theo thời gian thực. Hỗ trợ đa nền tảng của DeepStream mang đến cho bạn cách nhanh hơn, dễ dàng hơn để phát triển các ứng dụng và dịch vụ AI về thị giác tại chỗ, tại biên và trên đám mây.
Điều kiện tiên quyết
Trước khi bắt đầu làm theo hướng dẫn này:
- Truy cập tài liệu của chúng tôi, Hướng dẫn bắt đầu nhanh: NVIDIA Jetson với Ultralytics YOLO11 để thiết lập NVIDIA Thiết bị Jetson với Ultralytics YOLO11
-
Cài đặt DeepStream SDK theo phiên bản JetPack
- Đối với JetPack 4.6.4, hãy cài đặt DeepStream 6.0.1
- Đối với JetPack 5.1.3, hãy cài đặt DeepStream 6.3
- For JetPack 6.1, install DeepStream 7.1
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 DeepStream SDK vào thiết bị Jetson. Bạn cũng có thể truy cập DeepStream SDK trên Jetson (Đã lưu trữ) để truy cập các phiên bản cũ của DeepStream.
Cấu hình DeepStream cho YOLO11
Ở đây chúng tôi sử dụng marcoslucianops/DeepStream- Kho lưu trữ GitHub Yolo bao gồm NVIDIA Hỗ trợ DeepStream SDK 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 ông!
-
Install Ultralytics with necessary dependencies
-
Clone the DeepStream-Yolo repository
-
Copy the
export_yoloV8.py
file fromDeepStream-Yolo/utils
directory to theultralytics
thư mụcGhi chú
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.
Ghi chú
Bạn cũng có thể sử dụng mô hình YOLO11 được đào tạo tùy chỉnh .
-
Chuyển đổi mô hình thành ONNX
Truyền các đối số bên dưới vào lệnh trên
Đối với DeepStream 6.0.1, hãy sử dụng opset 12 hoặc thấp hơn. Opset mặc định là 16.
Để thay đổi kích thướ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 batch-size tĩnh (ví dụ cho batch-size = 4)
-
Copy the generated
.onnx
model file andlabels.txt
file to theDeepStream-Yolo
thư mục -
Đặt CUDA phiên bản theo phiên bản JetPack đã cài đặt
Đối với JetPack 4.6.4:
Đối với JetPack 5.1.3:
For Jetpack 6.1:
-
Biên soạn thư viện
-
Chỉnh sửa
config_infer_primary_yoloV8.txt
file according to your model (for YOLO11s with 80 classes) -
Chỉnh sửa
deepstream_app_config
tài liệu -
Bạn cũng có thể thay đổi nguồn video trong
deepstream_app_config
tập tin. Ở đây một tập tin video mặc định được tải
Chạy suy luận
Ghi chú
Sẽ mất một thời gian dài để tạo ra TensorRT tệp engine 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
bên 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
Ghi chú
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.
-
Bộ
OPENCV
biến môi trường -
Biên soạn 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 lệ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 chú
NVIDIA khuyến nghị ít nhất 500 hình ảnh để có độ chính xác tốt. Trong ví dụ này, 1000 hình ảnh được chọn để có độ chính xác tốt hơn (nhiều hình ảnh hơn = độ chính xác hơn). Bạn có thể đặt từ head -1000 . Ví dụ, đối với 2000 hình ảnh, head -2000 . Quá trình này có thể mất nhiều thời gian.
-
Tạo ra
calibration.txt
tập tin có tất cả các hình ảnh đã chọn -
Thiết lập biến môi trường
Ghi chú
Giá trị INT8_CALIB_BATCH_SIZE cao hơn sẽ mang lại độ chính xác cao hơn và tốc độ hiệu chuẩn nhanh hơn. Thiết lập theo ý bạn GPU ký ức.
-
Cập nhật
config_infer_primary_yoloV8.txt
tài liệuTừ
ĐẾ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 duy nhất, bạn có thể thực hiện các thay đổi sau đối với deepstream_app_config.txt
tài liệu
-
Thay đổi các hàng và cột để xây dựng một lưới hiển thị theo số 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.
-
Bộ
num-sources=4
và thêmuri
của tất cả 4 luồng
Chạy suy luận
Kết quả chuẩn mực
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.
Biểu đồ so sánh
Bảng so sánh chi tiết
Hiệu suất
Định dạng | Trạng thái | Thời gian suy luận (ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 8.64 |
TensorRT (FP16) | ✅ | 5.27 |
TensorRT (INT8) | ✅ | 4.54 |
Định dạng | Trạng thái | Thời gian suy luận (ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 14.53 |
TensorRT (FP16) | ✅ | 7.91 |
TensorRT (INT8) | ✅ | 6.05 |
Định dạng | Trạng thái | Thời gian suy luận (ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 32.05 |
TensorRT (FP16) | ✅ | 15.55 |
TensorRT (INT8) | ✅ | 10.43 |
Định dạng | Trạng thái | Thời gian suy luận (ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 39.68 |
TensorRT (FP16) | ✅ | 19.88 |
TensorRT (INT8) | ✅ | 13.64 |
Định dạng | Trạng thái | Thời gian suy luận (ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 80.65 |
TensorRT (FP16) | ✅ | 39.06 |
TensorRT (INT8) | ✅ | 22.83 |
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 là Lakshantha và Elaine.
CÂU HỎI THƯỜNG GẶP
Làm thế nào để tôi thiết lập Ultralytics YOLO11 trên một NVIDIA Thiết bị Jetson?
Để thiết lập Ultralytics YOLO11 trên thiết bị NVIDIA Jetson , trước tiên bạn cần cài đặt DeepStream SDK tương thích với phiên bản JetPack của bạn. Làm theo hướng dẫn từng bước trong Hướng dẫn bắt đầu nhanh của chúng tôi để cấu hình NVIDIA Jetson cho YOLO11 triển khai.
Lợi ích của việc sử dụng là gì? TensorRT với YOLO11 TRÊN NVIDIA Jetson à?
Sử dụng TensorRT với YOLO11 tối ưu hóa mô hình để suy luận, giảm đáng kể độ trễ và cải thiện thông lượng trên NVIDIA Thiết bị Jetson. TensorRT cung cấp suy luận học sâu hiệu suất cao, độ trễ thấp thông qua hợp nhất lớp, hiệu chuẩn độ chính xác và tự động điều chỉnh hạt nhân. Điều này dẫn đến thực thi nhanh hơn và hiệu quả hơn, đặc biệt hữu ích cho các ứng dụng thời gian thực như phân tích video và máy tự động.
Tôi có thể chạy không? Ultralytics YOLO11 với DeepStream SDK trên nhiều NVIDIA Phần cứng Jetson?
Vâng, hướng dẫn triển khai Ultralytics YOLO11 với DeepStream SDK và TensorRT tương thích trên toàn bộ NVIDIA Dòng sản phẩm Jetson. Bao gồm các thiết bị như Jetson Orin NX 16GB với JetPack 5.1.3 và Jetson Nano 4GB với JetPack 4.6.4 . Tham khảo phần Cấu hình DeepStream cho YOLO11 để biết các bước chi tiết.
Làm thế nào tôi có thể chuyển đổi một YOLO11 mô hình để ONNX dành cho DeepStream?
Để chuyển đổi một YOLO11 mô hình để ONNX định dạng để triển khai với DeepStream, sử dụng utils/export_yoloV8.py
kịch bản từ DeepStream- Yolo kho lưu trữ.
Sau đâ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.
Tiêu chuẩn hiệu suất cho là gì? YOLO TRÊN NVIDIA Jetson Orin NX là gì?
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
- Độ chính xác FP16 : 7,94 ms/im, 126 FPS
- INT8 Precision: 5.95 ms/im, 168 FPS
Những chuẩn mực này nhấn mạnh hiệu quả và khả năng sử dụng TensorRT -được tối ưu hóa YOLO11 mô hình trên NVIDIA Phần cứng Jetson. Để biết thêm chi tiết, hãy xem phần Kết quả chuẩn của chúng tôi.