YOLO Vision 2026:

Экспорт DEEPX для моделей Ultralytics YOLO#

Развертывание моделей компьютерного зрения на специализированном оборудовании NPU требует совместимого и оптимизированного формата модели. Экспорт моделей Ultralytics YOLO в формат DEEPX обеспечивает эффективный вывод с INT8-квантизацией на NPU-ускорителях DEEPX. В этом руководстве ты узнаешь, как преобразовать модели 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 автоматически устанавливается из репозитория DEEPX SDK при первом экспорте. Текущий рабочий процесс экспорта использует DX-COM 2.3.0, который предоставляет колеса для Python 3.8–3.12 на x86-64 Linux с glibc 2.31 или новее.

Релизы компилятора на PyPI отозваны. Чтобы предварительно установить зависимости экспорта, предоставьте страницу колес SDK с помощью --find-links; это работает как с pip, так и с uv pip:

pip install "ultralytics[export-deepx]" --find-links https://sdk.deepx.ai/release/dxcom/v2.3.0/index.html

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

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

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

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

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

Экспорт
from ultralytics import YOLO

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

# Export the model to DEEPX format (quantize=8 is enforced automatically)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'
Predict
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Валидация
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

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

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

Всегда выполняй экспорт DEEPX на хосте с x86-64 Linux. Компилятор 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 следующим шагом будет ее развертывание на оборудовании DEEPX NPU.

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

Для вывода требуются драйвер DEEPX NPU, среда выполнения 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 из DEEPX SDK и установив его с помощью 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)Время инференции (мс/изображение)
YOLO26nPyTorch5.30.4760315.2
YOLO26nDEEPX6.60.466034.6
YOLO26n-segPyTorch6.50.4080485.4
YOLO26n-segDEEPX7.90.392053.8
YOLO26n-posePyTorch7.60.4230506.3
YOLO26n-poseDEEPX8.80.459037.6
YOLO26n-obbPyTorch5.70.8171094.4
YOLO26n-obbDEEPX7.30.78356.4
МодельФорматСтатусРазмер (МБ)точность (top1)точность (top5)Время инференции (мс/изображение)
YOLO26n-clsPyTorch5.60.4310.71623.8
YOLO26n-clsDEEPX5.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. Обучи модель с помощью Ultralytics режима обучения
  2. Экспортируй в формат DEEPX с помощью model.export(format="deepx")
  3. Проверь точность с помощью yolo val, чтобы убедиться в минимальной потере качества из-за квантования
  4. Выполни предсказание с помощью yolo predict для качественной валидации
  5. Разверни экспортированный каталог _deepx_model/ на оборудовании DEEPX NPU с помощью среды выполнения dx_engine

Практические применения#

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

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

Итоги#

В этом руководстве ты узнал, как экспортировать модели Ultralytics YOLO в формат DEEPX и развертывать их на оборудовании DEEPX NPU. В конвейере экспорта используются 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: если ты запросишь другую точность, она будет заменена с выводом предупреждения.

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

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

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

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

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

Комментарии