Bảo mật cấp doanh nghiệp: Tuân thủ ISO 27001 + SOC 2 Type I.

Link to this sectionXuấ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 đòi hỏi một định dạng model được điều chỉnh cho runtime Qualcomm AI Engine Direct (QNN). Xuất các model Ultralytics YOLO sang định dạng QNN cho phép bạn chạy inference tăng tốc ngay trên thiết bị, tận dụng phần cứng CPU Snapdragon, GPU Adreno và Hexagon NPU có mặt trên 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 sẽ giải thích quy trình xuất YOLO sang Qualcomm QNN và cách triển khai để đạt được hiệu suất inference nhanh, tiêu thụ năng lượng thấp trên phần cứng Snapdragon.

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

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

Kích thước đầu vào di động chính thức

Xuất các mô hình phân loại ở imgsz=224. Xuất các mô hình phát hiện, phân đoạn, ngữ nghĩa, độ sâu, tư thế và OBB ở imgsz=640. Tiêu chuẩn 224/640 này được chia sẻ bởi các tài sản di động chính thức của QNN, LiteRT và CoreML. Các tài sản v73 và v81 sẵn sàng chạy cho cả bảy tác vụ nano được công bố trong bản phát hành yolo-flutter-app v0.6.6.

Link to this sectionQualcomm QNN là gì?#

Qualcomm QNN on-device inference

Qualcomm AI Engine Direct — thường được gọi là QNN và được phân phối như một phần của Qualcomm AI Runtime (QAIRT) SDK — là ngăn xếp suy luận cấp thấp của Qualcomm dành cho các bộ vi xử lý Snapdragon. Nó cung cấp một API thống nhất với các thư viện dành riêng cho backend nhắm mục tiêu đến CPU Snapdragon, GPU Adreno và Hexagon Tensor Processor (HTP), bộ xử lý mạng thần kinh (NPU) chuyên dụng bên trong các SoC Snapdragon hiện đại. QNN cung cấp cho các nhà phát triển quyền truy cập full-stack vào các bộ tăng tốc AI Snapdragon này và là phiên bản kế nhiệm hiện đại của SDK Snapdragon Neural Processing Engine (SNPE) cũ hơn. Nó hỗ trợ AI trên thiết bị cho các nền tảng di động Snapdragon 8 Gen 2, 8 Gen 3 và 8 Elite, máy tính xách tay Snapdragon X, cùng các sản phẩm ô tô và XR.

Link to this sectionTại sao cầ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 trên thế giới. Việc xuất Ultralytics YOLO sang định dạng Qualcomm QNN giúp mở khóa phần cứng AI chuyên dụng trên các thiết bị này:

  • Tăng tốc Hexagon NPU: Chạy YOLO trên Hexagon Tensor Processor mang lại thông lượng cao hơn đáng kể và tiêu thụ năng lượng thấp hơn so với inference trên CPU — cực kỳ lý tưởng cho inference thời gian thực và các ứng dụng thị giác máy tính luôn hoạt động trên Snapdragon.
  • Trên thiết bị và ngoại tuyến: QNN inference chạy hoàn toàn trên thiết bị Snapdragon, vì vậy không cần kết nối đám mây, độ trễ luôn thấp và dữ liệu không bao giờ rời khỏi thiết bị.
  • Hiệu quả lượng tử hóa: Xuất QNN thực hiện lượng tử hóa model YOLO sang trọng số INT8 với các activation 16-bit, đây là sự cân bằng giữa độ chính xác/hiệu suất ưu tiên của Hexagon NPU, giúp thu nhỏ kích thước model và tối đa hóa khung hình trên giây (FPS) trên phần cứng chạy bằng pin.
  • Một định dạng, nhiều thiết bị: Một lần xuất Qualcomm QNN duy nhất có thể nhắm mục tiêu vào CPU Snapdragon, GPU Adreno và Hexagon NPU trên các dòng chip Snapdragon 8 Gen 2, 8 Gen 3, 8 Elite và hơn thế nữa.
  • Stack AI Qualcomm sẵn sàng cho sản xuất: QNN (Qualcomm AI Engine Direct / QAIRT) là runtime AI trên thiết bị hiện tại, được duy trì tích cực của Qualcomm và là giải pháp thay thế được khuyến nghị cho SNPE.

Link to this sectionĐịnh dạng xuất QNN#

Ultralytics biên dịch các model YOLO sang QNN tại chỗ (locally) bằng cách sử dụng ONNX Runtime QNN Execution Provider (gói onnxruntime-qnn có thể cài đặt qua pip, tích hợp sẵn các thư viện QAIRT). Trình xuất chuyển đổi model của bạn sang ONNX, lượng tử hóa nó bằng dữ liệu hiệu chỉnh sang các activation 16-bit và trọng số INT8 (sự cân bằng được khuyến nghị cho Hexagon NPU), sau đó khởi tạo phiên ONNX Runtime với tính năng bộ đệm context-binary được bật — quá trình này biên dịch biểu đồ đã lượng tử hóa thành một QNN context binary được nhúng trong <model>_qnn.onnx. Không cần tài khoản Qualcomm, upload lên đám mây hay tải xuống SDK riêng biệt.

Không giống như Qualcomm AI Hub dựa trên đám mây, nơi biên dịch và lập hồ sơ các mô hình trên các thiết bị Snapdragon được lưu trữ bởi Qualcomm và yêu cầu tài khoản Qualcomm, tính năng xuất QNN của Ultralytics chạy hoàn toàn trên máy cục bộ của bạn với một lệnh duy nhất export(format="qnn", imgsz=640) (imgsz=224 cho phân loại). Bạn nhận được cùng một mục tiêu runtime QNN/QAIRT — CPU Snapdragon, GPU Adreno và Hexagon NPU — mà không cần đăng ký, giới hạn tải lên hoặc thời gian chờ trong hàng đợi, và nó tích hợp thẳng vào quy trình xuất YOLO tiêu chuẩn.

Tệp *_qnn.onnx được xuất ra là một tệp độc lập: nó nhúng QNN context binary và các metadata ONNX như tên lớp, kích thước ảnh và tác vụ.

Link to this sectionCác tính năng chính của các model QNN#

  • Lượng tử hóa: Model được lượng tử hóa sang các activation 16-bit và trọng số INT8 với luồng ONNX Runtime QNN QDQ và tập dữ liệu hiệu chỉnh, tạo ra sự cân bằng độ chính xác/hiệu suất được khuyến nghị cho Hexagon NPU. Tìm hiểu thêm về lượng tử hóa model.
  • Biên dịch hoàn toàn tại chỗ: Context binary được tạo hoàn toàn trên máy chủ của bạn — không cần tài khoản Qualcomm, API token hoặc upload lên đám mây.
  • Tăng tốc Snapdragon đầy đủ: Chạy inference trên Hexagon NPU (HTP), GPU Adreno hoặc CPU thông qua một runtime thống nhất duy nhất.
  • Khả năng tiếp cận thiết bị rộng rãi: Nhắm mục tiêu đến phạm vi rộng lớn các nền tảng Snapdragon được tích hợp trong điện thoại, PC (Windows on Snapdragon), ô tô, XR và các sản phẩm nhúng.
  • Context Binary được biên dịch trước: Việc vận chuyển một tệp context binary giúp giảm thiểu việc biên dịch biểu đồ trên thiết bị, giảm độ trễ khi tải model trên thiết bị mục tiêu.
  • Đầu ra độc lập: Tệp ONNX đã xuất bao gồm QNN context binary được biên dịch trước và metadata để triển khai đơn giản.

Link to this sectionHiệu suất đo lường#

Link to this sectionĐ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 (SM8850) 3 nm của nó có CPU Qualcomm Oryon 8 nhân (2 nhân Prime lên tới 4.6 GHz và 6 nhân Performance lên tới 3.62 GHz), GPU Adreno và Hexagon NPU (HTP v81).

Mô hìnhTác vụkích thước
(pixel)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(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-semNgữ nghĩa64061.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
  • Speed values are single-image burst latencies — the mean of 15 runs after 3 warmup runs on bus.jpg, measured with the Flutter plugin's 0.6.10 on-device benchmark harness and the standardized v0.6.6 assets. Backend order rotated between tasks in one sequential sweep. Native logs confirmed that every CPU row used LiteRT CPU/XNNPACK, every GPU row delegated the complete graph to LiteRT OpenCL (LITERT_CL), and every NPU row used the QNN Hexagon HTP backend.
  • Bản ghi kiểm tra hiệu năng chi tiết nằm 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.

Link to this sectionMáy tính xách tay Windows on Snapdragon#

Đợt quét lịch sử này đã sử dụng các tệp nhị phân QNN v73 trước tiêu chuẩn; ngữ nghĩa và OBB đã sử dụng đầu vào 1024px. Nó chạy trên một máy tính xách tay Lenovo với bộ nhớ 32 GB và Windows 11. Snapdragon X Elite (X1E78100) của nó có CPU Qualcomm Oryon 12 nhân, GPU Adreno và Hexagon NPU (HTP v73); kiểu máy Lenovo chính xác không được ghi lại. So sánh Windows-on-Snapdragon này chạy đường cơ sở CPU PyTorch FP32 gốc mà hầu hết các nhà phát triển máy tính để bàn bắt đầu với đường dẫn ONNX Runtime QNN Hexagon HTP. Mỗi ô hiển thị tổng thời gian model.predict() với các thời gian tiền xử lý / suy luận / hậu xử lý được báo cáo bên dưới nó; tổng số có thể bao gồm chi phí chung của framework bên ngoài ba giai đoạn đó. Các số CPU là PyTorch FP32 (torch==2.10.0+cpu) và các số NPU là ONNX Runtime QNN (onnxruntime-qnn==2.2.0, trọng số INT8 / kích hoạt 16-bit).

Mô hìnhTác vụkí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-semNgữ nghĩa1024295.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ị Tốc độđộ trễ khi xử lý một ảnh trong thời gian ngắn — giá trị trung bình của 100 lần chạy sau 10 lần chạy khởi động trên bus.jpg, được đo bằng time.perf_counter() xung quanh toàn bộ lệnh gọi model.predict() trên một thiết bị đã ổn định nhiệt độ (ultralytics==8.4.67, Python 3.12.10).
  • Hexagon NPU chạy nhanh hơn khoảng 2-4 lần so với baseline CPU PyTorch trên các tác vụ 640-1024 px (phát hiện đối tượng ~3.4 lần), thu hẹp xuống còn ~1.3 lần trên bộ phân loại 224 px nơi overhead tiền xử lý cố định chiếm ưu thế đối với khối lượng công việc nhỏ.

Link to this sectionCác tác vụ được hỗ trợ#

Xuất QNN hỗ trợ tập hợp tác vụ tiêu chuẩn có sẵn trong mỗi dòng model, bao gồm phân đoạn ngữ nghĩa YOLO26.

Link to this sectionXuất sang QNN: Chuyển đổi Model YOLO của bạn#

Xuất model Ultralytics YOLO sang định dạng QNN để triển khai trên phần cứng Snapdragon. Context binary được hoàn thiện cho một kiến trúc Hexagon Tensor Processor (HTP) mục tiêu mà bạn chọn bằng đối số name — cùng một đối số được sử dụng để nhắm mục tiêu chip trong xuất RKNN.

Link to this sectionCác kiến trúc HTP được hỗ trợ#

Truyền kiến trúc mục tiêu qua name (ví dụ: name="73"). Các giá trị hợp lệ:

nameHexagon HTPNền tảng Snapdragon
68v68Snapdragon 888
69v69Snapdragon 8 Gen 1 / 8+ Gen 1
73v73Snapdragon 8 Gen 2, X Elite (mặc định)
75v75Snapdragon 8 Gen 3
79v79Snapdragon 8 Elite
81v81Snapdragon 8 Elite Gen 5
Hỗ trợ nền tảng

Xuất QNN sử dụng gói onnxruntime-qnn. Các wheel được xây dựng sẵn được công bố cho Windows (x64 và ARM64)Linux ARM64 (aarch64); trên Linux x86-64, hãy tự build ONNX Runtime từ mã nguồn với --use_qnn (không có wheel xây dựng sẵn, và macOS không phải là host QNN được hỗ trợ). Việc tạo QNN context-binary chạy trên host x64 — Windows x64 hoặc Linux x86-64 — và không yêu cầu thiết bị Snapdragon cho bước xuất.

Link to this sectionCài đặt#

Để cài đặt các gói cần thiết, hãy chạy:

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

Gói onnxruntime-qnn (cung cấp ONNX Runtime QNN Execution Provider và đóng gói các thư viện QAIRT) được cài đặt tự động trong lần xuất đầu tiên. Để có hướng dẫn chi tiết và các phương pháp tốt nhất liên quan đến quy trình cài đặt, hãy kiểm tra hướng dẫn cài đặt Ultralytics của chúng tôi. Trong khi cài đặt các gói cần thiết cho YOLO, nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo hướng dẫn các vấn đề thường gặp để biết giải pháp và mẹo.

Link to this sectionCách sử dụng#

Định dạng QNN hỗ trợ các chế độ Export, PredictValidate. Inference và validation chạy trên phần cứng Qualcomm Snapdragon thông qua ONNX Runtime's QNN Execution Provider (cùng gói onnxruntime-qnn được sử dụng để xuất). Hãy xuất model của bạn, sau đó tải model đã xuất trên thiết bị Snapdragon để chạy inference hoặc validate độ chính xác.

Xuất (Export)
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export to Qualcomm QNN format (INT8, enforced automatically), targeting an HTP architecture via 'name'
# 'name' can be one of 68, 69, 73, 75, 79, 81 (Snapdragon 888, 8 Gen 1, 8 Gen 2, 8 Gen 3, 8 Elite, 8 Elite Gen 5)
model.export(format="qnn", name="73", imgsz=640)  # use imgsz=224 for classification
Dự đoán (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")
Xác thực
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")

Link to this sectionĐối số xuất#

Đối sốLoạiMặc địnhMô tả
formatstr'qnn'Định dạng mục tiêu 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 đầu vào model. Có thể là một số nguyên cho ảnh vuông hoặc một tuple (height, width).
batchint1Chỉ định kích thước batch xuất model, được nhúng vào QNN context binary đã tạo.
namestr'73'Phiên bản kiến trúc Hexagon HTP mục tiêu: 68, 69, 73, 75, 79, hoặc 81 (Snapdragon 888, 8 Gen 1, 8 Gen 2, 8 Gen 3, 8 Elite, 8 Elite Gen 5). Context binary được hoàn thiện cho kiến trúc này.
quantizeint hoặc str'w8a16'/autoĐộ chính xác lượng tử hóa. Xuất QNN HTP được lượng tử hóa sang trọng số INT8 với các activation 16-bit ('w8a16') và được tự động kích hoạt nếu không được chỉ định. Thay thế cho các flag half/int8 đã lỗi thời.
simplifyboolTrueĐơn giản hóa biểu đồ ONNX trung gian bằng onnxslim.
opsetintNoneChỉ định phiên bản ONNX opset cho đồ thị ONNX trung gian. Nếu không được thiết lập, hệ thống sẽ sử dụng phiên bản được hỗ trợ mới nhất.
datastr'coco8.yaml'Tệp cấu hình tập dữ liệu được sử dụng cho hiệu chuẩn INT8. Chỉ định nguồn hình ảnh hiệu chuẩn.
fractionfloat1.0Tỷ lệ phần trăm của tập dữ liệu hiệu chỉnh được sử dụng cho lượng tử hóa INT8.
devicestrNoneChỉ định thiết bị cho bước xuất ONNX: GPU (device=0) hoặc CPU (device=cpu).
Precision

Xuất QNN thực hiện lượng tử hóa mô hình sang các activation 16-bit và trọng số INT8 — sự cân bằng tối ưu giữa độ chính xác/hiệu năng cho Hexagon NPU — sử dụng quy trình ONNX Runtime QDQ quantization với các ảnh hiệu chỉnh từ data. quantize='w8a16' được áp dụng tự động.

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

Link to this sectionCấu trúc đầu ra#

Sau khi xuất thành công, một tệp ONNX độc lập sẽ được tạo:

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

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

Link to this sectionTriển khai các Model YOLO QNN đã xuất#

Các model QNN chạy trên phần cứng Qualcomm Snapdragon, giúp triển khai model trên thiết bị trở nên đơn giản. Trên thiết bị Snapdragon đã cài đặt onnxruntime-qnn, hãy chạy trực tiếp model đã xuất bằng API Ultralytics (yolo predict/yolo val, xem Cách sử dụng ở trên) — Ultralytics tải context binary thông qua ONNX Runtime QNN Execution Provider và chọn backend HTP (NPU), GPU hoặc CPU.

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

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ì QNN context binary được biên dịch trước, phiên làm việc sẽ tải nhanh chóng mà không cần biên dịch lại biểu đồ trên thiết bị.

Link to this sectionQuy trình làm việc được đề xuất#

  1. Huấn luyện model của bạn bằng Train Mode của Ultralytics
  2. Xuất sang định dạng QNN bằng cách sử dụng model.export(format="qnn", imgsz=640) trên một nền tảng được hỗ trợ (sử dụng imgsz=224 cho phân loại)
  3. Triển khai tệp *_qnn.onnx đã xuất tới thiết bị Snapdragon của bạn
  4. Chạy inference với ONNX Runtime và QNN Execution Provider, chọn backend HTP, GPU hoặc CPU

Link to this sectionỨng dụng trong thực tế#

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

  • Điện thoại thông minh: Phát hiện đối tượng theo thời gian thực và hiểu cảnh trong các ứng dụng máy ảnh và ảnh với sự tăng tốc của NPU.
  • Windows on 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 đám mây.
  • Ô tô: Giám sát người lái, phát hiện hành khách và các tính năng ADAS trên nền tảng Snapdragon Digital Chassis.
  • XR và Thiết bị đeo: Khả năng nhận thức độ trễ thấp, tiêu thụ năng lượng thấp cho kính AR/VR và kính thông minh.
  • IoT và Robotics: Inference thị giác hiệu quả trên camera, máy bay không người lái và các hệ thống nhúng chạy bằng Snapdragon.

Link to this sectionTóm tắt#

Trong hướng dẫn này, bạn đã học cách xuất các model Ultralytics YOLO sang định dạng Qualcomm QNN tại chỗ với ONNX Runtime QNN Execution Provider. Pipeline xuất chuyển đổi model của bạn sang ONNX, sau đó biên dịch nó thành QNN context binary trên máy chủ của bạn — không cần tài khoản Qualcomm hoặc đám mây — tạo ra một tệp *_qnn.onnx được tối ưu hóa cho phần cứng CPU Snapdragon, GPU Adreno và Hexagon NPU 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 khối lượng công việc thị giác máy tính tiên tiến trên toàn bộ hệ sinh thái Snapdragon rộng lớn.

Đối với các mục tiêu triển khai trên thiết bị và di động khác, hãy xem các hướng dẫn xuất ONNX, CoreML, NCNN, LiteRT, ExecuTorch, RKNN, Sony IMX500TensorRT liên quan. Để so sánh các định dạng trước khi triển khai, hãy sử dụng chế độ Benchmark. Để biết danh sách đầy đủ các định dạng và tùy chọn, hãy truy cập tài liệu về chế độ Export và trang hướng dẫn tích hợp.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionLàm thế nào để tôi xuất model Ultralytics YOLO của mình sang định dạng QNN?#

Bạn có thể xuất mô hình của mình bằng cách sử dụng export(format="qnn", imgsz=640) (imgsz=224 cho phân loại) hoặc các đối số CLI tương đương. Thao tác xuất trước tiên tạo một mô hình ONNX, sau đó biên dịch nó cục bộ thành một tệp nhị phân ngữ cảnh QNN bằng cách sử dụng ONNX Runtime QNN Execution Provider. Gói onnxruntime-qnn được cài đặt tự động trong lần xuất đầu tiên.

Ví dụ
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="qnn", imgsz=640)  # use imgsz=224 for classification

Link to this sectionTôi có cần tài khoản Qualcomm hoặc quyền truy cập đám mây không?#

Không. Xuất QNN chạy hoàn toàn trên máy cục bộ của bạn bằng gói onnxruntime-qnn, gói này tích hợp các thư viện QAIRT. Không cần tài khoản Qualcomm, API token hoặc truy cập mạng.

Link to this sectionXuất Ultralytics QNN so với Qualcomm AI Hub như thế nào?#

Qualcomm AI Hub là dịch vụ đám mây của Qualcomm để biên dịch, profiling và benchmark các model trên các thiết bị Snapdragon được lưu trữ, và nó yêu cầu tài khoản Qualcomm. Xuất Ultralytics QNN nhắm mục tiêu vào cùng một runtime QNN/QAIRT (CPU Snapdragon, GPU Adreno và Hexagon NPU) nhưng biên dịch context binary tại chỗ với ONNX Runtime QNN Execution Provider — không tài khoản, không upload và không hàng đợi. Đây là cách nhanh nhất để đi từ một model .pt sang một bản build sẵn sàng cho Snapdragon trực tiếp bên trong quy trình xuất YOLO tiêu chuẩn.

Link to this sectionTôi có thể xuất trên những nền tảng nào?#

onnxruntime-qnn cung cấp các wheel xây dựng sẵn cho Windows (x64 và ARM64)Linux ARM64 (aarch64); trên Linux x86-64, hãy tự build ONNX Runtime từ mã nguồn với --use_qnn (không có wheel xây dựng sẵn, và macOS không phải là host QNN được hỗ trợ). Việc tạo context-binary chạy trên host x64 — Windows x64 hoặc Linux x86-64 — và không yêu cầu thiết bị Snapdragon vật lý.

Link to this sectionLàm thế nào để tôi chạy YOLO trên Qualcomm Snapdragon NPU?#

Xuất với model.export(format="qnn", imgsz=640) (imgsz=224 cho phân loại), sao chép tệp yolo26n_qnn.onnx kết quả 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 tệp nhị phân ngữ cảnh thông qua ONNX Runtime QNN Execution Provider và chạy nó trên Hexagon NPU — xem Triển khai Các mô hình YOLO QNN đã xuất.

Link to this sectionSự khác biệt giữa QNN và SNPE là gì?#

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à giải pháp thay thế được khuyến nghị cho bộ SDK Snapdragon Neural Processing Engine (SNPE) cũ hơn. Các triển khai mới nên nhắm mục tiêu vào QNN.

Link to this sectionTôi có thể chạy một model QNN với yolo predictyolo val không?#

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

Link to this sectionĐầu ra của một bản xuất QNN là gì?#

Quá trình xuất tạo ra 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, tác vụ và các metadata model khác được nhúng trong metadata_props của ONNX.

Bình luận