Ultralytics YOLO27: Inscreve-te na lista de espera.
Get Started

Exportação e implementação com Axelera AI#

A Ultralytics estabelece parcerias com a Axelera AI para permitir inferência de alto desempenho e eficiência energética em dispositivos de IA de borda. Exporta e implementa modelos Ultralytics YOLO diretamente na AIPU Metis® com o Voyager SDK.

Ecossistema de implementação de IA de borda da Axelera AI para YOLO

A Axelera AI oferece aceleração de hardware dedicada para visão computacional na borda, usando uma arquitetura proprietária de fluxo de dados e computação em memória para fornecer até 856 TOPS com baixo consumo de energia.

Escolher o hardware certo#

A Axelera AI oferece vários formatos para atender a diferentes restrições de implementação. O gráfico abaixo ajuda a identificar o hardware ideal para a tua implementação do Ultralytics YOLO.

Portefólio de hardware#

A linha de hardware da Axelera está otimizada para executar Ultralytics YOLO26 e versões anteriores com alta eficiência de FPS por watt.

Placas aceleradoras#

Estas placas permitem acelerar a IA em dispositivos host existentes, facilitando implementações em instalações existentes.

ProdutoFormatoComputaçãoDesempenho (INT8)Aplicação-alvo
Metis PCIe x4PCIe Gen3 x164x AIPUs Metis856 TOPSAnálise de vídeo de alta densidade, cidades inteligentes
Metis PCIe x1PCIe Gen3 x11x AIPU Metis214 TOPSPCs industriais, gestão de filas no retalho
Metis M.2M.2 2280 M-Key1x AIPU Metis214 TOPSDrones, robótica, dispositivos médicos portáteis
Metis M.2 MAXM.2 22801x AIPU Metis214 TOPSAmbientes que exigem gestão térmica avançada

Sistemas integrados#

Para soluções prontas a utilizar, a Axelera estabelece parcerias com fabricantes para fornecer sistemas previamente validados para a AIPU Metis.

  • Placa de computação Metis: dispositivo de borda autónomo que combina a AIPU Metis com uma CPU ARM Rockchip RK3588.
  • Estações de trabalho: torres empresariais da Dell (Precision 3460XE) e da Lenovo (ThinkStation P360 Ultra).
  • PCs industriais: sistemas robustos da Advantech e da Aetina, concebidos para a automação industrial.

Tarefas suportadas#

A exportação para Axelera é compatível com todas as sete tarefas da 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.

Por padrão, os modelos YOLO26 de detecção, segmentação de instâncias, pose e OBB exportam sua cabeça um-para-um sem NMS, e o runtime da Axelera a decodifica no host. Passar nms=True exporta a cabeça um-para-muitos, que tem pontuação inferior no Metis: a detecção YOLO26n alcança mAP50-95 de 0.212 no COCO128 dessa forma, contra 0.453 com a cabeça sem NMS.

TarefaYOLOv8YOLO11YOLO26
Detetar✅✅✅
Segmentar✅✅✅
Semântica❌❌✅
Profundidade❌❌✅
Classificar✅✅✅
Pose✅✅✅
OBB✅✅✅
Calibra modelos de profundidade com imagens das tuas próprias cenas

Os intervalos de quantização vêm das imagens de calibração, e o valor padrão para profundidade, depth8.yaml, contém quatro frames internos. Na divisão de validação de 654 imagens do NYU Depth V2, YOLO26n para profundidade calibrado com esse valor padrão alcança delta1 de 0.742 no Metis, contra 0.783 para o modelo PyTorch, enquanto 100 frames de treino do NYU dão 0.780. Passa data= com um YAML de conjunto de dados cuja divisão val contenha pelo menos 100 imagens das cenas que o modelo vai encontrar; a calibração lê a divisão val.

Instalação#

Requisitos da plataforma

A exportação para o formato Axelera requer:

  • Sistema operativo: apenas Linux (recomenda-se Ubuntu 22.04/24.04)
  • Hardware: acelerador Axelera AI (dispositivos Metis)
  • Python: versões 3.10, 3.11, 3.12 e 3.13
  • PyTorch: torch>=2.8,<2.15
  • Voyager SDK: 1.9.0; a exportação instala esta versão do devkit e a inferência instala esta versão do runtime
  • Driver de kernel Metis: metis-dkms 1.7.0 ou mais recente, instalado separadamente de pip
  • Dependência do sistema: sudo apt install libgl1 (necessário para o OpenCV, não incluído através de pip)

Instalação da Ultralytics#

pip install ultralytics

Para instruções detalhadas, consulta o nosso guia de instalação da Ultralytics. Se tiveres dificuldades, consulta o nosso guia de problemas comuns.

Instalação do controlador Axelera#

  1. Adiciona a chave do repositório 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. Adiciona o repositório ao apt:

    Escolhe o fragmento apropriado abaixo, de acordo com o sistema operativo utilizado.

    # 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 o driver e carrega-o. O SDK 1.9 requer metis-dkms 1.7.0 ou mais recente; por isso, a versão mais recente é instalada aqui:

    sudo apt update
    sudo apt install -y metis-dkms
    sudo modprobe metis
Mantém o controlador do kernel sincronizado com o SDK

O driver de kernel é instalado separadamente dos pacotes do SDK Python; por isso, depois de atualizar o SDK, também tens de atualizar o driver para a versão mínima exigida por esse SDK — 1.7.0 para o SDK 1.9. Nada verifica isso durante a instalação, e um driver abaixo da versão mínima deixa o dispositivo indisponível: axdevice informa a versão necessária e falha ao abrir o 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 também Passo 3: Instalar o controlador do kernel Metis. Se já estiveres a executar uma versão anterior do SDK no Ubuntu, atualiza o controlador e recarrega o módulo do kernel (não é necessário reiniciar):

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

Em seguida, volta a executar axdevice para confirmar que o dispositivo foi detetado.

A primeira execução transfere o SDK automaticamente

Na primeira execução de yolo export format=axelera ou yolo predict com um modelo Axelera, os pacotes do SDK Axelera são transferidos e instalados automaticamente. Isto pode demorar vários minutos, dependendo da velocidade da ligação, e não é apresentado qualquer progresso durante a transferência. Para instalar manualmente de antemão:

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
Os modelos exportados com o SDK 1.8 continuam a funcionar

O SDK 1.9 não aumenta a versão do formato do modelo compilado .axm; por isso, um diretório _axelera_model exportado com a versão 1.8 é carregado e executado sem alterações. Volta a exportar apenas para aproveitar as melhorias do compilador.

Um SDK que aumenta a versão do formato rejeita diretórios mais antigos ao carregá-los, como acontece ao atualizar da versão 1.7 ou anterior:

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

Exportar modelos YOLO para Axelera#

O formato Axelera suporta os modos Exportar, Prever e Validar. A inferência e a validação são executadas no hardware AIPU Metis da Axelera. Exporta o teu modelo e, em seguida, carrega o modelo exportado para executar a inferência ou validar a respetiva precisão.

Exportar
from ultralytics import YOLO

# Carrega um modelo YOLO26
model = YOLO("yolo26n.pt")

# Exportar o modelo para o formato Axelera
model.export(format="axelera")  # creates 'yolo26n_axelera_model'
Prever
from ultralytics import YOLO

# Carregar o modelo Axelera exportado
model = YOLO("yolo26n_axelera_model")

# Executar inferência
results = model("https://ultralytics.com/images/bus.jpg")
Validar
from ultralytics import YOLO

# Carregar o modelo Axelera exportado
model = YOLO("yolo26n_axelera_model")

# Validar a precisão no conjunto de dados COCO8
metrics = model.val(data="coco8.yaml")

Argumentos de exportação#

ArgumentoTipoPadrãoDescrição
formatstr'axelera'Formato de destino para o hardware AIPU Metis da Axelera.
imgszint ou tuple640Tamanho da imagem de entrada do modelo.
batch*int1Tamanho do lote de calibração. O modelo compilado processa uma imagem de cada vez.
quantizeint ou str8/autoPrecisão da quantização. 8 (INT8) é obrigatório e ativado automaticamente para a AIPU Axelera. Substitui as flags obsoletas half/int8. Consulta Quantização INT8.
datastrNoneYAML do conjunto de dados de calibração; para classificação, aceita-se um diretório de conjunto de dados ou o nome de um conjunto de dados integrado. Se não for especificado, a Ultralytics seleciona um conjunto de dados de calibração específico para a tarefa.
fractionfloat, int ou list1.0Subconjunto de calibração indicado como proporção, número de imagens ou proporções/contagens [train, val, test]. As listas com dois elementos deixam test completo, enquanto 0 o ignora (recomendam-se 100-400 imagens).
devicestrNoneDispositivo de exportação: GPU (device=0) ou CPU (device=cpu).

* Os modelos são compilados para uma única imagem, por isso a exportação batch define apenas o tamanho do lote de calibração. Em vez disso, passa batch para predict para enviar várias imagens de uma só vez ao escalonador da Axelera (Voyager SDK 1.8.0 ou mais recente): consulta Desempenho máximo.

Para consultar todas as opções de exportação, vê a documentação do modo Exportar.

Estrutura de saída#

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 da Axelera AI#

A AIPU Metis maximiza a capacidade de processamento e minimiza o consumo de energia.

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

Benchmarks baseados em dados da Axelera AI. O FPS real depende do tamanho do modelo, do agrupamento em lotes e da resolução de entrada.

Estes são valores de capacidade de processamento do host, medidos pelo zoo de modelos com o pipeline de streaming do Voyager SDK sobre um ficheiro de vídeo de 720p. Uma única chamada predict indica a latência por imagem, que é uma medida diferente.

Aplicações no mundo real#

O Ultralytics YOLO em hardware Axelera possibilita soluções avançadas de computação de borda:

  1. Treina o teu modelo com o Modo de Treino da Ultralytics
  2. Exporta para o formato Axelera com model.export(format="axelera")
  3. Valida a precisão com yolo val para verificar se a perda de quantização é mínima
  4. Faz previsões com yolo predict para validação qualitativa
  5. Implementa um pipeline de ponta a ponta de alto desempenho sem dependência do PyTorch — consulta os exemplos do YOLO no Voyager SDK para ver pipelines Python compostos com axelera-rt

Verificação do estado do dispositivo#

Verifica se o teu dispositivo Axelera está a funcionar corretamente:

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

Para obter diagnósticos detalhados, consulta a documentação do AxDevice.

Desempenho máximo#

Os modelos são compilados para uma única imagem, e uma única imagem é executada num núcleo AIPU. Passar várias imagens para Predict envia-as juntas ao escalonador da Axelera, que as distribui pelos núcleos do dispositivo:

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

yolo26n em imgsz=640 nas 128 imagens do COCO128 num diretório, Metis PCIe, mediana de três execuções:

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

No SDK 1.9, é o lote que aumenta a taxa de processamento, 2,7 vezes em batch=32, enquanto a versão 1.8 se mantém perto de 40 img/s com qualquer tamanho de lote. Usa um lote grande para maximizar a taxa de processamento offline e batch=1 quando a latência por imagem for importante. Um segundo dispositivo acrescenta pouco a predict: em batch=32, cada imagem já passa cerca de 4 ms no pré-processamento no host, o mesmo tempo que passa no dispositivo.

Além de predict#

Para produção que exige capacidade de processamento máxima, o Axelera Voyager SDK oferece:

  • Pipelines de inferência em streaming que mantêm vários fotogramas em processamento
  • Compilação de um modelo em vários núcleos
  • Inferência em mosaicos para câmaras de maior resolução

Esses caminhos ignoram o pré-processamento e o pós-processamento PyTorch que predict executa no host. Consulta o zoológico de modelos para ver os benchmarks de FPS ou contacta a Axelera para obter suporte à produção.

Problemas conhecidos#

Limitações conhecidas
  • Limitações de energia do M.2: Modelos grandes ou extragrandes podem apresentar erros em tempo de execução em aceleradores M.2 devido a limitações da fonte de alimentação.

Para obter suporte, visita a comunidade Axelera.

Perguntas frequentes#

  • O Voyager SDK permite exportar modelos YOLOv8, YOLO11 e YOLO26. Consulta Tarefas compatíveis para ver a disponibilidade de tarefas por modelo.

  • Sim. Qualquer modelo treinado com o Modo de Treino da Ultralytics pode ser exportado para o formato Axelera, desde que utilize camadas e operações compatíveis.

  • O Voyager SDK da Axelera quantiza automaticamente os modelos para a arquitetura AIPU de precisão mista. Na maioria das tarefas de deteção de objetos, os ganhos de desempenho (FPS mais elevado e menor consumo de energia) compensam largamente o impacto mínimo no mAP. A quantização demora entre alguns segundos e várias horas, dependendo do tamanho do modelo. Executa yolo val após a exportação para verificar a precisão.

  • Recomendamos entre 100 e 400 imagens. Mais de 400 não traz benefícios adicionais e aumenta o tempo de quantização. Experimenta com 100, 200 e 400 imagens para encontrar o equilíbrio ideal.

  • O SDK, os controladores e as ferramentas do compilador estão disponíveis no Portal de programadores da Axelera.

Comentários