Ultralytics YOLO27:
Get Started

Экспорт 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 для всех семи задач 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 с библиотеками для конкретных бэкендов, предназначенными для CPU Snapdragon, GPU Adreno и Hexagon Tensor Processor (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 открывает доступ к специализированному оборудованию ИИ на этих устройствах:

  • Ускорение на NPU Hexagon: Запуск YOLO на Hexagon Tensor Processor обеспечивает значительно более высокую пропускную способность и меньшее энергопотребление, чем инференс на CPU. Это идеальный вариант для инференса в реальном времени и постоянно работающих систем компьютерного зрения на устройствах Snapdragon.
  • Работа на устройстве и без подключения к сети: Инференс QNN полностью выполняется на устройстве Snapdragon: обмена данными с облаком нет, задержка остается низкой, а данные не покидают устройство.
  • Эффективность квантования: При экспорте в QNN YOLO квантуется до весов INT8 и 16-битных активаций — оптимального для 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) — это текущая поддерживаемая Qualcomm среда выполнения ИИ непосредственно на устройстве, рекомендуемая в качестве замены SNPE.

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

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

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

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

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

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

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

Телефон Android#

Оборудование: Xiaomi 17 с памятью LPDDR5X объемом 12 GB и Android 16 / API 36. В устройстве используется изготовленный по 3-нм техпроцессу Snapdragon 8 Elite Gen 5 (SM8850): 8-ядерный CPU Qualcomm Oryon (2 производительных ядра Prime с частотой до 4,6 GHz и 6 ядер Performance с частотой до 3,62 GHz), GPU Adreno и NPU Hexagon (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-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
  • Значения скорости — это задержки при обработке одного изображения в режиме burst: среднее значение для 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 px. Тестирование проводилось на ноутбуке Lenovo с памятью 32 GB и 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-битные активации).

МодельЗадачаразмер
(пиксели)
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 раза быстрее базовой версии на CPU с PyTorch при выполнении задач с разрешением 640–1024 px (для детекции — примерно в 3,4 раза); для классификатора с разрешением 224 px преимущество сокращается примерно до 1,3 раза, поскольку фиксированные накладные расходы на предварительную обработку доминируют над небольшой вычислительной нагрузкой.

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

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

Экспорт в 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 (модель 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. Генерация контекстного бинарного файла выполняется на хосте 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

# Загрузи модель YOLO26
model = YOLO("yolo26n.pt")

# Экспорт в формат Qualcomm QNN (INT8, включается автоматически) для целевой платформы HTP v73 по умолчанию
model.export(format="qnn", name="73", imgsz=640)  # используй imgsz=224 для классификации
Предсказание
from ultralytics import YOLO

# Загрузка экспортированной модели QNN (на устройстве Snapdragon с onnxruntime-qnn)
model = YOLO("yolo26n_qnn.onnx")

# Выполнить инференс
results = model("https://ultralytics.com/images/bus.jpg")
Проверка
from ultralytics import YOLO

# Загрузка экспортированной модели QNN (на устройстве Snapdragon с onnxruntime-qnn)
model = YOLO("yolo26n_qnn.onnx")

# Проверить точность на наборе данных COCO8
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'/автоТочность квантования. При экспорте QNN HTP используются веса INT8 и активации 16 бит ('w8a16'); квантование включается автоматически, если параметр не задан. Заменяет устаревшие флаги half/int8.
simplifyboolTrueУпрощает промежуточный граф ONNX с помощью onnxslim.
opsetintNoneЗадает версию opset ONNX для промежуточного графа ONNX. Если значение не задано, используется последняя поддерживаемая версия.
datastrNoneYAML-файл датасета для калибровки INT8; для классификации вместо него указывается каталог датасета или встроенное имя датасета. Если параметр не задан, Ultralytics выбирает датасет калибровки по умолчанию для задачи модели.
fractionfloat, int или list1.0Подмножество для калибровки, заданное как доля, количество изображений или [train, val, test] отношения/количества. Если список содержит два элемента, test остаётся без изменений, а 0 пропускает его.
devicestrNoneЗадаёт устройство для этапа экспорта ONNX: GPU (device=0) или CPU (device=cpu).
Точность

При экспорте QNN модель квантируется с 16-битными активациями и весами INT8 — рекомендованным балансом точности и производительности для NPU Hexagon. Для этого используется процесс квантования 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

# На устройстве Snapdragon зарегистрируй подключаемый QNN EP и выбери устройство (или устройства)
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 нужны ONNX Runtime QNN Execution Provider, libQnnSystem.so, libQnnHtp.so, библиотеки-заглушки и библиотеки skeleton HTP v75 для IQ-8275, поддержка FastRPC в пользовательском пространстве, например libcdsprpc.so, прошивка DSP и соответствующие драйверы FastRPC/ядра. Библиотека skeleton должна находиться в пути к библиотекам 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 Execution Provider, используя бэкенд HTP

Применение в реальных условиях#

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

  • Смартфоны: ускорение с помощью NPU обеспечивает обнаружение объектов в реальном времени и понимание сцен в приложениях камеры и фотографий.
  • Windows на 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, оптимизированный для CPU Snapdragon, GPU Adreno и NPU Hexagon с помощью среды выполнения QNN/QAIRT.

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

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

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

  • Ты можешь экспортировать модель с помощью 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)  # используй imgsz=224 для классификации
  • Нет. Экспорт QNN полностью выполняется на локальном компьютере с помощью пакета onnxruntime-qnn, в который входят библиотеки QAIRT. Учётная запись Qualcomm, токен API и доступ к сети не требуются.

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

  • В версии onnxruntime-qnn 2.4.0 и новее доступны готовые колёса для 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 и запускает его на NPU Hexagon — смотри раздел «Развёртывание экспортированных моделей YOLO QNN».

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

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

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

Комментарии