YOLO Vision 2026:

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

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

Что такое DEEPX?#

DEEPX NPU Inference

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

Формат экспорта 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, единственным семейством, в котором есть эти головы.

ЗадачаYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Экспорт в 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 при первом экспорте. Подробные инструкции и лучшие практики, связанные с процессом установки, можно найти в нашем руководстве по установке Ultralytics. Если при установке необходимых пакетов для YOLO ты столкнешься с какими-либо трудностями, обратись к нашему руководству по частым проблемам за решениями и советами.

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

Формат DEEPX поддерживает режимы Export, Predict и Validate. Инференс и валидация выполняются на аппаратном обеспечении 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/'
Предсказание
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'Целевой формат для экспортированной модели, определяющий совместимость с NPU-оборудованием DEEPX.
imgszint или tuple640Желаемый размер изображения для входа модели. Для экспорта в DEEPX требуется квадратный вход — передай целое число (например, 640) или кортеж, где высота равна ширине.
quantizeint или str8/autoТочность квантования. 8 (INT8) требуется для экспорта DEEPX и включается автоматически, если не указано иное. Заменяет устаревшие флаги half/int8.
simplifyboolTrueУпрощает промежуточный граф ONNX с помощью onnxslim.
opsetintNoneУказывает версию ONNX 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, следующим шагом будет развертывание этих моделей на NPU-оборудовании DEEPX.

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

Для инференса требуются драйвер 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 на x86-64 Linux, загрузив пакет .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
МодельФорматСтатусРазмер (МБ)метрики/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
МодельФорматСтатусРазмер (МБ)acc (top1)acc (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. Ожидаемая скорость — 8 ГТ/с для PCIe Gen3.

sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"

Рекомендуемый рабочий процесс#

  1. Обучай (Train) свою модель с помощью режима обучения Ultralytics
  2. Экспортируй (Export) в формат DEEPX с помощью model.export(format="deepx")
  3. Проверяй (Validate) точность с помощью yolo val, чтобы убедиться в минимальной потере качества при квантовании
  4. Предсказывай (Predict) с помощью yolo predict для качественной проверки
  5. Развертывай (Deploy) экспортированный каталог _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, посети нашу страницу руководства по интеграции. Там ты найдешь множество полезных ресурсов и идей.

FAQ#

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

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

  • Экспорт (компиляция) модели 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 и должна быть установлена отдельно перед запуском инференса. На машинах x86-64 Linux и ARM64 Linux (например, Raspberry Pi 5) установи драйвер NPU (dxrt-driver-dkms) и среду выполнения (libdxrt) из релизов DEEPX-AI на GitHub, а затем установи прилагаемый Python-wheel dx_engine. Пошаговые команды см. в разделе Установка среды выполнения выше.

Комментарии