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.
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.
| Produto | Formato | Computação | Desempenho (INT8) | Aplicação-alvo |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x AIPUs Metis | 856 TOPS | Análise de vídeo de alta densidade, cidades inteligentes |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x AIPU Metis | 214 TOPS | PCs industriais, gestão de filas no retalho |
| Metis M.2 | M.2 2280 M-Key | 1x AIPU Metis | 214 TOPS | Drones, robótica, dispositivos médicos portáteis |
| Metis M.2 MAX | M.2 2280 | 1x AIPU Metis | 214 TOPS | Ambientes 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 estimativa de profundidade não é suportada: a cabeça de profundidade emite operadores que o compilador da AIPU Metis não consegue converter para código de máquina. A segmentação de instâncias do YOLO26 também não é suportada pelo export da Ultralytics, mas ainda pode ser implementada através do Voyager SDK, conforme descrito abaixo. A segmentação semântica do YOLO26 é suportada.
| Tarefa | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Detetar | ✅ | ✅ | ✅ |
| Segmentar | ✅ | ✅ | ❌ |
| Semântica | ❌ | ❌ | ✅ |
| Profundidade | ❌ | ❌ | ❌ |
| Classificar | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
A segmentação de instâncias do YOLO26 ainda não é suportada através do comando export da Ultralytics. Os utilizadores que precisam de yolo26-seg podem implementar através do Voyager SDK com deploy.py, que oferece uma solução alternativa em espaço de utilizador. O suporte nativo do compilador será adicionado numa versão futura.
Instalação#
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.13 - Voyager SDK: 1.8.0; a exportação instala esta versão do kit de desenvolvimento e a inferência instala esta versão do runtime
- Controlador do kernel Metis:
metis-dkms1.6.2 ou posterior, instalado separadamente depip - Dependência do sistema:
sudo apt install libgl1(necessário para o OpenCV, não incluído através depip)
Instalação da Ultralytics#
pip install ultralyticsPara 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#
-
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" -
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" -
Instala o controlador e carrega-o. O SDK 1.8 requer
metis-dkms1.6.2 ou posterior, por isso a versão mais recente é instalada aqui:sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
O controlador do kernel é instalado separadamente dos pacotes Python do SDK. Por isso, depois de atualizar o SDK, também tens de atualizar o controlador para, pelo menos, a versão mínima exigida pelo SDK — 1.6.2 para o SDK 1.8. Esta compatibilidade não é verificada durante a instalação, e um controlador abaixo da versão mínima deixa o dispositivo indisponível: axdevice indica a versão necessária e falha ao abrir o dispositivo.
[libaxldev.c:285] Found kernel driver version 1.5.5, but at least version 1.6.2 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0Consulta 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 metisEm seguida, volta a executar axdevice para confirmar que o dispositivo foi detetado.
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.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleO SDK 1.8 aumenta a versão do formato do modelo compilado .axm, pelo que os diretórios _axelera_model produzidos por uma versão anterior do SDK são rejeitados no momento do carregamento. Volta a exportar cada modelo depois de atualizar:
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.
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'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")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#
| Argumento | Tipo | Padrão | Descrição |
|---|---|---|---|
format | str | 'axelera' | Formato de destino para o hardware AIPU Metis da Axelera. |
imgsz | int ou tuple | 640 | Tamanho da imagem de entrada do modelo. |
batch* | int | 1 | Especifica o tamanho do lote de inferência do modelo exportado ou o número máximo de imagens que o modelo exportado processará em simultâneo no modo predict. |
quantize | int ou str | 8/auto | Precisã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. |
data | str | None | YAML 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. |
fraction | float, int ou list | 1.0 | Subconjunto 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). |
device | str | None | Dispositivo de exportação: GPU (device=0) ou CPU (device=cpu). |
* A inferência com batch>1 requer o Voyager SDK 1.8.0 ou posterior; os modelos são compilados para uma única imagem.
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.
| Modelo | FPS da Metis PCIe (fotogramas por segundo) | FPS da Metis M.2 (fotogramas por segundo) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.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:
- Retalho inteligente: Contagem de objetos e análise de mapas de calor em tempo real para otimizar lojas.
- Segurança industrial: Deteção de EPI com baixa latência em ambientes de produção.
- Análise com drones: Deteção de objetos a alta velocidade em UAVs para agricultura e operações de busca e salvamento.
- Sistemas de trânsito: Reconhecimento de matrículas e estimativa de velocidade na borda.
Fluxo de trabalho recomendado#
- Treina o teu modelo com o Modo de Treino da Ultralytics
- Exporta para o formato Axelera com
model.export(format="axelera") - Valida a precisão com
yolo valpara verificar se a perda de quantização é mínima - Faz previsões com
yolo predictpara validação qualitativa - 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
axdevicePara obter diagnósticos detalhados, consulta a documentação do AxDevice.
Desempenho máximo#
Os modelos são compilados para uma única imagem. Ao passar várias imagens para Predict, estas são encaminhadas pelo agendador da Axelera (Voyager SDK 1.8 ou posterior), pelo que batch>1 é executado corretamente, embora, medido de ponta a ponta num único dispositivo, não seja mais rápido do que batch=1:
yolo predict model=yolo26n_axelera_model source=path/to/images batch=8Para 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
Consulta o zoo de modelos para ver benchmarks de FPS ou contacta a Axelera para obter suporte para produção.
Problemas conhecidos#
- 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 valapó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.