YOLO Vision 2026:

Xuất Qualcomm QNN cho các model Ultralytics YOLO#

Việc triển khai các model thị giác máy tính trên thiết bị Qualcomm Snapdragon yêu cầu một định dạng model được tối ưu cho runtime Qualcomm AI Engine Direct (QNN). Xuất các model Ultralytics YOLO sang định dạng QNN cho phép chạy suy luận tăng tốc ngay trên thiết bị trên phần cứng CPU Snapdragon, GPU Adreno và NPU Hexagon có mặt trong hàng tỷ điện thoại di động, laptop, hệ thống ô tô và thiết bị IoT. Hướng dẫn này trình bày cách xuất YOLO sang Qualcomm QNN và triển khai để suy luận nhanh, tiết kiệm năng lượng trên phần cứng Snapdragon.

Chạy YOLO trên NPU Snapdragon ngay hôm nay với các ứng dụng di động chính thức

Plugin Flutter chính thức của Ultralytics cung cấp hỗ trợ QNN tùy chọn cho suy luận camera theo thời gian thực và dự đoán ảnh đơn trên cả bảy tác vụ YOLO26. Bật runtime QNN và thêm dependency ONNX Runtime theo hướng dẫn trong README của plugin. Để triển khai trên iOS, hãy xem Ultralytics YOLO iOS SDKtích hợp CoreML.

Kích thước input di động chính thức

Xuất các model classification tại imgsz=224. Xuất các model detect, segment, semantic, depth, pose và OBB tại imgsz=640. Tiêu chuẩn 224/640 này được dùng chung cho các mobile asset QNN, LiteRT và CoreML chính thức. Các asset v73 và v81 sẵn sàng chạy cho cả bảy tác vụ nano được phát hành trong release v0.6.6 của yolo-flutter-app.

Qualcomm QNN là gì?#

Qualcomm QNN on-device inference

Qualcomm AI Engine Direct — thường được gọi là QNN và phân phối như một phần của SDK Qualcomm AI Runtime (QAIRT) — là inference stack cấp thấp của Qualcomm dành cho các processor Snapdragon. Stack này cung cấp một API thống nhất cùng các thư viện đặc thù cho từng backend, nhắm đến CPU Snapdragon, GPU Adreno và Hexagon Tensor Processor (HTP), đơn vị xử lý neural network chuyên dụng (NPU) bên trong các SoC Snapdragon hiện đại. QNN cung cấp cho developer quyền truy cập full-stack vào các bộ tăng tốc AI Snapdragon này và là thế hệ kế nhiệm hiện đại của SDK Snapdragon Neural Processing Engine (SNPE) cũ hơn. QNN vận hành AI on-device trên các nền tảng di động Snapdragon 8 Gen 2, 8 Gen 3 và 8 Elite, laptop Snapdragon X cùng các sản phẩm ô tô và XR.

Tại sao nên xuất sang Qualcomm QNN?#

Snapdragon là nền tảng điện toán di động được triển khai rộng rãi nhất thế giới. Việc xuất Ultralytics YOLO sang định dạng Qualcomm QNN khai thác phần cứng AI chuyên dụng trên các thiết bị này:

  • Tăng tốc NPU Hexagon: Chạy YOLO trên Hexagon Tensor Processor mang lại throughput cao hơn đáng kể và mức tiêu thụ điện thấp hơn so với suy luận trên CPU — lý tưởng cho suy luận theo thời gian thực và thị giác máy tính luôn bật trên Snapdragon.
  • On-device và offline: Suy luận QNN chạy hoàn toàn trên thiết bị Snapdragon, vì vậy không có round-trip lên cloud, latency luôn thấp và dữ liệu không bao giờ rời khỏi thiết bị.
  • Hiệu quả sau quantization: Việc xuất QNN quantize YOLO thành weights INT8 với activations 16-bit, mức cân bằng accuracy/performance được NPU Hexagon ưu tiên, giúp giảm kích thước model và tối đa hóa số frames mỗi giây trên phần cứng dùng pin.
  • Một định dạng, nhiều thiết bị: Một bản xuất Qualcomm QNN duy nhất nhắm đến CPU Snapdragon, GPU Adreno và NPU Hexagon trên các dòng Snapdragon 8 Gen 2, 8 Gen 3 và 8 Elite cùng các dòng mới hơn.
  • AI stack Qualcomm sẵn sàng cho production: QNN (Qualcomm AI Engine Direct / QAIRT) là runtime AI on-device hiện tại của Qualcomm, được duy trì tích cực và là lựa chọn thay thế được khuyến nghị cho SNPE.

Định dạng xuất QNN#

Ultralytics biên dịch các model YOLO sang QNN cục bộ bằng QNN Execution Provider của ONNX Runtime (package onnxruntime-qnn có thể cài qua pip, tích hợp các thư viện QAIRT). Exporter chuyển model của bạn sang ONNX, quantize model bằng dữ liệu calibration thành activations 16-bit và weights INT8 (mức cân bằng được khuyến nghị cho NPU Hexagon), sau đó khởi tạo một ONNX Runtime session với tính năng caching context-binary được bật — thao tác này biên dịch graph đã quantize thành một QNN context binary được nhúng trong <model>_qnn.onnx. Không yêu cầu tài khoản Qualcomm, tải lên cloud hoặc tải SDK riêng.

Không giống Qualcomm AI Hub dựa trên cloud, nơi biên dịch và profiling model trên các thiết bị Snapdragon do Qualcomm host và yêu cầu tài khoản Qualcomm, QNN export của Ultralytics chạy hoàn toàn trên máy của bạn với một lệnh export(format="qnn", imgsz=640) duy nhất (imgsz=224 dành cho classification). Bạn nhận được cùng target runtime QNN/QAIRT — CPU Snapdragon, GPU Adreno và NPU Hexagon — mà không cần đăng ký, không bị giới hạn upload hay phải chờ queue, đồng thời có thể tích hợp trực tiếp vào workflow export YOLO tiêu chuẩn.

File *_qnn.onnx đã xuất là self-contained: file này nhúng QNN context binary và metadata ONNX như tên class, kích thước ảnh và task.

Các tính năng chính của model QNN#

  • Quantization: Model được quantize thành activations 16-bit và weights INT8 bằng flow ONNX Runtime QNN QDQ cùng một calibration dataset, là mức cân bằng accuracy/performance được NPU Hexagon khuyến nghị. Tìm hiểu thêm về quantization model.
  • Biên dịch hoàn toàn cục bộ: Context binary được tạo hoàn toàn trên máy host của bạn — không cần tài khoản Qualcomm, API token hoặc tải lên cloud.
  • Tăng tốc Snapdragon đầy đủ: Chạy suy luận trên NPU Hexagon (HTP), GPU Adreno hoặc CPU thông qua một runtime thống nhất duy nhất.
  • Phạm vi thiết bị rộng: Nhắm đến nhiều nền tảng Snapdragon được tích hợp trong điện thoại, PC (Windows on Snapdragon), hệ thống ô tô, XR và các sản phẩm nhúng.
  • Context binary được biên dịch trước: Việc phân phối context binary giảm thiểu quá trình biên dịch graph trên thiết bị, qua đó giảm latency khi load model trên thiết bị đích.
  • Output self-contained: File ONNX đã xuất bao gồm QNN context binary được biên dịch trước và metadata để triển khai dễ dàng.

Hiệu năng đo được#

Điện thoại Android#

Phần cứng: Xiaomi 17 với bộ nhớ LPDDR5X 12 GB và Android 16 / API 36. Snapdragon 8 Elite Gen 5 3 nm của máy (SM8850) có CPU Qualcomm Oryon 8 nhân (2 nhân Prime tối đa 4.6 GHz và 6 nhân Performance tối đa 3.62 GHz), GPU Adreno và NPU Hexagon (HTP v81).

ModelTaskkích thước
(pixel)
CPU
LiteRT w8a32
(ms)
GPU
LiteRT w8a32
(ms)
NPU
QNN W8A16
(ms)
YOLO26nDetect64052.2
1.8 / 48.1 / 2.4
15.8
2.3 / 8.9 / 4.6
10.7
1.8 / 6.7 / 2.2
YOLO26n-segSegment64073.4
1.8 / 65.6 / 6.0
33.2
1.8 / 23.8 / 7.6
17.4
1.8 / 9.9 / 5.7
YOLO26n-semSemantic64061.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-clsClassify2244.4
0.4 / 4.0 / 0.0
3.1
0.8 / 2.1 / 0.2
1.2
0.6 / 0.6 / 0.0
YOLO26n-posePose64057.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
  • Các giá trị Speedlatency burst trên một ảnh đơn — giá trị trung bình của 15 lần chạy sau 3 lần warmup trên bus.jpg, được đo bằng harness benchmark on-device 0.6.10 của plugin Flutter và các asset v0.6.6 tiêu chuẩn hóa. Thứ tự backend được luân phiên giữa các task trong một lượt quét tuần tự. Log native xác nhận rằng mọi dòng CPU đều sử dụng LiteRT CPU/XNNPACK, mọi dòng GPU đều chuyển toàn bộ graph cho LiteRT OpenCL (LITERT_CL), và mọi dòng NPU đều sử dụng backend QNN Hexagon HTP.
  • Bản ghi benchmark chi tiết có trong tài liệu hiệu năng Flutter.
  • So sánh các thiết bị Android khác trong tích hợp LiteRT và các thiết bị Apple trong tích hợp CoreML.

Laptop Windows on Snapdragon#

Lượt quét lịch sử này sử dụng các QNN binary v73 chưa theo tiêu chuẩn; semantic và OBB sử dụng input 1024px. Bài kiểm tra chạy trên laptop Lenovo với bộ nhớ 32 GB và Windows 11. Snapdragon X Elite của máy (X1E78100) có CPU Qualcomm Oryon 12 nhân, GPU Adreno và NPU Hexagon (HTP v73); model Lenovo chính xác không được ghi lại. Bản so sánh Windows-on-Snapdragon này chạy baseline CPU PyTorch FP32 native mà hầu hết developer desktop bắt đầu sử dụng, đối chiếu với đường dẫn ONNX Runtime QNN Hexagon HTP. Mỗi ô hiển thị wall time đầy đủ của model.predict() cùng thời gian preprocessing / inference / postprocessing được báo cáo bên dưới; tổng thời gian có thể bao gồm overhead của framework nằm ngoài ba giai đoạn này. Các số liệu CPU là PyTorch FP32 (torch==2.10.0+cpu) và các số liệu NPU là ONNX Runtime QNN (onnxruntime-qnn==2.2.0, weights INT8 / activations 16-bit).

ModelTaskkích thước
(pixel)
CPU
PT FP32
(ms)
NPU Hexagon
QNN W8A16
(ms)
YOLO26nDetect64091.4
4.3 / 75.2 / 0.1
27.2
4.9 / 19.4 / 0.9
YOLO26n-segSegment640138.8
4.5 / 127.1 / 2.8
34.3
5.0 / 24.0 / 5.1
YOLO26n-semSemantic1024295.8
9.1 / 189.2 / 94.8
133.0
8.8 / 37.4 / 83.9
YOLO26n-clsClassify22415.4
3.0 / 9.8 / 0.0
11.7
2.7 / 5.5 / 0.0
YOLO26n-posePose640109.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
  • Các giá trị Speedlatency burst trên một ảnh đơn — giá trị trung bình của 100 lần chạy sau 10 lần warmup trên bus.jpg, được đo bằng time.perf_counter() bao quanh lệnh gọi model.predict() đầy đủ trên thiết bị đã ổn định nhiệt (ultralytics==8.4.67, Python 3.12.10).
  • NPU Hexagon chạy nhanh hơn khoảng 2-4x so với baseline CPU PyTorch trên các task 640-1024 px (detection khoảng ~3.4x), giảm xuống còn ~1.3x trên classifier 224 px, nơi overhead preprocessing cố định chi phối workload nhỏ.

Các Task được hỗ trợ#

Qualcomm QNN hỗ trợ cả bảy task của Ultralytics. Semantic segmentation và depth estimation chỉ khả dụng với YOLO26, family duy nhất cung cấp các head này.

TaskYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Xuất sang QNN: Chuyển đổi model YOLO của bạn#

Xuất một model Ultralytics YOLO sang định dạng QNN để triển khai trên phần cứng Qualcomm. Context binary được hoàn thiện cho kiến trúc Hexagon Tensor Processor (HTP) hoặc SoC được hỗ trợ, do bạn chọn bằng argument name — cùng argument được dùng để nhắm đến một chip trong RKNN export.

Các target HTP được hỗ trợ#

Truyền kiến trúc hoặc SoC đích qua name (ví dụ: name="73" hoặc name="iq-8275"). Mức hỗ trợ được xác định bởi target HTP, vì vậy các dòng Snapdragon bên dưới là những nền tảng đại diện thay vì danh sách đầy đủ mọi SoC. Các thiết bị Dragonwing được liệt kê rõ ràng.

Trạng tháinameHexagon HTPThiết bị hoặc nền tảng ví dụ
✅ Được hỗ trợ68v68Snapdragon 888
✅ Được hỗ trợ69v69Snapdragon 8 Gen 1 / 8+ Gen 1
✅ Được hỗ trợ73v73Snapdragon 8 Gen 2, X Elite (mặc định)
✅ Được hỗ trợ75v75Snapdragon 8 Gen 3
✅ Được hỗ trợ79v79Snapdragon 8 Elite
✅ Được hỗ trợ81v81Snapdragon 8 Elite Gen 5
✅ Được hỗ trợiq-8275 hoặc qcs8275v75Dragonwing IQ-8275 / QCS8275 (model SoC QNN 82)
❌ Không được hỗ trợv66Dragonwing IQ-615 / QCS615

Dragonwing IQ-615 không thể sử dụng context-binary export của Ultralytics QNN vì ONNX Runtime không cung cấp DSP v66 dưới dạng target HTP offline. Bản export ONNX tiêu chuẩn vẫn có thể được tích hợp riêng với execution provider CPU hoặc GPU được BSP của bo mạch hỗ trợ.

Xuất cho Dragonwing IQ-8275
from ultralytics import YOLO

model = YOLO("best.pt")
model.export(format="qnn", name="iq-8275", imgsz=640)
Hỗ trợ nền tảng

QNN export sử dụng package onnxruntime-qnn. Phiên bản 2.4.0 trở lên phát hành các wheel dựng sẵn cho Windows (x64 và ARM64)Linux (x86-64 và ARM64) trên Python 3.11 trở lên; macOS không phải là QNN host được hỗ trợ. Việc tạo QNN context-binary chạy trên host x64 và không yêu cầu thiết bị Snapdragon trong bước export.

Cài đặt#

Để cài đặt các package bắt buộc, hãy chạy:

Cài đặt
# Install the required package for YOLO
pip install ultralytics

Package onnxruntime-qnn (cung cấp ONNX Runtime QNN Execution Provider và tích hợp các thư viện QAIRT) được tự động cài đặt trong lần export đầu tiên. Để xem hướng dẫn chi tiết và các best practice liên quan đến quy trình cài đặt, hãy xem hướng dẫn Cài đặt Ultralytics. Trong quá trình cài các package cần thiết cho YOLO, nếu gặp khó khăn, hãy tham khảo hướng dẫn Các vấn đề thường gặp để tìm giải pháp và mẹo xử lý.

Cách sử dụng#

Định dạng QNN hỗ trợ các mode Export, PredictValidate. Inference và validation chạy trên phần cứng Qualcomm Snapdragon thông qua QNN Execution Provider của ONNX Runtime (cùng package onnxruntime-qnn được dùng cho export). Hãy export model, sau đó load model đã export trên thiết bị Snapdragon để chạy inference hoặc validate accuracy.

Export
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")
Validate
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")

Đối số Export#

Đối sốKiểuMặc địnhMô tả
formatstr'qnn'Định dạng target cho model đã xuất, xác định khả năng tương thích với runtime Qualcomm QNN.
imgszint hoặc tuple640Kích thước ảnh mong muốn cho input của model. Có thể là một số nguyên đối với ảnh vuông hoặc một tuple (height, width).
batchint1Xác định batch size của model export, được cố định trong QNN context binary đã tạo.
namestr'73'Kiến trúc Hexagon HTP đích (68, 69, 73, 75, 79 hoặc 81) hoặc SoC được hỗ trợ (iq-8275 hoặc qcs8275). Context binary được hoàn thiện cho target này.
quantizeint hoặc str'w8a16'/autoĐộ chính xác quantization. QNN HTP export được quantize thành weights INT8 với activations 16-bit ('w8a16') và tự động bật nếu không được chỉ định. Thay thế các flag half/int8 đã deprecated.
simplifyboolTrueĐơn giản hóa graph ONNX trung gian bằng onnxslim.
opsetintNoneChỉ định phiên bản opset ONNX cho graph ONNX trung gian. Nếu không thiết lập, phiên bản được hỗ trợ mới nhất sẽ được sử dụng.
datastrNoneDataset YAML được sử dụng cho calibration INT8; classification thay vào đó nhận một thư mục dataset hoặc tên dataset tích hợp sẵn. Nếu bỏ qua, Ultralytics sẽ chọn calibration dataset mặc định cho task của model.
fractionfloat, int hoặc list1.0Tập con hiệu chuẩn dưới dạng tỷ lệ, số lượng ảnh hoặc các tỷ lệ/số lượng [train, val, test]. Với danh sách gồm hai mục, test để trống, còn 0 sẽ bỏ qua mục này.
devicestrNoneXác định device cho bước ONNX export: GPU (device=0) hoặc CPU (device=cpu).
Precision

QNN export quantize model thành activations 16-bit và weights INT8 — mức cân bằng accuracy/performance được khuyến nghị cho NPU Hexagon — bằng flow ONNX Runtime QDQ quantization với các ảnh calibration từ data. quantize='w8a16' được tự động áp dụng.

Để biết thêm chi tiết về quy trình export, hãy truy cập trang tài liệu Ultralytics về export.

Cấu trúc Output#

Sau khi export thành công, một file ONNX self-contained sẽ được tạo:

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

Tệp yolo26n_qnn.onnx nhúng binary context QNN và được ONNX Runtime tải bằng QNN Execution Provider trên thiết bị Snapdragon. Tệp này cũng chứa metadata của model như tên lớp, kích thước ảnh và task trong ONNX metadata_props.

Triển khai model YOLO QNN đã export#

Các model QNN chạy trên phần cứng Qualcomm được hỗ trợ, giúp việc triển khai model trên thiết bị trở nên đơn giản. Trên thiết bị tương thích đã cài đặt onnxruntime-qnn, hãy chạy trực tiếp model đã export bằng API Ultralytics (yolo predict/yolo val, xem Usage ở trên) — Ultralytics tải binary context HTP thông qua ONNX Runtime QNN Execution Provider.

Đối với các pipeline tùy chỉnh, bạn cũng có thể tải trực tiếp context-binary ONNX bằng ONNX Runtime. onnxruntime-qnn là một plugin Execution Provider, vì vậy hãy đăng ký plugin này khi runtime:

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

Vì binary context QNN đã được biên dịch trước, session tải nhanh mà không cần biên dịch lại graph trên thiết bị.

Yêu cầu đối với Linux và Yocto BSP#

Bo mạch đích phải cung cấp runtime Qualcomm và BSP tương thích với nhau. Để suy luận HTP, các thành phần này bao gồm ONNX Runtime QNN Execution Provider, libQnnSystem.so, libQnnHtp.so, các thư viện stub và skeleton HTP v75 cho IQ-8275, hỗ trợ userspace FastRPC như libcdsprpc.so, firmware DSP và các driver FastRPC/kernel tương ứng. Thư viện skeleton phải có thể được tìm thấy thông qua đường dẫn thư viện DSP của BSP.

Các thành phần phía thiết bị đích này đến từ BSP hỗ trợ QAIRT/QNN của nhà cung cấp bo mạch; chúng không được nhúng trong model đã export. Việc thực thi trên GPU thay vào đó yêu cầu libQnnGpu.so và stack driver userspace Adreno tương ứng. Output format=qnn của Ultralytics là binary context dành riêng cho HTP, vì vậy việc triển khai trên GPU hoặc CPU nên bắt đầu từ bản export ONNX tiêu chuẩn thay vì tệp *_qnn.onnx đã được biên dịch trước.

Workflow Khuyến nghị#

  1. Train model bằng Ultralytics Train Mode
  2. Export sang định dạng QNN bằng model.export(format="qnn", name="iq-8275", imgsz=640) trên nền tảng được hỗ trợ (dùng imgsz=224 cho classification)
  3. Deploy tệp *_qnn.onnx đã export lên thiết bị Qualcomm của bạn
  4. Run inference bằng ONNX Runtime và QNN Execution Provider với backend HTP

Ứng dụng thực tế#

Các model YOLO chạy trên phần cứng Qualcomm Snapdragon phù hợp với nhiều ứng dụng edge AI:

  • Smartphone: Phát hiện đối tượng theo thời gian thực và hiểu cảnh trong các ứng dụng camera, ảnh với khả năng tăng tốc NPU.
  • Windows trên Snapdragon: Thị giác máy tính trên thiết bị trong các PC Copilot+ mà không cần offload lên cloud.
  • Ô tô: Giám sát người lái, phát hiện người ngồi trong xe và các tính năng ADAS trên nền tảng Snapdragon Digital Chassis.
  • XR và thiết bị đeo: Nhận thức tiêu thụ ít năng lượng, độ trễ thấp cho headset AR/VR và kính thông minh.
  • IoT và robot: Inference thị giác hiệu quả trên camera, drone và hệ thống nhúng sử dụng Snapdragon.

Tóm tắt#

Trong hướng dẫn này, bạn đã tìm hiểu cách export model Ultralytics YOLO sang định dạng Qualcomm QNN cục bộ bằng ONNX Runtime QNN Execution Provider. Pipeline export chuyển model của bạn sang ONNX, sau đó biên dịch model thành binary context QNN trên máy host — không cần tài khoản Qualcomm hoặc cloud — tạo ra tệp *_qnn.onnx được tối ưu cho phần cứng CPU Snapdragon, GPU Adreno và NPU Hexagon thông qua runtime QNN/QAIRT.

Sự kết hợp giữa Ultralytics YOLO và stack AI trên thiết bị của Qualcomm cung cấp một giải pháp hiệu quả để chạy các workload thị giác máy tính nâng cao trên hệ sinh thái Snapdragon rộng lớn.

Đối với các đích triển khai trên thiết bị và mobile khác, hãy xem các hướng dẫn export liên quan cho ONNX, CoreML, NCNN, LiteRT, ExecuTorch, RKNN, Sony IMX500TensorRT. Để so sánh các định dạng trước khi đưa vào production, hãy sử dụng Benchmark mode. Để xem danh sách đầy đủ các định dạng và tùy chọn, hãy truy cập tài liệu Export modetrang hướng dẫn tích hợp.

FAQ#

  • Bạn có thể export model bằng export(format="qnn", imgsz=640) (imgsz=224 cho classification) hoặc các tham số CLI tương đương. Quá trình export trước tiên tạo một model ONNX, sau đó biên dịch model cục bộ thành binary context QNN bằng ONNX Runtime QNN Execution Provider. Gói onnxruntime-qnn sẽ được tự động cài đặt trong lần export đầu tiên.

    Ví dụ
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="qnn", imgsz=640)  # use imgsz=224 for classification
  • Không. QNN export chạy hoàn toàn trên máy cục bộ của bạn bằng gói onnxruntime-qnn, trong đó đã đóng gói các thư viện QAIRT. Không cần tài khoản Qualcomm, API token hoặc quyền truy cập mạng.

  • Qualcomm AI Hub là dịch vụ cloud của Qualcomm để biên dịch, profiling và benchmark model trên các thiết bị Snapdragon được lưu trữ, đồng thời yêu cầu tài khoản Qualcomm. QNN export của Ultralytics nhắm đến cùng runtime QNN/QAIRT (CPU Snapdragon, GPU Adreno và NPU Hexagon), nhưng biên dịch binary context cục bộ bằng ONNX Runtime QNN Execution Provider — không cần tài khoản, không upload và không phải chờ hàng đợi. Đây là cách nhanh nhất để chuyển từ model .pt sang bản build sẵn sàng cho Snapdragon ngay trong workflow export YOLO tiêu chuẩn.

  • onnxruntime-qnn phiên bản 2.4.0 trở lên cung cấp các wheel dựng sẵn cho Windows (x64 và ARM64)Linux (x86-64 và ARM64) trên Python 3.11 trở lên; macOS không phải là host QNN được hỗ trợ. Việc tạo binary context chạy trên host x64 và không yêu cầu thiết bị Snapdragon vật lý.

  • Export bằng model.export(format="qnn", imgsz=640) (imgsz=224 cho classification), sao chép tệp yolo26n_qnn.onnx tạo ra sang thiết bị Snapdragon của bạn và chạy yolo predict model=yolo26n_qnn.onnx source=image.jpg (hoặc yolo val). Ultralytics tải binary context thông qua ONNX Runtime QNN Execution Provider và chạy binary này trên NPU Hexagon — xem Triển khai model YOLO QNN đã export.

  • QNN (Qualcomm AI Engine Direct, một phần của QAIRT SDK) là stack inference hiện tại của Qualcomm và là lựa chọn thay thế được khuyến nghị cho SDK Snapdragon Neural Processing Engine (SNPE) cũ hơn. Các bản triển khai mới nên nhắm đến QNN.

  • Có, trên thiết bị Qualcomm Snapdragon đã cài đặt onnxruntime-qnnYOLO("yolo26n_qnn.onnx") tải binary context thông qua QNN Execution Provider và chạy predict/val như mọi định dạng khác. Trên host x86 không có phần cứng QNN, model không thể thực thi vì binary context nhắm đến NPU Snapdragon.

  • Quá trình export tạo một tệp ONNX context-binary độc lập (ví dụ: yolo26n_qnn.onnx) với tên lớp, kích thước ảnh, task và các metadata khác của model được nhúng trong ONNX metadata_props.

Bình luận