Link to this sectionExportación a Huawei Ascend para modelos Ultralytics YOLO#
Desplegar modelos de visión artificial en procesadores de IA Huawei Ascend requiere compilarlos en el formato de modelo offline .om ejecutado por el Ascend AI Core. Exportar modelos de Ultralytics YOLO a Ascend te permite ejecutar inferencias rápidas y de bajo consumo en placas de desarrollo Atlas y dispositivos OrangePi AIPro utilizados en robótica, inspección industrial y despliegues de cámaras inteligentes.
Link to this section¿Qué es Huawei Ascend?#
Huawei Ascend es una familia de procesadores de IA combinada con CANN (Compute Architecture for Neural Networks), la pila de computación heterogénea de Huawei. CANN incluye el ATC (Ascend Tensor Compiler), una herramienta del lado del host que convierte un grafo ONNX estándar en un modelo offline .om específico para el hardware dirigido al Ascend AI Core.
Dado que ATC se ejecuta completamente en el host, puedes compilar modelos en una máquina Linux x86-64 o ARM64 normal sin ningún hardware Ascend conectado, y luego copiar el .om resultante al dispositivo de destino para la inferencia.
Link to this sectionFormato de exportación a Ascend#
El exportador de Ultralytics primero escribe un grafo ONNX intermedio y luego invoca a ATC para compilarlo para el SoC al que apuntas con el argumento name. El resultado es un directorio de modelos independiente que contiene el binario .om y sus metadatos de Ultralytics.
Link to this sectionCaracterísticas principales de los modelos Ascend#
- AI Core dedicado: Los modelos compilados se ejecutan en el Ascend AI Core en lugar de en la CPU del host, lo que ofrece un rendimiento sustancialmente mayor para flujos de trabajo de cámaras en tiempo real.
- Compilación en el host: ATC no necesita una NPU conectada, por lo que la exportación se ejecuta en CI, en contenedores o en un ordenador portátil.
- Primero ONNX: La exportación ONNX estándar de Ultralytics se alimenta directamente en la cadena de herramientas CANN sin ningún formato intermedio propietario.
- Formas estáticas: La forma de entrada está integrada en el
.omen el momento de la compilación, lo que elimina la sobrecarga de negociación de formas en tiempo de ejecución. - Orientación a múltiples dispositivos: El mismo grafo ONNX se compila para cualquier SoC compatible cambiando
name.
Link to this sectionTareas compatibles#
La exportación a Ascend admite las siete tareas de Ultralytics. Detección, segmentación de instancias, pose, OBB y clasificación cubren las familias YOLO26, YOLO11 y YOLOv8; la segmentación semántica y la estimación de profundidad son exclusivas de YOLO26.
| Tarea | Compatible |
|---|---|
| Detección de objetos | ✅ |
| Segmentación de instancias | ✅ |
| Segmentación semántica | ✅ |
| Estimación de pose | ✅ |
| Detección OBB | ✅ |
| Clasificación | ✅ |
| Estimación de profundidad | ✅ |
Link to this sectionDispositivos compatibles#
Pasa el SoC de destino con name; ATC lo incorpora en el .om como --soc_version, por lo que debe coincidir con la placa en la que realizas el despliegue. Localmente puedes compilar para cualquier SoC para el cual tu instalación de CANN proporcione núcleos. En Ultralytics Platform, los destinos 310B se indican como próximamente disponibles mientras se añaden sus núcleos de operador a la imagen de compilación.
name | Dispositivos | Exportación local | Plataforma |
|---|---|---|---|
Ascend310P3 | Atlas 300I Pro, Atlas 300V Pro | ✅ | ✅ |
Ascend310P1 | Atlas 300I | ✅ | ✅ |
Ascend310B4 | OrangePi AIPro 20T, Atlas 200I A2 | ✅ | Próximamente |
Ascend310B1 | OrangePi AIPro 8T | ✅ | Próximamente |
Link to this sectionExportar a Ascend: Convierte tu modelo YOLO#
La exportación a Ascend requiere el kit de herramientas CANN, que es exclusivo de Linux. El compilador atc debe estar en tu PATH; carga el script del entorno CANN antes de exportar, por ejemplo, source /usr/local/Ascend/ascend-toolkit/set_env.sh.
Link to this sectionInstalación#
Instala Ultralytics y luego instala CANN por separado desde Huawei.
# Install the required package for YOLO
pip install ultralyticsEl kit de herramientas CANN es distribuido por Huawei y no se instala automáticamente. Descárgalo desde la página de descargas de la comunidad Ascend o utiliza una de las imágenes de contenedor oficiales de ascendai/cann, que incluyen ATC y sus dependencias.
ATC solo puede compilar para familias de SoC cuyos núcleos de operador estén instalados. Un kit de herramientas que solo contenga núcleos ascend310p falla con No supported Ops kernel and engine are found for ... Conv2D cuando se solicita un destino Ascend310B4. Instala el paquete Ascend-cann-kernels-<soc> correspondiente al dispositivo en el que realizas el despliegue.
Link to this sectionUso#
El formato Ascend admite los modos Export, Predict y Validate. La inferencia y la validación se ejecutan en hardware Ascend. Exporta tu modelo y, a continuación, cárgalo para ejecutar la inferencia o validar su precisión.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to Ascend format for an Atlas 200I / OrangePi AIPro board
model.export(format="ascend", name="Ascend310B4")
# Load the exported Ascend model and run inference on the device
ascend_model = YOLO("yolo26n_ascend_model")
results = ascend_model("https://ultralytics.com/images/bus.jpg")Link to this sectionArgumentos de exportación#
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
format | str | 'ascend' | Formato de destino para el modelo exportado, que define la compatibilidad con los procesadores de IA Ascend. |
name | str | 'Ascend310B4' | SoC de destino pasado a ATC como --soc_version, por ejemplo, Ascend310P3. Cualquier SoC para el que tu instalación de CANN tenga núcleos es válido; consulta Dispositivos compatibles. Debe coincidir con tu dispositivo de despliegue. |
imgsz | int o tuple | 640 | Tamaño de imagen deseado para la entrada del modelo, integrado en el .om como una forma estática. |
batch | int | 1 | Tamaño de lote estático compilado en el modelo offline. |
quantize | int | 16 | Precisión de cuantización. La exportación a Ascend es exclusivamente en FP16 y habilita automáticamente 16 si no se especifica. Reemplaza los indicadores obsoletos half/int8. |
opset | int | 17 | Conjunto de operadores ONNX para el grafo intermedio. Limitado a 17, la versión más alta que acepta el analizador ONNX de CANN. |
simplify | bool | True | Simplifica el grafo ONNX intermedio con onnxslim. |
nms | bool | False | Agrega supresión de no máximos (NMS) a los modelos compatibles de detección, segmentación, pose y OBB. |
El Ascend AI Core solo acepta entradas DT_FLOAT16 y DT_INT8 para convoluciones, por lo que un modelo offline en FP32 no se puede ejecutar en el hardware. Solicitar quantize=32 genera un error en lugar de producir silenciosamente un modelo que no se ejecutará.
Para obtener más detalles sobre el proceso de exportación, visita la página de documentación de Ultralytics sobre la exportación.
Link to this sectionEstructura de salida#
Tras una exportación exitosa, se crea un directorio de modelo con la siguiente estructura:
yolo26n_ascend_model/
├── yolo26n_Ascend310B4.om # Compiled Ascend offline model (AI Core executable)
└── metadata.yaml # Model metadata (classes, image size, task, etc.)El archivo .om es el modelo offline compilado que el entorno de ejecución de CANN carga en el dispositivo. Su nombre incluye el SoC de destino para que el artefacto sea autodescriptivo; mantén un .om por directorio, ya que el cargador selecciona el único modelo que encuentra allí. El archivo metadata.yaml contiene los nombres de las clases, el tamaño de la imagen y otra información utilizada por el pipeline de inferencia de Ultralytics.
Link to this sectionDespliegue de modelos YOLO Ascend exportados#
Una vez que hayas exportado con éxito tu modelo Ultralytics YOLO al formato Ascend, el siguiente paso es desplegarlo en hardware Ascend.
Link to this sectionInstalación del entorno de ejecución#
La inferencia requiere el entorno de ejecución CANN en el dispositivo junto con el paquete de Python ais_bench, que encapsula los enlaces pyACL de CANN. Compílalo e instálalo desde el repositorio de herramientas de Ascend de Huawei:
# On the Ascend device, with CANN installed and sourced
source /usr/local/Ascend/ascend-toolkit/set_env.sh
# Build and install the ais_bench inference wheel
git clone https://gitee.com/ascend/tools.git
cd tools/ais-bench_workload/tool/ais_bench
pip3 wheel ./backend -v
pip3 install ./aclruntime-*.whl
pip3 wheel ./ -v
pip3 install ./ais_bench-*.whlCopia el directorio exportado yolo26n_ascend_model al dispositivo y, a continuación, ejecuta la inferencia exactamente igual que lo harías con cualquier otro formato de Ultralytics.
Link to this sectionFlujo de trabajo recomendado#
- Entrena tu modelo usando el modo de entrenamiento de Ultralytics o comienza a partir de un punto de control preentrenado.
- Exporta a Ascend en cualquier host Linux con CANN instalado, pasando el
nameque coincida con tu SoC de destino. - Copia el directorio del modelo exportado al dispositivo Ascend.
- Despliega con el entorno de ejecución CANN y
ais_benchpara realizar inferencias en el dispositivo.
Link to this sectionAplicaciones en el mundo real#
Los modelos YOLO que se ejecutan en hardware Ascend se adaptan a una amplia gama de aplicaciones de visión integrada e industrial:
- Automatización industrial: Inspección de calidad de alta velocidad y detección de defectos en líneas de producción.
- Videovigilancia inteligente: Detección de objetos con múltiples cámaras en tiempo real en pasarelas de borde sin un servidor central.
- Robótica: Percepción a bordo para robots móviles autónomos y brazos colaborativos.
- Ciudades inteligentes: Monitoreo de tráfico y análisis de peatones en unidades de borde de baja potencia.
Link to this sectionResumen#
En esta guía, has aprendido a exportar modelos Ultralytics YOLO al formato .om de Huawei Ascend utilizando el compilador CANN ATC. La exportación se ejecuta íntegramente en el host, produce un directorio de modelos independiente y apunta a cualquier SoC Ascend compatible mediante un único argumento name, lo que te brinda una ruta directa desde un punto de control .pt entrenado hasta la inferencia acelerada en FP16 en procesadores de IA Ascend.
Para obtener más detalles sobre el uso, visita la documentación oficial de CANN.
Asimismo, si deseas saber más sobre otras integraciones de Ultralytics YOLO, visita nuestra página de la guía de integración para encontrar una gran cantidad de recursos útiles.
Link to this sectionFAQ#
Link to this section¿Cómo exporto mi modelo Ultralytics YOLO al formato Ascend?#
Instala Ultralytics y el kit de herramientas CANN, carga el entorno CANN para que atc esté en tu PATH y, a continuación, exporta con model.export(format="ascend", name="Ascend310B4") en Python o yolo export model=yolo26n.pt format=ascend name=Ascend310B4 desde la CLI. Configura name con el SoC de tu dispositivo de despliegue.
Link to this section¿Necesito hardware Ascend para exportar un modelo?#
No. El compilador ATC se ejecuta completamente en el host, por lo que la compilación funciona en una máquina Linux estándar x86-64 o ARM64 sin ninguna NPU conectada. Solo necesitas hardware Ascend para ejecutar la inferencia en el archivo .om exportado.
Link to this section¿Por qué mi exportación falla con el mensaje "No supported Ops kernel and engine are found"?#
Tu instalación de CANN no incluye núcleos de operador para el SoC que solicitaste. Cada kit de herramientas incluye núcleos para familias de SoC específicas, por lo que debes instalar el paquete Ascend-cann-kernels-<soc> correspondiente a tu objetivo, o utilizar una imagen de contenedor creada para esa familia de dispositivos.
Link to this section¿Por qué la exportación a Ascend solo admite FP16?#
Las convoluciones del Ascend AI Core solo aceptan tensores DT_FLOAT16 y DT_INT8. Un modelo offline en FP32 fallaría al ejecutarse en el hardware, por lo que el exportador compila con --precision_mode=force_fp16 y rechaza cualquier solicitud explícita de quantize=32.
Link to this section¿Qué dispositivos Ascend son compatibles?#
Cualquier SoC para el cual tu kit de herramientas CANN instalado proporcione núcleos, seleccionado a través del argumento name. Consulta Dispositivos compatibles para conocer los cuatro destinos validados y su disponibilidad en Ultralytics Platform.