YOLO Vision 2026:

Exportación de modelos Ultralytics YOLO a DEEPX#

Implementar modelos de visión por computador en hardware NPU especializado requiere un formato de modelo compatible y optimizado. Exportar modelos Ultralytics YOLO al formato DEEPX permite realizar inferencias eficientes cuantizadas a INT8 en aceleradores NPU DEEPX. Esta guía te explica cómo convertir tus modelos YOLO al formato DEEPX e implementarlos en hardware basado en DEEPX.

¿Qué es DEEPX?#

DEEPX NPU Inference

DEEPX es una empresa de semiconductores de IA especializada en Unidades de procesamiento neuronal (NPUs) diseñadas para realizar inferencias de deep learning con eficiencia energética en el edge. Las NPUs de DEEPX están diseñadas para aplicaciones de IA embebida e industrial exigentes, y ofrecen un alto rendimiento con un consumo energético mínimo. Su hardware es ideal para escenarios de implementación en los que la conectividad con la nube no es fiable o no se desea utilizar, como la robótica, las cámaras inteligentes y los sistemas de automatización industrial.

Formato de exportación de DEEPX#

La exportación a DEEPX genera un binario de modelo .dxnn compilado y optimizado para ejecutarse en hardware NPU DEEPX. La cadena de compilación utiliza el kit de herramientas dx_com para realizar la cuantización INT8 y la optimización específica del hardware, y genera un directorio de modelo autocontenido listo para la implementación.

Características principales de los modelos DEEPX#

Los modelos DEEPX ofrecen varias ventajas para la implementación en el edge:

  • Cuantización INT8: durante la exportación, los modelos se cuantizan a precisión INT8, lo que reduce significativamente su tamaño y maximiza el rendimiento de la NPU. Obtén más información sobre la cuantización de modelos.
  • Optimizado para NPU: el formato .dxnn se compila específicamente para el hardware NPU DEEPX y aprovecha unidades de aceleración dedicadas para realizar inferencias rápidas y eficientes.
  • Bajo consumo energético: al descargar la inferencia en la NPU, los modelos DEEPX consumen mucha menos energía que una inferencia equivalente en CPU o GPU.
  • Precisión basada en calibración: la exportación utiliza una calibración basada en EMA con imágenes de un conjunto de datos real para minimizar la pérdida de precisión durante la cuantización.
  • Salida autocontenida: el directorio del modelo exportado incluye el binario compilado, la configuración de calibración y los metadatos para facilitar la implementación.

Tareas compatibles#

La exportación a DEEPX es compatible con las siete tareas de Ultralytics. La segmentación semántica y la estimación de profundidad solo están disponibles con YOLO26, la única familia que incluye esas cabezas.

TareaYOLOv8YOLO11YOLO26
Detección
Segmentación
Semántica
Profundidad
Clasificación
Pose
OBB

Exportar a DEEPX: convertir tu modelo YOLO#

Exporta un modelo Ultralytics YOLO al formato DEEPX y ejecuta inferencias con el modelo exportado.

Nota

La exportación a DEEPX solo es compatible con máquinas Linux x86-64. ARM64 (aarch64) no es compatible con el paso de exportación. Sin embargo, los modelos dxnn exportados son totalmente compatibles y ejecutables en plataformas ARM64.

Instalación#

Para instalar los paquetes necesarios, ejecuta:

Instalación
# Install the required package for YOLO
pip install ultralytics

El compilador dx_com se instala automáticamente desde el repositorio de DEEPX SDK en la primera exportación. El flujo de trabajo de exportación actual utiliza DX-COM 2.3.0, el cual proporciona wheels para Python 3.8–3.12 en Linux x86-64 con glibc 2.31 o posterior.

Las versiones de PyPI del compilador están retiradas (yanked). Para preinstalar las dependencias de exportación, suministra la página de wheels del SDK con --find-links; esto funciona tanto con pip como con uv pip:

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

Para una instalación de repositorio editable, sustituye "ultralytics[export-deepx]" por -e ".[export-base,export-deepx]". Para reproducir el entorno de Python 3.12 y la exportación de prueba (smoke export) utilizada por CI, ejecuta el constructor de entorno existente desde la raíz del repositorio:

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

El constructor de entorno requiere uv y una copia local instalada de Ultralytics. Este instala el compilador desde el código fuente del SDK y aplica las restricciones de dependencias probadas de forma automática.

Uso#

El formato DEEPX admite los modos Export, Predict y Validate. La inferencia y la validación se ejecutan en hardware NPU DEEPX. Exporta tu modelo y, después, carga el modelo exportado para ejecutar inferencias o validar su precisión.

Exportar
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/'
Predecir
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validar
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")

Argumentos de exportación#

ArgumentoTipoPredeterminadoDescripción
formatstr'deepx'Formato de destino del modelo exportado, que define la compatibilidad con el hardware NPU DEEPX.
imgszint o tuple640Tamaño de imagen deseado para la entrada del modelo. La exportación a DEEPX requiere una entrada cuadrada: pasa un entero (por ejemplo, 640) o una tupla cuya altura sea igual a la anchura.
quantizeint o str8/autoPrecisión de cuantización. 8 (INT8) es necesaria para la exportación a DEEPX y se activa automáticamente si no se especifica. Sustituye a las opciones obsoletas half/int8.
simplifyboolTrueSimplifica el grafo ONNX intermedio con onnxslim.
opsetintNoneEspecifica la versión del opset de ONNX para el grafo ONNX intermedio. Si no se establece, utiliza la última versión compatible.
datastrNoneArchivo YAML del conjunto de datos utilizado para la calibración INT8; para clasificación, en su lugar, se acepta un directorio de conjunto de datos o un nombre de conjunto de datos integrado. Si se omite junto con quantize=8, Ultralytics selecciona el conjunto de datos de calibración predeterminado para la tarea del modelo.
devicestrNoneEspecifica el dispositivo para la exportación: GPU (device=0) o CPU (device=cpu).
optimizeboolFalseActiva una optimización superior del compilador, lo que reduce la latencia de inferencia y aumenta el tiempo de compilación.
Consejo

Ejecuta siempre la exportación a DEEPX en un host Linux x86-64. El compilador dx_com no es compatible con ARM64.

Para obtener más información sobre el proceso de exportación, visita la página de la documentación de Ultralytics sobre exportación.

Estructura de salida#

Tras una exportación correcta, se crea un directorio de modelo con la siguiente estructura:

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.)

El archivo .dxnn es el binario del modelo compilado que el tiempo de ejecución dx_engine carga directamente en la NPU. metadata.yaml contiene los nombres de las clases, el tamaño de imagen y otra información utilizada por la cadena de inferencia de Ultralytics.

Implementación de modelos YOLO DEEPX exportados#

Cuando hayas exportado correctamente tu modelo Ultralytics YOLO al formato DEEPX, el siguiente paso es implementarlo en hardware NPU DEEPX.

Instalación del tiempo de ejecución#

La inferencia requiere el controlador de la NPU DEEPX, el tiempo de ejecución libdxrt y el paquete dx_engine de Python.

Nota

El tiempo de ejecución de DEEPX es compatible tanto con Linux x86-64 como con ARM64 (por ejemplo, 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

Verifica que el tiempo de ejecución esté instalado correctamente con dxrt-cli --version. Deberías ver una salida similar a esta:

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

Una vez instalado el tiempo de ejecución, ejecuta la inferencia y la validación en tu dispositivo DEEPX exactamente como se muestra en la sección Uso anterior: el _deepx_model exportado se carga directamente con YOLO(...).

Visualización con dxtron#

dxtron es el visualizador de grafos de DEEPX para inspeccionar el modelo .dxnn compilado.

Instala dxtron en Linux x86-64 descargando el paquete .deb del SDK de DEEPX e instalándolo mediante 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

A continuación, abre tu modelo exportado:

dxtron yolo26n_deepx_model/yolo26n.dxnn
Nota

dxtron está disponible para plataformas x86-64 y aarch64.

Evaluaciones comparativas#

El equipo de Ultralytics comparó modelos YOLO26, evaluando la velocidad y la precisión entre PyTorch y DEEPX.

Rendimiento
Raspberry Pi 5 DEEPX M1 NPU vs PyTorch benchmarks
ModeloFormatoEstadoTamaño (MB)metrics/mAP50-95(B)Tiempo de inferencia (ms/im)
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
ModeloFormatoEstadoTamaño (MB)precisión (top1)precisión (top5)Tiempo de inferencia (ms/im)
YOLO26n-clsPyTorch5.60.4310.71623.8
YOLO26n-clsDEEPX5.90.3330.6862.7
Nota

La validación de las pruebas de rendimiento anteriores se realizó utilizando COCO128 para detección, COCO128-seg para segmentación, COCO8-pose para estimación de postura, ImageNet100 para clasificación y DOTA128 para modelos OBB. El tiempo de inferencia no incluye el procesamiento previo ni posterior.

Consejos para optimizar el rendimiento

Para obtener el máximo rendimiento de inferencia de la NPU DX-M1 conectada a una Raspberry Pi 5, abre el archivo de configuración de arranque y activa la compatibilidad con PCIe Gen 3.

sudo nano /boot/firmware/config.txt

Añade las siguientes líneas al final del archivo:

dtparam=pciex1
dtparam=pciex1_gen=3

Guarda y sal (Ctrl+X, después Y y, por último, Enter) y reinicia:

sudo reboot

Comprueba la generación de PCIe. La velocidad esperada es de 8GT/s para PCIe Gen3.

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

Flujo de trabajo recomendado#

  1. Entrena tu modelo mediante el modo Entrenar de Ultralytics
  2. Exporta al formato DEEPX utilizando model.export(format="deepx")
  3. Valida la precisión con yolo val para verificar que la pérdida por cuantización sea mínima
  4. Predice usando yolo predict para realizar una validación cualitativa
  5. Implementa el directorio _deepx_model/ exportado en hardware NPU DEEPX utilizando el tiempo de ejecución dx_engine

Aplicaciones en el mundo real#

Los modelos YOLO implementados en hardware NPU DEEPX son adecuados para una amplia variedad de aplicaciones de IA en el edge:

  • Vigilancia inteligente: detección de objetos en tiempo real para sistemas de seguridad y monitorización, con bajo consumo energético y sin depender de la nube.
  • Automatización industrial: control de calidad en el dispositivo, detección de defectos y monitorización de procesos en entornos de fábrica.
  • Robótica: navegación basada en visión, evitación de obstáculos y reconocimiento de objetos en robots y drones autónomos.
  • Agricultura inteligente: monitorización del estado de los cultivos, detección de plagas y estimación del rendimiento mediante visión por computador aplicada a la agricultura.
  • Análisis minorista: análisis del flujo de clientes, monitorización de estanterías y seguimiento del inventario con inferencia en el edge en tiempo real.

Resumen#

En esta guía has aprendido a exportar modelos Ultralytics YOLO al formato DEEPX e implementarlos en hardware NPU DEEPX. La cadena de exportación utiliza la calibración INT8 y el compilador dx_com para generar un binario .dxnn optimizado para el hardware, mientras que el tiempo de ejecución dx_engine gestiona la inferencia en el dispositivo.

La combinación de Ultralytics YOLO y la tecnología NPU de DEEPX ofrece una solución eficaz para ejecutar cargas de trabajo avanzadas de visión por computador en dispositivos embebidos y edge, con un alto rendimiento y un bajo consumo energético para aplicaciones en tiempo real.

Para obtener más información sobre el uso, visita el sitio web oficial de DEEPX.

Además, si quieres obtener más información sobre otras integraciones de Ultralytics YOLO, visita nuestra página de la guía de integraciones. Allí encontrarás muchos recursos e información útil.

Preguntas frecuentes#

  • Puedes exportar tu modelo utilizando el método export() en Python o mediante la CLI. La exportación activa automáticamente la cuantización INT8 y utiliza un conjunto de datos de calibración para minimizar la pérdida de precisión. El paquete del compilador dx_com se instala automáticamente si aún no está presente.

    Ejemplo
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="deepx")
  • Las NPUs de DEEPX están diseñadas para ejecutar cálculos INT8 con la máxima eficiencia. El compilador dx_com cuantiza el modelo durante la exportación mediante una calibración basada en EMA con imágenes de un conjunto de datos real, lo que permite a la NPU ofrecer todo su rendimiento. La precisión INT8 se impone siempre en las exportaciones a DEEPX: si solicitas una precisión diferente, se sustituirá y se mostrará una advertencia.

  • La exportación de modelos DEEPX (compilación) requiere un host Linux x86-64. El paso de exportación no es compatible con ARM64 (aarch64) ni con máquinas Windows. La inferencia utilizando el modelo .dxnn exportado puede ejecutarse en cualquier plataforma Linux (x86-64 y ARM64) compatible con el tiempo de ejecución dx_engine.

  • La exportación crea un directorio (por ejemplo, yolo26n_deepx_model/) que contiene:

    • yolo26n.dxnn — el binario NPU compilado
    • config.json — configuración de calibración y preprocesamiento
    • metadata.yaml — metadatos del modelo, incluidos los nombres de las clases y el tamaño de imagen
  • Sí. Cualquier modelo entrenado mediante el modo Train de Ultralytics y exportado con format="deepx" puede implementarse en hardware NPU DEEPX, siempre que utilice operaciones de capa compatibles. La exportación admite las siete tareas de Ultralytics: detección, segmentación de instancias, segmentación semántica, estimación de profundidad, clasificación, estimación de pose y caja delimitadora orientada (OBB).

  • La cadena de exportación de DEEPX utiliza todas las imágenes del conjunto de datos de calibración con el método de calibración EMA. Por lo general, unos cientos de imágenes son suficientes para obtener una buena precisión de cuantización. Si el tiempo de compilación supone un problema con conjuntos de datos grandes, indica a data un conjunto de datos más pequeño.

  • El tiempo de ejecución de DEEPX no se incluye con ultralytics y debe instalarse por separado antes de ejecutar inferencias. En máquinas Linux x86-64 y máquinas Linux ARM64 (por ejemplo, Raspberry Pi 5), instala el controlador de la NPU (dxrt-driver-dkms) y el tiempo de ejecución (libdxrt) desde las versiones de DEEPX-AI en GitHub y, después, instala la rueda de Python dx_engine incluida. Consulta la sección Instalación del tiempo de ejecución anterior para ver los comandos paso a paso.

Comentarios