Link to this sectionЭкспорт DEEPX для моделей Ultralytics YOLO#
Для развертывания моделей компьютерного зрения на специализированном оборудовании NPU требуется совместимый и оптимизированный формат модели. Экспорт моделей Ultralytics YOLO в формат DEEPX позволяет выполнять эффективный инференс с квантованием INT8 на ускорителях DEEPX NPU. Это руководство поможет тебе преобразовать модели YOLO в формат DEEPX и развернуть их на оборудовании с поддержкой DEEPX.
Link to this sectionЧто такое DEEPX?#
DEEPX — это компания-разработчик ИИ-полупроводников, специализирующаяся на нейронных процессорах (NPU), предназначенных для энергоэффективного инференса глубокого обучения на границе сети (edge). NPU DEEPX разработаны для требовательных встраиваемых и промышленных ИИ-приложений, обеспечивая высокую пропускную способность при минимальном энергопотреблении. Их оборудование хорошо подходит для сценариев развертывания, где облачное подключение ненадежно или нежелательно, таких как робототехника, умные камеры и системы промышленной автоматизации.
Link to this sectionФормат экспорта DEEPX#
Экспорт DEEPX создает скомпилированный бинарный файл модели .dxnn, оптимизированный для выполнения на оборудовании DEEPX NPU. Конвейер компиляции использует инструментарий dx_com для выполнения квантования INT8 и аппаратной оптимизации, создавая автономную директорию модели, готовую к развертыванию.
Link to this sectionКлючевые особенности моделей DEEPX#
Модели DEEPX предлагают несколько преимуществ для развертывания на периферийных устройствах:
- Квантование INT8: Модели квантуются до точности INT8 во время экспорта, что значительно уменьшает их размер и максимизирует пропускную способность NPU. Узнай больше о квантовании моделей.
- Оптимизация под NPU: Формат
.dxnnспециально скомпилирован для оборудования DEEPX NPU, используя выделенные блоки ускорения для быстрого и эффективного инференса. - Низкое энергопотребление: За счет переноса инференса на NPU модели DEEPX потребляют значительно меньше энергии, чем аналогичный инференс на CPU или GPU.
- Точность на основе калибровки: При экспорте используется калибровка на основе EMA с изображениями из реального набора данных, чтобы минимизировать потерю точности при квантовании.
- Автономный вывод: Экспортированная директория модели содержит скомпилированный бинарный файл, конфигурацию калибровки и метаданные для простого развертывания.
Link to this sectionПоддерживаемые задачи#
Все стандартные задачи Ultralytics поддерживаются для экспорта в DEEPX во всех семействах моделей YOLO26, YOLO11 и YOLOv8.
| Задача | Поддерживается |
|---|---|
| Обнаружение объектов | ✅ |
| Сегментация экземпляров | ✅ |
| Семантическая сегментация | ✅ |
| Оценка позы | ✅ |
| Обнаружение OBB | ✅ |
| Классификация | ✅ |
Link to this sectionЭкспорт в DEEPX: преобразование твоей модели YOLO#
Экспортируй модель Ultralytics YOLO в формат DEEPX и запускай инференс с экспортированной моделью.
Экспорт DEEPX поддерживается только на машинах с ОС Linux x86-64. Архитектура ARM64 (aarch64) не поддерживается на этапе экспорта. Однако экспортированные модели dxnn полностью совместимы и выполняются на платформах ARM64.
Link to this sectionУстановка#
Чтобы установить необходимые пакеты, выполни:
# Install the required package for YOLO
pip install ultralyticsПакет компилятора dx_com будет автоматически установлен из репозитория DEEPX SDK при первом экспорте. Для получения подробных инструкций и рекомендаций по процессу установки, ознакомься с нашим руководством по установке Ultralytics. Если при установке необходимых пакетов для YOLO у тебя возникнут трудности, обратись к нашему руководству по общим проблемам за решениями и советами.
Link to this sectionИспользование#
Формат DEEPX поддерживает режимы Export, Predict и Validate. Инференс и валидация выполняются на оборудовании DEEPX NPU. Экспортируй свою модель, а затем загрузи ее для запуска инференса или проверки точности.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to DEEPX format (int8=True 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")Link to this sectionАргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'deepx' | Целевой формат для экспортированной модели, определяющий совместимость с оборудованием DEEPX NPU. |
imgsz | int или tuple | 640 | Желаемый размер изображения для ввода модели. Экспорт DEEPX требует квадратного ввода — передай целое число (например, 640) или кортеж, где высота равна ширине. |
int8 | bool | True | Включает квантование INT8. Обязательно для экспорта DEEPX — автоматически устанавливается в True, если не указано иное. |
data | str | 'coco128.yaml' | Файл конфигурации набора данных, используемый для калибровки INT8. Указывает источник изображений для калибровки. |
device | str | None | Указывает устройство для экспорта: GPU (device=0) или CPU (device=cpu). |
optimize | bool | False | Включает более глубокую оптимизацию компилятора, что снижает задержку инференса, но увеличивает время компиляции. |
Всегда выполняй экспорт DEEPX на хосте x86-64 Linux. Компилятор dx_com не поддерживает ARM64.
Чтобы узнать больше о процессе экспорта, посети страницу документации Ultralytics об экспорте.
Link to this sectionСтруктура вывода#
После успешного экспорта создается директория модели со следующей структурой:
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.
Link to this sectionРазвертывание экспортированных моделей YOLO DEEPX#
Как только ты успешно экспортировал свою модель Ultralytics YOLO в формат DEEPX, следующим шагом будет развертывание этих моделей на оборудовании DEEPX NPU.
Link to this sectionУстановка среды выполнения#
Для инференса требуются драйвер 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(...).
Link to this sectionВизуализация с помощью 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.dxnndxtron доступен как для платформ x86-64, так и для aarch64.
Link to this sectionБенчмарки#
Команда Ultralytics провела тестирование моделей YOLO26, сравнив скорость и точность между PyTorch и DEEPX.
| Модель | Формат | Статус | Размер (МБ) | metrics/mAP50-95(B) | Время инференса (мс/из) |
|---|---|---|---|---|---|
| YOLO26n | PyTorch | ✅ | 5.3 | 0.4760 | 315.2 |
| YOLO26n | DEEPX | ✅ | 6.6 | 0.4660 | 34.6 |
| YOLO26n-seg | PyTorch | ✅ | 6.5 | 0.4080 | 485.4 |
| YOLO26n-seg | DEEPX | ✅ | 7.9 | 0.3920 | 53.8 |
| YOLO26n-pose | PyTorch | ✅ | 7.6 | 0.4230 | 506.3 |
| YOLO26n-pose | DEEPX | ✅ | 8.8 | 0.4590 | 37.6 |
| YOLO26n-obb | PyTorch | ✅ | 5.7 | 0.817 | 1094.4 |
| YOLO26n-obb | DEEPX | ✅ | 7.3 | 0.783 | 56.4 |
| Модель | Формат | Статус | Размер (МБ) | acc (top1) | acc (top5) | Время инференса (мс/из) |
|---|---|---|---|---|---|---|
| YOLO26n-cls | PyTorch | ✅ | 5.6 | 0.431 | 0.716 | 23.8 |
| YOLO26n-cls | DEEPX | ✅ | 5.9 | 0.333 | 0.686 | 2.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 составляет 8ГТ/с.
sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"Link to this sectionРекомендуемый рабочий процесс#
- Обучи свою модель с помощью режима обучения (Train Mode) Ultralytics
- Экспортируй модель в формат DEEPX, используя
model.export(format="deepx") - Валидируй точность с помощью
yolo val, чтобы убедиться в минимальных потерях при квантовании - Делай предсказания с помощью
yolo predictдля качественной проверки - Разверни экспортированную директорию
_deepx_model/на аппаратном обеспечении DEEPX NPU с помощью рантаймаdx_engine
Link to this sectionРеальные сценарии применения#
Модели YOLO, развернутые на аппаратном обеспечении DEEPX NPU, отлично подходят для широкого спектра приложений edge AI:
- Умное видеонаблюдение: Детекция объектов в режиме реального времени для систем безопасности и мониторинга с низким энергопотреблением и без зависимости от облака.
- Промышленная автоматизация: Контроль качества на устройстве, обнаружение дефектов и мониторинг процессов в условиях производства.
- Робототехника: Навигация на основе компьютерного зрения, предотвращение столкновений и распознавание объектов на автономных роботах и дронах.
- Умное сельское хозяйство: Мониторинг здоровья урожая, обнаружение вредителей и оценка урожайности с использованием компьютерного зрения в сельском хозяйстве.
- Аналитика в ритейле: Анализ потока клиентов, мониторинг полок и отслеживание товарных запасов с помощью инференса на граничных устройствах в реальном времени.
Link to this sectionРезюме#
В этом руководстве ты узнал, как экспортировать модели Ultralytics YOLO в формат DEEPX и развертывать их на аппаратном обеспечении DEEPX NPU. Конвейер экспорта использует INT8-калибровку и компилятор dx_com для создания оптимизированного под железо бинарного файла .dxnn, в то время как рантайм dx_engine обрабатывает инференс на устройстве.
Сочетание Ultralytics YOLO и NPU-технологии DEEPX предоставляет эффективное решение для запуска передовых рабочих нагрузок компьютерного зрения на встроенных и граничных устройствах, обеспечивая высокую пропускную способность при низком энергопотреблении для приложений в реальном времени.
Для получения дополнительной информации об использовании посети официальный сайт DEEPX.
Также, если хочешь узнать больше о других интеграциях Ultralytics YOLO, посети нашу страницу руководств по интеграциям. Там ты найдешь множество полезных ресурсов и идей.
Link to this sectionFAQ#
Link to this sectionКак экспортировать мою модель Ultralytics YOLO в формат DEEPX?#
Ты можешь экспортировать свою модель с помощью метода export() в Python или через CLI. Экспорт автоматически включает квантование INT8 и использует набор данных для калибровки, чтобы минимизировать потерю точности. Пакет компилятора dx_com устанавливается автоматически, если он еще не присутствует.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="deepx")Link to this sectionПочему для экспорта DEEPX требуется квантование INT8?#
NPU DEEPX разработаны для максимально эффективного выполнения вычислений INT8. Компилятор dx_com квантует модель во время экспорта, используя калибровку на основе EMA с реальными изображениями из набора данных, что позволяет NPU раскрыть всю свою производительность. INT8 всегда является обязательным для экспорта в DEEPX — если ты передашь int8=False, это будет переопределено с предупреждением.
Link to this sectionКакие платформы поддерживаются для экспорта в DEEPX?#
Экспорт (компиляция) моделей DEEPX требует хост на x86-64 Linux. Шаг экспорта не поддерживается на ARM64 (aarch64) и Windows. Инференс с использованием экспортированной модели .dxnn может выполняться на любой платформе Linux (x86-64 и ARM64), поддерживаемой рантаймом dx_engine.
Link to this sectionЧто является результатом экспорта в DEEPX?#
Экспорт создает директорию (например, yolo26n_deepx_model/), содержащую:
yolo26n.dxnn— скомпилированный бинарный файл для NPUconfig.json— настройки калибровки и предобработкиmetadata.yaml— метаданные модели, включая имена классов и размер изображения
Link to this sectionМогу ли я развертывать модели, обученные на собственных данных, на аппаратном обеспечении DEEPX?#
Да. Любая модель, обученная с помощью режима обучения Ultralytics и экспортированная с параметром format="deepx", может быть развернута на аппаратном обеспечении DEEPX NPU, при условии использования поддерживаемых операций слоев. Экспорт поддерживает задачи детекции, сегментации, оценки позы, ориентированных ограничивающих рамок (OBB) и классификации.
Link to this sectionСколько калибровочных изображений мне следует использовать для экспорта в DEEPX?#
Конвейер экспорта DEEPX использует каждое изображение из набора данных для калибровки (после фильтрации fraction) с методом калибровки EMA. Нескольких сотен изображений обычно достаточно для хорошей точности квантования. Укажи data на меньший набор данных (или установи fraction менее 1.0), если время компиляции на больших наборах данных становится проблемой.
Link to this sectionКак установить рантайм DEEPX для инференса?#
Рантайм DEEPX не входит в пакет ultralytics и должен быть установлен отдельно перед выполнением инференса. На компьютерах с x86-64 Linux и ARM64 Linux (например, Raspberry Pi 5) установи драйвер NPU (dxrt-driver-dkms) и рантайм (libdxrt) из релизов DEEPX-AI на GitHub, затем установи пакет dx_engine Python wheel. Смотри раздел Установка рантайма выше для получения пошаговых команд.