Ultralytics YOLO27:

Краткое руководство: NVIDIA Jetson с Ultralytics YOLO26#

В этом подробном руководстве описан процесс развёртывания Ultralytics YOLO26 на устройствах NVIDIA Jetson. Кроме того, здесь приведены тесты производительности, демонстрирующие возможности YOLO26 на этих компактных и мощных устройствах.

Поддержка новых продуктов

Мы обновили это руководство, добавив новейший NVIDIA Jetson AGX Thor Developer Kit, который обеспечивает до 2070 FP4 TFLOPS вычислительной мощности ИИ и 128 ГБ памяти при настраиваемом энергопотреблении от 40 до 130 Вт. Его вычислительная мощность для ИИ более чем в 7,5 раза выше, чем у NVIDIA Jetson AGX Orin, а энергоэффективность — в 3,5 раза лучше, что позволяет без проблем запускать самые популярные модели ИИ.



Смотри: Как использовать Ultralytics YOLO26 на устройствах NVIDIA Jetson
NVIDIA Jetson Ecosystem
Примечание

Это руководство протестировано на NVIDIA Jetson AGX Thor Developer Kit (Jetson T5000) и NVIDIA Jetson AGX Orin Developer Kit (64GB) с последней стабильной версией JetPack 7.2, на NVIDIA Jetson Orin Nano Super Developer Kit с версией JetPack JP6.1, на Seeed Studio reComputer J4012 на базе NVIDIA Jetson Orin NX 16GB с версиями JetPack JP6.0 и JP5.1.3, а также на Seeed Studio reComputer J1020 v2 на базе NVIDIA Jetson Nano 4GB с версией JetPack JP4.6.1. Ожидается, что руководство будет работать на всей линейке оборудования NVIDIA Jetson, включая новейшие и устаревшие устройства.

Что такое NVIDIA Jetson?#

NVIDIA Jetson — это серия встраиваемых вычислительных плат, предназначенных для ускорения вычислений ИИ (искусственного интеллекта) на периферийных устройствах. Эти компактные и мощные устройства построены на архитектуре GPU NVIDIA и могут запускать сложные алгоритмы ИИ и модели глубокого обучения непосредственно на устройстве, не используя ресурсы облачных вычислений. Платы Jetson часто применяются в робототехнике, автономных транспортных средствах, промышленной автоматизации и других сферах, где инференс ИИ должен выполняться локально, с низкой задержкой и высокой эффективностью. Кроме того, эти платы построены на архитектуре ARM64 и потребляют меньше энергии по сравнению с традиционными вычислительными устройствами на GPU.

Сравнение серий NVIDIA Jetson#

NVIDIA Jetson AGX Thor — новейшая модель семейства NVIDIA Jetson на базе архитектуры NVIDIA Blackwell, обеспечивающая значительно более высокую производительность ИИ по сравнению с предыдущими поколениями. В таблице ниже сравниваются некоторые устройства экосистемы Jetson.

Jetson AGX Thor (T5000)Jetson AGX Orin 64GBJetson Orin NX 16GBJetson Orin Nano SuperJetson AGX XavierJetson Xavier NXJetson Nano
Производительность ИИ2070 TFLOPS275 TOPS100 TOPS67 TOPS32 TOPS21 TOPS472 GFLOPS
GPUGPU на архитектуре NVIDIA Blackwell с 2560 ядрами и 96 Tensor CoresGPU на архитектуре NVIDIA Ampere с 2048 ядрами и 64 Tensor CoresGPU на архитектуре NVIDIA Ampere с 1024 ядрами и 32 Tensor CoresGPU на архитектуре NVIDIA Ampere с 1024 ядрами и 32 Tensor CoresGPU на архитектуре NVIDIA Volta с 512 ядрами и 64 Tensor CoresGPU на архитектуре NVIDIA Volta™ с 384 ядрами и 48 Tensor CoresGPU на архитектуре NVIDIA Maxwell™ с 128 ядрами
Максимальная частота GPU1.57 GHz1.3 GHz918 MHz1020 MHz1377 MHz1100 MHz921MHz
CPU14-ядерный 64-разрядный CPU Arm® Neoverse®-V3AE, 1 МБ L2 + 16 МБ L312-ядерный 64-разрядный CPU NVIDIA Arm® Cortex A78AE v8.2, 3 МБ L2 + 6 МБ L38-ядерный 64-разрядный CPU NVIDIA Arm® Cortex A78AE v8.2, 2 МБ L2 + 4 МБ L36-ядерный 64-разрядный CPU Arm® Cortex®-A78AE v8.2, 1,5 МБ L2 + 4 МБ L38-ядерный 64-разрядный CPU NVIDIA Carmel Arm®v8.2, 8 МБ L2 + 4 МБ L36-ядерный 64-разрядный CPU NVIDIA Carmel Arm®v8.2, 6 МБ L2 + 4 МБ L34-ядерный процессор Arm® Cortex®-A57 MPCore
Максимальная частота CPU2.6 GHz2.2 GHz2.0 GHz1.7 GHz2.2 GHz1.9 GHz1.43GHz
Память128 ГБ 256-бит LPDDR5X 273 ГБ/с64 ГБ 256-бит LPDDR5 204,8 ГБ/с16 ГБ 128-бит LPDDR5 102,4 ГБ/с8 ГБ 128-бит LPDDR5 102 ГБ/с32 ГБ 256-бит LPDDR4x 136,5 ГБ/с8 ГБ 128-бит LPDDR4x 59,7 ГБ/с4 ГБ 64-бит LPDDR4 25,6 ГБ/с

Более подробную сравнительную таблицу смотри в разделе Сравнение характеристик на официальной странице NVIDIA Jetson.

Что такое NVIDIA JetPack?#

NVIDIA JetPack SDK, на котором работают модули Jetson, — это наиболее комплексное решение, предоставляющее полноценную среду разработки для создания ускоренных ИИ-приложений полного цикла и сокращающее время выхода на рынок. JetPack включает Jetson Linux с загрузчиком, ядром Linux, средой рабочего стола Ubuntu и полным набором библиотек для ускорения вычислений на GPU, мультимедиа, графики и компьютерного зрения. В него также входят примеры, документация и инструменты разработчика для хост-компьютера и набора разработчика, а также SDK более высокого уровня, например DeepStream для потоковой видеоаналитики, Isaac для робототехники и Riva для разговорного ИИ.

Установи JetPack на NVIDIA Jetson#

Первым делом после того, как ты получил устройство NVIDIA Jetson, установи на него NVIDIA JetPack. Есть несколько способов установить NVIDIA JetPack на устройства NVIDIA Jetson.

  1. Для JetPack 7.2 на официальном наборе разработчика Jetson AGX Thor, AGX Orin или Orin Nano скачай универсальный ISO-образ Jetson, запиши его на USB-накопитель и выполни инструкции быстрого запуска для AGX Thor, AGX Orin или Orin Nano. Начиная с JetPack 7.2, для Orin Nano больше нельзя скачать образ для SD-карты; ISO-образ на USB устанавливает Jetson Linux на microSD-карту или SSD NVMe устройства.
  2. Если ты намеренно используешь JetPack 6 на наборе разработчика Jetson Orin Nano, следуй инструкциям NVIDIA по обновлению JetPack 6.x и работе с SD-картой.
  3. Если у тебя есть другой набор разработчика NVIDIA, ты можешь установить JetPack на устройство с помощью SDK Manager.
  4. Если у тебя есть устройство Seeed Studio reComputer J4012, ты можешь установить JetPack на входящий в комплект SSD, а если у тебя есть устройство Seeed Studio reComputer J1020 v2 — установить JetPack на eMMC/ SSD.
  5. Если у тебя есть любое другое стороннее устройство на базе модуля NVIDIA Jetson, рекомендуем воспользоваться установкой через командную строку.
Примечание

Для способов 1, 4 и 5 после установки системы и загрузки устройства введи в его терминале "sudo apt update && sudo apt install nvidia-jetpack -y", чтобы установить остальные необходимые компоненты JetPack.

Поддержка JetPack в зависимости от устройства Jetson#

В таблице ниже указаны версии NVIDIA JetPack, поддерживаемые разными устройствами NVIDIA Jetson.

JetPack 4JetPack 5JetPack 6JetPack 7
Jetson Nano✅❌❌❌
Jetson TX2✅❌❌❌
Jetson Xavier NX✅✅❌❌
Jetson AGX Xavier✅✅❌❌
Jetson AGX Orin❌✅✅✅
Jetson Orin NX❌✅✅✅
Jetson Orin Nano❌✅✅✅
Jetson AGX Thor❌❌❌✅

Быстрый старт с Docker#

Самый быстрый способ начать работу с Ultralytics YOLO26 на NVIDIA Jetson — запустить готовые Docker-образы для Jetson. Посмотри таблицу выше и выбери версию JetPack в соответствии с имеющимся у тебя устройством Jetson.

t=ultralytics/ultralytics:latest-jetson-jetpack4
sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t
Поддержка Docker и TensorRT в JetPack 7

В образе latest-nvidia-arm64 используется NVIDIA PyTorch 26.08, включая CUDA 13.4 и TensorRT 11.2. В таблице совместимости NVIDIA указывает JetPack 7.1 для PyTorch, но TensorRT 11.2.1 не поддерживает JetPack, в том числе Thor. Используй этот образ только для задач PyTorch на поддерживаемом хосте. Для экспорта в TensorRT на Jetson воспользуйся приведённой ниже установкой, которая использует среду выполнения TensorRT 10.x, поддерживаемую твоей версией JetPack. Для JetPack 7.2 на Thor или Orin требуется отдельная проверка контейнера. Пересобирай движки для целевого GPU и версии TensorRT.

Для образов JetPack 4, 5 и 6 перейди к разделу Использование TensorRT на NVIDIA Jetson. Образ JetPack 7.1 выше предназначен только для задач PyTorch.

Начни с нативной установки#

Чтобы выполнить нативную установку без Docker, воспользуйся инструкциями ниже.

Работа с JetPack 7.2#

Установка пакета Ultralytics#

Здесь мы установим пакет Ultralytics на Jetson. Зависимости для экспорта устанавливаются автоматически при первом экспорте модели, поэтому сейчас достаточно установить только основной пакет. Мы сосредоточимся на экспорте в NVIDIA TensorRT, поскольку TensorRT позволяет добиться максимальной производительности устройств Jetson.

  1. Обнови список пакетов, установи pip и обнови его до последней версии

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Установи пакет ultralytics через pip

    pip install ultralytics
  3. Перезагрузи устройство

    sudo reboot

Установка PyTorch и Torchvision#

Указанная выше установка ultralytics установит Torch и Torchvision. Однако эти два пакета, установленные через pip, несовместимы с устройствами JetPack 7.2 и CUDA 13. Поэтому их нужно установить вручную.

Установи torch и torchvision для JP7.2

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130

Установи onnxruntime-gpu#

Используй GPU-сборку ONNX Runtime, совместимую с твоими версиями JetPack, Python и CUDA. В актуальных релизах PyPI есть сборки для ARM64, но они не заменяют специализированные пакеты для каждого выпуска JetPack.

Здесь мы скачаем и установим onnxruntime-gpu 1.24.0 с поддержкой Python3.12.

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.24.0-cp312-cp312-linux_aarch64.whl

Работа с JetPack 6.1#

Установка пакета Ultralytics#

Здесь мы установим пакет Ultralytics на Jetson. Зависимости для экспорта устанавливаются автоматически при первом экспорте модели, поэтому сейчас достаточно установить только основной пакет. Мы сосредоточимся на экспорте в NVIDIA TensorRT, поскольку TensorRT позволяет добиться максимальной производительности устройств Jetson.

  1. Обнови список пакетов, установи pip и обнови его до последней версии

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Установи пакет ultralytics через pip

    pip install ultralytics
  3. Перезагрузи устройство

    sudo reboot

Установка PyTorch и Torchvision#

Указанная выше установка ultralytics установит Torch и Torchvision. Однако эти два пакета, установленные через pip, несовместимы с платформой Jetson, основанной на архитектуре ARM64. Поэтому нужно вручную установить готовый pip-пакет PyTorch и собрать Torchvision из исходного кода либо установить его из исходников.

Установи torch 2.10.0 и torchvision 0.25.0 для JP6.1

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torch-2.10.0-cp310-cp310-linux_aarch64.whl
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torchvision-0.25.0-cp310-cp310-linux_aarch64.whl
Примечание

На странице PyTorch для Jetson доступны разные версии PyTorch для разных версий JetPack. Подробный список совместимости PyTorch и Torchvision смотри на странице совместимости PyTorch и Torchvision.

Установи cuDSS, чтобы устранить проблему зависимости с torch 2.10.0

wget https://developer.download.nvidia.com/compute/cudss/0.7.1/local_installers/cudss-local-tegra-repo-ubuntu2204-0.7.1_0.7.1-1_arm64.deb
sudo dpkg -i cudss-local-tegra-repo-ubuntu2204-0.7.1_0.7.1-1_arm64.deb
sudo cp /var/cudss-local-tegra-repo-ubuntu2204-0.7.1/cudss-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudss

Установи onnxruntime-gpu#

Используй GPU-сборку ONNX Runtime, совместимую с твоими версиями JetPack, Python и CUDA. В актуальных релизах PyPI есть сборки для ARM64, но они не заменяют специализированные пакеты для каждого выпуска JetPack.

Все доступные пакеты onnxruntime-gpu, сгруппированные по версии JetPack, версии Python и другим сведениям о совместимости, можно найти в матрице совместимости ONNX Runtime из Jetson Zoo.

Для JetPack 6 с поддержкой Python 3.10 можно установить onnxruntime-gpu 1.23.0:

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.23.0-cp310-cp310-linux_aarch64.whl

Как вариант, для onnxruntime-gpu 1.20.0:

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.20.0-cp310-cp310-linux_aarch64.whl

Работа с JetPack 5.1.2#

Установка пакета Ultralytics#

Здесь мы установим пакет Ultralytics на Jetson. Зависимости для экспорта устанавливаются автоматически при первом экспорте модели, поэтому сейчас достаточно установить только основной пакет. Мы сосредоточимся на экспорте в NVIDIA TensorRT, поскольку TensorRT позволяет добиться максимальной производительности устройств Jetson.

  1. Обнови список пакетов, установи pip и обнови его до последней версии

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Установи пакет ultralytics через pip

    pip install ultralytics
  3. Перезагрузи устройство

    sudo reboot

Установка PyTorch и Torchvision#

Указанная выше установка ultralytics установит Torch и Torchvision. Однако эти два пакета, установленные через pip, несовместимы с платформой Jetson, основанной на архитектуре ARM64. Поэтому нужно вручную установить готовый pip-пакет PyTorch и собрать Torchvision из исходного кода либо установить его из исходников.

  1. Удали установленные PyTorch и Torchvision

    pip uninstall torch torchvision
  2. Установи torch 2.1.0 и torchvision 0.16.2 для JP5.1.2

    pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
    pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torchvision-0.16.2+c6f3977-cp38-cp38-linux_aarch64.whl
Примечание

На странице PyTorch для Jetson доступны разные версии PyTorch для разных версий JetPack. Подробный список совместимости PyTorch и Torchvision смотри на странице совместимости PyTorch и Torchvision.

Установи onnxruntime-gpu#

Используй GPU-сборку ONNX Runtime, совместимую с твоими версиями JetPack, Python и CUDA. В актуальных релизах PyPI есть сборки для ARM64, но они не заменяют специализированные пакеты для каждого выпуска JetPack.

Все доступные пакеты onnxruntime-gpu, сгруппированные по версии JetPack, версии Python и другим сведениям о совместимости, можно найти в матрице совместимости ONNX Runtime из Jetson Zoo. Здесь мы скачаем и установим onnxruntime-gpu 1.17.0 с поддержкой Python3.8.

wget https://nvidia.box.com/shared/static/zostg6agm00fb6t5uisw51qi6kpcuwzd.whl -O onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
pip install onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
Примечание

onnxruntime-gpu автоматически обновит NumPy до последней версии. Поэтому, чтобы устранить проблему, нужно установить NumPy версии 1.23.5, выполнив команду:

pip install numpy==1.23.5

Использование TensorRT на NVIDIA Jetson#

Среди всех форматов экспорта моделей, поддерживаемых Ultralytics, TensorRT обеспечивает самую высокую скорость инференса на устройствах NVIDIA Jetson, поэтому мы рекомендуем его для развёртывания на Jetson. Перед экспортом установи привязки TensorRT для Python, поставляемые с твоей версией JetPack, и проверь их с помощью python3 -c "import tensorrt; print(tensorrt.__version__)". Используй поддерживаемую среду выполнения TensorRT 10.x в JetPack 6/7; не заменяй её на TensorRT 11.2.1. Инструкции по настройке и расширенному использованию смотри в нашем руководстве по интеграции TensorRT.

Также можно выполнить экспорт в браузере, не настраивая локальную среду сборки. На вкладке экспорта моделей платформы Ultralytics выбери TensorRT и нужную модель Jetson. Выбор Thor проверяется на физическом устройстве Thor. Для шести вариантов Orin сейчас создаются тестовые движки, собранные для AGX-Orin; перед развёртыванием проверь их на целевой модели Orin.

Движки TensorRT зависят от устройства

TensorRT настраивает профиль и оптимизирует движок на GPU, где он собирается. Используй архитектуру GPU и среду выполнения TensorRT/CUDA, соответствующие целевому устройству, и проверяй каждый загруженный движок на устройстве развёртывания. Одинаковая архитектура Orin не гарантирует автоматическую переносимость, а для наилучших результатов калибровку INT8 следует выполнять на целевом устройстве.

Преобразование модели в TensorRT и запуск инференса#

Модель YOLO26n в формате PyTorch преобразуется в TensorRT, чтобы запускать инференс с экспортированной моделью.

Пример
from ultralytics import YOLO

# Загрузи модель YOLO26n в формате PyTorch
model = YOLO("yolo26n.pt")

# Экспортируй модель в TensorRT
model.export(format="engine")  # создаёт 'yolo26n.engine'

# Загрузи экспортированную модель TensorRT
trt_model = YOLO("yolo26n.engine")

# Выполнить инференс
results = trt_model("https://ultralytics.com/images/bus.jpg")
Примечание

Посети страницу экспорта, чтобы узнать о дополнительных аргументах при экспорте моделей в другие форматы

Использование NVIDIA Deep Learning Accelerator (DLA)#

NVIDIA Deep Learning Accelerator (DLA) — это специализированный аппаратный компонент, встроенный в устройства NVIDIA Jetson и оптимизирующий инференс глубокого обучения для повышения энергоэффективности и производительности. Перенося задачи с GPU и освобождая его для более ресурсоёмких процессов, DLA позволяет запускать модели с меньшим энергопотреблением и сохранять высокую пропускную способность. Это особенно удобно для встраиваемых систем и приложений ИИ, работающих в реальном времени.

Совместимость TensorRT и DLA

По данным NVIDIA, TensorRT 10.7 — последняя версия с поддержкой DLA; TensorRT 11.0, 11.1 и 11.2 не поддерживают DLA. Используй версию TensorRT с поддержкой DLA, совместимую с твоей версией JetPack. TensorRT 11.2.1 не поддерживает JetPack, в том числе для экспорта только на GPU.

Следующие устройства Jetson оснащены аппаратным модулем DLA:

Устройство JetsonКоличество ядер DLAМаксимальная частота DLA
Серия Jetson AGX Orin21.6 GHz
Jetson Orin NX 16GB2614 MHz
Jetson Orin NX 8GB1614 MHz
Серия Jetson AGX Xavier21.4 GHz
Серия Jetson Xavier NX21.1 GHz
Пример
from ultralytics import YOLO

# Загрузи модель YOLO26n в формате PyTorch
model = YOLO("yolo26n.pt")

# Экспортируй модель в TensorRT с включённым DLA (работает только с FP16 или INT8)
model.export(format="engine", device="dla:0", quantize=16)  # dla:0 или dla:1 соответствует ядрам DLA

# Загрузи экспортированную модель TensorRT
trt_model = YOLO("yolo26n.engine")

# Выполнить инференс
results = trt_model("https://ultralytics.com/images/bus.jpg")
Примечание

При экспорте с DLA некоторые слои могут не поддерживаться и запускаться на GPU. Такое переключение может увеличить задержку и снизить общую производительность инференса. Поэтому DLA предназначен не столько для снижения задержки инференса по сравнению с TensorRT, работающим только на GPU, сколько для повышения пропускной способности и энергоэффективности.

Бенчмарки YOLO26 на NVIDIA Jetson#

Команда Ultralytics проверила YOLO26 в 11 форматах моделей, измерив скорость и точность: PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. Тесты выполнялись на наборах разработчика NVIDIA Jetson AGX Thor и NVIDIA Jetson AGX Orin (64GB), наборе разработчика NVIDIA Jetson Orin Nano Super, а также на устройстве Seeed Studio reComputer J4012 на базе Jetson Orin NX 16GB. Использовалась точность вычислений FP32 и стандартный размер входного изображения 640.

Сравнительные диаграммы#

Хотя все варианты экспорта моделей работают на NVIDIA Jetson, в сравнительную диаграмму ниже мы включили только PyTorch, TorchScript и TensorRT, поскольку они используют GPU Jetson и гарантированно обеспечивают наилучшие результаты. Все остальные варианты экспорта используют только CPU и показывают более низкую производительность, чем эти три. Бенчмарки для всех вариантов экспорта приведены в следующем разделе.

Комплект разработчика NVIDIA Jetson AGX Thor#

Jetson AGX Thor Benchmarks
Тестирование производительности выполнено с Ultralytics 8.3.226

Комплект разработчика NVIDIA Jetson AGX Orin (64 ГБ)#

Jetson AGX Orin Benchmarks
Тестирование производительности выполнено с Ultralytics 8.4.32

Комплект разработчика NVIDIA Jetson Orin Nano Super#

Jetson Orin Nano Super Benchmarks
Тестирование производительности выполнено с Ultralytics 8.4.33

NVIDIA Jetson Orin NX 16 ГБ#

Jetson Orin NX 16GB Benchmarks
Тестирование производительности выполнено с Ultralytics 8.4.33

Подробные сравнительные таблицы#

В таблице ниже представлены результаты бенчмарков пяти моделей (YOLO26n, YOLO26s, YOLO26m, YOLO26l, YOLO26x) в 11 форматах (PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch). Для каждой комбинации указаны статус, размер, метрика mAP50-95(B) и время инференса.

Комплект разработчика NVIDIA Jetson AGX Thor#

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время инференса (мс/изобр.)
PyTorch✅5.30.47987.39
TorchScript✅9.80.47894.21
ONNX✅9.50.47676.58
OpenVINO✅10.10.479417.50
TensorRT (FP32)✅13.90.47911.90
TensorRT (FP16)✅7.60.47971.39
TensorRT (INT8)✅6.50.42731.52
TF SavedModel✅25.70.476447.24
TF GraphDef✅9.50.476445.98
TF Lite✅9.90.4764182.04
MNN✅9.40.478421.83

Бенчмарк выполнен с Ultralytics 8.4.7

Примечание

Время инференса не включает пред- и постобработку.

Комплект разработчика NVIDIA Jetson AGX Orin (64 ГБ)#

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время инференса (мс/изобр.)
PyTorch✅5.30.479011.58
TorchScript✅9.80.47704.60
ONNX✅9.50.47709.87
OpenVINO✅9.60.482028.80
TensorRT (FP32)✅11.50.47704.18
TensorRT (FP16)✅7.90.47892.62
TensorRT (INT8)✅5.40.46402.30
TF SavedModel✅24.60.476071.10
TF GraphDef✅9.50.476070.02
TF Lite✅9.90.4760227.94
MNN✅9.40.476032.46
NCNN✅9.30.481029.93

Бенчмарк выполнен с Ultralytics 8.4.32

Примечание

Время инференса не включает пред- и постобработку.

Комплект разработчика NVIDIA Jetson Orin Nano Super#

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время инференса (мс/изобр.)
PyTorch✅5.30.479015.60
TorchScript✅9.80.477012.60
ONNX✅9.50.476015.76
OpenVINO✅9.60.482056.23
TensorRT (FP32)✅11.30.47707.53
TensorRT (FP16)✅8.10.48004.57
TensorRT (INT8)✅5.30.44903.80
TF SavedModel✅24.60.4760118.33
TF GraphDef✅9.50.4760116.30
TF Lite✅9.90.4760286.00
MNN✅9.40.476068.77
NCNN✅9.30.481047.50

Бенчмарк выполнен с Ultralytics 8.4.33

Примечание

Время инференса не включает пред- и постобработку.

NVIDIA Jetson Orin NX 16 ГБ#

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время инференса (мс/изобр.)
PyTorch✅5.30.479913.90
TorchScript✅9.80.478711.60
ONNX✅9.50.476314.18
OpenVINO✅9.60.481940.19
TensorRT (FP32)✅11.40.47707.01
TensorRT (FP16)✅8.00.47894.13
TensorRT (INT8)✅5.50.44893.49
TF SavedModel✅24.60.476492.34
TF GraphDef✅9.50.476492.06
TF Lite✅9.90.4764254.43
MNN✅9.40.476048.55
NCNN✅9.30.480534.31

Бенчмарк выполнен с Ultralytics 8.4.33

Примечание

Время инференса не включает пред- и постобработку.

Узнай больше о бенчмарках, проведённых Seeed Studio на разных версиях оборудования NVIDIA Jetson.

Воспроизведение наших результатов#

Чтобы воспроизвести приведённые выше бенчмарки Ultralytics во всех форматах экспорта, выполни этот код:

Пример
from ultralytics import YOLO

# Загрузи модель YOLO26n в формате PyTorch
model = YOLO("yolo26n.pt")

# Сравнение скорости и точности YOLO26n на наборе данных COCO128 для всех форматов экспорта
results = model.benchmark(data="coco128.yaml", imgsz=640)

Учти, что результаты бенчмарков могут различаться в зависимости от конкретной конфигурации оборудования и программного обеспечения системы, а также от текущей нагрузки на систему во время запуска бенчмарков. Для получения наиболее надёжных результатов используй набор данных с большим количеством изображений, например data='coco.yaml' (5000 валидационных изображений).

Рекомендации по использованию NVIDIA Jetson#

При использовании NVIDIA Jetson стоит придерживаться нескольких рекомендаций, чтобы обеспечить максимальную производительность YOLO26 на NVIDIA Jetson.

  1. Включи режим максимальной мощности

    Включение режима максимальной мощности на Jetson гарантирует, что все ядра CPU и GPU будут активны.

    sudo nvpmodel -m 0
  2. Включи Jetson Clocks

    Включение Jetson Clocks гарантирует, что все ядра CPU и GPU будут работать на максимальной частоте.

    sudo jetson_clocks
  3. Установи приложение Jetson Stats

    С помощью приложения jetson stats можно отслеживать температуру компонентов системы и проверять другие сведения о системе, например загрузку CPU, GPU и RAM, менять режимы питания, устанавливать максимальные частоты и проверять информацию о JetPack.

    sudo apt update
    sudo pip install jetson-stats
    sudo reboot
    jtop
Jetson Stats

Советы по оптимизации памяти NVIDIA Jetson#

Доступная память часто становится ограничивающим фактором на устройствах Jetson, особенно на моделях с небольшим объёмом памяти, таких как Jetson Orin Nano (8 ГБ) или Orin NX 8 ГБ. Приведённые ниже практические изменения несут небольшой риск, но в совокупности могут освободить несколько сотен мегабайт и позволить запускать более крупные модели YOLO или поддерживать дополнительные параллельные задачи. Подробное руководство см. в блоге NVIDIA об эффективном использовании памяти на Jetson.

1. Переключись на загрузку без графического интерфейса#

Если Jetson подключён по SSH или работает как производственное устройство без подключённого дисплея, отключение среды рабочего стола и дисплейного сервера может освободить до 865 МБ RAM:

sudo systemctl set-default multi-user.target
sudo reboot

Чтобы позже восстановить рабочий стол:

sudo systemctl set-default graphical.target
sudo reboot

2. Отключи неиспользуемые системные службы#

Несущественные фоновые службы (Bluetooth, менеджеры подключений, неиспользуемые аппаратные демоны) в сумме занимают около 32 МБ. Посмотри список активных служб и отключи всё, что не требуется для твоего развёртывания:

# List running services
systemctl list-units --type=service --state=running

# Disable a service
sudo systemctl disable SERVICE_NAME

3. Проанализируй использование памяти#

Прежде чем оптимизировать, выясни, какие процессы действительно потребляют RAM. procrank сортирует процессы по PSS (пропорциональному размеру набора), который точнее отражает фактический объём памяти каждого процесса, чем RSS (размер резидентного набора — общий объём физических страниц RAM, отображённых процессом, включая страницы, используемые совместно с другими процессами):

git clone https://github.com/csimmonds/procrank_linux.git
cd procrank_linux && make
sudo ./procrank

Чтобы посмотреть выделение памяти GPU и NvMap (конвейер CUDA/видео) для каждого процесса:

sudo cat /sys/kernel/debug/nvmap/iovmm/clients

4. Запускай инференс без дисплея в производственной среде#

Если для конвейера инференса не нужен просмотр в реальном времени, отключение компонентов, связанных с дисплеем (Tiler, OSD, DisplaySink), может освободить 200+ МБ только за счёт конвейера. При работе с Ultralytics YOLO отключи просмотр и сохраняй результаты на диск:

Пример
from ultralytics import YOLO

model = YOLO("yolo26n.engine")

# show=False отключает все окна отображения; save=True сохраняет результаты с аннотациями на диск
results = model.predict(source="video.mp4", show=False, save=True)

Суммарный эффект#

ОптимизацияПримерный объём освобождённой памяти
Отключение графического интерфейса рабочего стола~865 MB
Отключение неиспользуемых служб ОС~32 MB
Конвейер инференса без графического интерфейса (без дисплея)~200+ MB
Итого (простые улучшения)~1 ГБ+

Совместное применение этих изменений особенно полезно при запуске моделей TensorRT INT8 на устройствах с ограниченной памятью: это может решить, поместится ли в памяти более крупная версия модели.

Следующие шаги#

Дополнительные материалы и помощь см. в документации Ultralytics YOLO26.

Часто задаваемые вопросы#

  • Развернуть Ultralytics YOLO26 на устройствах NVIDIA Jetson несложно. Сначала установи на устройство Jetson NVIDIA JetPack SDK. Затем для быстрой настройки используй готовый образ Docker или установи необходимые пакеты вручную. Подробные инструкции для каждого способа приведены в разделах Быстрый старт с Docker и Начало работы с нативной установкой.

  • Модели YOLO26 тестировались на различных устройствах NVIDIA Jetson и показали значительный прирост производительности. Например, формат TensorRT обеспечивает наилучшую производительность инференса. В таблице раздела Подробные сравнительные таблицы представлены метрики производительности, включая mAP50-95 и время инференса, для разных форматов моделей.

  • TensorRT настоятельно рекомендуется для развёртывания моделей YOLO26 на NVIDIA Jetson благодаря высокой производительности. Он ускоряет инференс, используя возможности GPU Jetson, и обеспечивает максимальную эффективность и скорость. Подробнее о преобразовании в TensorRT и запуске инференса см. в разделе Использование TensorRT на NVIDIA Jetson.

  • Чтобы установить PyTorch и Torchvision на NVIDIA Jetson, сначала удали все существующие версии, которые могли быть установлены через pip. Затем вручную установи совместимые версии PyTorch и Torchvision для архитектуры ARM64 Jetson. Подробные инструкции приведены в разделе Установка PyTorch и Torchvision.

  • Чтобы максимизировать производительность NVIDIA Jetson с YOLO26, следуй этим рекомендациям:

    1. Включи режим максимальной мощности, чтобы задействовать все ядра CPU и GPU.
    2. Включи Jetson Clocks, чтобы все ядра работали на максимальной частоте.
    3. Установи приложение Jetson Stats для мониторинга системных показателей.

    Команды и дополнительные сведения см. в разделе Рекомендации по использованию NVIDIA Jetson.

  • Доступная RAM часто становится узким местом на устройствах Jetson с небольшим объёмом памяти. Три простых способа, которые вместе могут освободить более 1 ГБ:

    1. Переключись на загрузку без графического интерфейса (sudo systemctl set-default multi-user.target), чтобы отключить графический интерфейс рабочего стола (экономия ~865 МБ).
    2. Отключи неиспользуемые службы, например Bluetooth или менеджеры подключений (экономия ~32 МБ).
    3. Запускай инференс без дисплея, указав show=False в вызове YOLO predict, чтобы не выделять память для дисплейного конвейера (экономия ~200+ МБ).

    Используй procrank для анализа потребления RAM отдельными процессами, а sudo cat /sys/kernel/debug/nvmap/iovmm/clients — для проверки выделения памяти GPU. Подробности см. в разделе Советы по оптимизации памяти.

  • В TensorRT 10.3.0, поставляемом с JetPack 6, есть известная ошибка, из-за которой не удаётся создавать INT8-движки без NMS (nms=False). Когда Ultralytics обнаруживает эту комбинацию, для успешного экспорта автоматически выбирается голова one-to-many.

    Чтобы снова экспортировать модели INT8 без NMS, обнови TensorRT до более новой версии (например, 10.7.0+):

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/arm64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    sudo apt-get install -y tensorrt

    После обновления запусти экспорт ещё раз. Подробнее см. в issue #23841 на GitHub.

Комментарии