YOLO Vision 2026:

Exportação DEEPX para modelos Ultralytics YOLO#

A implementação de modelos de visão computacional em hardware NPU especializado requer um formato de modelo compatível e otimizado. A exportação de modelos Ultralytics YOLO para o formato DEEPX permite uma inferência eficiente quantizada em INT8 nos aceleradores NPU DEEPX. Este guia mostra como converter os teus modelos YOLO para o formato DEEPX e implementá-los em hardware compatível com DEEPX.

O que é o DEEPX?#

DEEPX NPU Inference

DEEPX é uma empresa de semicondutores de IA especializada em Unidades de Processamento Neural (NPUs) concebidas para inferência de deep learning energeticamente eficiente na periferia. As NPUs DEEPX foram desenvolvidas para aplicações exigentes de IA incorporada e industrial, proporcionando elevado débito com um consumo mínimo de energia. O hardware é adequado para cenários de implementação em que a conectividade à cloud não é fiável ou desejável, como robótica, câmaras inteligentes e sistemas de automação industrial.

Formato de exportação DEEPX#

A exportação DEEPX produz um binário de modelo .dxnn compilado e otimizado para execução em hardware NPU DEEPX. O pipeline de compilação utiliza o toolkit dx_com para realizar a quantização INT8 e a otimização específica do hardware, gerando um diretório de modelo autónomo pronto para implementação.

Principais funcionalidades dos modelos DEEPX#

Os modelos DEEPX oferecem várias vantagens para a implementação na periferia:

  • 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 débito da NPU. Sabe mais sobre a quantização de modelos.
  • Otimizado para NPU: O formato .dxnn é compilado especificamente para hardware NPU DEEPX, aproveitando unidades de aceleração dedicadas para uma 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 autónoma: O diretório do modelo exportado inclui o binário compilado, a configuração de calibração e os metadados para uma implementação simples.

Tarefas suportadas#

A exportação DEEPX suporta 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.

TarefaYOLOv8YOLO11YOLO26
Detetar
Segmentar
Semântica
Profundidade
Classificar
Pose
OBB

Exportar para DEEPX: converter o teu modelo YOLO#

Exporta um modelo Ultralytics YOLO para o formato DEEPX e executa a inferência com o modelo exportado.

Nota

A exportação DEEPX só é suportada em máquinas Linux x86-64. ARM64 (aarch64) não é suportado na etapa de exportação. No entanto, os modelos dxnn exportados são totalmente compatíveis e executáveis em plataformas ARM64.

Instalação#

Para instalares os pacotes necessários, executa:

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

O compilador dx_com é instalado automaticamente a partir do repositório do SDK da DEEPX na primeira exportação. O fluxo de trabalho de exportação atual usa o DX-COM 2.3.0, que fornece pacotes para Python 3.8–3.12 em Linux x86-64 com glibc 2.31 ou mais recente.

As versões do PyPI do compilador foram retiradas. Para pré-instalar as dependências de exportação, forneça a página de pacotes do SDK com --find-links; isso funciona tanto com pip quanto com uv pip:

pip install "ultralytics[export-deepx]" --find-links https://sdk.deepx.ai/release/dxcom/v2.3.0/index.html

Para uma instalação de repositório editável, substitua "ultralytics[export-deepx]" por -e ".[export-base,export-deepx]". Para reproduzir o ambiente Python 3.12 e a exportação de verificação de sanidade usados pelo CI, execute o construtor de ambiente existente a partir da raiz do repositório:

ULTRALYTICS_ISOLATED_VENVS="$PWD/.venvs" python .github/scripts/create-export-env.py --env isolated-deepx

O construtor de ambiente requer uv e um diretório do Ultralytics instalado. Ele instala o compilador a partir do código-fonte do SDK e aplica as restrições de dependência testadas automaticamente.

Utilização#

O formato DEEPX suporta os modos Export, Predict e Validate. A inferência e a validação são executadas em hardware NPU DEEPX. Exporta o teu modelo e, em seguida, carrega o modelo exportado para executar a inferência ou validar a sua precisão.

Exportaçã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/'
Previsão
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validar
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#

ArgumentoTipoPredefiniçãoDescrição
formatstr'deepx'Formato de destino do modelo exportado, que define a compatibilidade com hardware NPU DEEPX.
imgszint ou tuple640Tamanho de imagem pretendido para a entrada do modelo. A exportação DEEPX requer uma entrada quadrada — passa um número inteiro (por exemplo, 640) ou um tuplo em que a altura seja igual à largura.
quantizeint ou str8/autoPrecisão da quantização. 8 (INT8) é necessária para a exportação DEEPX e é ativada automaticamente se não for especificada. Substitui as flags preteridas half/int8.
simplifyboolTrueSimplifica o grafo ONNX intermédio com onnxslim.
opsetintNoneEspecifica a versão do opset ONNX para o grafo ONNX intermédio. Se não for definida, utiliza a versão mais recente suportada.
datastrNoneYAML do conjunto de dados utilizado para a calibração INT8; na classificação, utiliza um diretório de conjunto de dados ou um nome de conjunto de dados integrado. Se for omitido com quantize=8, a Ultralytics seleciona o conjunto de dados de calibração predefinido para a tarefa do modelo.
devicestrNoneEspecifica o dispositivo para a exportação: GPU (device=0) ou CPU (device=cpu).
optimizeboolFalseAtiva uma otimização superior do compilador, reduzindo a latência da inferência e aumentando o tempo de compilação.
Dica

Executa sempre a exportação DEEPX num anfitrião Linux x86-64. O compilador dx_com não suporta ARM64.

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_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 ficheiro .dxnn é o binário do modelo compilado que o runtime dx_engine carrega diretamente na NPU. O ficheiro metadata.yaml contém os nomes das classes, o tamanho da imagem e outras informações utilizadas pelo pipeline de inferência da Ultralytics.

Implementação de modelos YOLO DEEPX exportados#

Depois de exportares com sucesso o teu modelo Ultralytics YOLO para o formato DEEPX, o passo seguinte é implementá-lo em hardware NPU DEEPX.

Instalação do runtime#

A inferência requer o controlador NPU DEEPX, o runtime libdxrt e o pacote Python dx_engine.

Nota

O runtime DEEPX suporta Linux x86-64 e 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-*.whl

Verifica se o runtime está corretamente instalado com dxrt-cli --version. Deverás 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: v6

Depois de instalares o runtime, executa a inferência e a validação no teu dispositivo DEEPX exatamente como mostrado na secção Utilização acima — o _deepx_model exportado é carregado diretamente com YOLO(...).

Visualização com dxtron#

dxtron é o visualizador de grafos da DEEPX para inspecionar o modelo .dxnn compilado.

Instala dxtron no Linux x86-64 transferindo o pacote .deb a partir do DEEPX SDK e instalando-o através de 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.deb

Em seguida, abre o teu modelo exportado:

dxtron yolo26n_deepx_model/yolo26n.dxnn
Nota

dxtron está disponível para plataformas x86-64 e aarch64.

Benchmarks#

A equipa da Ultralytics avaliou modelos YOLO26, comparando a velocidade e a precisão entre PyTorch e DEEPX.

Desempenho
Raspberry Pi 5 DEEPX M1 NPU vs PyTorch benchmarks
ModeloFormatoEstadoTamanho (MB)metrics/mAP50-95(B)Tempo de inferência (ms/im)
YOLO26nPyTorch5.30.4760315.2
YOLO26nDEEPX6.60.466034.6
YOLO26n-segPyTorch6.50.4080485.4
YOLO26n-segDEEPX7.90.392053.8
YOLO26n-posePyTorch7.60.4230506.3
YOLO26n-poseDEEPX8.80.459037.6
YOLO26n-obbPyTorch5.70.8171094.4
YOLO26n-obbDEEPX7.30.78356.4
ModeloFormatoEstadoTamanho (MB)acc (top1)acc (top5)Tempo de inferência (ms/im)
YOLO26n-clsPyTorch5.60.4310.71623.8
YOLO26n-clsDEEPX5.90.3330.6862.7
Nota

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é e pós-processamento.

Sugestões para otimização do desempenho

Para obter o melhor débito de inferência da NPU DX-M1 ligada a um Raspberry Pi 5, abre o ficheiro de configuração de arranque e ativa o suporte para PCIe Gen 3.

sudo nano /boot/firmware/config.txt

Adiciona as seguintes linhas ao final do ficheiro:

dtparam=pciex1
dtparam=pciex1_gen=3

Guarda e sai (Ctrl+X, depois Y e, em seguida, Enter) e reinicia:

sudo reboot

Verifica a geração do 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#

  1. Treina o teu modelo usando o Modo de Treino da Ultralytics
  2. Exporta para o formato DEEPX utilizando model.export(format="deepx")
  3. Valida a precisão com yolo val para verificar uma perda mínima de quantização
  4. Prevê usando yolo predict para validação qualitativa
  5. Implementa o diretório _deepx_model/ exportado em hardware NPU DEEPX utilizando o runtime dx_engine

Aplicações no mundo real#

Os modelos YOLO implementados em hardware NPU DEEPX são adequados para uma vasta gama de aplicações de IA na periferia:

  • Vigilância inteligente: Deteção de objetos em tempo real para sistemas de segurança e monitorização, com baixo consumo de energia e sem dependência da cloud.
  • Automação industrial: Controlo de qualidade no dispositivo, deteção de defeitos e monitorização de processos em ambientes fabris.
  • Robótica: Navegação baseada em visão, desvio de obstáculos e reconhecimento de objetos em robôs e drones autónomos.
  • Agricultura inteligente: Monitorização da saúde das culturas, deteção de pragas e estimativa da produção utilizando visão computacional na agricultura.
  • Análise de retalho: Análise do fluxo de clientes, monitorização de prateleiras e acompanhamento do inventário com inferência na periferia em tempo real.

Resumo#

Neste guia, aprendeste a exportar modelos Ultralytics YOLO para o formato DEEPX e a implementá-los em hardware NPU DEEPX. O pipeline de exportação utiliza calibração INT8 e o compilador dx_com para produzir um binário .dxnn otimizado para o hardware, enquanto o runtime dx_engine processa a inferência no dispositivo.

A combinação de Ultralytics YOLO e da tecnologia NPU da DEEPX oferece uma solução eficaz para executar cargas de trabalho avançadas de visão computacional em dispositivos incorporados e na periferia — proporcionando um elevado débito com baixo consumo de energia para aplicações em tempo real.

Para obter mais detalhes sobre a utilização, visita o site oficial da DEEPX.

Além disso, se quiseres saber mais sobre outras integrações do Ultralytics YOLO, visita a nossa página do guia de integrações. Encontrarás aí muitos recursos e informações úteis.

Perguntas frequentes#

  • Podes exportar o teu modelo utilizando o método export() em Python ou através da CLI. A exportação ativa automaticamente a quantização INT8 e utiliza um conjunto de dados de calibração para minimizar a perda de precisão. O pacote de compilação dx_com é instalado automaticamente se ainda não estiver presente.

    Exemplo
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="deepx")
  • As NPUs DEEPX foram concebidas para executar cálculos INT8 com a máxima eficiência. O compilador dx_com quantiza o modelo durante a exportação utilizando calibração baseada em EMA com imagens reais do conjunto de dados, permitindo que a NPU alcance todo o seu desempenho. A INT8 é sempre imposta nas exportações DEEPX — se solicitares uma precisão diferente, esta será substituída e será apresentado um aviso.

  • A exportação de modelos DEEPX (compilação) requer um anfitrião Linux x86-64. A etapa de exportação não é suportada em ARM64 (aarch64) nem em máquinas Windows. A inferência utilizando o modelo .dxnn exportado pode ser executada em qualquer plataforma Linux (x86-64 e ARM64) suportada pelo runtime dx_engine.

  • A exportação cria um diretório (por exemplo, yolo26n_deepx_model/) que contém:

    • yolo26n.dxnn — o binário NPU compilado
    • config.json — definições de calibração e pré-processamento
    • metadata.yaml — metadados do modelo, incluindo nomes das classes e tamanho da imagem
  • Sim. Qualquer modelo treinado utilizando o Modo de treino da Ultralytics e exportado com format="deepx" pode ser implementado em hardware NPU DEEPX, desde que utilize operações de camadas suportadas. A exportação suporta as sete tarefas da Ultralytics: deteçã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 utiliza todas as imagens do conjunto de dados de calibração com o método de calibração EMA. Algumas centenas de imagens costumam ser suficientes para obter uma boa precisão de quantização. Aponta data para um conjunto de dados mais pequeno se o tempo de compilação for uma preocupação em conjuntos de dados grandes.

  • O runtime DEEPX não vem incluído com ultralytics e tem de ser instalado separadamente antes de executares a inferência. Em máquinas Linux x86-64 e máquinas Linux ARM64 (por exemplo, Raspberry Pi 5), instala o controlador NPU (dxrt-driver-dkms) e o runtime (libdxrt) a partir das versões do DEEPX-AI no GitHub e, em seguida, instala o wheel Python dx_engine incluído. Consulta a secção Instalação do runtime acima para obter os comandos passo a passo.

Comentários