Link to this sectionЭкспорт DEEPX для моделей Ultralytics YOLO#
Развертывание моделей компьютерного зрения на специализированном NPU-оборудовании требует совместимого и оптимизированного формата моделей. Экспорт моделей Ultralytics YOLO в формат DEEPX обеспечивает эффективный вывод с INT8-квантованием на NPU-ускорителях DEEPX. Это руководство поможет тебе преобразовать модели YOLO в формат DEEPX и развернуть их на оборудовании с поддержкой DEEPX.
Link to this sectionЧто такое DEEPX?#
DEEPX — это компания-разработчик ИИ-полупроводников, специализирующаяся на нейронных процессорах (NPU), предназначенных для энергоэффективного глубокого обучения на периферийных устройствах. NPU от DEEPX созданы для ресурсоемких встроенных и промышленных ИИ-приложений, обеспечивая высокую пропускную способность при минимальном энергопотреблении. Их оборудование отлично подходит для сценариев развертывания, где подключение к облаку ненадежно или нежелательно, например, в робототехнике, умных камерах и системах промышленной автоматизации.
Link to this sectionФормат экспорта DEEPX#
Экспорт DEEPX создает скомпилированный бинарный файл модели .dxnn, оптимизированный для выполнения на NPU-оборудовании DEEPX. Конвейер компиляции использует инструментарий dx_com для выполнения квантования INT8 и аппаратной оптимизации, создавая автономную директорию модели, готовую к развертыванию.
Link to this sectionКлючевые особенности моделей DEEPX#
Модели DEEPX предлагают несколько преимуществ для периферийного развертывания:
- Квантование INT8: Модели квантуются до точности INT8 во время экспорта, что значительно уменьшает размер модели и максимизирует пропускную способность NPU. Узнай больше о квантовании моделей.
- Оптимизация под NPU: Формат
.dxnnспециально скомпилирован для NPU-оборудования DEEPX, задействуя выделенные блоки ускорения для быстрого и эффективного вывода. - Низкое энергопотребление: Перенос вычислений на NPU позволяет моделям DEEPX потреблять гораздо меньше энергии, чем при выводе на CPU или GPU.
- Точность на основе калибровки: При экспорте используется калибровка на основе EMA с изображениями из реального набора данных для минимизации потери точности при квантовании.
- Автономный вывод: Экспортируемая директория модели объединяет скомпилированный бинарный файл, конфигурацию калибровки и метаданные для удобного развертывания.
Link to this sectionПоддерживаемые задачи#
Для экспорта в DEEPX поддерживаются все стандартные задачи Ultralytics для семейств моделей 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. Вывод и валидация выполняются на NPU-оборудовании DEEPX. Экспортируй модель, а затем загрузи ее для запуска вывода или проверки точности.
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' | Целевой формат для экспортированной модели, определяющий совместимость с NPU-оборудованием DEEPX. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входных данных модели. Экспорт DEEPX требует квадратного входа — передай целое число (например, 640) или кортеж, где высота равна ширине. |
int8 | bool | True | Включает квантование INT8. Обязательно для экспорта DEEPX — устанавливается автоматически в True, если не указано иное. |
data | str | 'coco8.yaml' | Файл конфигурации набора данных, используемый для калибровки INT8. Указывает источник изображений для калибровки. |
device | str | None | Указывает устройство для экспорта: GPU (device=0) или CPU (device=cpu). |
optimize | bool | False | Включает более высокую оптимизацию компилятора, что снижает задержку вывода и увеличивает время компиляции. |
Всегда запускай экспорт DEEPX на хосте с Linux x86-64. Компилятор 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, следующим шагом будет развертывание этих моделей на NPU-оборудовании DEEPX.
Link to this sectionУстановка среды выполнения#
Для вывода требуются драйвер NPU DEEPX, среда выполнения libdxrt и пакет dx_engine для Python.
Среда выполнения 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.
| Модель | Формат | Статус | Размер (МБ) | метрики/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. Ожидаемая скорость — 8 ГТ/с для PCIe Gen3.
sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"Link to this sectionРекомендуемый рабочий процесс#
- Обучи свою модель, используя режим обучения 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 достичь пиковой производительности. Для экспорта DEEPX формат INT8 обязателен — если ты передашь 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 использует каждое изображение из набора данных для калибровки методом EMA. Нескольких сотен изображений обычно достаточно для хорошей точности квантования. Укажи data на меньший набор данных, если время компиляции становится проблемой на больших наборах данных.
Link to this sectionКак установить среду исполнения DEEPX для инференса?#
Среда исполнения DEEPX не входит в комплект ultralytics и должна быть установлена отдельно перед запуском инференса. На машинах с x86-64 Linux и ARM64 Linux (например, Raspberry Pi 5) установи драйвер NPU (dxrt-driver-dkms) и среду исполнения (libdxrt) из релизов DEEPX-AI на GitHub, а затем установи прилагаемый Python wheel dx_engine. См. раздел Установка среды исполнения выше для пошаговых команд.