YOLO Vision 2026:

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

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

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

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

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

Экспортируй модели классификации в imgsz=224. Экспортируй модели детектирования, сегментации, семантического анализа, оценки глубины, позы и OBB в imgsz=640. Этот стандарт 224/640 используется официальными мобильными ресурсами QNN, LiteRT и CoreML. Готовые к запуску ресурсы v73 и v81 для всех семи задач nano опубликованы в релизе 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 с библиотеками для конкретных бэкендов, ориентированными на Snapdragon CPU, Adreno GPU и тензорный процессор Hexagon (HTP) — специализированный модуль обработки нейронных сетей (NPU) внутри современных SoC Snapdragon. QNN дает разработчикам полный доступ к этим ускорителям ИИ Snapdragon и является современным преемником старого SDK Snapdragon Neural Processing Engine (SNPE). Он обеспечивает работу ИИ на устройстве на мобильных платформах Snapdragon 8 Gen 2, 8 Gen 3 и 8 Elite, ноутбуках Snapdragon X, а также в автомобильных и XR-продуктах.

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

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

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

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

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

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

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

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

  • Квантование: Модель квантуется до 16-битных активаций и весов INT8 с помощью процесса ONNX Runtime QNN QDQ и набора данных калибровки, что является рекомендованным балансом точности и производительности для Hexagon NPU. Узнай больше о квантовании моделей.
  • Полностью локальная компиляция: Бинарный контекст генерируется полностью на твоем хост-компьютере — без учетной записи Qualcomm, API-токена или загрузки в облако.
  • Полное ускорение Snapdragon: Запускай вывод на Hexagon NPU (HTP), Adreno GPU или 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-ядерный процессор Qualcomm Oryon (2 основных ядра с частотой до 4,6 ГГц и 6 производительных ядер с частотой до 3,62 ГГц), графический процессор Adreno и Hexagon NPU (HTP v81).

МодельЗадачаразмер
(пиксели)
CPU
w8a32 LiteRT
(мс)
GPU
w8a32 LiteRT
(мс)
NPU
QNN W8A16
(мс)
YOLO26nОбнаружение64052.2
1.8 / 48.1 / 2.4
15,8
2,3 / 8,9 / 4,6
10,7
1,8 / 6,7 / 2,2
YOLO26n-segСегментация64073.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-depthDepth640124.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, измеренное с помощью тестовой среды плагина Flutter 0.6.10 на устройстве и стандартизированных ресурсов 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 использовались входные изображения 1024px. Тест выполнялся на ноутбуке Lenovo с 32 ГБ памяти и Windows 11. Его процессор Snapdragon X Elite (X1E78100) имеет 12-ядерный процессор Qualcomm Oryon, графический процессор Adreno и Hexagon NPU (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-битные активации).

МодельЗадачаразмер
(пиксели)
CPU
PT FP32
(мс)
NPU Hexagon
QNN W8A16
(мс)
YOLO26nОбнаружение64091.4
4.3 / 75.2 / 0.1
27.2
4.9 / 19.4 / 0.9
YOLO26n-segСегментация640138.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 раза), сокращая разрыв до ~1.3 раза на классификаторе 224 пикс., где фиксированные накладные расходы на предобработку преобладают над небольшой рабочей нагрузкой.

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

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

ЗадачаYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

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

Экспортируй модель Ultralytics YOLO в формат QNN для развертывания на оборудовании Qualcomm. Двоичный контекстный файл финализируется для целевой архитектуры процессора Hexagon Tensor Processor (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 (модель QNN SoC 82)
❌ Не поддерживаетсяv66Dragonwing IQ-615 / QCS615

Dragonwing IQ-615 не может использовать экспорт бинарного файла контекста Ultralytics QNN, поскольку ONNX Runtime не предоставляет свой v66 DSP в качестве автономной цели 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 выпускаются предварительно собранные wheels для Windows (x64 и ARM64) и Linux (x86-64 и ARM64) на Python 3.11 или выше; macOS не поддерживается в качестве хоста QNN. Генерация двоичного файла контекста выполняется на хосте x64 и не требует устройства Snapdragon для этапа экспорта.

Установка#

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

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

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

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

Формат QNN поддерживает режимы экспорта, предикта и валидации. Инференс и валидация выполняются на оборудовании Qualcomm Snapdragon через ONNX Runtime QNN Execution Provider (тот же пакет 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
Предсказание
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Указывает размер пакета (batch size) экспортируемой модели, который встраивается в сгенерированный бинарный контекст QNN.
namestr'73'Целевая архитектура Hexagon HTP (68, 69, 73, 75, 79 или 81) или поддерживаемый SoC (iq-8275 или qcs8275). Двоичный контекстный файл финализируется для этой цели.
quantizeint или str'w8a16'/autoТочность квантования. Экспорт QNN HTP квантуется в веса INT8 с 16-битными активациями ('w8a16') и включается автоматически, если не указано иное. Заменяет устаревшие флаги half/int8.
simplifyboolTrueУпрощает промежуточный граф ONNX с помощью onnxslim.
opsetintNoneУказывает версию ONNX opset для промежуточного графа ONNX. Если не задано, используется последняя поддерживаемая версия.
datastrNoneYAML-файл датасета, используемый для калибровки INT8; для классификации вместо этого указывается каталог датасета или имя встроенного датасета. Если не указано, Ultralytics выбирает стандартный датасет калибровки для задачи модели.
fractionfloat1.0Доля набора данных для калибровки, используемая для квантования INT8.
devicestrNoneУказывает устройство для этапа экспорта ONNX: GPU (device=0) или CPU (device=cpu).
Precision

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

Дополнительную информацию о процессе экспорта см. на странице документации Ultralytics по экспорту.

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

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

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

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

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

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

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

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 и BSP Yocto#

Целевая плата должна предоставлять взаимно совместимые среду выполнения Qualcomm и BSP. Для инференса на HTP это включает ONNX Runtime QNN Execution Provider, libQnnSystem.so, libQnnHtp.so, библиотеки заглушки и каркаса HTP версии v75 для 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. Обучай (Train) свою модель с помощью режима обучения 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 on Snapdragon: Компьютерное зрение на устройстве в ПК Copilot+ без использования облака.
  • Автомобили: Мониторинг водителя, обнаружение пассажиров и функции ADAS на платформах Snapdragon Digital Chassis.
  • XR и носимые устройства: Энергоэффективное восприятие с низкой задержкой для AR/VR-гарнитур и умных очков.
  • IoT и робототехника: Эффективный вывод зрения на камерах, дронах и встроенных системах на базе Snapdragon.

Резюме#

В этом руководстве ты узнал, как экспортировать модели Ultralytics YOLO в формат Qualcomm QNN локально с помощью ONNX Runtime QNN Execution Provider. Конвейер экспорта преобразует твою модель в 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 и на странице руководства по интеграциям.

FAQ#

  • Ты можешь экспортировать свою модель с помощью export(format="qnn", imgsz=640) (imgsz=224 для классификации) или эквивалентных аргументов CLI. Экспорт сначала создает модель ONNX, а затем локально компилирует ее в двоичный контекстный файл QNN с помощью ONNX Runtime QNN Execution Provider. Пакет 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), но компилирует контекстный двоичный файл локально с помощью ONNX Runtime QNN Execution Provider — без учетной записи, без загрузки и без очереди. Это самый быстрый способ перейти от модели .pt к сборке, готовой для Snapdragon, прямо в рамках стандартного рабочего процесса экспорта YOLO.

  • Начиная с версии 2.4.0, onnxruntime-qnn предоставляет предварительно собранные wheels для 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 загружает контекстный файл через ONNX Runtime QNN Execution Provider и выполняет его на Hexagon NPU — см. раздел Развертывание экспортированных моделей 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 Execution Provider и запускает predict/val так же, как и любой другой формат. На хосте x86 без оборудования QNN модель не может выполняться, поскольку контекстный файл предназначен для NPU Snapdragon.

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

Комментарии