Ultralytics YOLO27: Tham gia danh sách chờ.
Bắt đầu

Xuất NXP i.MX95 với Neutron

Xuất Ultralytics YOLO bằng format="nxp" để tạo model .tflite INT8 được biên dịch cho NPU NPU Neutron của NXP i.MX95. Exporter sử dụng lại quy trình chuyển đổi và hiệu chuẩn LiteRT, sau đó chạy compiler Neutron SDK 3.3.0 của NXP để triển khai AI biên.

Đích này khác với Sony IMX500 (format="imx"). NXP i.MX8M Plus, i.MX93 và các bộ xử lý NXP khác sử dụng các stack accelerator khác; artifact i.MX95 không thể thay thế cho các đích đó.

Export#

Xuất trên Linux x86_64, với Python 3.10 trở lên. Quá trình biên dịch đã được xác thực với Python 3.13 và 3.14. Ultralytics sẽ cài đặt các dependency chuyển đổi khi cần. Neutron SDK có trong kho gói của NXP.

pip install -U ultralytics
pip install eiq-neutron-sdk==3.3.0 --extra-index-url https://eiq.nxp.com/repository
Xuất sang NXP i.MX95
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
path = model.export(format="nxp", imgsz=640, data="coco128.yaml")
# Tạo yolo26n_nxp.tflite

Sử dụng ảnh hiệu chuẩn đại diện cho môi trường triển khai, bao gồm camera, ánh sáng và kích thước đối tượng. Lượng tử hóa INT8 có thể làm giảm độ chính xác, vì vậy hãy so sánh yolo26n_int8.tflite trung gian với model PyTorch trên máy chủ. coco128.yaml là ví dụ thuận tiện, không thay thế cho việc hiệu chuẩn riêng theo ứng dụng và một tập dữ liệu xác thực độc lập.

Đối sốMô tả
imgszKích thước ảnh đầu vào cố định, ví dụ 640 hoặc (480, 640).
quantizeINT8 (8); được bật tự động. Không hỗ trợ độ chính xác khác.
dataYAML của tập dữ liệu hiệu chuẩn hoặc tập dữ liệu phân loại.
fractionTỷ lệ hoặc số lượng ảnh hiệu chuẩn.
deviceThiết bị được sử dụng trong quá trình xuất và hiệu chuẩn. Đích đã biên dịch vẫn là i.MX95.

Kích thước batch được cố định ở mức 1. Các bản xuất cho detection sử dụng dự đoán thô để áp dụng NMS bên ngoài; Ultralytics thực hiện hậu xử lý này trong quá trình dự đoán và xác thực. NMS nhúng và đầu ra top-k không cần NMS của YOLO26 không được hỗ trợ trong bản xuất này.

Platform#

Trong Ultralytics Platform, mở tab Export của model và chọn NXP. Chọn kích thước ảnh rồi tải artifact _nxp.tflite đã biên dịch xuống khi quá trình xuất hoàn tất. Platform chạy compiler trên các CPU worker; chỉ cần bo mạch NXP để triển khai và đo hiệu năng. Xem hướng dẫn từng bước xuất model trên Platform để biết quy trình chung.

Platform hiển thị INT8 dưới dạng thiết lập cố định và sử dụng tập dữ liệu hiệu chuẩn mặc định của exporter cho tác vụ của model. Hiện tại, Platform không cung cấp các tùy chọn điều khiển data hoặc fraction cho quá trình hiệu chuẩn. Hãy dùng các ví dụ xuất bằng Python hoặc CLI ở trên để hiệu chuẩn với ảnh đại diện của riêng bạn.

Triển khai trên i.MX95#

Cài đặt runtime TensorFlow Lite, libneutron_delegate.so, Neutron driver và firmware do NXP cung cấp cho BSP tương thích với Neutron SDK 3.3.0. Làm theo hướng dẫn triển khai của NXP để thiết lập bo mạch và kiểm tra khả năng tương thích của runtime.

Runtime Ultralytics tải tflite_runtime và Neutron delegate của bo mạch. Giữ nguyên hậu tố _nxp.tflite để Ultralytics chọn runtime NXP. Chạy các ví dụ dự đoán và xác thực sau trên bo mạch:

Dự đoán bằng model NXP
from ultralytics import YOLO

model = YOLO("yolo26n_nxp.tflite")
results = model.predict("https://ultralytics.com/images/bus.jpg", imgsz=640)
Xác thực model NXP
from ultralytics import YOLO

model = YOLO("yolo26n_nxp.tflite")
metrics = model.val(data="coco128.yaml", imgsz=640, batch=1)

Để benchmark trực tiếp bằng TensorFlow Lite, hãy dùng tệp thực thi benchmark của bo mạch:

benchmark_model --graph=yolo26n_nxp.tflite --external_delegate_path=/usr/lib/libneutron_delegate.so

Mức độ bao phủ toán tử và hiệu năng#

Quá trình biên dịch thay thế các đồ thị con được hỗ trợ bằng các toán tử NeutronGraph. Các toán tử không được hỗ trợ sẽ chạy trên CPU. Xuất thành công không có nghĩa là mọi toán tử đều chạy trên NPU hoặc đã loại bỏ được độ trễ khi chuyển đổi giữa CPU/NPU. Attention, thay đổi bố cục tensor và hậu xử lý vẫn có thể cần thực thi trên CPU.

Nhật ký xuất bao gồm số liệu thống kê của compiler NXP: số toán tử đã chuyển đổi, phân vùng NPU, ước tính bộ nhớ và số chu kỳ NPU ước tính. Các ước tính này không bao gồm toán tử CPU, tiền xử lý, hậu xử lý và overhead runtime. Hãy đo độ trễ toàn bộ khung hình, RAM đỉnh và dung lượng lưu trữ khi triển khai trên bo mạch đích; TOPS lý thuyết và kích thước tệp đã biên dịch không thể xác định các giá trị đó.

Xác thực model trung gian đã hiệu chuẩn so với model PyTorch, sau đó xác thực model đã biên dịch trên bo mạch bằng cùng tập dữ liệu và kích thước ảnh. Biên dịch trên máy chủ và kiểm tra độ chính xác của model trung gian không chứng minh được tính tương đương số học hoặc độ trễ trên NPU. Tham khảo các phương pháp tốt nhất khi triển khai model để lập kế hoạch xác thực ở cấp ứng dụng.

Câu hỏi thường gặp#

  • Dùng model.export(format="nxp", data="your_dataset.yaml") trong Python hoặc yolo export model=best.pt format=nxp data=your_dataset.yaml trong CLI trên Linux x86_64. Exporter hiệu chuẩn model sang INT8 và biên dịch model bằng Neutron SDK 3.3.0, tạo ra best_nxp.tflite. Làm theo các ví dụ xuất cho model YOLO26n pretrained.

  • Có. Tải YOLO("best_nxp.tflite") rồi gọi predict() hoặc val(), hoặc dùng yolo predict và yolo val. Cả hai cách đều sử dụng runtime TensorFlow Lite và Neutron delegate của bo mạch. Giữ nguyên hậu tố tên tệp _nxp.tflite và cài đặt runtime NXP tương thích như mô tả trong Triển khai trên i.MX95.

  • Bản xuất này chỉ dành cho i.MX95. Các bộ xử lý NXP khác có accelerator và toolchain triển khai khác, vì vậy không thể dùng lại artifact Neutron cho i.MX95 trên i.MX8M Plus hoặc i.MX93. Tùy chọn format="imx" riêng biệt nhắm đến Sony IMX500, không phải các bộ xử lý NXP i.MX.

  • Neutron biên dịch các đồ thị con được hỗ trợ cho NPU và giữ các toán tử không được hỗ trợ trong TensorFlow Lite để thực thi trên CPU. Attention, thay đổi bố cục và hậu xử lý có thể tạo ra nhiều phân vùng cùng overhead truyền dữ liệu. Kiểm tra số liệu thống kê về toán tử đã chuyển đổi của compiler, sau đó profile toàn bộ ứng dụng trên bo mạch; biên dịch thành công không đảm bảo mọi tác vụ đều chạy trên NPU.

  • Hiệu chuẩn bằng ảnh đại diện và so sánh model PyTorch, model INT8 trung gian và model đã biên dịch trên tập xác thực độc lập. Dùng chế độ Validate để đo độ chính xác, đồng thời đo độ trễ khung hình, RAM đỉnh của tiến trình và dung lượng lưu trữ khi triển khai trên bo mạch i.MX95. Ước tính bộ nhớ của compiler, kích thước tệp model và chỉ số TOPS không đủ để xác định hiệu năng ứng dụng.

Người đóng góp

Bình luận

Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.