Экспорт в DeepX для моделей Ultralytics YOLO
Развертывание моделей компьютерного зрения на специализированном оборудовании NPU требует совместимого и оптимизированного формата модели. Экспорт Ultralytics YOLO моделей в формат DeepX обеспечивает эффективный INT8-квантованный вывод на ускорителях DeepX NPU. В этом руководстве ты узнаешь, как конвертировать модели YOLO в формат DeepX и развертывать их на оборудовании с поддержкой DeepX.
Что такое DeepX?
DeepX — это компания-производитель ИИ-полупроводников, специализирующаяся на нейронных процессорах (NPU), разработанных для энергоэффективного deep learning вывода на периферийных устройствах. DeepX NPU созданы для сложных встраиваемых и промышленных ИИ-приложений, обеспечивая высокую пропускную способность при минимальном энергопотреблении. Их оборудование отлично подходит для сценариев развертывания, где облачное соединение ненадежно или нежелательно, например, в робототехнике, умных камерах и системах промышленной автоматизации.
Формат экспорта DeepX
Экспорт в DeepX создает скомпилированный .dxnn бинарный файл модели, оптимизированный для работы на оборудовании DeepX NPU. Конвейер компиляции использует dx_com инструментарий для выполнения INT8-квантования и аппаратной оптимизации, создавая автономную директорию модели, готовую к развертыванию.
Ключевые особенности моделей DeepX
Модели DeepX предлагают несколько преимуществ для периферийного развертывания:
- INT8-квантование: Модели квантуются до точности INT8 во время экспорта, что значительно уменьшает размер модели и максимизирует пропускную способность NPU. Узнай больше о квантовании моделей.
- Оптимизация под NPU: Формат
.dxnnспециально скомпилирован для оборудования DeepX NPU, используя выделенные ускорительные блоки для быстрого и эффективного вывода. - Низкое энергопотребление: Благодаря переносу вывода на NPU, модели DeepX потребляют гораздо меньше энергии, чем при выводе на CPU или GPU.
- Точность на основе калибровки: При экспорте используется калибровка на основе EMA с изображениями из реального набора данных для минимизации потери точности при квантовании.
- Автономный результат: Экспортированная директория модели содержит скомпилированный бинарный файл, конфигурацию калибровки и метаданные для простого развертывания.
Поддерживаемые задачи
Все стандартные задачи Ultralytics поддерживаются для экспорта в DeepX во всех семействах моделей YOLO26, YOLO11 и YOLOv8.
| Задача | Поддерживается |
|---|---|
| Детектирование объектов | ✅ |
| Сегментация | ✅ |
| Оценка позы | ✅ |
| OBB-детектирование | ✅ |
| Классификация | ✅ |
Экспорт в DeepX: конвертация твоей модели YOLO
Экспортируй модель Ultralytics YOLO в формат DeepX и выполняй вывод с помощью экспортированной модели.
Экспорт в DeepX поддерживается только на машинах с x86-64 Linux. ARM64 (aarch64) не поддерживается на этапе экспорта.
Установка
Для установки необходимых пакетов выполни:
# Install the required package for YOLO
pip install ultralyticsКомпилятор dx_com будет автоматически установлен из репозитория DeepX SDK при первом экспорте. Для получения подробных инструкций и рекомендаций по процессу установки ознакомься с нашим Руководством по установке Ultralytics. Если при установке пакетов для YOLO у тебя возникнут трудности, обратись к нашему Руководству по распространенным проблемам за решениями и советами.
Использование
from ultralytics import YOLO
# Load the 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/'Аргументы экспорта
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
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 об экспорте.
Структура вывода
После успешного экспорта создается директория модели со следующей структурой:
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 поддерживается только на машинах с x86-64 Linux и машинах ARM64 Debian Trixie (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.0/dxrt-driver-dkms_2.4.0-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.0-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Использование
from ultralytics import YOLO
# Load the exported DeepX model
model = YOLO("yolo26n_deepx_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
# Process results
for r in results:
print(f"Detected {len(r.boxes)} objects")
r.show()Визуализация с помощью 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.dxnndxtron доступен только для x86-64 Linux. Платформы ARM64/aarch64 и не-Linux не поддерживаются.
Бенчмарки
Команда 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Рекомендуемый рабочий процесс
- Train свою модель с помощью Ultralytics Train Mode
- Export в формат DeepX с помощью
model.export(format="deepx") - Validate точность с помощью
yolo valдля проверки минимальных потерь при квантовании - Predict с использованием
yolo predictдля качественной валидации - Deploy экспортированную
_deepx_model/директорию на оборудование с DeepX NPU, используяdx_engineruntime
Примеры использования в реальном мире
Модели YOLO, развернутые на оборудовании с DeepX NPU, отлично подходят для широкого спектра приложений edge AI:
- Умное видеонаблюдение: Инференс в реальном времени детектирование объектов для систем безопасности и мониторинга с низким энергопотреблением и без зависимости от облака.
- Промышленная автоматизация: Контроль качества на устройстве, обнаружение дефектов и мониторинг процессов в заводских условиях.
- Робототехника: Навигация на основе зрения, предотвращение препятствий и распознавание объектов на автономных роботах и дронах.
- Умное сельское хозяйство: Мониторинг здоровья сельскохозяйственных культур, обнаружение вредителей и оценка урожайности с помощью computer vision в сельском хозяйстве.
- Розничная аналитика: Анализ потока покупателей, мониторинг полок и отслеживание инвентаря с помощью инференса на периферии в реальном времени.
Итог
В этом руководстве ты узнал, как экспортировать модели Ultralytics YOLO в формат DeepX и развертывать их на оборудовании DeepX NPU. Конвейер экспорта использует калибровку INT8 и dx_com компилятор для создания оптимизированного под оборудование .dxnn бинарного файла, в то время как dx_engine runtime обрабатывает инференс на устройстве.
Сочетание Ultralytics YOLO и технологии NPU от DeepX предоставляет эффективное решение для запуска продвинутых задач computer vision на встроенных и периферийных устройствах, обеспечивая высокую пропускную способность при низком энергопотреблении для приложений реального времени.
Для получения дополнительной информации о работе посети официальный сайт DeepX.
Также, если ты хочешь узнать больше о других интеграциях Ultralytics YOLO, посети нашу страницу руководства по интеграции. Там ты найдешь множество полезных ресурсов и идей.
Часто задаваемые вопросы (FAQ)
Как экспортировать мою модель Ultralytics YOLO в формат DeepX?
Ты можешь экспортировать свою модель с помощью метода export() в Python или через CLI. Экспорт автоматически включает квантование INT8 и использует калибровочный набор данных для минимизации потери точности. Пакет компилятора dx_com устанавливается автоматически, если он еще не присутствует.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="deepx")Почему для экспорта в DeepX требуется квантование INT8?
DeepX NPU разработаны для выполнения INT8 вычислений с максимальной эффективностью. dx_comКомпилятор квантует модель во время экспорта, используя EMA-калибровку с реальными изображениями из набора данных, что позволяет NPU полностью раскрыть свой потенциал. INT8 всегда применяется для экспорта в DeepX — если ты передашь int8=False, это будет проигнорировано с выводом предупреждения.
Какие платформы поддерживаются для экспорта в DeepX?
Для экспорта (компиляции) модели в DeepX требуется хост с архитектурой x86-64 Linux. Этап экспорта не поддерживается на устройствах ARM64 (aarch64) и Windows. Инференс с использованием экспортированной .dxnn модели можно запускать на любой Linux-платформе (x86-64 и ARM64), поддерживаемой средой выполнения dx_engine.
Что является результатом экспорта в DeepX?
В результате экспорта создается директория (например, yolo26n_deepx_model/), содержащая:
yolo26n.dxnn— скомпилированный бинарный файл NPUconfig.json— настройки калибровки и предобработкиmetadata.yaml— метаданные модели, включая имена классов и размер изображения
Могу ли я развернуть свои собственные модели на оборудовании DeepX?
Да. Любая модель, обученная с помощью Ultralytics Train Mode и экспортированная с помощью format="deepx", может быть развернута на оборудовании DeepX NPU при условии использования поддерживаемых операций слоев. Экспорт поддерживает задачи обнаружения, сегментации, оценки позы, ориентированных ограничивающих рамок (OBB) и классификации.
Сколько калибровочных изображений мне следует использовать для экспорта в DeepX?
Конвейер экспорта DeepX использует каждое изображение из калибровочного набора данных (после fraction фильтрации) с методом калибровки EMA. Обычно несколько сотен изображений достаточно для хорошей точности квантования. Укажи data на меньший набор данных (или установи fraction ниже 1.0), если время компиляции становится критичным на больших наборах данных.
Как установить среду выполнения DeepX для инференса?
Среда выполнения DeepX не поставляется вместе с ultralytics и должна быть установлена отдельно перед запуском инференса. На машинах с Linux x86-64 и ARM64 Debian Trixie (Raspberry Pi 5) установи драйвер NPU (dxrt-driver-dkms) и среду выполнения (libdxrt) из релизов DEEPX-AI на GitHub, а затем установи прилагаемый dx_engine Python wheel. Смотри раздел Установка среды выполнения выше для получения пошаговых команд.