Ultralytics YOLO27:

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

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

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

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



Watch: How to use Ultralytics YOLO26 on NVIDIA Jetson Devices
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 — это серия встраиваемых вычислительных плат, предназначенных для ускоренных вычислений AI (искусственного интеллекта) на периферийных устройствах. Эти компактные и мощные устройства построены на основе GPU-архитектуры NVIDIA и могут запускать сложные алгоритмы AI и модели глубокого обучения непосредственно на устройстве, не полагаясь на ресурсы облачных вычислений. Платы Jetson часто используются в робототехнике, автономных транспортных средствах, промышленной автоматизации и других приложениях, где вывод моделей AI должен выполняться локально с низкой задержкой и высокой эффективностью. Кроме того, эти платы основаны на архитектуре ARM64 и потребляют меньше энергии по сравнению с традиционными устройствами на базе GPU.

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

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

Jetson AGX Thor(T5000)Jetson AGX Orin 64GBJetson Orin NX 16GBJetson Orin Nano SuperJetson AGX XavierJetson Xavier NXJetson Nano
Производительность AI2070 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, 1MB L2 + 16MB L312-ядерный 64-разрядный CPU NVIDIA Arm® Cortex A78AE v8.2, 3MB L2 + 6MB L38-ядерный 64-разрядный CPU NVIDIA Arm® Cortex A78AE v8.2, 2MB L2 + 4MB L36-ядерный 64-разрядный CPU Arm® Cortex®-A78AE v8.2, 1.5MB L2 + 4MB L38-ядерный 64-разрядный CPU NVIDIA Carmel Arm®v8.2, 8MB L2 + 4MB L36-ядерный 64-разрядный CPU NVIDIA Carmel Arm®v8.2, 6MB L2 + 4MB L3Четырехъядерный процессор Arm® Cortex®-A57 MPCore
Максимальная частота CPU2.6 GHz2.2 GHz2.0 GHz1.7 GHz2.2 GHz1.9 GHz1.43GHz
Память128GB, 256-битная LPDDR5X, 273GB/s64GB, 256-битная LPDDR5, 204.8GB/s16GB, 128-битная LPDDR5, 102.4GB/s8GB, 128-битная LPDDR5, 102 GB/s32GB, 256-битная LPDDR4x, 136.5GB/s8GB, 128-битная LPDDR4x, 59.7GB/s4GB, 64-битная LPDDR4, 25.6GB/s

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

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

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

Установка 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-карту или NVMe SSD устройства.
  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
Поддержка JetPack 7 Docker и TensorRT

Образ 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. Установи pip-пакет ultralytics

    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#

Используй wheel-пакет ONNX Runtime GPU, соответствующий твоим версиям 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. Установи pip-пакет ultralytics

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

    sudo reboot

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

Указанная выше установка ultralytics установит Torch и Torchvision. Однако эти два пакета, установленные через pip, несовместимы с платформой Jetson на базе архитектуры ARM64. Поэтому необходимо вручную установить предварительно собранный pip wheel для 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#

Используй wheel-пакет ONNX Runtime GPU, соответствующий твоим версиям 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. Установи pip-пакет ultralytics

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

    sudo reboot

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

Указанная выше установка ultralytics установит Torch и Torchvision. Однако эти два пакета, установленные через pip, несовместимы с платформой Jetson на базе архитектуры ARM64. Поэтому необходимо вручную установить предварительно собранный pip wheel для 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#

Используй wheel-пакет ONNX Runtime GPU, соответствующий твоим версиям 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. Перед экспортом установи привязки Python для TensorRT, поставляемые для твоего выпуска JetPack, и проверь их с помощью python3 -c "import tensorrt; print(tensorrt.__version__)". Сохраняй поддерживаемую среду выполнения TensorRT 10.x на JetPack 6/7; не заменяй ее на TensorRT 11.2.1. Инструкции по настройке и расширенное использование см. в нашем специальном руководстве по интеграции TensorRT.

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

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

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

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

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

Пример
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Export the model to TensorRT
model.export(format="engine")  # creates 'yolo26n.engine'

# Load the exported TensorRT model
trt_model = YOLO("yolo26n.engine")

# Run inference
results = trt_model("https://ultralytics.com/images/bus.jpg")
Примечание

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

Использование NVIDIA-ускорителя глубокого обучения (DLA)#

NVIDIA-ускоритель глубокого обучения (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

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Export the model to TensorRT with DLA enabled (only works with FP16 or INT8)
model.export(format="engine", device="dla:0", quantize=16)  # dla:0 or dla:1 corresponds to the DLA cores

# Load the exported TensorRT model
trt_model = YOLO("yolo26n.engine")

# Run inference
results = trt_model("https://ultralytics.com/images/bus.jpg")
Примечание

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

Тестирования производительности YOLO26 на NVIDIA Jetson#

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

Сравнительные графики#

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

NVIDIA Jetson AGX Thor Developer Kit#

Jetson AGX Thor Benchmarks
Benchmarked with Ultralytics 8.3.226

NVIDIA Jetson AGX Orin Developer Kit (64GB)#

Jetson AGX Orin Benchmarks
Benchmarked with Ultralytics 8.4.32

NVIDIA Jetson Orin Nano Super Developer Kit#

Jetson Orin Nano Super Benchmarks
Benchmarked with Ultralytics 8.4.33

NVIDIA Jetson Orin NX 16GB#

Jetson Orin NX 16GB Benchmarks
Benchmarked with 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 Developer Kit#

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время инференции (мс/изображение)
PyTorch5.30.47987.39
TorchScript9.80.47894.21
ONNX9.50.47676.58
OpenVINO10.10.479417.50
TensorRT (FP32)13.90.47911.90
TensorRT (FP16)7.60.47971.39
TensorRT (INT8)6.50.42731.52
TF SavedModel25.70.476447.24
TF GraphDef9.50.476445.98
TF Lite9.90.4764182.04
MNN9.40.478421.83

Бенчмарк проведён с Ultralytics 8.4.7

Примечание

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

NVIDIA Jetson AGX Orin Developer Kit (64GB)#

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время инференции (мс/изображение)
PyTorch5.30.479011.58
TorchScript9.80.47704.60
ONNX9.50.47709.87
OpenVINO9.60.482028.80
TensorRT (FP32)11.50.04504.18
TensorRT (FP16)7.90.04502.62
TensorRT (INT8)5.40.46402.30
TF SavedModel24.60.476071.10
TF GraphDef9.50.476070.02
TF Lite9.90.4760227.94
MNN9.40.476032.46
NCNN9.30.481029.93

Бенчмарк проведён с Ultralytics 8.4.32

Примечание

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

NVIDIA Jetson Orin Nano Super Developer Kit#

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время инференции (мс/изображение)
PyTorch5.30.479015.60
TorchScript9.80.477012.60
ONNX9.50.476015.76
OpenVINO9.60.482056.23
TensorRT (FP32)11.30.47707.53
TensorRT (FP16)8.10.48004.57
TensorRT (INT8)5.30.44903.80
TF SavedModel24.60.4760118.33
TF GraphDef9.50.4760116.30
TF Lite9.90.4760286.00
MNN9.40.476068.77
NCNN9.30.481047.50

Бенчмарк проведён с Ultralytics 8.4.33

Примечание

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

NVIDIA Jetson Orin NX 16GB#

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время инференции (мс/изображение)
PyTorch5.30.479913.90
TorchScript9.80.478711.60
ONNX9.50.476314.18
OpenVINO9.60.481940.19
TensorRT (FP32)11.40.47707.01
TensorRT (FP16)8.00.47894.13
TensorRT (INT8)5.50.44893.49
TF SavedModel24.60.476492.34
TF GraphDef9.50.476492.06
TF Lite9.90.4764254.43
MNN9.40.476048.55
NCNN9.30.480534.31

Бенчмарк проведён с Ultralytics 8.4.33

Примечание

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

Изучи другие бенчмарки Seeed Studio, выполненные на разных версиях оборудования NVIDIA Jetson.

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

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

Пример
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Benchmark YOLO26n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)

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

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

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

  1. Включение режима максимального энергопотребления

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

    sudo nvpmodel -m 0
  2. Включение тактовых частот Jetson

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

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

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

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

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

Доступная память часто является ограничивающим фактором для устройств Jetson, особенно для моделей с небольшим объёмом памяти, таких как Jetson Orin Nano (8 GB) или Orin NX 8 GB. Приведённые ниже советы — это практичные и безопасные изменения, которые в совокупности могут освободить несколько сотен мегабайт и позволить запускать более крупные модели 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 prevents any display window; save=True writes annotated output to disk
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, чтобы все ядра работали на максимальной частоте.
    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=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

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

Комментарии