Exportación e implementación en Axelera AI
Ultralytics colabora con Axelera AI para permitir una inferencia de alto rendimiento y eficiente energéticamente en dispositivos de Edge AI. Exporta e implementa modelos Ultralytics YOLO directamente en la Metis® AIPU utilizando el Voyager SDK.
Axelera AI proporciona aceleración de hardware dedicada para visión artificial en el borde, utilizando una arquitectura de flujo de datos patentada y computación en memoria para ofrecer hasta 856 TOPS con un bajo consumo de energía.
Selección del hardware adecuado
Axelera AI ofrece diversos factores de forma para adaptarse a diferentes restricciones de implementación. El siguiente gráfico ayuda a identificar el hardware óptimo para tu implementación de Ultralytics YOLO.
graph TD
A[Start: Select Deployment Target] --> B{Device Type?}
B -->|Edge Server / Workstation| C{Throughput Needs?}
B -->|Embedded / Robotics| D{Space Constraints?}
B -->|Standalone / R&D| E[Dev Kits & Systems]
C -->|Max Density <br> 30+ Streams| F[**Metis PCIe x4**<br>856 TOPS]
C -->|Standard PC <br> Low Profile| G[**Metis PCIe x1**<br>214 TOPS]
D -->|Drones & Handhelds| H[**Metis M.2**<br>2280 M-Key]
D -->|High Performance Embedded| I[**Metis M.2 MAX**<br>Extended Thermal]
E -->|ARM-based All-in-One| J[**Metis Compute Board**<br>RK3588 + AIPU]
E -->|Prototyping| K[**Arduino Portenta x8**<br>Integration Kit]
click F "https://store.axelera.ai/"
click G "https://store.axelera.ai/"
click H "https://store.axelera.ai/"
click J "https://store.axelera.ai/"Cartera de hardware
La línea de hardware de Axelera está optimizada para ejecutar Ultralytics YOLO26 y versiones anteriores con una alta eficiencia de FPS por vatio.
Tarjetas aceleradoras
Estas tarjetas permiten la aceleración de IA en dispositivos host existentes, facilitando implementaciones en entornos heredados (brownfield).
| Producto | Factor de forma | Cómputo | Rendimiento (INT8) | Aplicación objetivo |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x Metis AIPUs | 856 TOPS | Analítica de vídeo de alta densidad, ciudades inteligentes |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x Metis AIPU | 214 TOPS | PCs industriales, gestión de colas en retail |
| Metis M.2 | M.2 2280 M-Key | 1x Metis AIPU | 214 TOPS | Drones, robótica, dispositivos médicos portátiles |
| Metis M.2 MAX | M.2 2280 | 1x Metis AIPU | 214 TOPS | Entornos que requieren una gestión térmica avanzada |
Sistemas integrados
Para soluciones llave en mano, Axelera se asocia con fabricantes para proporcionar sistemas prevalidado para la Metis AIPU.
- Metis Compute Board: Un dispositivo de borde autónomo que empareja la Metis AIPU con una CPU ARM Rockchip RK3588.
- Estaciones de trabajo: Torres empresariales de Dell (Precision 3460XE) y Lenovo (ThinkStation P360 Ultra).
- PCs industriales: Sistemas reforzados de Advantech y Aetina diseñados para automatización de fabricación.
Tareas admitidas
Las siguientes tareas son compatibles con modelos YOLOv8, YOLO11 y YOLO26.
| Tarea | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Detección de objetos | ✅ | ✅ | ✅ |
| Estimación de pose | ✅ | ✅ | ✅ |
| Segmentación | ✅ | ✅ | ⚠️ Solo Voyager SDK |
| Cajas delimitadoras orientadas | ✅ | ✅ | ✅ |
| Clasificación | ✅ | ✅ | ✅ |
La segmentación YOLO26 aún no es compatible mediante el comando export de Ultralytics. Los usuarios que necesiten YOLO26-seg pueden realizar la implementación a través del Voyager SDK usando deploy.py, lo que proporciona una solución alternativa en espacio de usuario. El soporte nativo del compilador se añadirá en una futura versión.
Instalación
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 y 3.12
- Dependencia del sistema:
sudo apt install libgl1(requerido por OpenCV, no incluido mediantepip)
Instalación de Ultralytics
pip install ultralyticsPara obtener instrucciones detalladas, consulta nuestra guía de instalación de Ultralytics. Si encuentras dificultades, consulta nuestra guía de problemas comunes.
Instalación del controlador Axelera
-
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" -
Añade el repositorio a apt:
Elige el fragmento apropiado a continuación para que coincida con el sistema operativo que estás utilizando.
# 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" -
Instala el SDK y carga el controlador:
sudo apt update sudo apt install -y metis-dkms=1.4.16 sudo modprobe metis
La primera vez que ejecutes yolo export format=axelera o yolo predict con un modelo Axelera, se descargará e instalará automáticamente el paquete del SDK de Axelera. Esto puede llevar varios minutos dependiendo de la velocidad de tu conexión, y no se muestra ningún progreso durante la descarga. Para instalarlo manualmente con antelación:
pip install axelera-devkit==1.6.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.6.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleExportación de modelos YOLO a Axelera
Exporta tus modelos YOLO entrenados utilizando el comando de exportación estándar de Ultralytics.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export to Axelera format
model.export(format="axelera") # creates 'yolo26n_axelera_model' directoryEl compilador de Axelera requiere numpy<2. Si tu entorno tiene numpy>=2, el primer yolo export lo degradará automáticamente, pero la exportación fallará debido al estado obsoleto del módulo. Simplemente vuelve a ejecutar el mismo comando de exportación: tendrá éxito en el segundo intento.
Argumentos de exportación
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
format | str | 'axelera' | Formato de destino para el hardware Axelera Metis AIPU. |
imgsz | int o tuple | 640 | Tamaño de imagen para la entrada del modelo. |
batch | int | 1 | Especifica el tamaño de inferencia por lotes del modelo de exportación o el número máximo de imágenes que el modelo exportado procesará simultáneamente en modo predict. |
int8 | bool | True | Habilita la cuantización INT8 para AIPU. |
data | str | 'coco128.yaml' | Configuración del dataset para la calibración de cuantización. |
fraction | float | 1.0 | Fracción del conjunto de datos para la calibración (se recomiendan de 100 a 400 imágenes). |
device | str | None | Dispositivo de exportación: GPU (device=0) o CPU (device=cpu). |
Para todas las opciones de exportación, consulta la documentación del modo de exportación.
Estructura de salida
yolo26n_axelera_model/
├── yolo26n.axm # Axelera model file
└── metadata.yaml # Model metadata (classes, image size, etc.)Ejecución de inferencia
Carga el modelo exportado con la API de Ultralytics y ejecuta la inferencia, similar a cargar modelos ONNX.
from ultralytics import YOLO
# Load the exported Axelera model
model = YOLO("yolo26n_axelera_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() # Display resultsBenchmarks de Axelera AI
La Metis AIPU maximiza el rendimiento mientras minimiza el consumo de energía.
| Modelo | FPS (cuadros por segundo) de Metis PCIe | FPS (cuadros por segundo) de Metis M.2 |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.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.
Aplicaciones en el mundo real
Ultralytics YOLO en hardware Axelera permite soluciones avanzadas de computación en el borde:
- Retail inteligente: Conteo de objetos y analítica de mapas de calor en tiempo real para la optimización de tiendas.
- Seguridad industrial: Detección de EPIs de baja latencia en entornos de fabricación.
- Analítica con drones: Detección de objetos de alta velocidad en UAVs para agricultura y búsqueda y rescate.
- Traffic Systems: Edge-based license plate recognition and speed estimation.
Flujo de trabajo recomendado
- Entrena (Train) tu modelo usando el modo de entrenamiento de Ultralytics
- Exporta al formato Axelera usando
model.export(format="axelera") - Valida la precisión con
yolo valpara verificar una pérdida de cuantización mínima - Predice (Predict) usando
yolo predictpara una validación cualitativa - Implementa en un pipeline integral de alto rendimiento sin dependencia de PyTorch: consulta los ejemplos de YOLO en Voyager SDK para pipelines de Python componibles usando
axelera-rt
Comprobación del estado del dispositivo
Verifica que tu dispositivo Axelera esté funcionando correctamente:
# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevicePara obtener diagnósticos detallados, consulta la documentación de AxDevice.
Máximo rendimiento
Esta integración utiliza una configuración de un solo núcleo por motivos de compatibilidad. Para producción que requiera el máximo rendimiento, el Axelera Voyager SDK ofrece:
- Utilización multinúcleo (Metis AIPU de cuatro núcleos)
- Canalizaciones de inferencia en streaming
- Inferencia por mosaicos para cámaras de mayor resolución
Consulta el model-zoo para obtener pruebas de rendimiento de FPS o contacta con Axelera para recibir soporte de producción.
Problemas conocidos
- Limitaciones de energía en M.2: Los modelos grandes o extragrandes pueden experimentar errores de tiempo de ejecución en aceleradores M.2 debido a restricciones en la fuente de alimentación.
Para obtener ayuda, visita la comunidad de Axelera.
Preguntas frecuentes
¿Qué versiones de YOLO son compatibles con Axelera?
El Voyager SDK admite la exportación de modelos YOLOv8, YOLO11 y YOLO26. Consulta Tareas admitidas para ver la disponibilidad de tareas por modelo.
¿Puedo implementar modelos entrenados a medida?
Sí. Cualquier modelo entrenado con el modo de entrenamiento de Ultralytics puede exportarse al formato de Axelera, siempre que utilice capas y operaciones compatibles.
¿Cómo afecta la cuantización INT8 a la precisión?
El Voyager SDK de Axelera cuantiza automáticamente los modelos para la arquitectura AIPU de precisión mixta. Para la mayoría de las tareas de detección de objetos, las ganancias de rendimiento (más FPS, menor consumo de energía) superan significativamente el impacto mínimo en el mAP. La cuantización tarda desde unos segundos hasta varias horas, dependiendo del tamaño del modelo. Ejecuta yolo val después de la exportación para verificar la precisión.
¿Cuántas imágenes de calibración debo usar?
Recomendamos entre 100 y 400 imágenes. Más de 400 no proporciona beneficios adicionales y aumenta el tiempo de cuantización. Experimenta con 100, 200 y 400 imágenes para encontrar el equilibrio óptimo.
¿Dónde puedo encontrar el Voyager SDK?
El SDK, los controladores y las herramientas de compilación están disponibles a través del Portal de desarrolladores de Axelera.