Ultralytics YOLO27: Запишись в список ожидания.

Экспорт Ultralytics YOLO в DEEPX#

Для развертывания моделей компьютерного зрения на специализированном оборудовании с NPU требуется совместимый и оптимизированный формат модели. Экспорт моделей Ultralytics YOLO в формат DEEPX обеспечивает эффективный инференс с квантованием INT8 на ускорителях DEEPX NPU. В этом руководстве описано, как преобразовать модели YOLO в формат DEEPX и развернуть их на оборудовании с DEEPX.

Что такое DEEPX?#

DEEPX NPU Inference

DEEPX — компания, производящая полупроводники для ИИ и специализирующаяся на нейропроцессорах (NPU), разработанных для энергоэффективного инференса глубокого обучения на периферийных устройствах. NPU DEEPX созданы для сложных встраиваемых и промышленных ИИ-приложений: они обеспечивают высокую пропускную способность при минимальном энергопотреблении. Это оборудование подходит для сценариев развертывания, где подключение к облаку ненадежно или нежелательно, например в робототехнике, умных камерах и системах промышленной автоматизации.

Формат экспорта DEEPX#

При экспорте в DEEPX создается скомпилированный двоичный файл модели .dxnn, оптимизированный для выполнения на оборудовании DEEPX NPU. В конвейере компиляции используется набор инструментов dx_com для квантования INT8 и оптимизации под конкретное оборудование. В результате создается самодостаточная папка модели, готовая к развертыванию.

Основные возможности моделей DEEPX#

Модели DEEPX дают несколько преимуществ при развертывании на периферийных устройствах:

  • Квантование INT8: при экспорте модели квантуются до точности INT8, что значительно уменьшает размер модели и повышает пропускную способность NPU. Подробнее о квантовании моделей.
  • Оптимизация для NPU: формат .dxnn специально компилируется для оборудования DEEPX NPU и использует специализированные блоки ускорения, обеспечивая быстрый и эффективный инференс.
  • Низкое энергопотребление: благодаря переносу инференса на NPU модели DEEPX потребляют намного меньше энергии, чем аналогичный инференс на CPU или GPU.
  • Точность на основе калибровки: при экспорте используется калибровка на основе EMA с реальными изображениями из набора данных, чтобы свести к минимуму потерю точности при квантовании.
  • Самодостаточный результат: в каталог экспортированной модели входят скомпилированный бинарный файл, конфигурация калибровки и метаданные, что упрощает развертывание.

Поддерживаемые задачи#

Экспорт DEEPX поддерживает все семь задач Ultralytics. Семантическая сегментация и оценка глубины доступны только в YOLO26 — единственном семействе, в котором есть соответствующие головы модели.

Экспорт в DEEPX: преобразование модели YOLO#

Экспортируй модель Ultralytics YOLO в формат DEEPX и выполняй инференс с экспортированной моделью.

Примечание

Экспорт DEEPX поддерживается только на компьютерах с Linux и архитектурой x86-64. Экспорт на ARM64 (aarch64) не поддерживается. Однако экспортированные модели dxnn полностью совместимы с платформами ARM64 и могут на них выполняться.

Установка#

Чтобы установить необходимые пакеты, выполни команду:

Установка
# Install the required package for YOLO
pip install ultralytics

Компилятор dx_com автоматически устанавливается из PyPI при первом экспорте. DX-COM 2.4.1 предоставляет wheels для Python 3.8–3.14 на Linux x86-64 с glibc версии 2.31 или новее. Чтобы заранее установить зависимости для экспорта:

pip install "ultralytics[export-deepx]"

Для установки репозитория в редактируемом режиме замени "ultralytics[export-deepx]" на -e ".[export-base,export-deepx]". Чтобы в точности воспроизвести окружение Python 3.14 и тестовый экспорт, используемые в CI, запусти имеющийся сборщик окружения из корневого каталога репозитория:

ULTRALYTICS_ISOLATED_VENVS="$PWD/.venvs" python .github/scripts/create-export-env.py --env isolated-deepx

Для сборщика окружения нужны uv и установленная копия Ultralytics. Он автоматически применяет проверенные ограничения версий зависимостей.

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

Формат DEEPX поддерживает режимы экспорта, предсказания и валидации. Инференс и валидация выполняются на NPU-оборудовании DEEPX. Экспортируй модель, затем загрузи экспортированную модель для инференса или проверки ее точности.

Экспорт
from ultralytics import YOLO

# Загрузи модель YOLO26
model = YOLO("yolo26n.pt")

# Экспортируй модель в формат DEEPX (quantize=8 применяется автоматически)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'
Предсказание
from ultralytics import YOLO

# Загрузи экспортированную модель DEEPX
model = YOLO("yolo26n_deepx_model")

# Выполнить инференс
results = model("https://ultralytics.com/images/bus.jpg")
Проверка
from ultralytics import YOLO

# Загрузи экспортированную модель DEEPX
model = YOLO("yolo26n_deepx_model")

# Проверить точность на наборе данных COCO8
metrics = model.val(data="coco8.yaml")

Аргументы экспорта#

АргументТипПо умолчаниюОписание
formatstr'deepx'Целевой формат экспортированной модели, определяющий совместимость с NPU-оборудованием DEEPX.
imgszint или tuple640Требуемый размер входного изображения модели. Для экспорта в DEEPX нужен квадратный вход: передай целое число (например, 640) или кортеж, в котором высота равна ширине.
quantizeint или str8/автоТочность квантования. Для экспорта в DEEPX требуется 8 (INT8); если параметр не указан, этот режим включается автоматически. Заменяет устаревшие флаги half/int8.
simplifyboolTrueУпрощает промежуточный граф ONNX с помощью onnxslim.
opsetintNoneЗадает версию opset ONNX для промежуточного графа ONNX. Если значение не задано, используется последняя поддерживаемая версия.
datastrNoneФайл YAML набора данных, используемый для калибровки INT8; для классификации вместо него укажи каталог набора данных или имя встроенного набора данных. Если параметр не задан вместе с quantize=8, Ultralytics выберет набор данных для калибровки по умолчанию для соответствующей задачи модели.
devicestrNoneУказывает устройство для экспорта: GPU (device=0) или CPU (device=cpu).
optimizeboolFalseВключает более высокий уровень оптимизации компилятора, снижая задержку инференса ценой увеличения времени компиляции.
Совет

Всегда выполняй экспорт DEEPX на хосте с Linux x86-64. Компилятор dx_com не поддерживает ARM64.

Подробнее о процессе экспорта смотри на странице документации Ultralytics об экспорте.

Структура вывода#

После успешного экспорта создается каталог модели со следующей структурой:

yolo26n_deepx_model/
├── yolo26n.dxnn     # Compiled DEEPX model binary (NPU executable)
├── config.json      # Calibration and preprocessing configuration
└── metadata.yaml    # Model metadata (classes, image size, task, etc.)

Файл .dxnn — это скомпилированный бинарный файл модели, который среда выполнения dx_engine напрямую загружает в NPU. В metadata.yaml содержатся имена классов, размер изображения и другие данные, используемые конвейером инференса Ultralytics.

Развертывание экспортированных моделей YOLO на DEEPX#

После успешного экспорта модели Ultralytics YOLO в формат DEEPX следующий шаг — развернуть эти модели на NPU-оборудовании DEEPX.

Установка среды выполнения#

Для инференса нужны драйвер NPU DEEPX, среда выполнения libdxrt и пакет Python dx_engine.

Примечание

Среда выполнения DEEPX поддерживает Linux x86-64 и ARM64 (например, Raspberry Pi 5).

# Install the NPU driver and libdxrt runtime
sudo apt update
wget https://github.com/DEEPX-AI/dx_rt_npu_linux_driver/raw/main/release/2.4.1/dxrt-driver-dkms_2.4.1-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.1-2_all.deb
wget https://github.com/DEEPX-AI/dx_rt/raw/main/release/3.3.2/libdxrt_3.3.2_all.deb
sudo apt install ./libdxrt_3.3.2_all.deb

# Create dx-engine wheel
cd /usr/share/libdxrt/python_package && sudo ./make_whl.sh

# Install the bundled dx_engine Python wheel
pip install dx_engine-*.whl

Проверь правильность установки среды выполнения с помощью dxrt-cli --version. Ты должен увидеть вывод примерно такого вида:

DXRT v3.3.2
Minimum Driver Versions
Device Driver: v2.4.0
PCIe Driver: v2.2.0
Firmware: v2.5.2
Minimum Compiler Versions
Compiler: v1.18.1
.dxnn File Format: v6

После установки среды выполнения запускай инференс и валидацию на устройстве DEEPX так же, как описано выше в разделе «Использование»: экспортированная модель _deepx_model напрямую загружается с помощью YOLO(...).

Визуализация с помощью dxtron#

dxtron — это визуализатор графов DEEPX для анализа скомпилированной модели .dxnn.

Установи dxtron в Linux x86-64: скачай пакет .deb из SDK DEEPX и установи его с помощью dpkg:

wget https://sdk.deepx.ai/release/dxtron/v2.0.1/dxtron_2.0.1_amd64.deb
sudo dpkg -i dxtron_2.0.1_amd64.deb

Затем открой экспортированную модель:

dxtron yolo26n_deepx_model/yolo26n.dxnn
Примечание

dxtron доступен для платформ x86-64 и aarch64.

Бенчмарки#

Команда Ultralytics провела бенчмаркинг моделей YOLO26, сравнив скорость и точность PyTorch и DEEPX.

Производительность
Raspberry Pi 5 DEEPX M1 NPU vs PyTorch benchmarks
МодельФорматСтатусРазмер (МБ)metrics/mAP50-95(B)Время инференса (мс/изобр.)
YOLO26nPyTorch✅5.30.4760315.2
YOLO26nDEEPX✅6.60.466034.6
YOLO26n-segPyTorch✅6.50.4080485.4
YOLO26n-segDEEPX✅7.90.392053.8
YOLO26n-posePyTorch✅7.60.4230506.3
YOLO26n-poseDEEPX✅8.80.459037.6
YOLO26n-obbPyTorch✅5.70.8171094.4
YOLO26n-obbDEEPX✅7.30.78356.4
МодельФорматСтатусРазмер (МБ)точность (top1)точность (top5)Время инференса (мс/изобр.)
YOLO26n-clsPyTorch✅5.60.4310.71623.8
YOLO26n-clsDEEPX✅5.90.3330.6862.7
Примечание

Для валидации в приведенных выше бенчмарках использовались COCO128 для обнаружения, COCO128-seg для сегментации, COCO8-pose для оценки позы, ImageNet100 для классификации и DOTA128 для моделей OBB. Время инференса не включает предварительную и последующую обработку.

Советы по оптимизации производительности

Чтобы добиться максимальной пропускной способности инференса на NPU DX-M1, подключенном к Raspberry Pi 5, открой файл конфигурации загрузки и включи поддержку PCIe Gen 3.

sudo nano /boot/firmware/config.txt

Добавь в конец файла следующие строки:

dtparam=pciex1
dtparam=pciex1_gen=3

Сохрани файл и выйди (Ctrl+X, затем Y, затем Enter), после чего перезагрузи устройство:

sudo reboot

Проверь поколение PCIe. Ожидаемая скорость для PCIe Gen3 — 8GT/s.

sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"
  1. Обучи модель с помощью режима Train Ultralytics
  2. Экспортируй модель в формат DEEPX с помощью model.export(format="deepx")
  3. Проверь точность с помощью yolo val, чтобы убедиться, что потери при квантовании минимальны
  4. Выполни предсказание с помощью yolo predict для качественной проверки
  5. Разверни экспортированный каталог _deepx_model/ на NPU-оборудовании DEEPX с помощью среды выполнения dx_engine

Применение в реальных условиях#

Модели YOLO, развернутые на NPU-оборудовании DEEPX, хорошо подходят для самых разных приложений периферийного ИИ:

  • Интеллектуальное видеонаблюдение: обнаружение объектов в реальном времени для систем безопасности и мониторинга с низким энергопотреблением и без зависимости от облака.
  • Промышленная автоматизация: контроль качества, обнаружение дефектов и мониторинг производственных процессов непосредственно на устройстве.
  • Робототехника: навигация на основе компьютерного зрения, обход препятствий и распознавание объектов на автономных роботах и дронах.
  • Умное сельское хозяйство: мониторинг состояния посевов, обнаружение вредителей и оценка урожайности с помощью компьютерного зрения в сельском хозяйстве.
  • Аналитика в розничной торговле: анализ потоков покупателей, мониторинг полок и отслеживание запасов с помощью инференса на периферийных устройствах в реальном времени.

Итоги#

В этом руководстве ты узнал, как экспортировать модели Ultralytics YOLO в формат DEEPX и развертывать их на NPU-оборудовании DEEPX. В конвейере экспорта используются калибровка INT8 и компилятор dx_com для создания оптимизированного для оборудования бинарного файла .dxnn, а за инференс на устройстве отвечает среда выполнения dx_engine.

Сочетание Ultralytics YOLO и технологии NPU от DEEPX — эффективное решение для выполнения ресурсоемких задач компьютерного зрения на встраиваемых и периферийных устройствах: оно обеспечивает высокую пропускную способность при низком энергопотреблении для приложений реального времени.

Подробнее об использовании см. на официальном сайте DEEPX.

Если хочешь узнать больше о других интеграциях Ultralytics YOLO, загляни на нашу страницу с руководством по интеграциям. Там ты найдешь множество полезных материалов и рекомендаций.

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

  • Ты можешь экспортировать модель с помощью метода export() в Python или через CLI. При экспорте автоматически включается квантование INT8 и используется набор данных для калибровки, чтобы свести к минимуму потерю точности. Если пакет компилятора dx_com еще не установлен, он устанавливается автоматически.

    Пример
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="deepx")
  • NPU DEEPX предназначены для максимально эффективного выполнения вычислений INT8. Во время экспорта компилятор dx_com квантует модель, используя калибровку на основе EMA и реальные изображения из набора данных, что позволяет NPU работать на полной производительности. При экспорте DEEPX всегда применяется INT8: если ты запросишь другую точность, она будет заменена на INT8 с предупреждением.

  • Для экспорта модели DEEPX (компиляции) требуется хост с Linux x86-64. Экспорт не поддерживается на ARM64 (aarch64) и компьютерах с Windows. Инференс с использованием экспортированной модели .dxnn можно запускать на любой платформе Linux (x86-64 и ARM64), поддерживаемой средой выполнения dx_engine.

  • При экспорте создается каталог (например, yolo26n_deepx_model/), содержащий:

    • yolo26n.dxnn — скомпилированный бинарный файл для NPU
    • config.json — параметры калибровки и предварительной обработки
    • metadata.yaml — метаданные модели, включая имена классов и размер изображения
  • Да. На NPU-оборудовании DEEPX можно развернуть любую модель, обученную с помощью режима обучения Ultralytics и экспортированную с помощью format="deepx", если в ней используются поддерживаемые операции слоев. Экспорт поддерживает все семь задач Ultralytics: обнаружение, сегментацию экземпляров, семантическую сегментацию, оценку глубины, классификацию, оценку позы и обнаружение ориентированных ограничивающих рамок (OBB).

  • Конвейер экспорта DEEPX настраивает компилятор dx_com на 100 шагов калибровки EMA по изображениям из набора данных для калибровки. Для хорошей точности квантования обычно достаточно нескольких сотен изображений. Если время компиляции больших наборов данных вызывает опасения, укажи в data набор данных меньшего размера.

  • Среда выполнения DEEPX не входит в состав ultralytics; перед запуском инференса ее нужно установить отдельно. На компьютерах с Linux x86-64 и ARM64 (например, Raspberry Pi 5) установи драйвер NPU (dxrt-driver-dkms) и среду выполнения (libdxrt) из релизов DEEPX-AI на GitHub, а затем установи входящий в комплект wheel-пакет Python dx_engine. Пошаговые команды см. выше в разделе «Установка среды выполнения».

Комментарии