Ultralytics YOLO27: Únete a la lista de espera.
Get Started

Exportación y despliegue con Axelera AI#

Ultralytics colabora con Axelera AI para ofrecer inferencia de alto rendimiento y eficiencia energética en dispositivos Edge AI. Exporta y despliega modelos Ultralytics YOLO directamente en la AIPU Metis® mediante el SDK Voyager.

Ecosistema de despliegue en el edge de Axelera AI para YOLO

Axelera AI ofrece aceleración por hardware dedicada para la visión artificial en el edge, con una arquitectura de flujo de datos propia y computación en memoria para alcanzar hasta 856 TOPS con un bajo consumo energético.

Cómo elegir el hardware adecuado#

Axelera AI ofrece distintos formatos para adaptarse a diferentes limitaciones de despliegue. El gráfico siguiente te ayuda a identificar el hardware óptimo para desplegar Ultralytics YOLO.

Catálogo de hardware#

La gama de hardware de Axelera está optimizada para ejecutar Ultralytics YOLO26 y versiones anteriores con una alta eficiencia en FPS por vatio.

Tarjetas aceleradoras#

Estas tarjetas permiten acelerar la IA en dispositivos host existentes, lo que facilita los despliegues en entornos existentes.

ProductoFormatoCómputoRendimiento (INT8)Aplicación de destino
Metis PCIe x4PCIe Gen3 x164x AIPU Metis856 TOPSAnalítica de vídeo de alta densidad, ciudades inteligentes
Metis PCIe x1PCIe Gen3 x11x AIPU Metis214 TOPSPC industriales, gestión de colas en comercios
Metis M.2M.2 2280 M-Key1x AIPU Metis214 TOPSDrones, robótica, dispositivos médicos portátiles
Metis M.2 MAXM.2 22801x AIPU Metis214 TOPSEntornos que requieren una gestión térmica avanzada

Sistemas integrados#

Para ofrecer soluciones listas para usar, Axelera colabora con fabricantes y proporciona sistemas validados previamente para la AIPU Metis.

  • Placa de cómputo Metis: dispositivo edge independiente que combina la AIPU Metis con una CPU ARM Rockchip RK3588.
  • Estaciones de trabajo: torres empresariales de Dell (Precision 3460XE) y Lenovo (ThinkStation P360 Ultra).
  • PC industriales: sistemas robustos de Advantech y Aetina, diseñados para la automatización de la fabricación.

Tareas compatibles#

La exportación a Axelera admite 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 esos cabezales.

Los modelos de detección, segmentación de instancias, pose y OBB de YOLO26 exportan de forma predeterminada su cabezal uno a uno sin NMS, que el entorno de ejecución de Axelera decodifica en el host. Si pasas nms=True, se exporta en su lugar el cabezal uno a muchos, que obtiene peores resultados en Metis: la detección YOLO26n alcanza un mAP50-95 de 0.212 en COCO128 de esa forma, frente a 0.453 con el cabezal sin NMS.

TareaYOLOv8YOLO11YOLO26
Detectar✅✅✅
Segmentar✅✅✅
Semántica❌❌✅
Profundidad❌❌✅
Clasificar✅✅✅
Pose✅✅✅
OBB✅✅✅
Calibra los modelos de profundidad con imágenes de tus propias escenas

Los rangos de cuantización se obtienen de las imágenes de calibración, y el valor predeterminado para profundidad, depth8.yaml, contiene cuatro fotogramas de interior. En la partición de validación de 654 imágenes de NYU Depth V2, YOLO26n de profundidad calibrado con ese valor predeterminado obtiene un delta1 de 0.742 en Metis, frente a 0.783 del modelo PyTorch, mientras que con 100 fotogramas de entrenamiento de NYU obtiene 0.780. Pasa data= con un YAML de conjunto de datos cuya partición val contenga al menos 100 imágenes de las escenas que verá el modelo; la calibración lee la partición val.

Instalación#

Requisitos de la plataforma

La exportación al formato Axelera requiere:

  • Sistema operativo: solo Linux (se recomienda Ubuntu 22.04/24.04)
  • Hardware: acelerador Axelera AI (dispositivos Metis)
  • Python: versiones 3.10, 3.11, 3.12 y 3.13
  • PyTorch: torch>=2.8,<2.15
  • Voyager SDK: 1.9.0; la exportación instala esta versión del kit de desarrollo y la inferencia instala esta versión del entorno de ejecución
  • Controlador del kernel Metis: metis-dkms 1.7.0 o posterior, instalado por separado de pip
  • Dependencia del sistema: sudo apt install libgl1 (necesaria para OpenCV, no se incluye mediante pip)

Instalación de Ultralytics#

pip install ultralytics

Para obtener instrucciones detalladas, consulta nuestra guía de instalación de Ultralytics. Si tienes problemas, consulta nuestra guía de problemas frecuentes.

Instalación del controlador de Axelera#

  1. Añade la clave del repositorio de Axelera:

    sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg"
  2. Añade el repositorio a apt:

    Elige el fragmento adecuado de los siguientes según el sistema operativo que uses.

    # Ubuntu 22.04
    sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu22 main' > /etc/apt/sources.list.d/axelera.list"
    # Ubuntu 24.04
    sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu24 main' > /etc/apt/sources.list.d/axelera.list"
  3. Instala el controlador y cárgalo. SDK 1.9 requiere metis-dkms 1.7.0 o posterior, así que aquí se instala la versión más reciente:

    sudo apt update
    sudo apt install -y metis-dkms
    sudo modprobe metis
Mantén actualizado el controlador del kernel junto con el SDK

El controlador del kernel se instala por separado de los paquetes de Python del SDK, por lo que, después de actualizar el SDK, también debes actualizar el controlador para que cumpla la versión mínima requerida por ese SDK: 1.7.0 para SDK 1.9. No se comprueba durante la instalación y, si el controlador es anterior a la versión mínima, el dispositivo queda inaccesible: axdevice informa de la versión requerida y no consigue abrir el dispositivo.

[libaxldev.c:285] Found kernel driver version 1.6.2, but at least version 1.7.0 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0

Consulta también el Paso 3: Instala el controlador del kernel Metis. Si ya estás usando una versión anterior del SDK en Ubuntu, actualiza el controlador y vuelve a cargar el módulo del kernel (no hace falta reiniciar):

sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metis

A continuación, vuelve a ejecutar axdevice para confirmar que se detecta el dispositivo.

La primera ejecución descarga el SDK automáticamente

La primera vez que ejecutes yolo export format=axelera o yolo predict con un modelo Axelera, se descargarán e instalarán automáticamente los paquetes del SDK de Axelera. Esto puede tardar varios minutos, según la velocidad de conexión, y no se muestra ningún indicador de progreso durante la descarga. Para instalarlo manualmente antes:

pip install axelera-devkit==1.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
Los modelos exportados con SDK 1.8 siguen funcionando

SDK 1.9 no eleva la versión del formato de modelo compilado .axm, por lo que un directorio _axelera_model exportado con la versión 1.8 se carga y ejecuta sin cambios. Vuelve a exportar solo para aprovechar las mejoras del compilador.

Un SDK que sí eleva la versión del formato rechaza los directorios antiguos al cargarlos, que es lo que ocurre al actualizar desde la versión 1.7 o anterior:

Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.

Exportación de modelos YOLO a Axelera#

El formato Axelera es compatible con los modos Exportar, Predecir y Validar. La inferencia y la validación se ejecutan en hardware AIPU Metis de Axelera. Exporta el modelo y, a continuación, carga el modelo exportado para ejecutar la inferencia o validar su precisión.

Exportar
from ultralytics import YOLO

# Carga un modelo YOLO26
model = YOLO("yolo26n.pt")

# Exporta el modelo al formato Axelera
model.export(format="axelera")  # creates 'yolo26n_axelera_model'
Predecir
from ultralytics import YOLO

# Carga el modelo Axelera exportado
model = YOLO("yolo26n_axelera_model")

# Ejecutar inferencia
results = model("https://ultralytics.com/images/bus.jpg")
Validar
from ultralytics import YOLO

# Carga el modelo Axelera exportado
model = YOLO("yolo26n_axelera_model")

# Valida la precisión con el conjunto de datos COCO8
metrics = model.val(data="coco8.yaml")

Argumentos de exportación#

ArgumentoTipoPredeterminadoDescripción
formatstr'axelera'Formato de destino para el hardware AIPU Metis de Axelera.
imgszint o tuple640Tamaño de imagen para la entrada del modelo.
batch*int1Tamaño del lote de calibración. El modelo compilado procesa una imagen cada vez.
quantizeint o str8/autoPrecisión de cuantización. 8 (INT8) es obligatorio y se activa automáticamente para la AIPU Axelera. Sustituye a los indicadores obsoletos half/int8. Consulta Cuantización INT8.
datastrNoneArchivo YAML del conjunto de datos de calibración; para clasificación, en su lugar se acepta un directorio del conjunto de datos o el nombre de un conjunto de datos integrado. Si se omite, Ultralytics selecciona un conjunto de datos de calibración específico para la tarea.
fractionfloat, int o list1.0Subconjunto de calibración indicado como proporción, número de imágenes o proporciones/recuentos [train, val, test]. Las listas de dos elementos mantienen completo test, mientras que 0 lo omite (se recomiendan entre 100 y 400 imágenes).
devicestrNoneDispositivo de exportación: GPU (device=0) o CPU (device=cpu).

* Los modelos se compilan para una sola imagen, así que el parámetro de exportación batch solo establece el tamaño del lote de calibración. Pasa batch a predict en su lugar para entregar varias imágenes a la vez al planificador de Axelera (Voyager SDK 1.8.0 o posterior): consulta Rendimiento máximo.

Consulta todas las opciones de exportación en la documentación del modo Exportar.

Estructura de salida#

yolo26n_axelera_model/
├── yolo26n.axm                  # Axelera model file
├── compiler_config_final.toml  # Compiler configuration used for the build
└── metadata.yaml               # Model metadata (classes, image size, etc.)

Benchmarks de Axelera AI#

La AIPU Metis maximiza el rendimiento y minimiza el consumo energético.

ModeloFPS de Metis PCIe (fotogramas por segundo)FPS de Metis M.2 (fotogramas por segundo)
YOLOv8n847771
YOLO11n746574
YOLO26n648.6484.9

Benchmarks basados en datos de Axelera AI. Los FPS reales dependen del tamaño del modelo, el procesamiento por lotes y la resolución de entrada.

Estas cifras corresponden al rendimiento del host y se han medido con el zoo de modelos mediante la canalización de streaming del Voyager SDK sobre un archivo de vídeo de 720p. Una única llamada a predict devuelve la latencia por imagen, que es una magnitud distinta.

Aplicaciones en el mundo real#

Ultralytics YOLO en hardware Axelera permite soluciones avanzadas de computación en el borde:

  1. Entrena tu modelo con el modo Train de Ultralytics
  2. Exporta al formato de Axelera con model.export(format="axelera")
  3. Valida la precisión con yolo val para comprobar que la pérdida por cuantización es mínima
  4. Predice con yolo predict para realizar una validación cualitativa
  5. Despliega en una canalización integral de alto rendimiento sin depender de PyTorch; consulta los ejemplos de YOLO en Voyager SDK para ver canalizaciones componibles de Python que utilizan axelera-rt

Comprobación del estado del dispositivo#

Comprueba que tu dispositivo Axelera funciona correctamente:

# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevice

Para obtener diagnósticos detallados, consulta la documentación de AxDevice.

Rendimiento máximo#

Los modelos se compilan para una sola imagen, y una sola imagen se ejecuta en un núcleo AIPU. Si pasas varias imágenes a Predict, se entregan juntas al planificador de Axelera, que las distribuye entre los núcleos del dispositivo:

yolo predict model=yolo26n_axelera_model source=path/to/images batch=32

yolo26n a imgsz=640 sobre las 128 imágenes de COCO128 de un directorio, Metis PCIe, mediana de tres ejecuciones:

Voyager SDKDispositivosbatch=1batch=8batch=32
1.8.0136 img/s45 img/s40 img/s
1.8.0239 img/s41 img/s41 img/s
1.9.0141 img/s85 img/s109 img/s
1.9.0235 img/s83 img/s113 img/s

En SDK 1.9, el uso de un lote es lo que aumenta el rendimiento: 2,7 veces con batch=32, mientras que la versión 1.8 se mantiene cerca de 40 img/s con cualquier tamaño de lote. Usa un lote grande para maximizar el rendimiento sin conexión y batch=1 cuando importe la latencia por imagen. Un segundo dispositivo aporta poco a predict: con batch=32, cada imagen ya dedica unos 4 ms al preprocesamiento en el host, aproximadamente lo mismo que tarda en el dispositivo.

Más allá de predict#

Para producción que requiera el máximo rendimiento, el Voyager SDK de Axelera ofrece:

  • Canalizaciones de inferencia en streaming que mantienen varios fotogramas en curso
  • Compilación de un modelo en varios núcleos
  • Inferencia por mosaicos para cámaras de mayor resolución

Esas rutas omiten el preprocesamiento y el posprocesamiento de PyTorch que predict ejecuta en el host. Consulta el zoo de modelos para ver las pruebas de FPS o contacta con Axelera para obtener asistencia para producción.

Problemas conocidos#

Limitaciones conocidas
  • Limitaciones de potencia de M.2: Los modelos grandes o extragrandes pueden provocar errores en tiempo de ejecución en aceleradores M.2 debido a las limitaciones de la fuente de alimentación.

Para obtener asistencia, visita la comunidad de Axelera.

Preguntas frecuentes#

  • Voyager SDK permite exportar modelos YOLOv8, YOLO11 y YOLO26. Consulta las tareas compatibles para saber qué tareas están disponibles para cada modelo.

  • Sí. Cualquier modelo entrenado con el modo Train de Ultralytics se puede exportar al formato de Axelera, siempre que utilice capas y operaciones compatibles.

  • Voyager SDK de Axelera cuantiza automáticamente los modelos para la arquitectura AIPU de precisión mixta. En la mayoría de las tareas de detección de objetos, las mejoras de rendimiento (más FPS y menor consumo) compensan con creces el efecto mínimo en el mAP. La cuantización puede tardar desde unos segundos hasta varias horas, según el tamaño del modelo. Ejecuta yolo val después de la exportación para verificar la precisión.

  • Recomendamos usar entre 100 y 400 imágenes. Más de 400 no aporta ningún beneficio adicional y aumenta el tiempo de cuantización. Prueba con 100, 200 y 400 imágenes para encontrar el equilibrio óptimo.

  • El SDK, los controladores y las herramientas de compilación están disponibles en el portal para desarrolladores de Axelera.

Comentarios