YOLO Vision 2026:

Esportazione Qualcomm QNN per i modelli Ultralytics YOLO#

La distribuzione di modelli di computer vision sui dispositivi Qualcomm Snapdragon richiede un formato del modello ottimizzato per il runtime Qualcomm AI Engine Direct (QNN). L'esportazione dei modelli Ultralytics YOLO nel formato QNN ti consente di eseguire inferenze accelerate direttamente sul dispositivo, sfruttando l'hardware CPU Snapdragon, GPU Adreno e NPU Hexagon presente in miliardi di telefoni cellulari, laptop, sistemi automobilistici e dispositivi IoT. Questa guida illustra come esportare YOLO in Qualcomm QNN e distribuirlo per eseguire inferenze rapide e a basso consumo sull'hardware Snapdragon.

Esegui YOLO oggi sulle NPU Snapdragon con le app mobili ufficiali

Il plugin Flutter ufficiale di Ultralytics offre il supporto QNN opzionale per l'inferenza in tempo reale dalla fotocamera e la predizione su immagini singole per tutti e sette i task di YOLO26. Abilita il runtime QNN e aggiungi la relativa dipendenza ONNX Runtime come descritto nel README del plugin. Per la distribuzione su iOS, consulta Ultralytics YOLO iOS SDK e l'integrazione CoreML.

Dimensioni di input mobili ufficiali

Esporta i modelli di classificazione in imgsz=224. Esporta i modelli di rilevamento, segmentazione, segmentazione semantica, profondità, posa e OBB in imgsz=640. Questo standard 224/640 è condiviso dagli asset mobili ufficiali QNN, LiteRT e CoreML. Gli asset v73 e v81 pronti all'uso per tutti e sette i task nano sono pubblicati nella release di yolo-flutter-app v0.6.6.

Che cos'è Qualcomm QNN?#

Qualcomm QNN on-device inference

Qualcomm AI Engine Direct — comunemente indicato come QNN e distribuito come parte dell'SDK Qualcomm AI Runtime (QAIRT) — è lo stack di inferenza di basso livello di Qualcomm per i processori Snapdragon. Fornisce un'API unificata con librerie specifiche per backend destinate alla CPU Snapdragon, alla GPU Adreno e all'Hexagon Tensor Processor (HTP), l'unità di elaborazione delle reti neurali (NPU) dedicata all'interno dei moderni SoC Snapdragon. QNN offre agli sviluppatori accesso full-stack a questi acceleratori AI Snapdragon ed è il moderno successore del precedente SDK Snapdragon Neural Processing Engine (SNPE). Alimenta l'AI direttamente sul dispositivo sulle piattaforme mobili Snapdragon 8 Gen 2, 8 Gen 3 e 8 Elite, sui laptop Snapdragon X e sui prodotti automobilistici e XR.

Perché esportare in Qualcomm QNN?#

Snapdragon è la piattaforma di elaborazione mobile più diffusa al mondo. L'esportazione di Ultralytics YOLO nel formato Qualcomm QNN sblocca l'hardware AI dedicato di questi dispositivi:

  • Accelerazione NPU Hexagon: eseguire YOLO sull'Hexagon Tensor Processor offre un throughput notevolmente superiore e un consumo energetico inferiore rispetto all'inferenza sulla CPU: è ideale per l'inferenza in tempo reale e la computer vision sempre attiva su Snapdragon.
  • Sul dispositivo e offline: l'inferenza QNN viene eseguita interamente sul dispositivo Snapdragon, quindi non ci sono andate e ritorni verso il cloud, la latenza rimane bassa e i dati non lasciano mai il dispositivo.
  • Efficienza con quantizzazione: l'esportazione QNN quantizza YOLO in pesi INT8 con attivazioni a 16 bit, il compromesso preferito dall'NPU Hexagon tra accuratezza e prestazioni, riducendo le dimensioni del modello e massimizzando i fotogrammi al secondo sull'hardware alimentato a batteria.
  • Un formato, molti dispositivi: una singola esportazione Qualcomm QNN supporta CPU Snapdragon, GPU Adreno e NPU Hexagon nelle famiglie Snapdragon 8 Gen 2, 8 Gen 3 e 8 Elite e oltre.
  • Stack AI Qualcomm pronto per la produzione: QNN (Qualcomm AI Engine Direct / QAIRT) è l'attuale runtime AI di Qualcomm per l'esecuzione sul dispositivo, mantenuto attivamente e consigliato come sostituto di SNPE.

Formato di esportazione QNN#

Ultralytics compila localmente i modelli YOLO in QNN usando il QNN Execution Provider di ONNX Runtime (il pacchetto installabile tramite pip onnxruntime-qnn, che include le librerie QAIRT). L'esportatore converte il modello in ONNX, lo quantizza con dati di calibrazione in attivazioni a 16 bit e pesi INT8 (il compromesso consigliato per l'NPU Hexagon), quindi inizializza una sessione ONNX Runtime con la memorizzazione nella cache del context binary abilitata — in questo modo compila il grafo quantizzato in un QNN context binary incorporato in <model>_qnn.onnx. Non sono necessari un account Qualcomm, il caricamento sul cloud o il download di un SDK separato.

A differenza di Qualcomm AI Hub basato sul cloud, che compila e analizza i modelli su dispositivi Snapdragon ospitati da Qualcomm e richiede un account Qualcomm, l'esportazione QNN di Ultralytics viene eseguita interamente sulla tua macchina con una singola chiamata export(format="qnn", imgsz=640) (imgsz=224 per la classificazione). Ottieni lo stesso target runtime QNN/QAIRT — CPU Snapdragon, GPU Adreno e NPU Hexagon — senza registrazione, limiti di caricamento o tempi di coda, integrandolo direttamente nel flusso di lavoro standard di esportazione YOLO.

Il file *_qnn.onnx esportato è autonomo: incorpora il context binary QNN e i metadati ONNX, come i nomi delle classi, le dimensioni dell'immagine e il task.

Caratteristiche principali dei modelli QNN#

  • Quantizzazione: il modello viene quantizzato in attivazioni a 16 bit e pesi INT8 mediante il flusso QNN QDQ di ONNX Runtime e un dataset di calibrazione, il compromesso consigliato dall'NPU Hexagon tra accuratezza e prestazioni. Scopri di più sulla quantizzazione dei modelli.
  • Compilazione completamente locale: il context binary viene generato interamente sulla tua macchina host, senza account Qualcomm, token API o caricamento sul cloud.
  • Accelerazione completa Snapdragon: esegui l'inferenza sull'NPU Hexagon (HTP), sulla GPU Adreno o sulla CPU tramite un singolo runtime unificato.
  • Ampia compatibilità con i dispositivi: supporta l'ampia gamma di piattaforme Snapdragon presenti in telefoni, PC (Windows su Snapdragon), prodotti automobilistici, XR ed embedded.
  • Context binary precompilato: distribuire un context binary riduce al minimo la compilazione del grafo sul dispositivo, diminuendo la latenza di caricamento del modello sul dispositivo di destinazione.
  • Output autonomo: il file ONNX esportato include il context binary QNN precompilato e i metadati per una distribuzione semplice.

Prestazioni misurate#

Telefono Android#

Hardware: Xiaomi 17 con 12 GB di memoria LPDDR5X e Android 16 / API 36. Il suo Snapdragon 8 Elite Gen 5 a 3 nm (SM8850) dispone di una CPU Qualcomm Oryon a 8 core (2 core Prime fino a 4,6 GHz e 6 core Performance fino a 3,62 GHz), GPU Adreno e NPU Hexagon (HTP v81).

ModelloAttivitàdimensione
(pixel)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
QNN W8A16
(ms)
YOLO26nDetect64052.2
1.8 / 48.1 / 2.4
15.8
2.3 / 8.9 / 4.6
10.7
1.8 / 6.7 / 2.2
YOLO26n-segSegment64073.4
1.8 / 65.6 / 6.0
33.2
1.8 / 23.8 / 7.6
17.4
1.8 / 9.9 / 5.7
YOLO26n-semSemantica64061.2
1.8 / 51.1 / 8.3
34.2
1.8 / 24.0 / 8.3
11.5
1.8 / 7.1 / 2.6
YOLO26n-depthProfondità640124.4
1.9 / 115.1 / 7.4
23.0
1.8 / 13.5 / 7.7
35.2
1.8 / 26.1 / 7.3
YOLO26n-clsClassificazione2244.4
0.4 / 4.0 / 0.0
3.1
0.8 / 2.1 / 0.2
1.2
0.6 / 0.6 / 0.0
YOLO26n-posePosa64057.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
  • I valori di velocità sono latenze burst su immagini singole: la media di 15 esecuzioni dopo 3 esecuzioni di riscaldamento su bus.jpg, misurata con l'har­ness di benchmark sul dispositivo 0.6.10 del plugin Flutter e gli asset standardizzati v0.6.6. L'ordine dei backend è stato alternato tra i task in un'unica sequenza. I log nativi hanno confermato che ogni riga CPU usava LiteRT CPU/XNNPACK, ogni riga GPU delegava il grafo completo a LiteRT OpenCL (LITERT_CL) e ogni riga NPU usava il backend QNN Hexagon HTP.
  • Il record dettagliato del benchmark è disponibile nella documentazione sulle prestazioni Flutter.
  • Confronta altri dispositivi Android nell'integrazione LiteRT e i dispositivi Apple nell' integrazione CoreML.

Laptop Windows su Snapdragon#

Questa analisi storica ha utilizzato file binari QNN v73 precedenti alla standardizzazione; la segmentazione semantica e l'OBB utilizzavano input da 1024 px. È stata eseguita su un laptop Lenovo con 32 GB di memoria e Windows 11. Il suo Snapdragon X Elite (X1E78100) dispone di una CPU Qualcomm Oryon a 12 core, GPU Adreno e NPU Hexagon (HTP v73); il modello Lenovo esatto non è stato registrato. Questo confronto Windows su Snapdragon mette a confronto la baseline nativa CPU PyTorch FP32, da cui parte la maggior parte degli sviluppatori desktop, con il percorso Hexagon HTP QNN di ONNX Runtime. Ogni cella mostra il tempo totale model.predict() con i tempi di preprocessing / inferenza / postprocessing riportati sotto; il totale può includere l'overhead del framework al di fuori di queste tre fasi. I valori CPU sono PyTorch FP32 (torch==2.10.0+cpu) e i valori NPU sono ONNX Runtime QNN (onnxruntime-qnn==2.2.0, pesi INT8 / attivazioni a 16 bit).

ModelloAttivitàdimensione
(pixel)
CPU
PT FP32
(ms)
NPU Hexagon
QNN W8A16
(ms)
YOLO26nDetect64091.4
4.3 / 75.2 / 0.1
27.2
4.9 / 19.4 / 0.9
YOLO26n-segSegment640138.8
4.5 / 127.1 / 2.8
34.3
5.0 / 24.0 / 5.1
YOLO26n-semSemantica1024295.8
9.1 / 189.2 / 94.8
133.0
8.8 / 37.4 / 83.9
YOLO26n-clsClassificazione22415.4
3.0 / 9.8 / 0.0
11.7
2.7 / 5.5 / 0.0
YOLO26n-posePosa640109.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
  • I valori di velocità sono latenze burst su immagini singole: la media di 100 esecuzioni dopo 10 esecuzioni di riscaldamento su bus.jpg, misurata con time.perf_counter() intorno alla chiamata completa model.predict() su un dispositivo termicamente stabilizzato (ultralytics==8.4.67, Python 3.12.10).
  • L'NPU Hexagon è circa 2-4 volte più veloce della baseline CPU PyTorch nei task da 640-1024 px (rilevamento ~3.4x), riducendo il vantaggio a ~1.3x sul classificatore da 224 px, dove l'overhead fisso del preprocessing domina il carico di lavoro ridotto.

Attività supportate#

L'esportazione Qualcomm QNN supporta tutti e sette i task di Ultralytics. La segmentazione semantica e la stima della profondità sono disponibili solo con YOLO26, l'unica famiglia che include queste head.

AttivitàYOLOv8YOLO11YOLO26
Rilevamento
Segmentazione
Semantica
Profondità
Classificazione
Posa
OBB

Esportazione in QNN: conversione del modello YOLO#

Esporta un modello Ultralytics YOLO nel formato QNN per la distribuzione sull'hardware Qualcomm. Il context binary viene finalizzato per un'architettura Hexagon Tensor Processor (HTP) o un SoC supportato, che selezioni con l'argomento name, lo stesso argomento usato per selezionare un chip nell'esportazione RKNN.

Target HTP supportati#

Passa l'architettura target o il SoC tramite name (ad esempio name="73" o name="iq-8275"). Il supporto è determinato dal target HTP, quindi le righe Snapdragon seguenti rappresentano piattaforme esemplificative e non un elenco esaustivo di ogni SoC. I dispositivi Dragonwing sono elencati esplicitamente.

StatonameHexagon HTPDispositivo o piattaforma di esempio
✅ Supportato68v68Snapdragon 888
✅ Supportato69v69Snapdragon 8 Gen 1 / 8+ Gen 1
✅ Supportato73v73Snapdragon 8 Gen 2, X Elite (predefinito)
✅ Supportato75v75Snapdragon 8 Gen 3
✅ Supportato79v79Snapdragon 8 Elite
✅ Supportato81v81Snapdragon 8 Elite Gen 5
✅ Supportatoiq-8275 o qcs8275v75Dragonwing IQ-8275 / QCS8275 (modello SoC QNN 82)
❌ Non supportatov66Dragonwing IQ-615 / QCS615

Dragonwing IQ-615 non può utilizzare l'esportazione del context binary QNN di Ultralytics perché ONNX Runtime non espone il suo DSP v66 come target HTP offline. Un'esportazione ONNX standard può comunque essere integrata separatamente con un execution provider CPU o GPU supportato dal BSP della scheda.

Esportazione per Dragonwing IQ-8275
from ultralytics import YOLO

model = YOLO("best.pt")
model.export(format="qnn", name="iq-8275", imgsz=640)
Supporto delle piattaforme

L'esportazione QNN utilizza il pacchetto onnxruntime-qnn. La versione 2.4.0 e successive pubblica wheel precompilate per Windows (x64 e ARM64) e Linux (x86-64 e ARM64) su Python 3.11 o versioni successive; macOS non è un host QNN supportato. La generazione del context binary QNN viene eseguita su un host x64 e non richiede un dispositivo Snapdragon per la fase di esportazione.

Installazione#

Per installare i pacchetti richiesti, esegui:

Installazione
# Install the required package for YOLO
pip install ultralytics

Il pacchetto onnxruntime-qnn (che fornisce il QNN Execution Provider di ONNX Runtime e include le librerie QAIRT) viene installato automaticamente alla prima esportazione. Per istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di Ultralytics. Se durante l'installazione dei pacchetti richiesti per YOLO riscontri difficoltà, consulta la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.

Utilizzo#

Il formato QNN supporta le modalità Esporta, Predici e Valida. L'inferenza e la validazione vengono eseguite sull'hardware Qualcomm Snapdragon tramite il QNN Execution Provider di ONNX Runtime (lo stesso pacchetto onnxruntime-qnn usato per l'esportazione). Esporta il modello, quindi carica il modello esportato su un dispositivo Snapdragon per eseguire l'inferenza o verificarne l'accuratezza.

Esportazione
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
Predizione
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")
Valida
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")

Argomenti di esportazione#

ArgomentoTipoPredefinitoDescrizione
formatstr'qnn'Formato target del modello esportato, che definisce la compatibilità con il runtime Qualcomm QNN.
imgszint o tuple640Dimensioni desiderate dell'immagine per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width).
batchint1Specifica la dimensione del batch del modello esportato, incorporata nel context binary QNN generato.
namestr'73'Architettura target Hexagon HTP (68, 69, 73, 75, 79 o 81) o SoC supportato (iq-8275 o qcs8275). Il context binary viene finalizzato per questo target.
quantizeint o str'w8a16'/autoPrecisione della quantizzazione. L'esportazione QNN HTP viene quantizzata in pesi INT8 con attivazioni a 16 bit ('w8a16') e viene abilitata automaticamente se non specificata. Sostituisce i flag deprecati half/int8.
simplifyboolTrueSemplifica il grafo ONNX intermedio con onnxslim.
opsetintNoneSpecifica la versione dell'opset ONNX per il grafo ONNX intermedio. Se non impostata, viene utilizzata la versione supportata più recente.
datastrNoneFile YAML del dataset utilizzato per la calibrazione INT8; per la classificazione accetta invece una directory del dataset o il nome di un dataset integrato. Se omesso, Ultralytics seleziona il dataset di calibrazione predefinito per il task del modello.
fractionfloat, int o list1.0Sottoinsieme di calibrazione espresso come rapporto, numero di immagini oppure rapporti/conteggi [train, val, test]. Gli elenchi di due elementi lasciano completo test, mentre 0 lo salta.
devicestrNoneSpecifica il dispositivo per la fase di esportazione ONNX: GPU (device=0) o CPU (device=cpu).
Precision

L'esportazione QNN quantizza il modello in attivazioni a 16 bit e pesi INT8 — il compromesso consigliato tra accuratezza e prestazioni per l'NPU Hexagon — utilizzando il flusso di quantizzazione QDQ di ONNX Runtime con immagini di calibrazione da data. quantize='w8a16' viene imposto automaticamente.

Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione Ultralytics sull'esportazione.

Struttura dell'output#

Dopo un'esportazione completata correttamente, viene creato un file ONNX autonomo:

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

Il file yolo26n_qnn.onnx incorpora il binario di contesto QNN e viene caricato da ONNX Runtime con il QNN Execution Provider sul dispositivo Snapdragon. Contiene inoltre i metadati del modello, come i nomi delle classi, le dimensioni delle immagini e il task, in ONNX metadata_props.

Distribuzione dei modelli YOLO QNN esportati#

I modelli QNN vengono eseguiti sull'hardware Qualcomm supportato, rendendo semplice la distribuzione dei modelli sul dispositivo. Su un dispositivo compatibile con onnxruntime-qnn installato, esegui direttamente il modello esportato con l'API Ultralytics (yolo predict/yolo val, vedi Utilizzo sopra): Ultralytics carica il binario di contesto HTP tramite ONNX Runtime QNN Execution Provider.

Per le pipeline personalizzate, puoi anche caricare direttamente il binario di contesto ONNX con ONNX Runtime. onnxruntime-qnn è un Execution Provider aggiuntivo, quindi registralo durante l'esecuzione:

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

Poiché il binario di contesto QNN è precompilato, la sessione viene caricata rapidamente senza ricompilare il grafo sul dispositivo.

Requisiti per Linux e Yocto BSP#

La scheda di destinazione deve fornire un runtime Qualcomm e un BSP reciprocamente compatibili. Per l'inferenza HTP, ciò include ONNX Runtime QNN Execution Provider, libQnnSystem.so, libQnnHtp.so, le librerie stub e skeleton HTP v75 per IQ-8275, il supporto userspace FastRPC come libcdsprpc.so, il firmware DSP e i driver FastRPC/kernel corrispondenti. La libreria skeleton deve essere individuabile tramite il percorso delle librerie DSP del BSP.

Questi componenti sul dispositivo di destinazione provengono dal BSP del produttore della scheda abilitato per QAIRT/QNN; non sono incorporati nel modello esportato. L'esecuzione sulla GPU richiede invece libQnnGpu.so e lo stack di driver userspace Adreno corrispondente. L'output Ultralytics format=qnn è un binario di contesto specifico per HTP, quindi la distribuzione su GPU o CPU dovrebbe partire da un'esportazione ONNX standard anziché dal file precompilato *_qnn.onnx.

Flusso di lavoro consigliato#

  1. Addestra il tuo modello usando la modalità Addestra di Ultralytics
  2. Esporta nel formato QNN usando model.export(format="qnn", name="iq-8275", imgsz=640) su una piattaforma supportata (usa imgsz=224 per la classificazione)
  3. Distribuisci il file *_qnn.onnx esportato sul tuo dispositivo Qualcomm
  4. Esegui l'inferenza con ONNX Runtime e il QNN Execution Provider usando il backend HTP

Applicazioni nel mondo reale#

I modelli YOLO eseguiti sull'hardware Qualcomm Snapdragon sono adatti a un'ampia gamma di applicazioni di AI edge:

  • Smartphone: Rilevamento degli oggetti in tempo reale e comprensione della scena nelle app fotocamera e foto con accelerazione NPU.
  • Windows su Snapdragon: computer vision sul dispositivo nei PC Copilot+ senza trasferire i dati al cloud.
  • Automotive: monitoraggio del conducente, rilevamento degli occupanti e funzionalità ADAS sulle piattaforme Snapdragon Digital Chassis.
  • XR e dispositivi indossabili: percezione a basso consumo e bassa latenza per visori AR/VR e occhiali smart.
  • IoT e robotica: inferenza visiva efficiente su videocamere, droni e sistemi embedded basati su Snapdragon.

In questa guida hai imparato a esportare localmente i modelli Ultralytics YOLO nel formato Qualcomm QNN con ONNX Runtime QNN Execution Provider. La pipeline di esportazione converte il modello in ONNX, quindi lo compila in un binario di contesto QNN sulla macchina host, senza richiedere un account Qualcomm o il cloud, producendo un file *_qnn.onnx ottimizzato per l'hardware CPU Snapdragon, GPU Adreno e NPU Hexagon tramite il runtime QNN/QAIRT.

La combinazione di Ultralytics YOLO e dello stack AI on-device di Qualcomm offre una soluzione efficace per eseguire carichi di lavoro avanzati di [computer vision](https://ultralytics-translation-1.invalid nell'ampio ecosistema Snapdragon.

Per altri target di distribuzione on-device e mobile, consulta le guide all'esportazione correlate per ONNX, CoreML, NCNN, LiteRT, ExecuTorch, RKNN, Sony IMX500 e TensorRT. Per confrontare i formati prima della distribuzione, usa la modalità Benchmark. Per l'elenco completo dei formati e delle opzioni, consulta la documentazione della modalità Export e la pagina della guida alle integrazioni.

FAQ#

  • Puoi esportare il modello usando export(format="qnn", imgsz=640) (imgsz=224 per la classificazione) o gli argomenti CLI equivalenti. L'esportazione crea prima un modello ONNX, quindi lo compila localmente in un binario di contesto QNN usando ONNX Runtime QNN Execution Provider. Il pacchetto onnxruntime-qnn viene installato automaticamente alla prima esportazione.

    Esempio
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="qnn", imgsz=640)  # use imgsz=224 for classification
  • No. L'esportazione QNN viene eseguita interamente sulla tua macchina locale usando il pacchetto onnxruntime-qnn, che include le librerie QAIRT. Non sono necessari un account Qualcomm, un token API o l'accesso alla rete.

  • Qualcomm AI Hub è il servizio cloud di Qualcomm per compilare, profilare e sottoporre a benchmark i modelli su dispositivi Snapdragon ospitati e richiede un account Qualcomm. L'esportazione QNN di Ultralytics è destinata allo stesso runtime QNN/QAIRT (CPU Snapdragon, GPU Adreno e NPU Hexagon), ma compila il binario di contesto localmente con ONNX Runtime QNN Execution Provider: nessun account, nessun caricamento e nessuna coda. È il modo più rapido per passare da un modello .pt a una build pronta per Snapdragon direttamente nel flusso di lavoro standard di esportazione YOLO.

  • onnxruntime-qnn 2.4.0 e versioni successive fornisce wheel precompilate per Windows (x64 e ARM64) e Linux (x86-64 e ARM64) su Python 3.11 o versioni successive; macOS non è un host QNN supportato. La generazione del binario di contesto viene eseguita su un host x64 e non richiede un dispositivo Snapdragon fisico.

  • Esporta con model.export(format="qnn", imgsz=640) (imgsz=224 per la classificazione), copia il file risultante yolo26n_qnn.onnx sul tuo dispositivo Snapdragon ed esegui yolo predict model=yolo26n_qnn.onnx source=image.jpg (o yolo val). Ultralytics carica il binario di contesto tramite ONNX Runtime QNN Execution Provider e lo esegue sulla NPU Hexagon; consulta Distribuzione dei modelli YOLO QNN esportati.

  • QNN (Qualcomm AI Engine Direct, parte dell'SDK QAIRT) è lo stack di inferenza attuale di Qualcomm e il sostituto consigliato per il precedente SDK Snapdragon Neural Processing Engine (SNPE). Le nuove distribuzioni dovrebbero puntare a QNN.

  • Sì, su un dispositivo Qualcomm Snapdragon con onnxruntime-qnn installato: YOLO("yolo26n_qnn.onnx") carica il binario di contesto tramite QNN Execution Provider ed esegue predict/val come qualsiasi altro formato. Su un host x86 senza hardware QNN il modello non può essere eseguito, perché il binario di contesto è destinato alla NPU Snapdragon.

  • L'esportazione crea un file ONNX con binario di contesto autonomo (ad esempio, yolo26n_qnn.onnx) con nomi delle classi, dimensioni delle immagini, task e altri metadati del modello incorporati in ONNX metadata_props.

Commenti