YOLO Vision 2026:

Exportação Qualcomm QNN para modelos Ultralytics YOLO#

Implementar modelos de visão computacional em dispositivos Qualcomm Snapdragon requer um formato de modelo otimizado para o runtime Qualcomm AI Engine Direct (QNN). Exportar modelos Ultralytics YOLO para o formato QNN permite executar inferência acelerada no dispositivo em hardware CPU Snapdragon, GPU Adreno e NPU Hexagon, presente em milhares de milhões de telemóveis, portáteis, sistemas automóveis e dispositivos IoT. Este guia explica como exportar YOLO para Qualcomm QNN e implementá-lo para obter inferência rápida e de baixo consumo em hardware Snapdragon.

Executa YOLO hoje nas NPUs Snapdragon com as aplicações móveis oficiais

O plugin Flutter oficial da Ultralytics fornece suporte opcional para QNN para inferência de câmara em tempo real e predição de imagens individuais em todas as sete tarefas do YOLO26. Ativa o runtime QNN e adiciona a dependência ONNX Runtime, conforme descrito no README do plugin. Para implementação no iOS, consulta o SDK iOS Ultralytics YOLO e a integração CoreML.

Tamanhos de entrada móveis oficiais

Exporta modelos de classificação em imgsz=224. Exporta modelos de deteção, segmentação, semântica, profundidade, pose e OBB em imgsz=640. Este padrão 224/640 é partilhado pelos recursos móveis oficiais QNN, LiteRT e CoreML. Os recursos v73 e v81 prontos a executar para as sete tarefas nano são publicados na versão yolo-flutter-app v0.6.6.

O que é o Qualcomm QNN?#

Qualcomm QNN on-device inference

Qualcomm AI Engine Direct — normalmente referido como QNN e distribuído como parte do SDK Qualcomm AI Runtime (QAIRT) — é a stack de inferência de baixo nível da Qualcomm para processadores Snapdragon. Fornece uma API unificada com bibliotecas específicas para cada backend, direcionadas à CPU Snapdragon, à GPU Adreno e ao Hexagon Tensor Processor (HTP), a unidade de processamento de redes neuronais (NPU) dedicada presente nos SoCs Snapdragon modernos. O QNN oferece aos programadores acesso full-stack a estes aceleradores de IA Snapdragon e é o sucessor moderno do antigo SDK Snapdragon Neural Processing Engine (SNPE). Alimenta aplicações de IA no dispositivo nas plataformas móveis Snapdragon 8 Gen 2, 8 Gen 3 e 8 Elite, nos portáteis Snapdragon X e em produtos automóveis e XR.

Porquê exportar para Qualcomm QNN?#

Snapdragon é a plataforma de computação móvel mais utilizada no mundo. Exportar Ultralytics YOLO para o formato Qualcomm QNN desbloqueia o hardware de IA dedicado destes dispositivos:

  • Aceleração da NPU Hexagon: Executar YOLO no Hexagon Tensor Processor proporciona um débito muito superior e menor consumo de energia do que a inferência na CPU — ideal para inferência em tempo real e visão computacional sempre ativa em Snapdragon.
  • No dispositivo e offline: A inferência QNN é executada inteiramente no dispositivo Snapdragon, pelo que não há comunicações de ida e volta com a cloud, a latência mantém-se baixa e os dados nunca saem do dispositivo.
  • Eficiência da quantização: A exportação QNN quantiza YOLO para pesos INT8 com ativações de 16 bits, o equilíbrio preferido entre precisão e desempenho da NPU Hexagon, reduzindo o tamanho do modelo e maximizando os frames por segundo em hardware alimentado por bateria.
  • Um formato, muitos dispositivos: Uma única exportação Qualcomm QNN é direcionada à CPU Snapdragon, à GPU Adreno e à NPU Hexagon nas famílias Snapdragon 8 Gen 2, 8 Gen 3 e 8 Elite, entre outras.
  • Stack de IA Qualcomm pronta para produção: QNN (Qualcomm AI Engine Direct / QAIRT) é o runtime de IA atual da Qualcomm para dispositivos, ativamente mantido, e a substituição recomendada para SNPE.

Formato de exportação QNN#

A Ultralytics compila modelos YOLO para QNN localmente utilizando o ONNX Runtime QNN Execution Provider (o pacote instalável via pip onnxruntime-qnn, que inclui as bibliotecas QAIRT). O exportador converte o modelo para ONNX, quantiza-o com dados de calibração para ativações de 16 bits e pesos INT8 (o equilíbrio recomendado para a NPU Hexagon) e, em seguida, inicializa uma sessão ONNX Runtime com o armazenamento em cache do binário de contexto ativado — isto compila o grafo quantizado num binário de contexto QNN incorporado em <model>_qnn.onnx. Não é necessária uma conta Qualcomm, um carregamento para a cloud ou uma transferência separada do SDK.

Ao contrário do Qualcomm AI Hub baseado na cloud, que compila e analisa modelos em dispositivos Snapdragon alojados pela Qualcomm e requer uma conta Qualcomm, a exportação QNN da Ultralytics é executada inteiramente na tua própria máquina com uma única chamada export(format="qnn", imgsz=640) (imgsz=224 para classificação). Obténs o mesmo destino de runtime QNN/QAIRT — CPU Snapdragon, GPU Adreno e NPU Hexagon — sem registo, limites de carregamento ou tempos de espera, e o resultado integra-se diretamente no fluxo de trabalho de exportação YOLO padrão.

O ficheiro *_qnn.onnx exportado é autónomo: incorpora o binário de contexto QNN e metadados ONNX, como nomes das classes, tamanho da imagem e tarefa.

Principais funcionalidades dos modelos QNN#

  • Quantização: O modelo é quantizado para ativações de 16 bits e pesos INT8 através do fluxo QNN QDQ do ONNX Runtime e de um conjunto de dados de calibração, o equilíbrio recomendado entre precisão e desempenho da NPU Hexagon. Sabe mais sobre quantização de modelos.
  • Compilação totalmente local: O binário de contexto é gerado inteiramente na tua máquina anfitriã — sem conta Qualcomm, token de API ou carregamento para a cloud.
  • Aceleração Snapdragon completa: Executa inferência na NPU Hexagon (HTP), na GPU Adreno ou na CPU através de um único runtime unificado.
  • Amplo alcance de dispositivos: Direciona a implementação para a vasta gama de plataformas Snapdragon presentes em telemóveis, PCs (Windows on Snapdragon), produtos automóveis, XR e dispositivos incorporados.
  • Binário de contexto pré-compilado: Distribuir um binário de contexto minimiza a compilação do grafo no dispositivo, reduzindo a latência de carregamento do modelo no destino.
  • Saída autónoma: O ficheiro ONNX exportado inclui o binário de contexto QNN pré-compilado e metadados para uma implementação simples.

Desempenho medido#

Telemóvel Android#

Hardware: Xiaomi 17 com 12 GB de memória LPDDR5X e Android 16 / API 36. O seu Snapdragon 8 Elite Gen 5 de 3 nm (SM8850) possui uma CPU Qualcomm Oryon de 8 núcleos (2 núcleos Prime até 4,6 GHz e 6 núcleos Performance até 3,62 GHz), GPU Adreno e NPU Hexagon (HTP v81).

ModeloTarefatamanho
(píxeis)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
QNN W8A16
(ms)
YOLO26nDeteção64052.2
1.8 / 48.1 / 2.4
15.8
2.3 / 8.9 / 4.6
10.7
1.8 / 6.7 / 2.2
YOLO26n-segSegmentação64073.4
1.8 / 65.6 / 6.0
33.2
1.8 / 23.8 / 7.6
17.4
1.8 / 9.9 / 5.7
YOLO26n-semSemântica64061.2
1.8 / 51.1 / 8.3
34.2
1.8 / 24.0 / 8.3
11.5
1.8 / 7.1 / 2.6
YOLO26n-depthProfundidade640124.4
1.9 / 115.1 / 7.4
23.0
1.8 / 13.5 / 7.7
35.2
1.8 / 26.1 / 7.3
YOLO26n-clsClassificação2244.4
0.4 / 4.0 / 0.0
3.1
0.8 / 2.1 / 0.2
1.2
0.6 / 0.6 / 0.0
YOLO26n-posePose64057.4
1.8 / 53.8 / 1.8
16.6
2.7 / 10.1 / 3.9
10.9
1.8 / 7.0 / 2.0
YOLO26n-obbOBB64050.3
1.8 / 47.2 / 1.4
11.7
1.8 / 7.8 / 2.0
8.6
1.8 / 5.7 / 1.1
  • Os valores de velocidade são latências de rajadas de imagens individuais — a média de 15 execuções após 3 execuções de aquecimento em bus.jpg, medidas com o sistema de referência de benchmark no dispositivo 0.6.10 do plugin Flutter e os recursos v0.6.6 padronizados. A ordem dos backends alternou entre tarefas numa única sequência. Os registos nativos confirmaram que todas as linhas da CPU utilizaram LiteRT CPU/XNNPACK, todas as linhas da GPU delegaram o grafo completo para LiteRT OpenCL (LITERT_CL) e todas as linhas da NPU utilizaram o backend QNN Hexagon HTP.
  • O registo detalhado do benchmark encontra-se no documento de desempenho do Flutter.
  • Compara outros dispositivos Android na integração LiteRT e dispositivos Apple na integração CoreML.

Portátil Windows on Snapdragon#

Esta análise histórica utilizou binários QNN v73 anteriores ao padrão; a semântica e o OBB utilizaram entradas de 1024 px. Foi executada num portátil Lenovo com 32 GB de memória e Windows 11. O seu Snapdragon X Elite (X1E78100) possui uma CPU Qualcomm Oryon de 12 núcleos, GPU Adreno e NPU Hexagon (HTP v73); o modelo exato da Lenovo não foi registado. Esta comparação Windows-on-Snapdragon executa a linha de base nativa da CPU PyTorch FP32, que é o ponto de partida da maioria dos programadores desktop, contra o caminho Hexagon HTP QNN do ONNX Runtime. Cada célula mostra o tempo total model.predict() com os tempos de pré-processamento / inferência / pós-processamento indicados abaixo; o total pode incluir sobrecarga da framework fora destas três etapas. Os valores da CPU são PyTorch FP32 (torch==2.10.0+cpu) e os valores da NPU são ONNX Runtime QNN (onnxruntime-qnn==2.2.0, pesos INT8 / ativações de 16 bits).

ModeloTarefatamanho
(píxeis)
CPU
PT FP32
(ms)
NPU Hexagon
QNN W8A16
(ms)
YOLO26nDeteção64091.4
4.3 / 75.2 / 0.1
27.2
4.9 / 19.4 / 0.9
YOLO26n-segSegmentação640138.8
4.5 / 127.1 / 2.8
34.3
5.0 / 24.0 / 5.1
YOLO26n-semSemântica1024295.8
9.1 / 189.2 / 94.8
133.0
8.8 / 37.4 / 83.9
YOLO26n-clsClassificação22415.4
3.0 / 9.8 / 0.0
11.7
2.7 / 5.5 / 0.0
YOLO26n-posePose640109.6
4.6 / 102.9 / 0.2
28.9
5.3 / 23.3 / 0.6
YOLO26n-obbOBB1024267.8
8.1 / 254.6 / 0.1
64.8
8.9 / 54.7 / 0.6
  • Os valores de velocidade são latências de rajadas de imagens individuais — a média de 100 execuções após 10 execuções de aquecimento em bus.jpg, medidas com time.perf_counter() em torno da chamada completa model.predict() num dispositivo termicamente estabilizado (ultralytics==8.4.67, Python 3.12.10).
  • A NPU Hexagon executa tarefas aproximadamente 2–4x mais rapidamente do que a linha de base da CPU PyTorch nos trabalhos de 640–1024 px (deteção ~3,4x), diminuindo para ~1,3x no classificador de 224 px, onde a sobrecarga fixa do pré-processamento domina a carga de trabalho reduzida.

Tarefas suportadas#

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

TarefaYOLOv8YOLO11YOLO26
Detetar
Segmentar
Semântica
Profundidade
Classificar
Pose
OBB

Exportar para QNN: converter o teu modelo YOLO#

Exporta um modelo Ultralytics YOLO para o formato QNN para implementação em hardware Qualcomm. O binário de contexto é finalizado para uma arquitetura Hexagon Tensor Processor (HTP) ou um SoC compatível de destino, que selecionas com o argumento name — o mesmo argumento utilizado para direcionar um chip na exportação RKNN.

Destinos HTP compatíveis#

Indica a arquitetura de destino ou o SoC através de name (por exemplo, name="73" ou name="iq-8275"). O suporte é determinado pelo destino HTP, pelo que as linhas Snapdragon abaixo representam plataformas, não uma lista exaustiva de todos os SoCs. Os dispositivos Dragonwing são apresentados explicitamente.

EstadonameHexagon HTPDispositivo ou plataforma de exemplo
✅ Compatível68v68Snapdragon 888
✅ Compatível69v69Snapdragon 8 Gen 1 / 8+ Gen 1
✅ Compatível73v73Snapdragon 8 Gen 2, X Elite (predefinido)
✅ Compatível75v75Snapdragon 8 Gen 3
✅ Compatível79v79Snapdragon 8 Elite
✅ Compatível81v81Snapdragon 8 Elite Gen 5
✅ Compatíveliq-8275 ou qcs8275v75Dragonwing IQ-8275 / QCS8275 (modelo SoC Qualcomm QNN 82)
❌ Não compatívelv66Dragonwing IQ-615 / QCS615

O Dragonwing IQ-615 não pode utilizar a exportação de binário de contexto QNN da Ultralytics porque o ONNX Runtime não expõe o seu DSP v66 como destino HTP offline. Ainda é possível integrar separadamente uma exportação ONNX padrão com um fornecedor de execução de CPU ou GPU compatível com o BSP da placa.

Exportar para Dragonwing IQ-8275
from ultralytics import YOLO

model = YOLO("best.pt")
model.export(format="qnn", name="iq-8275", imgsz=640)
Suporte de plataformas

A exportação QNN utiliza o pacote onnxruntime-qnn. A versão 2.4.0 e posteriores disponibilizam wheels pré-compilados para Windows (x64 e ARM64) e Linux (x86-64 e ARM64) em Python 3.11 ou posterior; o macOS não é um anfitrião QNN compatível. A geração do binário de contexto QNN é executada num anfitrião x64 e não requer um dispositivo Snapdragon durante a exportação.

Instalação#

Para instalares os pacotes necessários, executa:

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

O pacote onnxruntime-qnn (que fornece o ONNX Runtime QNN Execution Provider e inclui as bibliotecas QAIRT) é instalado automaticamente na primeira exportação. Para obter instruções detalhadas e boas práticas relacionadas com o processo de instalação, consulta o nosso guia de instalação da Ultralytics. Se encontrares dificuldades ao instalar os pacotes necessários para YOLO, consulta o nosso guia de problemas comuns para obteres soluções e sugestões.

Utilização#

O formato QNN suporta os modos Exportar, Prever e Validar. A inferência e a validação são executadas em hardware Qualcomm Snapdragon através do QNN Execution Provider do ONNX Runtime (o mesmo pacote onnxruntime-qnn utilizado para a exportação). Exporta o teu modelo e, em seguida, carrega o modelo exportado num dispositivo Snapdragon para executar inferência ou validar a sua precisão.

Exportação
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export to Qualcomm QNN format (INT8, enforced automatically) for the default v73 HTP target
model.export(format="qnn", name="73", imgsz=640)  # use imgsz=224 for classification
Previsão
from ultralytics import YOLO

# Load the exported QNN model (on a Snapdragon device with onnxruntime-qnn)
model = YOLO("yolo26n_qnn.onnx")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validar
from ultralytics import YOLO

# Load the exported QNN model (on a Snapdragon device with onnxruntime-qnn)
model = YOLO("yolo26n_qnn.onnx")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Argumentos de Exportação#

ArgumentoTipoPredefiniçãoDescrição
formatstr'qnn'Formato de destino para o modelo exportado, definindo a compatibilidade com o runtime Qualcomm QNN.
imgszint ou tuple640Tamanho de imagem pretendido para a entrada do modelo. Pode ser um número inteiro para imagens quadradas ou um tuplo (height, width).
batchint1Especifica o tamanho do batch do modelo de exportação, que é incorporado no binário de contexto QNN gerado.
namestr'73'Arquitetura Hexagon HTP de destino (68, 69, 73, 75, 79 ou 81) ou SoC compatível (iq-8275 ou qcs8275). O binário de contexto é finalizado para este destino.
quantizeint ou str'w8a16'/autoPrecisão da quantização. A exportação QNN HTP é quantizada para pesos INT8 com ativações de 16 bits ('w8a16') e é ativada automaticamente se não for especificada. Substitui as flags obsoletas 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; a classificação recebe, em vez disso, um diretório de conjunto de dados ou um nome de conjunto de dados integrado. Se omitido, a Ultralytics seleciona o conjunto de dados de calibração predefinido para a tarefa do modelo.
fractionfloat, int ou list1.0Subconjunto de calibração como proporção, contagem de imagens ou proporções/contagens de [train, val, test]. Listas de dois itens deixam test completo, enquanto 0 o ignora.
devicestrNoneEspecifica o dispositivo para a etapa de exportação ONNX: GPU (device=0) ou CPU (device=cpu).
Precision

A exportação QNN quantiza o modelo para ativações de 16 bits e pesos INT8 — o equilíbrio recomendado entre precisão e desempenho para a NPU Hexagon — utilizando o fluxo de quantização QDQ do ONNX Runtime com imagens de calibração de data. quantize='w8a16' é aplicado automaticamente.

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 ficheiro ONNX autónomo:

yolo26n_qnn.onnx # ONNX wrapping the precompiled QNN context binary and metadata

O ficheiro yolo26n_qnn.onnx incorpora o binário de contexto QNN e é carregado pelo ONNX Runtime com o QNN Execution Provider no dispositivo Snapdragon. Também contém metadados do modelo, como nomes das classes, tamanho da imagem e tarefa, no ONNX metadata_props.

Implementação de modelos YOLO QNN exportados#

Os modelos QNN são executados em hardware Qualcomm compatível, tornando simples a implementação de modelos no dispositivo. Num dispositivo compatível com onnxruntime-qnn instalado, executa diretamente o modelo exportado com a API da Ultralytics (yolo predict/yolo val; consulta Utilização acima) — a Ultralytics carrega o binário de contexto HTP através do ONNX Runtime QNN Execution Provider.

Para pipelines personalizados, também podes carregar diretamente o ONNX de contexto binário com o ONNX Runtime. onnxruntime-qnn é um Execution Provider de plug-in, por isso regista-o em tempo de execução:

import onnxruntime as ort
import onnxruntime_qnn as qnn_ep

# On the Snapdragon device, register the QNN plugin EP and select its device(s)
ort.register_execution_provider_library("QNNExecutionProvider", qnn_ep.get_library_path())
devices = [d for d in ort.get_ep_devices() if d.ep_name == "QNNExecutionProvider"]

options = ort.SessionOptions()
options.add_provider_for_devices(devices, {"backend_path": qnn_ep.get_qnn_htp_path()})
session = ort.InferenceSession("yolo26n_qnn.onnx", sess_options=options)
input_info = session.get_inputs()[0]
outputs = session.run(None, {input_info.name: input_tensor})  # input_tensor: float32 NHWC

Como o binário de contexto QNN é pré-compilado, a sessão é carregada rapidamente sem recompilar o grafo no dispositivo.

Requisitos do Linux e do Yocto BSP#

A placa-alvo tem de disponibilizar um runtime Qualcomm e um BSP mutuamente compatíveis. Para inferência HTP, isto inclui o ONNX Runtime QNN Execution Provider, libQnnSystem.so, libQnnHtp.so, as bibliotecas stub e skeleton HTP v75 para IQ-8275, suporte FastRPC no espaço do utilizador, como libcdsprpc.so, o firmware do DSP e os controladores FastRPC/kernel correspondentes. A biblioteca skeleton tem de ser detetável através do caminho das bibliotecas DSP do BSP.

Estes componentes do lado do alvo provêm do BSP do fabricante da placa com QAIRT/QNN ativado; não estão incorporados no modelo exportado. A execução na GPU requer, em alternativa, libQnnGpu.so e a pilha de controladores do espaço do utilizador Adreno correspondente. O resultado format=qnn da Ultralytics é um binário de contexto específico para HTP, por isso a implementação na GPU ou no CPU deve começar por uma exportação ONNX padrão, em vez do ficheiro pré-compilado *_qnn.onnx.

Fluxo de Trabalho Recomendado#

  1. Treina o teu modelo usando o Modo de Treino da Ultralytics
  2. Exporta para o formato QNN utilizando model.export(format="qnn", name="iq-8275", imgsz=640) numa plataforma compatível (utiliza imgsz=224 para classificação)
  3. Implementa o ficheiro *_qnn.onnx exportado no teu dispositivo Qualcomm
  4. Executa a inferência com o ONNX Runtime e o QNN Execution Provider utilizando o backend HTP

Aplicações no mundo real#

Os modelos YOLO executados em hardware Qualcomm Snapdragon são adequados para uma vasta gama de aplicações de IA de edge:

  • Smartphones: Deteção de objetos em tempo real e compreensão de cenas em aplicações de câmara e fotografias, com aceleração por NPU.
  • Windows em Snapdragon: visão computacional no dispositivo em PCs Copilot+, sem transferir o processamento para a cloud.
  • Automóvel: monitorização do condutor, deteção de ocupantes e funcionalidades ADAS em plataformas Snapdragon Digital Chassis.
  • XR e dispositivos vestíveis: perceção de baixo consumo e baixa latência para headsets de AR/VR e óculos inteligentes.
  • IoT e robótica: inferência de visão eficiente em câmaras, drones e sistemas incorporados com Snapdragon.

Resumo#

Neste guia, aprendeste a exportar localmente modelos YOLO da Ultralytics para o formato Qualcomm QNN com o ONNX Runtime QNN Execution Provider. O pipeline de exportação converte o teu modelo para ONNX e, em seguida, compila-o num binário de contexto QNN na tua máquina anfitriã — sem necessidade de uma conta Qualcomm ou da cloud — produzindo um ficheiro *_qnn.onnx otimizado para hardware Snapdragon CPU, GPU Adreno e NPU Hexagon através do runtime QNN/QAIRT.

A combinação de Ultralytics YOLO e da stack de IA no dispositivo da Qualcomm proporciona uma solução eficaz para executar cargas de trabalho avançadas de visão computacional em todo o vasto ecossistema Snapdragon.

Para outros destinos de implementação em dispositivos e dispositivos móveis, consulta os guias de exportação relacionados de ONNX, CoreML, NCNN, LiteRT, ExecuTorch, RKNN, Sony IMX500 e TensorRT. Para comparar formatos antes da distribuição, utiliza o modo Benchmark. Para consultar a lista completa de formatos e opções, visita a documentação do modo Export e a página do guia de integrações.

Perguntas frequentes#

  • Podes exportar o teu modelo utilizando export(format="qnn", imgsz=640) (imgsz=224 para classificação) ou os argumentos equivalentes da CLI. A exportação cria primeiro um modelo ONNX e, em seguida, compila-o localmente num binário de contexto QNN utilizando o ONNX Runtime QNN Execution Provider. O pacote onnxruntime-qnn é instalado automaticamente na primeira exportação.

    Exemplo
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="qnn", imgsz=640)  # use imgsz=224 for classification
  • Não. A exportação QNN é executada inteiramente na tua máquina local utilizando o pacote onnxruntime-qnn, que inclui as bibliotecas QAIRT. Não é necessária uma conta Qualcomm, um token de API ou acesso à rede.

  • O Qualcomm AI Hub é o serviço cloud da Qualcomm para compilar, criar perfis e realizar benchmarks de modelos em dispositivos Snapdragon alojados, e requer uma conta Qualcomm. A exportação QNN da Ultralytics destina-se ao mesmo runtime QNN/QAIRT (CPU Snapdragon, GPU Adreno e NPU Hexagon), mas compila o binário de contexto localmente com o ONNX Runtime QNN Execution Provider — sem conta, carregamento ou fila. É a forma mais rápida de passar de um modelo .pt para uma compilação pronta para Snapdragon diretamente no fluxo de trabalho padrão de exportação YOLO.

  • onnxruntime-qnn 2.4.0 e versões posteriores disponibilizam wheels pré-compiladas para Windows (x64 e ARM64) e Linux (x86-64 e ARM64) em Python 3.11 ou posterior; o macOS não é um anfitrião QNN compatível. A geração do binário de contexto é executada num anfitrião x64 e não requer um dispositivo Snapdragon físico.

  • Exporta com model.export(format="qnn", imgsz=640) (imgsz=224 para classificação), copia o ficheiro resultante yolo26n_qnn.onnx para o teu dispositivo Snapdragon e executa yolo predict model=yolo26n_qnn.onnx source=image.jpg (ou yolo val). A Ultralytics carrega o binário de contexto através do ONNX Runtime QNN Execution Provider e executa-o na NPU Hexagon — consulta Implementação de modelos YOLO QNN exportados.

  • QNN (Qualcomm AI Engine Direct, parte do SDK QAIRT) é a stack de inferência atual da Qualcomm e a substituta recomendada para o SDK Snapdragon Neural Processing Engine (SNPE) mais antigo. As novas implementações devem ter como alvo o QNN.

  • Sim, num dispositivo Qualcomm Snapdragon com onnxruntime-qnn instalado — YOLO("yolo26n_qnn.onnx") carrega o binário de contexto através do QNN Execution Provider e executa predict/val como qualquer outro formato. Num anfitrião x86 sem hardware QNN, o modelo não pode ser executado, pois o binário de contexto tem como alvo a NPU Snapdragon.

  • A exportação cria um ficheiro ONNX autocontido com binário de contexto (por exemplo, yolo26n_qnn.onnx), com nomes de classes, tamanho da imagem, tarefa e outros metadados do modelo incorporados no ONNX metadata_props.

Comentários