Xuất model Ultralytics YOLO26 sang Rockchip RKNN#
Khi triển khai model thị giác máy tính trên thiết bị nhúng, đặc biệt là thiết bị dùng bộ xử lý Rockchip, việc có định dạng model tương thích là rất cần thiết. Xuất model Ultralytics YOLO26 sang định dạng RKNN giúp đảm bảo hiệu suất 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 model YOLO26 sang định dạng RKNN, bao gồm xuất ở dạng dấu phẩy động và 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. Hướng dẫn dự kiến cũng hoạt động trên các thiết bị dùng 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 thiết bị chỉ hỗ trợ INT8 như RV1103 và RV1106 yêu cầu quantize=8.
Rockchip là gì?#
Nổi tiếng với các giải pháp đa năng và tiết kiệm năng lượng, Rockchip thiết kế các hệ thống trên chip (SoCs) tiên tiến, cung cấp sức mạnh cho nhiều 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, bộ xử lý thần kinh (NPUs) tích hợp và khả năng hỗ trợ đa phương tiện độ phân giải cao, SoC Rockchip mang lại hiệu năng tiên tiến cho các 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, giúp 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.
RKNN Toolkit#
RKNN Toolkit là bộ công cụ và thư viện do Rockchip cung cấp nhằm hỗ trợ triển khai các model học sâu trên nền tảng phần cứng của hãng. RKNN, viết tắt của 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 của NPU (Neural Processing Unit) Rockchip, bảo đảm 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#
Model RKNN mang lại một số ưu điểm khi triển khai trên nền tảng Rockchip:
- Tối ưu cho NPU: Model RKNN được tối ưu riêng để chạy trên NPU của Rockchip, bảo đảm hiệu năng và hiệu quả tối đa.
- Độ trễ thấp: Định dạng RKNN giảm thiểu độ trễ suy luận, yếu tố then chốt đố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ó thể tinh chỉnh model RKNN 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, model RKNN tiêu thụ ít điện nă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 của thiết bị di động.
Cài hệ điều hành lên phần cứng Rockchip#
Sau khi có thiết bị chạy Rockchip, bước đầu tiên là cài 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ẽ dẫn đến hướng dẫn bắt đầu sử dụng cho hai thiết bị đã thử nghiệm: Radxa Rock 5B và Radxa Zero 3W.
Các tác vụ được hỗ trợ#
Xuất 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 chỉ khả dụng với YOLO26, dòng model duy nhất có các head này.
Xuất sang RKNN: Chuyển đổi model YOLO26#
Xuất model Ultralytics YOLO26 sang định dạng RKNN và chạy suy luận bằng model đã xuất.
Hãy sử dụng PC Linux nền tảng X86 để xuất model sang RKNN vì không hỗ trợ xuất trên thiết bị chạy Rockchip (ARM64).
Cài đặt#
Để cài đặt các package cần thiết, hãy chạy:
# Install the required package for YOLO26
pip install ultralyticsĐể biết hướng dẫn chi tiết và các phương pháp tốt nhất về quy trình cài đặt, hãy xem 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 tham khảo hướng dẫn khắc phục sự cố thường gặp để tìm giải pháp và mẹo hữu ích.
Cách sử dụng#
Hỗ trợ xuất FP16 cho tất cả tác vụ. Hiện tại, xuất INT8 chỉ được hỗ trợ cho model phát hiện; sẽ hỗ trợ thêm các tác vụ khác trong tương lai. Vì vậy, các mục tiêu chỉ hỗ trợ INT8 như RV1103 và RV1106 chỉ xuất được model phát hiện.
Định dạng RKNN hỗ trợ các chế độ Export, Predict và Validate. Suy luận và xác thực chạy trên phần cứng NPU Rockchip. Hãy xuất model, sau đó nạp model đã xuất để chạy suy luận hoặc xác thực độ chính xác. Theo mặc định, quá trình xuất RKNN sử dụng luồng build 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 bằng dữ liệu hiệu chuẩn. Xuất RKNN không cung cấp chế độ FP32 riêng; mặc định FP16 không yêu cầu FP32.
from ultralytics import YOLO
# Nạp model YOLO26 (thay bằng model cho bất kỳ tác vụ nào được hỗ trợ)
model = YOLO("yolo26n-obb.pt")
# Xuất model sang định dạng RKNN
model.export(format="rknn", name="rk3588") # creates 'yolo26n-obb_rknn_model'
# Xuất model RKNN lượng tử hóa INT8 bằng dữ liệu hiệu chuẩn (chỉ dành cho model phát hiện)
model = YOLO("yolo26n.pt")
model.export(format="rknn", name="rk3588", quantize=8, data="coco8.yaml") # creates 'yolo26n_rknn_model'from ultralytics import YOLO
# Nạp model RKNN đã xuất
model = YOLO("./yolo26n-obb_rknn_model")
# Chạy suy luận
results = model("https://ultralytics.com/images/boats.jpg")from ultralytics import YOLO
# Nạp model RKNN đã xuất
model = YOLO("./yolo26n-obb_rknn_model")
# Xác thực độ chính xác trên tập dữ liệu DOTA8
metrics = model.val(data="dota8.yaml")Các tham số xuất model#
| Đố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 môi trường triển khai Rockchip. |
imgsz | int hoặc tuple | 640 | Kích thước ảnh mong muốn cho đầu vào model. Có thể là số nguyên cho ảnh vuông hoặc tuple (height, width) để chỉ định kích thước cụ thể. |
batch | int | 1 | Chỉ định kích thước batch suy luận của model khi xuất hoặc số lượng ảnh tối đa mà model đã xuất xử lý đồng thời ở chế độ 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 đặt) và INT8 (quantize=8); rv1103, rv1106, rv1103b và rv1106b chỉ hỗ trợ INT8 (quantize=8 hoặc không đặt). |
quantize | int hoặc str | None | Độ chính xác lượng tử hóa: nếu không đặt hoặc đặt thành 16, sẽ build FP16 cho các mục tiêu hỗ trợ FP16; nếu không đặt, tự động bật INT8 cho các mục tiêu chỉ hỗ trợ INT8; 8 sẽ build INT8, hiện chỉ được hỗ trợ cho model phát hiện. Xuất RKNN không có chế độ FP32 riêng. Thay thế các cờ half/int8 đã lỗi thời. |
simplify | bool | True | Đơn giản hóa đồ thị ONNX trung gian bằng onnxslim. |
opset | int | None | Chỉ định phiên bản opset ONNX cho đồ thị ONNX trung gian. Mặc định là 19 nếu không đặt; các giá trị lớn hơn 19 sẽ được hạ xuống 19. |
data | str | None | Tệp YAML của tập dữ liệu dùng để hiệu chuẩn INT8. Nếu không cung cấp cùng với quantize=8, Ultralytics sẽ chọn tập dữ liệu 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 tỷ lệ/số lượng [train, val, test]. Danh sách gồm hai mục giữ test ở dạng đầy đủ, 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). |
Hãy đả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 xuất, hãy truy cập trang tài liệu Ultralytics về xuất model.
Triển khai model YOLO26 RKNN đã xuất#
Sau khi xuất thành công model Ultralytics YOLO26 sang định dạng RKNN, bước tiếp theo là triển khai các model này trên thiết bị chạy Rockchip.
Cài đặt#
Để cài đặt các package cần thiết, 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à xác thực trên thiết bị Rockchip đúng như hướng dẫn trong phần Usage ở trên — model _rknn_model đã xuất có thể được nạp trực tiếp bằng YOLO(...).
Nếu gặp thông báo nhật ký 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 /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ị dùng Rockchip với model YOLO26 RKNN có thể được sử dụng trong nhiều ứng dụng:
- Giám sát thông minh: Triển khai hệ thống phát hiện đối tượng hiệu quả để giám sát an ninh với mức tiêu thụ điện năng thấp.
- Tự động hóa công nghiệp: Thực hiện kiểm soát chất lượng và phát hiện lỗi trực tiếp trên 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 đám mây.
- Nông nghiệp thông minh: Theo dõi sức khỏe 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: Hỗ trợ điều hướng bằng thị giác và phát hiện chướng ngại vật trên các nền tảng có tài nguyên hạn chế.
Benchmark#
Các kết quả benchmark YOLO26 bên dưới do nhóm Ultralytics thực hiện trên Radxa Rock 5B dùng Rockchip RK3588, với model ở định dạng 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/ảnh) |
|---|---|---|---|---|---|---|
| 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 bằng ultralytics 8.4.60
Việc xác thực cho các kết quả benchmark trên được thực hiện bằng tập dữ liệu COCO128. Thời gian suy luận không bao gồm tiền xử lý/hậu xử lý.
Tóm tắt#
Trong hướng dẫn này, bạn đã tìm hiểu cách xuất model Ultralytics YOLO26 sang định dạng RKNN để cải thiện việc triển khai trên nền tảng Rockchip. Bạn cũng đã được giới thiệu 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 mang đến 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 phát hiện đố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ụ điện nă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 xem 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.
Câu hỏi thường gặp#
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 gói Ultralytics Python hoặc qua giao diện dòng lệnh (CLI). Hãy dùng PC Linux nền tảng x86 để 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. Quá trình này tạo ra model RKNN đã tối ưu, sẵn sàng triển khai trên thiết bị Rockchip của bạn và tận dụng NPU (Neural Processing Unit) để tăng tốc suy luận.Ví dụfrom ultralytics import YOLO # Nạp model YOLO của bạn model = YOLO("yolo26n.pt") # Xuất sang định dạng RKNN cho nền tảng Rockchip cụ thể model.export(format="rknn", name="rk3588")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 NPU (NPUs) Rockchip. Nhờ tối ưu hóa này, tốc độ suy luận tăng đáng kể và độ trễ giảm so với khi chạy các định dạng model thông thường như ONNX hoặc LiteRT trên cùng phần cứng. Sử dụng model RKNN giúp khai thác tài nguyên thiết bị hiệu quả hơn, giảm mức tiêu thụ điện năng và cải thiện hiệu năng tổng thể — đặc biệt quan trọng 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 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.
Model RKNN được tối ưu riêng cho nền tảng Rockchip và NPU tích hợp. Về mặt kỹ thuật, bạn có thể chạy model RKNN trên nền tảng khác bằng mô phỏng phần mềm, nhưng sẽ không tận dụng được khả năng tăng tốc phần cứng của thiết bị Rockchip. Để đạt hiệu năng tối ưu trên các nền tảng khác, bạn nên xuất model Ultralytics YOLO sang các định dạng dành riêng cho 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, bảo đảm tương thích với các 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 có bản build RKNN 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ó 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 model RKNN đã tối ưu trên nhiều thiết bị sử dụng Rockchip, từ máy tính bo mạch đơn đến hệ thống công nghiệp.Model RKNN thường có hiệu năng cao hơn các đị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. Ví dụ, 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/ảnh với FP16 và 41.2 ms/ảnh với INT8, nhanh hơn đáng kể so với các định dạng khác. Ưu thế hiệu năng này được duy trì ở nhiều kích thước model YOLO26, như thể hiện trong phần benchmark. Nhờ tận dụng phần cứng NPU chuyên dụng, model RKNN giảm thiểu độ trễ và tối đa hóa thông lượng, phù hợp cho các ứng dụng thời gian thực trên thiết bị biên chạy Rockchip.