Xuất RKNN cho các model Ultralytics YOLO26 trên Rockchip#
Khi triển khai các model thị giác máy tính trên thiết bị nhúng, đặc biệt là các thiết bị sử dụng bộ xử lý Rockchip, việc có một định dạng model tương thích là điều thiết yếu. Việc xuất các model Ultralytics YOLO26 sang định dạng RKNN đảm bảo hiệu năng được tối ưu và khả năng tương thích với phần cứng Rockchip. Hướng dẫn này sẽ chỉ cho bạn cách chuyển đổi các model YOLO26 sang định dạng RKNN, bao gồm cả việc xuất dạng số thực dấu phẩy động và dạng lượng tử hóa INT8, giúp triển khai hiệu quả trên các nền tảng Rockchip.
Hướng dẫn này đã được kiểm thử với Radxa Rock 5B, sử dụng Rockchip RK3588, và Radxa Zero 3W, sử dụng Rockchip RK3566. Dự kiến hướng dẫn cũng hoạt động trên các thiết bị dựa trên Rockchip khác có hỗ trợ rknn-toolkit2, chẳng hạn như RK3576, RK3568, RK3562, RK2118, RV1126B, RV1103, RV1106, RV1103B và RV1106B. Các mục tiêu chỉ hỗ trợ INT8 như RV1103 và RV1106 yêu cầu quantize=8.
Rockchip là gì?#
Nổi tiếng với việc cung cấp các giải pháp linh hoạt và tiết kiệm năng lượng, Rockchip thiết kế các hệ thống trên chip (SoC) tiên tiến, phục vụ nhiều loại thiết bị điện tử tiêu dùng, ứng dụng công nghiệp và công nghệ AI. Với kiến trúc dựa trên ARM, các đơn vị xử lý thần kinh (NPU) tích hợp và khả năng hỗ trợ đa phương tiện độ phân giải cao, các SoC Rockchip mang lại hiệu năng tiên tiến cho những thiết bị như máy tính bảng, TV thông minh, hệ thống IoT và ứng dụng AI biên. Các công ty như Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas và Banana Pi cung cấp nhiều sản phẩm dựa trên SoC Rockchip, qua đó mở rộng hơn nữa phạm vi tiếp cận và tầm ảnh hưởng của Rockchip trên nhiều thị trường đa dạng.
RKNN Toolkit#
RKNN Toolkit là một tập hợp các công cụ và thư viện do Rockchip cung cấp nhằm hỗ trợ triển khai các model deep learning trên các nền tảng phần cứng của hãng. RKNN, hay Rockchip Neural Network, là định dạng độc quyền được các công cụ này sử dụng. Các model RKNN được thiết kế để tận dụng tối đa khả năng tăng tốc phần cứng do NPU của Rockchip cung cấp, đảm bảo hiệu năng cao cho các tác vụ AI trên những thiết bị như RK3588, RK3566, RV1103, RV1106 và các hệ thống khác sử dụng Rockchip.
Các tính năng chính của model RKNN#
Các model RKNN mang lại một số ưu điểm cho việc triển khai trên các nền tảng Rockchip:
- Tối ưu cho NPU: Các model RKNN được tối ưu riêng để chạy trên NPU của Rockchip, đảm bảo hiệu năng và hiệu suất tối đa.
- Độ trễ thấp: Định dạng RKNN giảm thiểu độ trễ suy luận, yếu tố quan trọng đối với các ứng dụng thời gian thực trên thiết bị biên.
- Tùy chỉnh theo nền tảng: Các model RKNN có thể được điều chỉnh cho từng nền tảng Rockchip cụ thể, giúp sử dụng tài nguyên phần cứng hiệu quả hơn.
- Tiết kiệm năng lượng: Nhờ tận dụng phần cứng NPU chuyên dụng, các model RKNN tiêu thụ ít năng lượng hơn so với xử lý dựa trên CPU hoặc GPU, giúp kéo dài thời lượng pin cho các thiết bị di động.
Flash hệ điều hành vào phần cứng Rockchip#
Bước đầu tiên sau khi có một thiết bị dựa trên Rockchip là flash hệ điều hành để phần cứng có thể khởi động vào một môi trường hoạt động. Trong hướng dẫn này, chúng tôi sẽ liên kết đến các hướng dẫn bắt đầu sử dụng của hai thiết bị đã được kiểm thử là Radxa Rock 5B và Radxa Zero 3W.
Các Task được hỗ trợ#
Việc xuất sang RKNN hỗ trợ cả bảy tác vụ của Ultralytics. Phân đoạn ngữ nghĩa và ước tính độ sâu hiện chỉ khả dụng với YOLO26, dòng duy nhất được cung cấp kèm các head đó.
Xuất sang RKNN: Chuyển đổi model YOLO26#
Xuất một model Ultralytics YOLO26 sang định dạng RKNN và chạy suy luận với model đã xuất.
Hãy đảm bảo sử dụng máy tính Linux dựa trên X86 để xuất model sang RKNN, vì việc xuất trên các thiết bị dựa trên Rockchip (ARM64) không được hỗ trợ.
Cài đặt#
Để cài đặt các package bắt buộc, hãy chạy:
# Install the required package for YOLO26
pip install ultralyticsĐể 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 tham khảo hướng dẫn Cài đặt Ultralytics. Nếu gặp khó khăn khi cài đặt các package cần thiết cho YOLO26, hãy xem 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#
Export FP16 được hỗ trợ cho tất cả các tác vụ. Export INT8 hiện chỉ được hỗ trợ cho các model phát hiện, với nhiều hỗ trợ tác vụ hơn sẽ ra mắt trong tương lai; do đó, các mục tiêu chỉ hỗ trợ INT8 như RV1103 và RV1106 chỉ export các model phát hiện.
Định dạng RKNN hỗ trợ các mode Export, Predict và Validate. Suy luận và validation chạy trên phần cứng NPU của Rockchip. Hãy xuất model, sau đó nạp model đã xuất để chạy suy luận hoặc kiểm tra độ chính xác. Theo mặc định, việc xuất RKNN sử dụng đường dẫn build dạng số thực dấu phẩy động (quantize=16) cho các mục tiêu Rockchip hỗ trợ FP16. Sử dụng quantize=8 để build model RKNN lượng tử hóa INT8 với dữ liệu calibration. Việc xuất RKNN không cung cấp mode FP32 riêng; mặc định FP16 không yêu cầu FP32.
from ultralytics import YOLO
# Load a YOLO26 model (replace with any supported task model)
model = YOLO("yolo26n-obb.pt")
# Export the model to RKNN format
model.export(format="rknn", name="rk3588") # creates 'yolo26n-obb_rknn_model'
# Export an INT8-quantized RKNN model with calibration data (detection models only)
model = YOLO("yolo26n.pt")
model.export(format="rknn", name="rk3588", quantize=8, data="coco8.yaml") # creates 'yolo26n_rknn_model'from ultralytics import YOLO
# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")
# Run inference
results = model("https://ultralytics.com/images/boats.jpg")from ultralytics import YOLO
# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")
# Validate accuracy on the DOTA8 dataset
metrics = model.val(data="dota8.yaml")Đối số Export#
| Đối số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
format | str | 'rknn' | Định dạng mục tiêu của model đã xuất, xác định khả năng tương thích với các môi trường triển khai Rockchip. |
imgsz | int hoặc tuple | 640 | Kí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) cho các kích thước cụ thể. |
batch | int | 1 | Chỉ định batch inference size của model export hoặc số image tối đa mà model đã export sẽ xử lý đồng thời trong mode predict. |
name | str | 'rk3588' | Chỉ định mục tiêu Rockchip. rk3588, rk3576, rk3566, rk3568, rk3562, rk2118 và rv1126b hỗ trợ FP16 (quantize=16 hoặc không thiết lập) và INT8 (quantize=8); rv1103, rv1106, rv1103b và rv1106b chỉ hỗ trợ INT8 (quantize=8 hoặc không thiết lập). |
quantize | int hoặc str | None | Độ chính xác lượng tử hóa: chưa đặt hoặc 16 xây dựng FP16 cho các mục tiêu hỗ trợ FP16; chưa đặt sẽ tự động bật INT8 cho các mục tiêu chỉ hỗ trợ INT8; 8 xây dựng INT8, chỉ được hỗ trợ cho các model phát hiện. Export RKNN không có chế độ FP32 riêng biệt. Thay thế các cờ half/int8 đã lỗi thời. |
simplify | bool | True | Đơn giản hóa graph ONNX trung gian bằng onnxslim. |
opset | int | None | Chỉ định phiên bản opset của ONNX cho graph ONNX trung gian. Mặc định là 19 nếu không thiết lập; các giá trị lớn hơn 19 sẽ được giảm xuống 19. |
data | str | None | Dataset YAML được sử dụng để hiệu chuẩn INT8. Nếu bỏ qua với quantize=8, Ultralytics chọn dataset hiệu chuẩn phát hiện mặc định (coco8.yaml). |
fraction | float, int hoặc list | 1.0 | Tậ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. |
device | str | None | Chỉ định thiết bị dùng để xuất: GPU (device=0), CPU (device=cpu). |
Vui lòng đảm bảo sử dụng máy Linux x86 khi xuất sang RKNN.
Để 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.
Triển khai model YOLO26 RKNN đã xuất#
Sau khi xuất thành công các model Ultralytics YOLO26 sang định dạng RKNN, bước tiếp theo là triển khai các model này trên các thiết bị dựa trên Rockchip.
Cài đặt#
Để cài đặt các package bắt buộc, hãy chạy:
# Install the required package for YOLO26
pip install ultralyticsSau khi cài đặt, hãy chạy suy luận và validation trên thiết bị Rockchip chính xác như trong phần Usage ở trên — _rknn_model đã xuất sẽ được nạp trực tiếp bằng YOLO(...).
Nếu bạn gặp thông báo log cho biết phiên bản runtime RKNN không khớp với phiên bản RKNN Toolkit và suy luận thất bại, hãy thay thế /usr/lib/librknnrt.so bằng tệp librknnrt.so chính thức.

Ứng dụng thực tế#
Các thiết bị sử dụng Rockchip với model YOLO26 RKNN có thể được dùng trong nhiều ứng dụng:
- Giám sát thông minh: Triển khai các hệ thống detection đối tượng hiệu quả để giám sát an ninh với mức tiêu thụ năng lượng thấp.
- Tự động hóa công nghiệp: Thực hiện kiểm soát chất lượng và detection lỗi trực tiếp trên các thiết bị nhúng.
- Phân tích bán lẻ: Theo dõi hành vi khách hàng và quản lý hàng tồn kho theo thời gian thực mà không phụ thuộc vào cloud.
- Nông nghiệp thông minh: Giám sát tình trạng cây trồng và phát hiện sâu bệnh bằng thị giác máy tính trong nông nghiệp.
- Robot tự hành: Cho phép điều hướng dựa trên thị giác và detection chướng ngại vật trên các nền tảng hạn chế tài nguyên.
Benchmark#
Các benchmark YOLO26 dưới đây được đội ngũ Ultralytics thực hiện trên Radxa Rock 5B dựa trên Rockchip RK3588, sử dụng định dạng model rknn để đo tốc độ và độ chính xác.
| Model | Định dạng | Precision | Trạng thái | Kích thước (MB) | mAP50-95(B) | Thời gian suy luận (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n | rknn | FP16 | ✅ | 7.2 | 0.477 | 58.5 |
| YOLO26n | rknn | INT8 | ✅ | 4.1 | 0.463 | 41.2 |
| YOLO26s | rknn | FP16 | ✅ | 21.0 | 0.569 | 93.8 |
| YOLO26s | rknn | INT8 | ✅ | 12.0 | 0.554 | 61.9 |
| YOLO26m | rknn | FP16 | ✅ | 43.0 | 0.608 | 226.3 |
| YOLO26m | rknn | INT8 | ✅ | 22.0 | 0.603 | 122.0 |
| YOLO26l | rknn | FP16 | ✅ | 53.0 | 0.628 | 264.7 |
| YOLO26l | rknn | INT8 | ✅ | 28.0 | 0.617 | 145.3 |
| YOLO26x | rknn | FP16 | ✅ | 113.0 | 0.664 | 655.4 |
| YOLO26x | rknn | INT8 | ✅ | 58.0 | 0.649 | 287.4 |
Benchmark với ultralytics 8.4.60
Quá trình kiểm tra cho các benchmark trên được thực hiện bằng cách sử dụng tập dữ liệu COCO128. Thời gian suy luận không bao gồm quá trình tiền xử lý/hậu xử lý.
Tóm tắt#
Trong hướng dẫn này, bạn đã học cách xuất các model Ultralytics YOLO26 sang định dạng RKNN để nâng cao khả năng triển khai trên các nền tảng Rockchip. Bạn cũng đã được giới thiệu về RKNN Toolkit và những ưu điểm cụ thể của việc sử dụng model RKNN cho các ứng dụng AI biên.
Sự kết hợp giữa Ultralytics YOLO26 và công nghệ NPU của Rockchip cung cấp một giải pháp hiệu quả để chạy các tác vụ thị giác máy tính nâng cao trên thiết bị nhúng. Phương pháp này cho phép thực hiện detection đối tượng theo thời gian thực và các ứng dụng AI thị giác khác với mức tiêu thụ năng lượng tối thiểu cùng hiệu năng cao.
Để biết thêm chi tiết về cách sử dụng, hãy truy cập tài liệu chính thức của RKNN.
Ngoài ra, nếu muốn tìm hiểu thêm về các tích hợp Ultralytics YOLO26 khác, hãy truy cập trang hướng dẫn tích hợp của chúng tôi. Tại đó, bạn sẽ tìm thấy nhiều tài nguyên và thông tin hữu ích.
FAQ#
Bạn có thể dễ dàng xuất model Ultralytics YOLO sang định dạng RKNN bằng phương thức
export()trong package Ultralytics Python hoặc thông qua giao diện dòng lệnh (CLI). Hãy đảm bảo bạn đang sử dụng máy tính Linux dựa trên x86 cho quá trình xuất, vì các thiết bị ARM64 như Rockchip không được hỗ trợ cho thao tác này. Bạn có thể chỉ định nền tảng Rockchip mục tiêu bằng đối sốname, chẳng hạn nhưrk3588,rk3566hoặc các giá trị khác. Quy trình này tạo ra một model RKNN được tối ưu, sẵn sàng triển khai trên thiết bị Rockchip của bạn, tận dụng Đơn vị xử lý thần kinh (NPU) để tăng tốc suy luận.Ví dụfrom ultralytics import YOLO # Load your YOLO model model = YOLO("yolo26n.pt") # Export to RKNN format for a specific Rockchip platform model.export(format="rknn", name="rk3588")Các model RKNN được thiết kế riêng để tận dụng khả năng tăng tốc phần cứng của các đơn vị xử lý thần kinh (NPU) của Rockchip. Tối ưu hóa này giúp tốc độ suy luận nhanh hơn đáng kể và giảm độ trễ so với việc chạy các định dạng model phổ dụng như ONNX hoặc LiteRT trên cùng phần cứng. Sử dụng model RKNN cho phép khai thác tài nguyên thiết bị hiệu quả hơn, từ đó giảm mức tiêu thụ năng lượng và cải thiện hiệu năng tổng thể, đặc biệt quan trọng đối với các ứng dụng thời gian thực trên thiết bị biên. Bằng cách chuyển đổi các model Ultralytics YOLO sang RKNN, bạn có thể đạt hiệu năng tối ưu trên các thiết bị sử dụng SoC Rockchip như RK3588, RK3566 và các dòng khác.
Các model RKNN được tối ưu riêng cho nền tảng Rockchip và các NPU tích hợp của chúng. Mặc dù về mặt kỹ thuật bạn có thể chạy model RKNN trên các nền tảng khác bằng phần mềm mô phỏng, bạn sẽ không được hưởng lợi từ khả năng tăng tốc phần cứng do thiết bị Rockchip cung cấp. Để đạt hiệu năng tối ưu trên các nền tảng khác, bạn nên xuất các model Ultralytics YOLO sang những định dạng được thiết kế riêng cho các nền tảng đó, chẳng hạn như TensorRT cho GPU NVIDIA hoặc Edge TPU cho thiết bị Coral của Google. Ultralytics hỗ trợ xuất sang nhiều định dạng, đảm bảo khả năng tương thích với nhiều bộ tăng tốc phần cứng khác nhau.
Tính năng xuất Ultralytics YOLO sang định dạng RKNN hỗ trợ các nền tảng Rockchip với build RKNN dạng số thực dấu phẩy động, bao gồm RK3588, RK3576, RK3566, RK3568, RK3562, RK2118 và RV1126B. Tính năng này cũng hỗ trợ xuất RKNN lượng tử hóa INT8 với
quantize=8, bắt buộc đối với các mục tiêu chỉ hỗ trợ INT8 như RV1103, RV1106, RV1103B và RV1106B. Các nền tảng này thường được sử dụng trong thiết bị của những nhà sản xuất như Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas và Banana Pi, cho phép bạn triển khai các model RKNN đã tối ưu trên nhiều thiết bị sử dụng Rockchip, từ máy tính đơn bo mạch đến hệ thống công nghiệp.Các model RKNN thường có hiệu năng vượt trội so với những định dạng khác như ONNX hoặc LiteRT trên thiết bị Rockchip nhờ được tối ưu cho NPU của Rockchip. Chẳng hạn, benchmark trên Radxa Rock 5B (RK3588) cho thấy YOLO26n ở định dạng RKNN đạt thời gian suy luận 58.5 ms/image với FP16 và 41.2 ms/image với INT8, nhanh hơn đáng kể so với các định dạng khác. Lợi thế hiệu năng này nhất quán trên nhiều kích thước model YOLO26, như được minh họa trong phần benchmark. Nhờ tận dụng phần cứng NPU chuyên dụng, các model RKNN giảm thiểu độ trễ và tối đa hóa thông lượng, khiến chúng trở nên lý tưởng cho các ứng dụng thời gian thực trên thiết bị biên dựa trên Rockchip.