Exportação DEEPX para Modelos Ultralytics YOLO#
Implantar modelos de visão computacional em hardware de NPU especializado requer um formato de modelo compatível e otimizado. Exportar modelos do Ultralytics YOLO para o formato DEEPX permite inferência eficiente quantizada em INT8 em aceleradores de NPU DEEPX. Este guia orienta você na conversão dos seus modelos YOLO para o formato DEEPX e na implantação deles em hardware alimentado por DEEPX.
O que é DEEPX?#
A DEEPX é uma empresa de semicondutores de IA especializada em Unidades de Processamento Neural (NPUs) projetadas para inferência de deep learning com eficiência energética na borda. As NPUs da DEEPX são projetadas para aplicações de IA industrial e embarcada exigentes, entregando alto rendimento com consumo mínimo de energia. O hardware deles é bem adequado para cenários de implantação onde a conectividade com a nuvem é instável ou indesejável, como robótica, câmeras inteligentes e sistemas de automação industrial.
Formato de Exportação DEEPX#
A exportação DEEPX produz um binário de modelo compilado .dxnn que é otimizado para execução em hardware de NPU DEEPX. O pipeline de compilação usa o kit de ferramentas dx_com para realizar quantização INT8 e otimização específica de hardware, gerando um diretório de modelo autossuficiente pronto para implantação.
Principais Características dos Modelos DEEPX#
Os modelos DEEPX oferecem várias vantagens para implantação na borda:
- Quantização INT8: Os modelos são quantizados para a precisão INT8 durante a exportação, reduzindo significativamente o tamanho do modelo e maximizando o rendimento da NPU. Saiba mais sobre quantização de modelos.
- Otimizado para NPU: O formato
.dxnné especificamente compilado para hardware de NPU DEEPX, aproveitando unidades de aceleração dedicadas para inferência rápida e eficiente. - Baixo Consumo de Energia: Ao transferir a inferência para a NPU, os modelos DEEPX consomem muito menos energia do que uma inferência equivalente em CPU ou GPU.
- Precisão Baseada em Calibração: A exportação utiliza calibração baseada em EMA com imagens reais do conjunto de dados para minimizar a perda de precisão durante a quantização.
- Saída Autocontida: O diretório do modelo exportado agrupa o binário compilado, a configuração de calibração e metadados para uma implantação simples.
Tarefas Suportadas#
A exportação DEEPX suporta todas as sete tarefas do Ultralytics. A segmentação semântica e a estimativa de profundidade estão disponíveis apenas com o YOLO26, a única família que inclui esses cabeçalhos.
| Tarefa | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Detectar | ✅ | ✅ | ✅ |
| Segmentar | ✅ | ✅ | ✅ |
| Semântica | ❌ | ❌ | ✅ |
| Profundidade | ❌ | ❌ | ✅ |
| Classificar | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Exportar para DEEPX: Convertendo seu Modelo YOLO#
Exporte um modelo Ultralytics YOLO para o formato DEEPX e execute a inferência com o modelo exportado.
A exportação DEEPX é suportada apenas em máquinas Linux x86-64. ARM64 (aarch64) não é suportado para a etapa de exportação. No entanto, os modelos dxnn exportados são totalmente compatíveis e executáveis em plataformas ARM64.
Instalação#
Para instalar os pacotes necessários, execute:
# Install the required package for YOLO
pip install ultralyticsO pacote de compilador dx_com será instalado automaticamente a partir do repositório do SDK da DEEPX na primeira exportação. Para instruções detalhadas e melhores práticas relacionadas ao processo de instalação, consulte nosso Guia de Instalação do Ultralytics. Ao instalar os pacotes necessários para o YOLO, se você encontrar alguma dificuldade, consulte nosso Guia de Problemas Comuns para soluções e dicas.
Uso#
O formato DEEPX suporta os modos Export, Predict e Validate. A inferência e a validação são executadas em hardware de NPU DEEPX. Exporte seu modelo, depois carregue o modelo exportado para executar a inferência ou validar sua precisão.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to DEEPX format (quantize=8 is enforced automatically)
model.export(format="deepx") # creates 'yolo26n_deepx_model/'from ultralytics import YOLO
# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Argumentos de Exportação#
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
format | str | 'deepx' | Formato de destino para o modelo exportado, definindo a compatibilidade com hardware NPU DEEPX. |
imgsz | int ou tuple | 640 | Tamanho de imagem desejado para a entrada do modelo. A exportação DEEPX requer uma entrada quadrada — passe um inteiro (por exemplo, 640) ou uma tupla onde a altura é igual à largura. |
quantize | int ou str | 8/auto | Precisão de quantização. 8 (INT8) é obrigatório para a exportação DEEPX e ativado automaticamente se não for especificado. Substitui as flags obsoletas half/int8. |
simplify | bool | True | Simplifica o grafo ONNX intermediário com onnxslim. |
opset | int | None | Especifica a versão do opset ONNX para o grafo ONNX intermediário. Se não for definida, utiliza a versão mais recente suportada. |
data | str | None | YAML do conjunto de dados usado para calibração INT8; a classificação por sua vez utiliza um diretório de conjunto de dados ou um nome de conjunto de dados integrado. Se omitido com quantize=8, o Ultralytics seleciona o conjunto de dados de calibração padrão para a tarefa do modelo. |
device | str | None | Especifica o dispositivo para exportação: GPU (device=0) ou CPU (device=cpu). |
optimize | bool | False | Habilita uma otimização de compilador mais alta, o que reduz a latência de inferência e aumenta o tempo de compilação. |
Sempre execute a exportação DEEPX em um host x86-64 Linux. O compilador dx_com não suporta ARM64.
Para mais detalhes sobre o processo de exportação, visita a página de documentação do Ultralytics sobre exportação.
Estrutura de Saída#
Após uma exportação bem-sucedida, um diretório de modelo é criado com o seguinte layout:
yolo26n_deepx_model/
├── yolo26n.dxnn # Compiled DEEPX model binary (NPU executable)
├── config.json # Calibration and preprocessing configuration
└── metadata.yaml # Model metadata (classes, image size, task, etc.)O arquivo .dxnn é o binário do modelo compilado que o tempo de execução dx_engine carrega diretamente na NPU. O metadata.yaml contém nomes de classes, tamanho da imagem e outras informações usadas pelo pipeline de inferência do Ultralytics.
Implantando Modelos YOLO DEEPX Exportados#
Depois de exportar com sucesso seu modelo Ultralytics YOLO para o formato DEEPX, o próximo passo é implantar esses modelos em hardware NPU DEEPX.
Instalação do Runtime#
A inferência requer o driver de NPU DEEPX, o tempo de execução libdxrt e o pacote Python dx_engine.
O runtime DEEPX suporta tanto Linux x86-64 quanto ARM64 (por exemplo, Raspberry Pi 5).
# Install the NPU driver and libdxrt runtime
sudo apt update
wget https://github.com/DEEPX-AI/dx_rt_npu_linux_driver/raw/main/release/2.4.1/dxrt-driver-dkms_2.4.1-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.1-2_all.deb
wget https://github.com/DEEPX-AI/dx_rt/raw/main/release/3.3.2/libdxrt_3.3.2_all.deb
sudo apt install ./libdxrt_3.3.2_all.deb
# Create dx-engine wheel
cd /usr/share/libdxrt/python_package && sudo ./make_whl.sh
# Install the bundled dx_engine Python wheel
pip install dx_engine-*.whlVerifique se o tempo de execução está instalado corretamente com dxrt-cli --version. Você deve ver uma saída semelhante a:
DXRT v3.3.2
Minimum Driver Versions
Device Driver: v2.4.0
PCIe Driver: v2.2.0
Firmware: v2.5.2
Minimum Compiler Versions
Compiler: v1.18.1
.dxnn File Format: v6Assim que o tempo de execução estiver instalado, execute a inferência e a validação no seu dispositivo DEEPX exatamente como mostrado na seção Usage acima — o _deepx_model exportado carrega diretamente com YOLO(...).
Visualizando com dxtron#
dxtron é o visualizador de grafos da DEEPX para inspecionar o modelo compilado .dxnn.
Instale o dxtron no x86-64 Linux baixando o pacote .deb do SDK da DEEPX e instalando-o via dpkg:
wget https://sdk.deepx.ai/release/dxtron/v2.0.1/dxtron_2.0.1_amd64.deb
sudo dpkg -i dxtron_2.0.1_amd64.debEm seguida, abra seu modelo exportado:
dxtron yolo26n_deepx_model/yolo26n.dxnndxtron está disponível para plataformas x86-64 e aarch64.
Benchmarks#
A equipe da Ultralytics realizou benchmarks com modelos YOLO26, comparando velocidade e precisão entre PyTorch e DEEPX.
| Modelo | Formato | Status | Tamanho (MB) | metrics/mAP50-95(B) | Tempo de inferência (ms/im) |
|---|---|---|---|---|---|
| YOLO26n | PyTorch | ✅ | 5.3 | 0.4760 | 315.2 |
| YOLO26n | DEEPX | ✅ | 6.6 | 0.4660 | 34.6 |
| YOLO26n-seg | PyTorch | ✅ | 6.5 | 0.4080 | 485.4 |
| YOLO26n-seg | DEEPX | ✅ | 7.9 | 0.3920 | 53.8 |
| YOLO26n-pose | PyTorch | ✅ | 7.6 | 0.4230 | 506.3 |
| YOLO26n-pose | DEEPX | ✅ | 8.8 | 0.4590 | 37.6 |
| YOLO26n-obb | PyTorch | ✅ | 5.7 | 0.817 | 1094.4 |
| YOLO26n-obb | DEEPX | ✅ | 7.3 | 0.783 | 56.4 |
| Modelo | Formato | Status | Tamanho (MB) | acc (top1) | acc (top5) | Tempo de inferência (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n-cls | PyTorch | ✅ | 5.6 | 0.431 | 0.716 | 23.8 |
| YOLO26n-cls | DEEPX | ✅ | 5.9 | 0.333 | 0.686 | 2.7 |
A validação para os benchmarks acima foi feita usando coco128 para detecção, coco128-seg para segmentação, coco8-pose para estimativa de pose, imagenet100 para classificação e dota128 para modelos OBB. O tempo de inferência não inclui pré/pós-processamento.
Para obter o melhor rendimento de inferência da NPU DX-M1 conectada a um Raspberry Pi 5, abra o arquivo de configuração de inicialização e ative o suporte a PCIe Gen 3.
sudo nano /boot/firmware/config.txtAdicione as seguintes linhas ao final do arquivo:
dtparam=pciex1
dtparam=pciex1_gen=3Salve e saia (Ctrl+X, depois Y, depois Enter) e, em seguida, reinicie:
sudo rebootVerifique a geração PCIe. A velocidade esperada é de 8GT/s para PCIe Gen3.
sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"Fluxo de Trabalho Recomendado#
- Treine seu modelo usando o Modo de Treinamento do Ultralytics
- Exporte para o formato DEEPX usando
model.export(format="deepx") - Valide a precisão com
yolo valpara verificar a perda mínima de quantização - Preveja usando
yolo predictpara validação qualitativa - Implante o diretório
_deepx_model/exportado em hardware de NPU DEEPX usando o tempo de execuçãodx_engine
Aplicações do Mundo Real#
Modelos YOLO implantados em hardware de NPU DEEPX são adequados para uma ampla gama de aplicações de edge AI:
- Vigilância Inteligente: Detecção de objetos em tempo real para sistemas de segurança e monitoramento com baixo consumo de energia e sem dependência de nuvem.
- Automação Industrial: Controle de qualidade no dispositivo, detecção de defeitos e monitoramento de processos em ambientes fabris.
- Robótica: Navegação baseada em visão, desvio de obstáculos e reconhecimento de objetos em robôs autônomos e drones.
- Agricultura Inteligente: Monitoramento da saúde de plantações, detecção de pragas e estimativa de colheita usando visão computacional na agricultura.
- Análise de Varejo: Análise de fluxo de clientes, monitoramento de prateleiras e controle de inventário com inferência de borda em tempo real.
Resumo#
Neste guia, você aprendeu como exportar modelos Ultralytics YOLO para o formato DEEPX e implantá-los em hardware de NPU DEEPX. O pipeline de exportação usa calibração INT8 e o compilador dx_com para produzir um binário .dxnn otimizado para hardware, enquanto o tempo de execução dx_engine lida com a inferência no dispositivo.
A combinação do Ultralytics YOLO e da tecnologia de NPU da DEEPX fornece uma solução eficaz para executar cargas de trabalho avançadas de visão computacional em dispositivos embarcados e de borda — entregando alto rendimento com baixo consumo de energia para aplicações em tempo real.
Para mais detalhes sobre o uso, visite o site oficial da DEEPX.
Além disso, se você quiser saber mais sobre outras integrações do Ultralytics YOLO, visite nossa página do guia de integração. Você encontrará muitos recursos e insights úteis lá.
FAQ#
Você pode exportar seu modelo usando o método
export()em Python ou via CLI. A exportação ativa automaticamente a quantização INT8 e usa um conjunto de dados de calibração para minimizar a perda de precisão. O pacote do compiladordx_comé instalado automaticamente se ainda não estiver presente.Exemplofrom ultralytics import YOLO model = YOLO("yolo26n.pt") model.export(format="deepx")As NPUs da DEEPX são projetadas para executar computações INT8 com máxima eficiência. O compilador
dx_comquantiza o modelo durante a exportação usando calibração baseada em EMA com imagens reais de conjuntos de dados, permitindo que a NPU entregue seu desempenho máximo. O INT8 é sempre aplicado para exportações DEEPX — se você solicitar uma precisão diferente, ela será substituída com um aviso.A exportação (compilação) de modelos DEEPX requer um host x86-64 Linux. A etapa de exportação não é suportada em máquinas ARM64 (aarch64) e Windows. A inferência usando o modelo
.dxnnexportado pode ser executada em qualquer plataforma Linux (x86-64 e ARM64) suportada pelo tempo de execuçãodx_engine.A exportação cria um diretório (por exemplo,
yolo26n_deepx_model/) contendo:yolo26n.dxnn— o binário de NPU compiladoconfig.json— configurações de calibração e pré-processamentometadata.yaml— metadados do modelo incluindo nomes de classes e tamanho da imagem
Sim. Qualquer modelo treinado usando o Modo de Treinamento do Ultralytics e exportado com
format="deepx"pode ser implantado em hardware de NPU DEEPX, desde que use operações de camada suportadas. A exportação suporta todas as sete tarefas do Ultralytics: detecção, segmentação de instâncias, segmentação semântica, estimativa de profundidade, classificação, estimativa de pose e caixa delimitadora orientada (OBB).O pipeline de exportação DEEPX usa todas as imagens do conjunto de dados de calibração com o método de calibração EMA. Algumas centenas de imagens geralmente são suficientes para uma boa precisão de quantização. Aponte
datapara um conjunto de dados menor se o tempo de compilação se tornar uma preocupação em conjuntos de dados grandes.O tempo de execução da DEEPX não vem empacotado com
ultralyticse deve ser instalado separadamente antes de executar a inferência. Em máquinas x86-64 Linux e máquinas ARM64 Linux (por exemplo, Raspberry Pi 5), instale o driver da NPU (dxrt-driver-dkms) e o tempo de execução (libdxrt) a partir dos lançamentos do GitHub da DEEPX-AI, depois instale o wheel Pythondx_engineempacotado. Veja a seção Instalação do Tempo de Execução acima para comandos passo a passo.