Экспорт в 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.
Официальный плагин 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 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 | Обнаружение | 640 | 52.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 | Сегментация | 640 | 73.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 | Семантика | 640 | 61.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 | Depth | 640 | 124.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 | Классификация | 224 | 4.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 | Поза | 640 | 57.4 1.8 / 53.8 / 1.8 | 16,6 2,7 / 10,1 / 3,9 | 10,9 1,8 / 7,0 / 2,0 |
| YOLO26n-obb | OBB | 640 | 50.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, измеренное с помощью тестовой среды плагина Flutter0.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 | Обнаружение | 640 | 91.4 4.3 / 75.2 / 0.1 | 27.2 4.9 / 19.4 / 0.9 |
| YOLO26n-seg | Сегментация | 640 | 138.8 4.5 / 127.1 / 2.8 | 34.3 5.0 / 24.0 / 5.1 |
| YOLO26n-sem | Семантика | 1024 | 295.8 9.1 / 189.2 / 94.8 | 133.0 8.8 / 37.4 / 83.9 |
| YOLO26n-cls | Классификация | 224 | 15.4 3.0 / 9.8 / 0.0 | 11.7 2.7 / 5.5 / 0.0 |
| YOLO26n-pose | Поза | 640 | 109.6 4.6 / 102.9 / 0.2 | 28.9 5.3 / 23.3 / 0.6 |
| YOLO26n-obb | OBB | 1024 | 267.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, единственным семейством, в котором есть эти головы.
Экспорт в 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 перечислены отдельно.
| Статус | name | Hexagon HTP | Пример устройства или платформы |
|---|---|---|---|
| ✅ Поддерживается | 68 | v68 | Snapdragon 888 |
| ✅ Поддерживается | 69 | v69 | Snapdragon 8 Gen 1 / 8+ Gen 1 |
| ✅ Поддерживается | 73 | v73 | Snapdragon 8 Gen 2, X Elite (по умолчанию) |
| ✅ Поддерживается | 75 | v75 | Snapdragon 8 Gen 3 |
| ✅ Поддерживается | 79 | v79 | Snapdragon 8 Elite |
| ✅ Поддерживается | 81 | v81 | Snapdragon 8 Elite Gen 5 |
| ✅ Поддерживается | iq-8275 или qcs8275 | v75 | Dragonwing IQ-8275 / QCS8275 (модель QNN SoC 82) |
| ❌ Не поддерживается | — | v66 | Dragonwing IQ-615 / QCS615 |
Dragonwing IQ-615 не может использовать экспорт бинарного файла контекста Ultralytics QNN, поскольку ONNX Runtime не предоставляет свой v66 DSP в качестве автономной цели HTP. Стандартный экспорт ONNX по-прежнему можно интегрировать отдельно с поставщиком выполнения CPU или GPU, поддерживаемым BSP платы.
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 classificationfrom 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")Аргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'qnn' | Целевой формат для экспортированной модели, определяющий совместимость с средой выполнения Qualcomm QNN. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входа модели. Может быть целым числом для квадратных изображений или кортежем (height, width). |
batch | int | 1 | Указывает размер пакета (batch size) экспортируемой модели, который встраивается в сгенерированный бинарный контекст QNN. |
name | str | '73' | Целевая архитектура Hexagon HTP (68, 69, 73, 75, 79 или 81) или поддерживаемый SoC (iq-8275 или qcs8275). Двоичный контекстный файл финализируется для этой цели. |
quantize | int или str | 'w8a16'/auto | Точность квантования. Экспорт QNN HTP квантуется в веса INT8 с 16-битными активациями ('w8a16') и включается автоматически, если не указано иное. Заменяет устаревшие флаги half/int8. |
simplify | bool | True | Упрощает промежуточный граф ONNX с помощью onnxslim. |
opset | int | None | Указывает версию ONNX opset для промежуточного графа ONNX. Если не задано, используется последняя поддерживаемая версия. |
data | str | None | YAML-файл датасета, используемый для калибровки INT8; для классификации вместо этого указывается каталог датасета или имя встроенного датасета. Если не указано, Ultralytics выбирает стандартный датасет калибровки для задачи модели. |
fraction | float | 1.0 | Доля набора данных для калибровки, используемая для квантования INT8. |
device | str | None | Указывает устройство для этапа экспорта ONNX: GPU (device=0) или CPU (device=cpu). |
Экспорт в 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.
Рекомендуемый рабочий процесс#
- Обучай (Train) свою модель с помощью режима обучения Ultralytics
- Экспортируй в формат QNN с помощью
model.export(format="qnn", name="iq-8275", imgsz=640)на поддерживаемой платформе (используйimgsz=224для классификации) - Разверни экспортированный файл
*_qnn.onnxна своем устройстве Qualcomm - Запусти инференс с помощью 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-qnn—YOLO("yolo26n_qnn.onnx")загружает контекстный двоичный файл через QNN Execution Provider и запускаетpredict/valтак же, как и любой другой формат. На хосте x86 без оборудования QNN модель не может выполняться, поскольку контекстный файл предназначен для NPU Snapdragon.Экспорт создает автономный файл ONNX с двоичным контекстом (например,
yolo26n_qnn.onnx), в который встроены имена классов, размер изображения, задача и другие метаданные модели в ONNXmetadata_props.