Ultralytics YOLO27:

Экспорт Qualcomm QNN для моделей Ultralytics YOLO#

Для развертывания моделей компьютерного зрения на устройствах Qualcomm Snapdragon требуется формат модели, оптимизированный для среды выполнения Qualcomm AI Engine Direct (QNN). Экспорт моделей Ultralytics YOLO в формат QNN позволяет запускать ускоренный вывод непосредственно на устройстве, используя CPU Snapdragon, GPU Adreno и NPU Hexagon, которыми оснащены миллиарды мобильных телефонов, ноутбуков, автомобильных систем и устройств IoT. В этом руководстве показано, как экспортировать YOLO в Qualcomm QNN и развернуть его для быстрого вывода с низким энергопотреблением на оборудовании Snapdragon.

Запускай YOLO на NPU Snapdragon уже сегодня с официальными мобильными приложениями

Официальный плагин Ultralytics для Flutter предоставляет QNN с возможностью явного включения для вывода с камеры в реальном времени и предсказаний по отдельным изображениям во всех семи задачах YOLO26. Включи среду выполнения QNN и добавь ее зависимость ONNX Runtime, как описано в README плагина. Для развертывания на iOS см. Ultralytics YOLO iOS SDK и интеграцию CoreML.

Официальные размеры входных данных для мобильных устройств

Экспортируй модели классификации в imgsz=224. Экспортируй модели обнаружения, сегментации, семантической сегментации, оценки глубины, поз и OBB в imgsz=640. Этот стандарт 224/640 используется официальными мобильными ресурсами QNN, LiteRT и CoreML. Готовые к запуску ресурсы v73 и v81 для всех семи нано-задач опубликованы в релизе yolo-flutter-app v0.6.6.

Что такое Qualcomm QNN?#

Qualcomm QNN on-device inference

Qualcomm AI Engine Direct, обычно называемый QNN и распространяемый как часть SDK Qualcomm AI Runtime (QAIRT), — это низкоуровневый стек вывода Qualcomm для процессоров Snapdragon. Он предоставляет унифицированный API со специализированными библиотеками для различных бэкендов, рассчитанными на CPU Snapdragon, GPU Adreno и тензорный процессор Hexagon (HTP) — выделенный нейронный процессор (NPU) внутри современных SoC Snapdragon. QNN предоставляет разработчикам полноуровневый доступ к этим AI-ускорителям Snapdragon и является современным преемником устаревшего SDK Snapdragon Neural Processing Engine (SNPE). Он обеспечивает работу AI непосредственно на устройствах мобильных платформ Snapdragon 8 Gen 2, 8 Gen 3 и 8 Elite, ноутбуков Snapdragon X, а также автомобильных продуктов и устройств XR.

Зачем экспортировать в Qualcomm QNN?#

Snapdragon — самая распространенная в мире мобильная вычислительная платформа. Экспорт Ultralytics YOLO в формат Qualcomm QNN открывает доступ к выделенному AI-оборудованию этих устройств:

  • Ускорение на NPU Hexagon: запуск YOLO на тензорном процессоре Hexagon обеспечивает значительно более высокую пропускную способность и меньшее энергопотребление по сравнению с выводом на CPU — это идеально подходит для вывода в реальном времени и постоянно работающего компьютерного зрения на Snapdragon.
  • Непосредственно на устройстве и офлайн: вывод QNN полностью выполняется на устройстве Snapdragon, поэтому обращения к облаку не требуются, задержка остается низкой, а данные никогда не покидают устройство.
  • Эффективность квантования: экспорт QNN квантует YOLO до весов INT8 с активациями 16-bit — это предпочтительный баланс точности и производительности для NPU Hexagon, позволяющий уменьшить размер модели и максимизировать количество кадров в секунду на оборудовании с питанием от аккумулятора.
  • Один формат для множества устройств: один экспорт Qualcomm QNN поддерживает CPU Snapdragon, GPU Adreno и NPU Hexagon во всех семействах Snapdragon 8 Gen 2, 8 Gen 3 и 8 Elite, а также в последующих платформах.
  • Готовый к промышленной эксплуатации стек Qualcomm AI: QNN (Qualcomm AI Engine Direct / QAIRT) — это текущая активно поддерживаемая среда выполнения AI непосредственно на устройстве от Qualcomm и рекомендуемая замена SNPE.

Формат экспорта QNN#

Ultralytics компилирует модели YOLO в QNN локально, используя QNN Execution Provider для ONNX Runtime (устанавливаемый через pip пакет onnxruntime-qnn, включающий библиотеки QAIRT). Экспортер преобразует модель в ONNX, квантует ее с помощью калибровочных данных до активаций 16-bit и весов INT8 (рекомендуемый баланс для NPU Hexagon), а затем инициализирует сессию ONNX Runtime с включенным кэшированием контекстного бинарного файла — так квантизированный граф компилируется в контекстный бинарный файл QNN, встроенный в <model>_qnn.onnx. Учетная запись Qualcomm, загрузка в облако или отдельная загрузка SDK не требуются.

В отличие от облачного Qualcomm AI Hub, который компилирует и профилирует модели на размещенных Qualcomm устройствах Snapdragon и требует учетную запись Qualcomm, экспорт QNN от Ultralytics полностью выполняется на твоем компьютере одним вызовом export(format="qnn", imgsz=640) (imgsz=224 для классификации). Ты получаешь ту же целевую среду выполнения QNN/QAIRT — CPU Snapdragon, GPU Adreno и NPU Hexagon — без регистрации, ограничений на загрузку и времени ожидания в очереди, а результат сразу включается в стандартный рабочий процесс экспорта YOLO.

Экспортированный файл *_qnn.onnx является автономным: он содержит контекстный бинарный файл QNN и метаданные ONNX, например названия классов, размер изображения и задачу.

Ключевые особенности моделей QNN#

  • Квантование: модель квантуется до активаций 16-bit и весов INT8 с помощью процесса QNN QDQ в ONNX Runtime и набора данных для калибровки — рекомендуемого баланса точности и производительности для NPU Hexagon. Подробнее см. в разделе о квантовании моделей.
  • Полностью локальная компиляция: контекстный бинарный файл полностью создается на твоем компьютере — учетная запись Qualcomm, API-токен и загрузка в облако не требуются.
  • Полное ускорение Snapdragon: запускай вывод на NPU Hexagon (HTP), GPU Adreno или CPU через единую унифицированную среду выполнения.
  • Широкий охват устройств: поддерживаются многочисленные платформы Snapdragon, используемые в телефонах, ПК (Windows on Snapdragon), автомобильных, XR- и встраиваемых продуктах.
  • Предварительно скомпилированный контекстный бинарный файл: поставка контекстного бинарного файла сводит к минимуму компиляцию графа на устройстве и уменьшает задержку загрузки модели на целевом устройстве.
  • Автономный результат: экспортированный файл ONNX содержит предварительно скомпилированный контекстный бинарный файл QNN и метаданные для простого развертывания.

Измеренная производительность#

Телефон на Android#

Оборудование: Xiaomi 17 с 12 ГБ памяти LPDDR5X и Android 16 / API 36. Его 3-нм Snapdragon 8 Elite Gen 5 (SM8850) оснащен 8-ядерным CPU Qualcomm Oryon (2 производительных ядра до 4,6 ГГц и 6 ядер Performance до 3,62 ГГц), GPU Adreno и NPU Hexagon (HTP v81).

МодельЗадачаразмер
(пиксели)
CPU
w8a32 LiteRT
(мс)
GPU
w8a32 LiteRT
(мс)
NPU
QNN W8A16
(мс)
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-semСемантическая сегментация64061.2
1.8 / 51.1 / 8.3
34.2
1.8 / 24.0 / 8.3
11.5
1.8 / 7.1 / 2.6
YOLO26n-depthГлубина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-clsКлассификация2244.4
0.4 / 4.0 / 0.0
3.1
0.8 / 2.1 / 0.2
1.2
0.6 / 0.6 / 0.0
YOLO26n-poseПозы64057.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
  • Значения скорости — это задержки пакетного вывода для одного изображения: среднее значение по 15 запускам после 3 прогревочных запусков на bus.jpg, измеренное с помощью встроенного в устройство тестового модуля 0.6.10 плагина Flutter и стандартизированных ресурсов v0.6.6. Порядок бэкендов менялся между задачами в рамках одного последовательного прохода. Нативные журналы подтвердили, что каждая строка для CPU использовала LiteRT CPU/XNNPACK, каждая строка для GPU передавала полный граф в LiteRT OpenCL (LITERT_CL), а каждая строка для NPU использовала бэкенд QNN Hexagon HTP.
  • Подробная запись результатов тестирования приведена в документе о производительности Flutter.
  • Сравни другие устройства Android в разделе интеграции LiteRT, а устройства Apple — в разделе интеграции CoreML.

Ноутбук Windows on Snapdragon#

В этом историческом тестировании использовались бинарные файлы QNN до стандарта v73; для семантической сегментации и OBB применялись входные изображения размером 1024 пикселя. Тестирование выполнялось на ноутбуке Lenovo с 32 ГБ памяти под управлением Windows 11. Его Snapdragon X Elite (X1E78100) оснащен 12-ядерным CPU Qualcomm Oryon, GPU Adreno и NPU Hexagon (HTP v73); точная модель Lenovo не была зафиксирована. В этом сравнении Windows-on-Snapdragon сопоставляется базовый вариант на нативном PyTorch FP32 CPU, с которого обычно начинают разработчики настольных приложений, с путем ONNX Runtime QNN Hexagon HTP. Каждая ячейка показывает полное model.predict() время выполнения с указанными ниже значениями времени предобработки / вывода / постобработки; итог может включать накладные расходы фреймворка за пределами этих трех этапов. Значения для CPU — это PyTorch FP32 (torch==2.10.0+cpu), а значения для NPU — ONNX Runtime QNN (onnxruntime-qnn==2.2.0, веса INT8 / активации 16-bit).

МодельЗадачаразмер
(пиксели)
CPU
PT FP32
(мс)
NPU Hexagon
QNN W8A16
(мс)
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-semСемантическая сегментация1024295.8
9.1 / 189.2 / 94.8
133.0
8.8 / 37.4 / 83.9
YOLO26n-clsКлассификация22415.4
3.0 / 9.8 / 0.0
11.7
2.7 / 5.5 / 0.0
YOLO26n-poseПозы640109.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
  • Значения скорости — это задержки пакетного вывода для одного изображения: среднее значение по 100 запускам после 10 прогревочных запусков на bus.jpg, измеренное с помощью time.perf_counter() вокруг полного вызова model.predict() на устройстве, достигшем теплового равновесия (ultralytics==8.4.67, Python 3.12.10).
  • NPU Hexagon работает примерно в 2–4 раза быстрее, чем базовый вариант PyTorch на CPU, для задач с размером 640–1024 пикселя (для обнаружения — примерно в 3,4 раза), а для классификатора с входом 224 пикселя преимущество сокращается примерно до 1,3 раза, поскольку фиксированные накладные расходы предобработки доминируют над небольшой рабочей нагрузкой.

Поддерживаемые задачи#

Экспорт Qualcomm QNN поддерживает все семь задач Ultralytics. Семантическая сегментация и оценка глубины доступны только в YOLO26 — единственном семействе, в котором есть такие головы.

Экспорт в QNN: преобразование твоей модели YOLO#

Экспортируй модель Ultralytics YOLO в формат QNN для развертывания на оборудовании Qualcomm. Контекстный бинарный файл создается для целевой архитектуры тензорного процессора Hexagon (HTP) или поддерживаемого SoC, который ты выбираешь с помощью аргумента name — того же аргумента, который используется для выбора чипа при экспорте RKNN.

Поддерживаемые цели HTP#

Передай целевую архитектуру или SoC через name (например, name="73" или name="iq-8275"). Поддержка определяется целевым HTP, поэтому строки Snapdragon ниже представляют платформы, а не исчерпывающий список всех SoC. Устройства Dragonwing перечислены явно.

СтатусnameHexagon HTPПример устройства или платформы
✅ Поддерживается68v68Snapdragon 888
✅ Поддерживается69v69Snapdragon 8 Gen 1 / 8+ Gen 1
✅ Поддерживается73v73Snapdragon 8 Gen 2, X Elite (по умолчанию)
✅ Поддерживается75v75Snapdragon 8 Gen 3
✅ Поддерживается79v79Snapdragon 8 Elite
✅ Поддерживается81v81Snapdragon 8 Elite Gen 5
✅ Поддерживаетсяiq-8275 или qcs8275v75Dragonwing IQ-8275 / QCS8275 (модель SoC QNN 82)
❌ Не поддерживаетсяv66Dragonwing IQ-615 / QCS615

Dragonwing IQ-615 нельзя использовать с экспортом контекстного бинарного файла Ultralytics QNN, поскольку ONNX Runtime не предоставляет его DSP v66 в качестве автономной цели HTP. Стандартный экспорт ONNX по-прежнему можно отдельно интегрировать с провайдером выполнения на CPU или GPU, поддерживаемым BSP платы.

Экспорт для Dragonwing IQ-8275
from ultralytics import YOLO

model = YOLO("best.pt")
model.export(format="qnn", name="iq-8275", imgsz=640)
Поддержка платформ

Для экспорта QNN используется пакет onnxruntime-qnn. Версия 2.4.0 и более поздние версии публикуют готовые колеса для Windows (x64 и ARM64) и Linux (x86-64 и ARM64) на Python 3.11 или более поздней версии; macOS не поддерживается в качестве хост-системы QNN. Генерация контекстного бинарного файла QNN выполняется на хосте x64, и для этапа экспорта устройство Snapdragon не требуется.

Установка#

Чтобы установить необходимые пакеты, выполни:

Установка
# Install the required package for YOLO
pip install ultralytics

Пакет onnxruntime-qnn (предоставляющий QNN Execution Provider для ONNX Runtime и включающий библиотеки QAIRT) устанавливается автоматически при первом экспорте. Подробные инструкции и рекомендации по установке см. в нашем руководстве по установке Ultralytics. Если при установке необходимых для YOLO пакетов возникнут сложности, обратись к нашему руководству по распространенным проблемам, где приведены решения и советы.

Использование#

Формат QNN поддерживает режимы Export, Predict и Validate. Вывод и валидация выполняются на оборудовании Qualcomm Snapdragon через QNN Execution Provider в ONNX Runtime (тот же пакет onnxruntime-qnn, который используется для экспорта). Экспортируй модель, затем загрузи экспортированную модель на устройство Snapdragon, чтобы выполнить вывод или проверить ее точность.

Экспорт
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
Predict
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")
Валидация
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")

Аргументы экспорта#

АргументТипПо умолчаниюОписание
formatstr'qnn'Целевой формат экспортируемой модели, определяющий совместимость со средой выполнения Qualcomm QNN.
imgszint или tuple640Желаемый размер входного изображения модели. Может быть целым числом для квадратных изображений или кортежем (height, width).
batchint1Задает размер пакета экспортируемой модели, который встраивается в созданный контекстный бинарный файл QNN.
namestr'73'Целевая архитектура Hexagon HTP (68, 69, 73, 75, 79 или 81) либо поддерживаемый SoC (iq-8275 или qcs8275). Контекстный бинарный файл создается для этой цели.
quantizeint или str'w8a16'/autoТочность квантования. Экспорт QNN HTP квантуется до весов INT8 с активациями 16-bit ('w8a16') и включается автоматически, если параметр не указан. Заменяет устаревшие флаги half/int8.
simplifyboolTrueУпрощает промежуточный граф ONNX с помощью onnxslim.
opsetintNoneЗадает версию opset для промежуточного графа ONNX. Если параметр не задан, используется последняя поддерживаемая версия.
datastrNoneYAML-файл набора данных, используемый для калибровки INT8; для классификации вместо него указываются каталог набора данных или встроенное имя набора данных. Если параметр не указан, Ultralytics выбирает набор данных для калибровки по умолчанию для задачи модели.
fractionfloat, int или list1.0Подмножество для калибровки в виде доли, количества изображений или значений [train, val, test] — долей/количеств. В списках из двух элементов test оставляет полный набор, а 0 пропускает его.
devicestrNoneУказывает устройство для этапа экспорта ONNX: GPU (device=0) или CPU (device=cpu).
Precision

Экспорт QNN квантует модель до активаций 16-bit и весов INT8 — рекомендуемого баланса точности и производительности для NPU Hexagon — с помощью процесса квантования QDQ в ONNX Runtime, используя калибровочные изображения из data. quantize='w8a16' включается автоматически.

Подробнее о процессе экспорта см. на странице документации Ultralytics об экспорте.

Структура выходных данных#

После успешного экспорта создается автономный файл ONNX:

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

Файл yolo26n_qnn.onnx содержит бинарный файл контекста QNN и загружается ONNX Runtime с помощью провайдера выполнения QNN на устройстве Snapdragon. Он также содержит метаданные модели, такие как имена классов, размер изображения и задачу, в ONNX metadata_props.

Развертывание экспортированных моделей YOLO QNN#

Модели QNN работают на поддерживаемом оборудовании Qualcomm, благодаря чему развертывание модели на устройстве становится простым. На совместимом устройстве с установленным onnxruntime-qnn запусти экспортированную модель напрямую через API Ultralytics (yolo predict/yolo val, см. раздел Использование выше) — Ultralytics загрузит бинарный файл контекста HTP через провайдер выполнения QNN для ONNX Runtime.

Для пользовательских конвейеров ты также можешь загрузить бинарный файл контекста ONNX напрямую с помощью ONNX Runtime. onnxruntime-qnn — это подключаемый провайдер выполнения, поэтому зарегистрируй его во время выполнения:

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

Поскольку бинарный файл контекста QNN предварительно скомпилирован, сессия загружается быстро, без повторной компиляции графа на устройстве.

Требования к Linux и Yocto BSP#

Целевая плата должна предоставлять взаимно совместимые среду выполнения Qualcomm и BSP. Для вывода на HTP это включает провайдер выполнения QNN для ONNX Runtime, libQnnSystem.so, libQnnHtp.so, библиотеки заглушки и скелета v75 HTP для IQ-8275, пользовательскую поддержку FastRPC, например libcdsprpc.so, прошивку DSP и соответствующие драйверы FastRPC/ядра. Библиотека скелета должна находиться через путь к библиотекам DSP в BSP.

Эти компоненты для целевой системы предоставляет поставщик платы в составе BSP с поддержкой QAIRT/QNN; в экспортированную модель они не встраиваются. Для выполнения на GPU требуются libQnnGpu.so и соответствующий стек пользовательских драйверов Adreno. Результат Ultralytics format=qnn представляет собой бинарный файл контекста, специфичный для HTP, поэтому для развертывания на GPU или CPU следует начать со стандартного экспорта ONNX, а не с предварительно скомпилированного файла *_qnn.onnx.

Рекомендуемый рабочий процесс#

  1. Обучи модель с помощью Ultralytics режима обучения
  2. Экспортируй в формат QNN с помощью model.export(format="qnn", name="iq-8275", imgsz=640) на поддерживаемой платформе (для классификации используй imgsz=224)
  3. Разверни экспортированный файл *_qnn.onnx на своем устройстве Qualcomm
  4. Запусти вывод с помощью ONNX Runtime и провайдера выполнения QNN, используя бэкенд HTP

Практические применения#

Модели YOLO, работающие на оборудовании Qualcomm Snapdragon, хорошо подходят для широкого спектра приложений периферийного ИИ:

  • Смартфоны: обнаружение объектов в реальном времени и понимание сцен в приложениях камеры и фотографий с ускорением NPU.
  • Windows на Snapdragon: компьютерное зрение на устройстве в компьютерах Copilot+ без передачи данных в облако.
  • Автомобили: мониторинг водителя, обнаружение пассажиров и функции ADAS на платформах Snapdragon Digital Chassis.
  • XR и носимые устройства: энергоэффективное восприятие с низкой задержкой для AR/VR-гарнитур и умных очков.
  • IoT и робототехника: эффективный вывод моделей компьютерного зрения на камерах, дронах и встраиваемых системах на базе Snapdragon.

Итоги#

В этом руководстве ты узнал, как локально экспортировать модели Ultralytics YOLO в формат Qualcomm QNN с помощью провайдера выполнения QNN для ONNX Runtime. Конвейер экспорта преобразует модель в ONNX, а затем компилирует ее в бинарный файл контекста QNN на твоем хост-компьютере — учетная запись Qualcomm и облако не требуются; в результате создается файл *_qnn.onnx, оптимизированный для оборудования Snapdragon CPU, Adreno GPU и Hexagon NPU через среду выполнения QNN/QAIRT.

Сочетание Ultralytics YOLO и стека периферийного ИИ Qualcomm предоставляет эффективное решение для запуска передовых задач компьютерного зрения во всей экосистеме Snapdragon.

Для других целевых платформ развертывания на устройствах и мобильных устройств см. связанные руководства по экспорту в ONNX, CoreML, NCNN, LiteRT, ExecuTorch, RKNN, Sony IMX500 и TensorRT. Чтобы сравнить форматы перед поставкой, используй режим Benchmark. Полный список форматов и параметров см. в документации по режиму Export и на странице руководства по интеграциям.

Часто задаваемые вопросы#

  • Ты можешь экспортировать модель с помощью export(format="qnn", imgsz=640) (imgsz=224 для классификации) или соответствующих аргументов CLI. Сначала экспорт создает модель ONNX, затем локально компилирует ее в бинарный файл контекста QNN с помощью провайдера выполнения QNN для ONNX Runtime. Пакет onnxruntime-qnn автоматически устанавливается при первом экспорте.

    Пример
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="qnn", imgsz=640)  # use imgsz=224 for classification
  • Нет. Экспорт в QNN полностью выполняется на твоем локальном компьютере с помощью пакета onnxruntime-qnn, который включает библиотеки QAIRT. Учетная запись Qualcomm, токен API и доступ к сети не требуются.

  • Qualcomm AI Hub — это облачный сервис Qualcomm для компиляции, профилирования и тестирования производительности моделей на размещенных устройствах Snapdragon; для его использования требуется учетная запись Qualcomm. Экспорт Ultralytics QNN предназначен для той же среды выполнения QNN/QAIRT (Snapdragon CPU, Adreno GPU и Hexagon NPU), но компилирует бинарный файл контекста локально с помощью провайдера выполнения QNN для ONNX Runtime — без учетной записи, загрузки и очереди. Это самый быстрый способ преобразовать модель .pt в сборку, готовую для Snapdragon, непосредственно в стандартном процессе экспорта YOLO.

  • onnxruntime-qnn версии 2.4.0 и новее предоставляет готовые wheel-пакеты для Windows (x64 и ARM64) и Linux (x86-64 и ARM64) на Python 3.11 или новее; macOS не поддерживается в качестве хоста QNN. Создание бинарного файла контекста выполняется на хосте x64 и не требует физического устройства Snapdragon.

  • Выполни экспорт с помощью model.export(format="qnn", imgsz=640) (imgsz=224 для классификации), скопируй полученный файл yolo26n_qnn.onnx на устройство Snapdragon и запусти yolo predict model=yolo26n_qnn.onnx source=image.jpg (или yolo val). Ultralytics загружает бинарный файл контекста через провайдер выполнения QNN для ONNX Runtime и запускает его на NPU Hexagon — см. Развертывание экспортированных моделей YOLO QNN.

  • QNN (Qualcomm AI Engine Direct, часть SDK QAIRT) — это текущий стек Qualcomm для выполнения, рекомендуемая замена устаревшему SDK Snapdragon Neural Processing Engine (SNPE). Для новых развертываний следует выбирать QNN.

  • Да, на устройстве Qualcomm Snapdragon с установленным onnxruntime-qnnYOLO("yolo26n_qnn.onnx") загружает бинарный файл контекста через провайдер выполнения QNN и запускает predict/val, как и любой другой формат. На хосте x86 без оборудования QNN модель выполнить нельзя, поскольку бинарный файл контекста предназначен для NPU Snapdragon.

  • В результате экспорта создается автономный файл ONNX с бинарным контекстом (например, yolo26n_qnn.onnx), содержащий встроенные имена классов, размер изображения, задачу и другие метаданные модели в ONNX metadata_props.

Комментарии