Ultralytics YOLO26 на NVIDIA Jetson с использованием DeepStream SDK и TensorRT
Watch: How to use Ultralytics YOLO26 models with NVIDIA Deepstream on Jetson Orin NX 🚀
Это подробное руководство содержит пошаговое описание развертывания Ultralytics YOLO26 на устройствах NVIDIA Jetson с помощью DeepStream SDK и TensorRT. Мы используем TensorRT, чтобы максимально повысить производительность инференса на платформе Jetson.

Это руководство было протестировано на NVIDIA Jetson Orin Nano Super Developer Kit с последней стабильной версией JetPack JP6.1, Seeed Studio reComputer J4012 на базе NVIDIA Jetson Orin NX 16GB с версией JetPack JP5.1.3 и Seeed Studio reComputer J1020 v2 на базе NVIDIA Jetson Nano 4GB с версией JetPack JP4.6.4. Ожидается, что оно будет работать на всей линейке оборудования NVIDIA Jetson, включая как новые, так и устаревшие модели.
Что такое NVIDIA DeepStream?
NVIDIA DeepStream SDK — это комплексный инструментарий потоковой аналитики на базе GStreamer для обработки данных с нескольких датчиков, видео, аудио и изображений с помощью ИИ. Он идеально подходит для разработчиков ИИ в сфере компьютерного зрения, программных партнеров, стартапов и OEM-производителей, создающих приложения и сервисы IVA (Intelligent Video Analytics). Теперь ты можешь создавать конвейеры потоковой обработки, включающие нейронные сети и другие сложные задачи, такие как трекинг, кодирование/декодирование видео и рендеринг. Эти конвейеры обеспечивают аналитику в реальном времени для видео, изображений и данных с датчиков. Мультиплатформенная поддержка DeepStream дает тебе более быстрый и простой способ разработки приложений и сервисов компьютерного зрения локально, на периферийных устройствах и в облаке.
Предварительные требования
Прежде чем приступить к выполнению этого руководства:
- Посети нашу документацию Руководство по быстрому старту: NVIDIA Jetson с Ultralytics YOLO26, чтобы настроить свое устройство NVIDIA Jetson для работы с Ultralytics YOLO26
- Установи DeepStream SDK в соответствии с версией JetPack
- Для JetPack 4.6.4 установи DeepStream 6.0.1
- Для JetPack 5.1.3 установи DeepStream 6.3
- Для JetPack 6.1 установи DeepStream 7.1
- Для JetPack 7.1 установи DeepStream 9.0
В этом руководстве мы использовали метод установки DeepStream SDK на устройство Jetson с помощью Debian-пакета. Ты также можешь посетить страницу DeepStream SDK on Jetson (Archived) для доступа к старым версиям DeepStream.
Настройка DeepStream для YOLO26
Здесь мы используем репозиторий marcoslucianops/DeepStream-Yolo на GitHub, который включает поддержку NVIDIA DeepStream SDK для моделей YOLO. Мы ценим усилия marcoslucianops за его вклад!
-
Установи Ultralytics с необходимыми зависимостями
cd ~ pip install -U pip git clone https://github.com/ultralytics/ultralytics cd ultralytics pip install -e ".[export]" onnxslim -
Клонируй репозиторий DeepStream-Yolo
cd ~ git clone https://github.com/marcoslucianops/DeepStream-Yolo -
Скопируй файл
export_yolo26.pyиз директорииDeepStream-Yolo/utilsв папкуultralyticscp ~/DeepStream-Yolo/utils/export_yolo26.py ~/ultralytics cd ultralytics -
Скачай модель детектирования Ultralytics YOLO26 (.pt) на свой выбор из релизов YOLO26. Здесь мы используем yolo26s.pt.
wget https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26s.pt
Ты также можешь использовать собственную обученную модель YOLO26.
-
Конвертация модели в ONNX
python3 export_yolo26.py -w yolo26s.pt
Для DeepStream 5.1 удали аргумент --dynamic и используй opset 12 или ниже. Значение opset по умолчанию — 17.
--opset 12Чтобы изменить размер инференса (по умолчанию: 640)
-s SIZE
--size SIZE
-s HEIGHT WIDTH
--size HEIGHT WIDTHПример для 1280:
-s 1280
or
-s 1280 1280Для упрощения модели ONNX (DeepStream >= 6.0)
--simplifyДля использования динамического размера батча (DeepStream >= 6.1)
--dynamicДля использования статического размера батча (пример для размера батча = 4)
--batch 4-
Скопируй сгенерированный файл модели
.onnxи файлlabels.txtв папкуDeepStream-Yolocp yolo26s.pt.onnx labels.txt ~/DeepStream-Yolo cd ~/DeepStream-Yolo -
Установи версию CUDA в соответствии с установленной версией JetPack
Для JetPack 4.6.4:
export CUDA_VER=10.2Для JetPack 5.1.3:
export CUDA_VER=11.4Для JetPack 6.1:
export CUDA_VER=12.6 -
Скомпилируй библиотеку
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
Отредактируй файл
config_infer_primary_yolo26.txtв соответствии с твоей моделью (для YOLO26s с 80 классами)[property] ... onnx-file=yolo26s.pt.onnx ... num-detected-classes=80 ... -
Отредактируй файл
deepstream_app_config... [primary-gie] ... config-file=config_infer_primary_yolo26.txt -
Ты также можешь изменить источник видео в файле
deepstream_app_config. Здесь загружается видеофайл по умолчанию... [source0] ... uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4
Запуск инференса
deepstream-app -c deepstream_app_config.txtПеред началом инференса потребуется некоторое время для генерации файла движка TensorRT. Пожалуйста, наберись терпения.

Если ты хочешь конвертировать модель в точность FP16, просто задай model-engine-file=model_b1_gpu0_fp16.engine и network-mode=2 внутри config_infer_primary_yolo26.txt
Калибровка INT8
Если ты хочешь использовать точность INT8 для инференса, тебе нужно выполнить следующие шаги:
В настоящее время INT8 не работает с TensorRT 10.x. Этот раздел руководства был протестирован с TensorRT 8.x, с которым, как ожидается, он будет работать.
-
Установи переменную окружения
OPENCVexport OPENCV=1 -
Скомпилируй библиотеку
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
Для датасета COCO скачай val2017, распакуй и перемести в папку
DeepStream-Yolo -
Создай новую директорию для изображений калибровки
mkdir calibration -
Запусти следующую команду для выбора 1000 случайных изображений из датасета COCO для проведения калибровки
for jpg in $(ls -1 val2017/*.jpg | sort -R | head -1000); do cp ${jpg} calibration/ done
NVIDIA рекомендует использовать не менее 500 изображений для достижения хорошей точности. В этом примере выбрано 1000 изображений для повышения точности (больше изображений = выше точность). Ты можешь задать это значение с помощью head -1000. Например, для 2000 изображений используй head -2000. Этот процесс может занять много времени.
-
Создай файл
calibration.txtсо списком всех выбранных изображенийrealpath calibration/*jpg > calibration.txt -
Установи переменные окружения
export INT8_CALIB_IMG_PATH=calibration.txt export INT8_CALIB_BATCH_SIZE=1
Более высокие значения INT8_CALIB_BATCH_SIZE приведут к более высокой точности и скорости калибровки. Установи значение в соответствии с объемом видеопамяти твоего GPU.
-
Обнови файл
config_infer_primary_yolo26.txtОт
... model-engine-file=model_b1_gpu0_fp32.engine #int8-calib-file=calib.table ... network-mode=0 ...К
... model-engine-file=model_b1_gpu0_int8.engine int8-calib-file=calib.table ... network-mode=1 ...
Запуск инференса
deepstream-app -c deepstream_app_config.txtНастройка нескольких потоков
Watch: How to Run Multi-Stream Inference with Ultralytics YOLO26 using NVIDIA DeepStream on Jetson Orin 🚀
Чтобы настроить несколько потоков в рамках одного приложения DeepStream, внеси следующие изменения в файл deepstream_app_config.txt:
-
Измени количество строк и столбцов, чтобы создать сетку отображения в соответствии с количеством потоков, которые ты хочешь использовать. Например, для 4 потоков можно добавить 2 строки и 2 столбца.
[tiled-display] rows=2 columns=2 -
Установи
num-sources=4и добавь записиuriдля всех четырех потоков.[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
Запуск инференса
deepstream-app -c deepstream_app_config.txt
Результаты бенчмаркинга
Следующие бенчмарки суммируют производительность моделей YOLO26 при различных уровнях точности TensorRT с входным размером 640x640 на NVIDIA Jetson Orin NX 16GB.
Сравнительная диаграмма

Подробная сравнительная таблица
| Формат | Статус | Время инференса (мс/из) |
|---|---|---|
| TensorRT (FP32) | ✅ | 8.64 |
| TensorRT (FP16) | ✅ | 5.27 |
| TensorRT (INT8) | ✅ | 4.54 |
Благодарности
Это руководство было изначально создано нашими друзьями из Seeed Studio, Лакшантой и Элейн.
Часто задаваемые вопросы (FAQ)
Как настроить Ultralytics YOLO26 на устройстве NVIDIA Jetson?
Чтобы настроить Ultralytics YOLO26 на устройстве NVIDIA Jetson, тебе сначала нужно установить DeepStream SDK, совместимый с твоей версией JetPack. Следуй пошаговому руководству в нашем Руководстве по быстрому старту, чтобы сконфигурировать NVIDIA Jetson для развертывания YOLO26.
В чем преимущество использования TensorRT с YOLO26 на NVIDIA Jetson?
Использование TensorRT с YOLO26 оптимизирует модель для инференса, значительно сокращая задержку и повышая пропускную способность на устройствах NVIDIA Jetson. TensorRT обеспечивает высокопроизводительный инференс глубинного обучения с низкой задержкой за счет объединения слоев, калибровки точности и автонастройки ядер. Это приводит к более быстрому и эффективному выполнению, что особенно полезно для приложений реального времени, таких как видеоаналитика и автономные машины.
Могу ли я запускать Ultralytics YOLO26 с DeepStream SDK на разных устройствах NVIDIA Jetson?
Да, руководство по развертыванию Ultralytics YOLO26 с помощью DeepStream SDK и TensorRT совместимо со всей линейкой NVIDIA Jetson. Это включает устройства, такие как Jetson Orin NX 16GB с JetPack 5.1.3 и Jetson Nano 4GB с JetPack 4.6.4. Обратись к разделу Настройка DeepStream для YOLO26 для получения подробных инструкций.
Как я могу сконвертировать модель YOLO26 в ONNX для DeepStream?
Чтобы сконвертировать модель YOLO26 в формат ONNX для развертывания в DeepStream, используй скрипт utils/export_yolo26.py из репозитория DeepStream-Yolo.
Вот пример команды:
python3 utils/export_yolo26.py -w yolo26s.pt --opset 12 --simplifyДля получения дополнительной информации о конвертации моделей ознакомься с нашим разделом по экспорту моделей.
Каковы показатели производительности для YOLO на NVIDIA Jetson Orin NX?
Производительность моделей YOLO26 на NVIDIA Jetson Orin NX 16GB варьируется в зависимости от уровней точности TensorRT. Например, модели YOLO26s достигают:
- Точность FP32: 14.6 мс/из, 68.5 FPS
- Точность FP16: 7.94 мс/из, 126 FPS
- Точность INT8: 5.95 мс/из, 168 FPS
Эти бенчмарки подчеркивают эффективность и возможности использования оптимизированных с помощью TensorRT моделей YOLO26 на оборудовании NVIDIA Jetson. Для получения дополнительной информации см. наш раздел Результаты бенчмаркинга.