YOLO Vision 2026:

Integração do Huawei Ascend com o Ultralytics YOLO#

A implementação de modelos de visão computacional em Huawei Ascend AI Processors requer a compilação dos mesmos para o formato de modelo offline .om, executado pelo Ascend AI Core. Exportar modelos Ultralytics YOLO para Ascend permite executar inferência rápida e de baixo consumo energético em placas de desenvolvimento Atlas e dispositivos OrangePi AIPro utilizados em aplicações de robótica, inspeção industrial e câmaras inteligentes.

O que é o Huawei Ascend?#

Huawei Ascend é uma família de AI Processors associada ao CANN (Arquitetura de Computação para Redes Neuronais), a stack de computação heterogénea da Huawei. O CANN inclui o ATC (Compilador de Tensores Ascend), uma ferramenta do lado do host que converte um grafo ONNX padrão num modelo offline específico do hardware .om, destinado ao Ascend AI Core.

Como o ATC é executado inteiramente no host, você pode compilar modelos numa máquina Linux x86-64 ou ARM64 normal sem qualquer hardware Ascend ligado e, em seguida, copiar o .om resultante para o dispositivo de destino para realizar inferência.

Treinar em NPUs Ascend#

O Ultralytics suporta treino com uma ou várias NPUs usando torch_npu, incluindo AMP, validação, criação de checkpoints, retoma e AutoBatch. Selecione uma NPU com device=npu:0 ou várias NPUs com device=npu:0,1; o treino distribuído utiliza HCCL. Instale versões compatíveis do CANN, PyTorch e torch_npu e carregue primeiro o ambiente do CANN. Consulte a secção de treino com NPU Ascend para ver exemplos de instalação e utilização.

Formato de exportação Ascend#

O exportador do Ultralytics escreve primeiro um grafo ONNX intermédio e, em seguida, invoca o ATC para o compilar para o SoC selecionado com o argumento name. O resultado é um diretório de modelo autónomo que contém o binário .om e os respetivos metadados do Ultralytics.

Principais funcionalidades dos modelos Ascend#

  • AI Core dedicado: os modelos compilados são executados no Ascend AI Core em vez do CPU do host, proporcionando um débito substancialmente superior para pipelines de câmaras em tempo real.
  • Compilação no lado do host: o ATC não requer uma NPU ligada, pelo que a exportação pode ser executada em CI, em contentores ou num portátil.
  • ONNX como base: a exportação ONNX padrão do Ultralytics alimenta diretamente a toolchain CANN, sem qualquer formato intermédio proprietário.
  • Formas estáticas: a forma de entrada é incorporada no .om no momento da compilação, eliminando a sobrecarga da negociação de formas em tempo de execução.
  • Destino para vários dispositivos: o mesmo grafo ONNX é compilado para qualquer SoC suportado alterando name.

Tarefas suportadas#

A exportação Huawei Ascend suporta todas as sete tarefas do Ultralytics. A segmentação semântica e a estimativa de profundidade estão disponíveis apenas com YOLO26, a única família que inclui essas cabeças.

TarefaYOLOv8YOLO11YOLO26
Detetar
Segmentar
Semântica
Profundidade
Classificar
Pose
OBB

Dispositivos suportados#

Passe o SoC de destino com name; o ATC incorpora-o no .om como --soc_version, pelo que deve corresponder à placa na qual você fará a implementação. Localmente, você pode compilar para qualquer SoC para o qual a sua instalação do CANN disponibilize kernels. A Ultralytics Platform suporta os destinos Ascend310P1, Ascend310P3, Ascend310B1 e Ascend310B4.

nameDispositivosExportação localPlataforma
Ascend310P3Atlas 300I Pro, Atlas 300V Pro
Ascend310P1Atlas 300I
Ascend310B4OrangePi AIPro 20T, Atlas 200I A2
Ascend310B1OrangePi AIPro 8T

Exportar para Ascend: converter o seu modelo YOLO#

Nota

A exportação para Ascend requer o toolkit CANN, que funciona apenas em Linux. O compilador atc deve estar no seu PATH — carregue o script do ambiente CANN antes de exportar, por exemplo, source /usr/local/Ascend/ascend-toolkit/set_env.sh.

Instalação#

Instale o Ultralytics e, em seguida, instale o CANN separadamente a partir da Huawei.

Instalação
# Install the required package for YOLO
pip install ultralytics

O toolkit CANN é distribuído pela Huawei e não é instalado automaticamente. Transfira-o a partir da página de transferências da comunidade Ascend ou utilize uma das imagens de contentor oficiais de ascendai/cann, que incluem o ATC e as respetivas dependências.

Associe o toolkit ao seu SoC de destino

O ATC só consegue compilar para famílias de SoC cujos kernels de operadores estejam instalados. Um toolkit que contenha apenas kernels ascend310p falha com No supported Ops kernel and engine are found for ... Conv2D quando lhe é pedido um destino Ascend310B4. Instale o pacote Ascend-cann-kernels-<soc> correspondente ao dispositivo no qual fará a implementação.

Utilização#

O formato Ascend suporta os modos Exportar, Prever e Validar. A inferência e a validação são executadas no hardware Ascend. Exporte o seu modelo e, em seguida, carregue o modelo exportado para executar inferência ou validar a respetiva precisão.

Exportação
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")

Argumentos de Exportação#

ArgumentoTipoPredefiniçãoDescrição
formatstr'ascend'Formato de destino do modelo exportado, que define a compatibilidade com AI Processors Ascend.
namestr'Ascend310B4'SoC de destino transmitido ao ATC como --soc_version, por exemplo, Ascend310P3. É válido qualquer SoC para o qual a sua instalação do CANN tenha kernels; consulte Dispositivos suportados. Deve corresponder ao dispositivo de implementação.
imgszint ou tuple640Tamanho de imagem pretendido para a entrada do modelo, incorporado no .om como uma forma estática.
batchint1Tamanho de batch estático compilado no modelo offline.
quantizeint16Precisão da quantização. A exportação Ascend suporta apenas FP16 e ativa automaticamente 16 se não for especificado. Substitui os sinalizadores obsoletos half/int8.
opsetint17Opset ONNX do grafo intermédio. Limitado a 17, a versão mais recente aceite pelo analisador ONNX do CANN.
simplifyboolTrueSimplifica o grafo ONNX intermédio com onnxslim.
nmsboolFalseAdiciona a supressão não máxima aos modelos suportados de deteção, segmentação, pose e OBB.
Por que motivo o FP32 não está disponível?

O Ascend AI Core aceita apenas entradas DT_FLOAT16 e DT_INT8 para convoluções, pelo que um modelo offline FP32 não pode ser executado no hardware. Solicitar quantize=32 gera um erro em vez de produzir silenciosamente um modelo que não funcionará.

Para obter mais detalhes sobre o processo de exportação, visita a página da documentação da Ultralytics sobre exportação.

Estrutura de Saída#

Após uma exportação bem-sucedida, é criado um diretório de modelo com a seguinte estrutura:

yolo26n_ascend_model/
├── yolo26n_Ascend310B4.om  # Compiled Ascend offline model (AI Core executable)
└── metadata.yaml           # Model metadata (classes, image size, task, etc.)

O ficheiro .om é o modelo offline compilado que o runtime CANN carrega no dispositivo. O nome inclui o SoC de destino, tornando o artefacto autoexplicativo; mantenha um .om por diretório, pois o carregador seleciona o único modelo que encontra nesse diretório. O metadata.yaml contém os nomes das classes, o tamanho da imagem e outras informações utilizadas pelo pipeline de inferência do Ultralytics.

Implementar modelos YOLO Ascend exportados#

Depois de exportar com sucesso o seu modelo Ultralytics YOLO para o formato Ascend, o passo seguinte é implementá-lo no hardware Ascend.

Instalação do runtime#

A inferência requer o runtime CANN no dispositivo e o pacote Python ais_bench, que encapsula as bindings pyACL do CANN. Compile e instale-o a partir do repositório de ferramentas Ascend da 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-*.whl

Copie o diretório yolo26n_ascend_model exportado para o dispositivo e, em seguida, execute a inferência exatamente como faria com qualquer outro formato do Ultralytics.

Fluxo de Trabalho Recomendado#

  1. Treine o seu modelo utilizando o Modo de treino do Ultralytics ou comece a partir de um checkpoint pré-treinado.
  2. Exporte para Ascend em qualquer host Linux com o CANN instalado, passando o name correspondente ao seu SoC de destino.
  3. Copie o diretório do modelo exportado para o dispositivo Ascend.
  4. Implemente com o runtime CANN e ais_bench para executar inferência no dispositivo.

Aplicações no mundo real#

Os modelos YOLO executados em hardware Ascend são adequados para uma vasta gama de aplicações de visão integradas e industriais:

  • Automação industrial: inspeção de qualidade de alta velocidade e deteção de defeitos em linhas de produção.
  • Vigilância inteligente: deteção de objetos em tempo real com várias câmaras em gateways edge, sem um servidor central.
  • Robótica: perceção a bordo para robôs móveis autónomos e braços colaborativos.
  • Cidades inteligentes: monitorização do tráfego e análise de peões em unidades rodoviárias de baixo consumo energético.

Resumo#

Neste guia, você aprendeu a treinar Ultralytics YOLO em NPUs Huawei Ascend e a exportar modelos para o formato Ascend .om utilizando o compilador CANN ATC. A exportação é executada inteiramente no host, produz um diretório de modelo autónomo e permite definir qualquer SoC Ascend suportado através de um único argumento name.

Para obter mais informações sobre a utilização, visite a documentação oficial do CANN.

Além disso, se quiser saber mais sobre outras integrações do Ultralytics YOLO, visite a nossa página do guia de integrações para encontrar muitos recursos úteis.

Perguntas frequentes#

  • Instale o Ultralytics e o toolkit CANN, carregue o ambiente CANN para que atc esteja no seu PATH e, em seguida, exporte com model.export(format="ascend", name="Ascend310B4") em Python ou yolo export model=yolo26n.pt format=ascend name=Ascend310B4 a partir da CLI. Defina name para o SoC do seu dispositivo de implementação.

  • Não. O compilador ATC é executado inteiramente no host, pelo que a compilação funciona numa máquina Linux x86-64 ou ARM64 padrão sem uma NPU ligada. Só precisa de hardware Ascend para executar inferência no .om exportado.

  • A sua instalação do CANN não inclui kernels de operadores para o SoC solicitado. Cada toolkit inclui kernels para famílias de SoC específicas; por isso, instale o pacote Ascend-cann-kernels-<soc> correspondente ao seu destino ou utilize uma imagem de contentor criada para essa família de dispositivos.

  • As convoluções do Ascend AI Core aceitam apenas tensores DT_FLOAT16 e DT_INT8. Um modelo offline FP32 não poderia ser executado no hardware, pelo que o exportador compila com --precision_mode=force_fp16 e rejeita um pedido explícito de quantize=32.

  • Qualquer SoC para o qual o toolkit CANN instalado disponibilize kernels, selecionado através do argumento name. Consulte Dispositivos suportados para ver os quatro destinos validados e a respetiva disponibilidade na Ultralytics Platform.

Comentários