Link to this sectionXuất mô hình YOLO của Ultralytics sang định dạng DEEPX#
Việc triển khai các mô hình thị giác máy tính trên phần cứng NPU chuyên dụng đòi hỏi một định dạng mô hình tương thích và được tối ưu hóa. Việc xuất các mô hình Ultralytics YOLO sang định dạng DEEPX cho phép suy luận INT8-quantized hiệu quả trên các bộ tăng tốc NPU của DEEPX. Hướng dẫn này sẽ hướng dẫn bạn chuyển đổi các mô hình YOLO sang định dạng DEEPX và triển khai chúng trên phần cứng được hỗ trợ bởi DEEPX.
Link to this sectionDEEPX là gì?#
DEEPX là một công ty bán dẫn AI chuyên về Neural Processing Units (NPU) được thiết kế cho suy luận deep learning tiết kiệm điện năng tại biên (edge). Các NPU của DEEPX được thiết kế cho các ứng dụng AI nhúng và công nghiệp đòi hỏi khắt khe, mang lại thông lượng cao với mức tiêu thụ điện năng tối thiểu. Phần cứng của họ rất phù hợp cho các kịch bản triển khai nơi kết nối đám mây không ổn định hoặc không khả thi, chẳng hạn như robot, camera thông minh và hệ thống tự động hóa công nghiệp.
Link to this sectionĐịnh dạng xuất DEEPX#
Quá trình xuất DEEPX tạo ra một tệp nhị phân mô hình .dxnn đã biên dịch, được tối ưu hóa để thực thi trên phần cứng NPU của DEEPX. Quy trình biên dịch sử dụng bộ công cụ dx_com để thực hiện định lượng INT8 và tối ưu hóa dành riêng cho phần cứng, tạo ra một thư mục mô hình khép kín sẵn sàng để triển khai.
Link to this sectionCác tính năng chính của mô hình DEEPX#
Các mô hình DEEPX mang lại nhiều ưu điểm cho việc triển khai tại biên:
- Định lượng INT8: Các mô hình được định lượng về độ chính xác INT8 trong quá trình xuất, giúp giảm đáng kể kích thước mô hình và tối đa hóa thông lượng NPU. Tìm hiểu thêm về định lượng mô hình.
- Tối ưu hóa cho NPU: Định dạng
.dxnnđược biên dịch cụ thể cho phần cứng NPU của DEEPX, tận dụng các đơn vị tăng tốc chuyên dụng để suy luận nhanh và hiệu quả. - Tiêu thụ điện năng thấp: Bằng cách giảm tải suy luận sang NPU, các mô hình DEEPX tiêu thụ ít điện năng hơn nhiều so với việc suy luận trên CPU hoặc GPU thông thường.
- Độ chính xác dựa trên hiệu chuẩn: Quá trình xuất sử dụng hiệu chuẩn dựa trên EMA với các hình ảnh tập dữ liệu thực để giảm thiểu mất mát độ chính xác trong quá trình định lượng.
- Đầu ra khép kín: Thư mục mô hình được xuất bao gồm tệp nhị phân đã biên dịch, cấu hình hiệu chuẩn và siêu dữ liệu để triển khai đơn giản.
Link to this sectionCác tác vụ được hỗ trợ#
Tất cả các tác vụ chuẩn của Ultralytics đều được hỗ trợ xuất sang DEEPX trên các dòng mô hình YOLO26, YOLO11 và YOLOv8.
| Tác vụ | Được hỗ trợ |
|---|---|
| Object Detection | ✅ |
| Instance Segmentation | ✅ |
| Semantic Segmentation | ✅ |
| Pose Estimation | ✅ |
| Phát hiện OBB | ✅ |
| Classification | ✅ |
Link to this sectionXuất sang DEEPX: Chuyển đổi mô hình YOLO của bạn#
Xuất mô hình Ultralytics YOLO sang định dạng DEEPX và chạy suy luận với mô hình đã xuất.
Việc xuất DEEPX chỉ được hỗ trợ trên các máy chạy Linux x86-64. ARM64 (aarch64) không được hỗ trợ cho bước xuất. Tuy nhiên, các mô hình dxnn đã xuất hoàn toàn tương thích và có thể thực thi trên các nền tảng ARM64.
Link to this sectionCài đặt#
Để cài đặt các gói cần thiết, hãy chạy:
# Install the required package for YOLO
pip install ultralyticsGói trình biên dịch dx_com sẽ được tự động cài đặt từ kho lưu trữ DEEPX SDK khi xuất lần đầu. Để biết hướng dẫn chi tiết và các thực tiễn 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. Nếu bạn gặp bất kỳ khó khăn nào khi cài đặt các gói cần thiết cho YOLO, hãy tham khảo Hướng dẫn các vấn đề thường gặp của chúng tôi để biết các giải pháp và mẹo.
Link to this sectionCách sử dụng#
Định dạng DEEPX hỗ trợ các chế độ Xuất, Dự đoán và Xác thực. Quá trình suy luận và xác thực chạy trên phần cứng NPU của DEEPX. Hãy xuất mô hình của bạn, sau đó tải mô hình đã xuất để chạy suy luận hoặc xác thực độ chính xác của nó.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to DEEPX format (int8=True is enforced automatically)
model.export(format="deepx") # creates 'yolo26n_deepx_model/'from ultralytics import YOLO
# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionĐối số xuất#
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
format | str | 'deepx' | Định dạng đích cho mô hình đã xuất, xác định khả năng tương thích với phần cứng NPU của DEEPX. |
imgsz | int hoặc tuple | 640 | Kích thước hình ảnh mong muốn cho đầu vào mô hình. Việc xuất DEEPX yêu cầu đầu vào hình vuông — hãy nhập số nguyên (ví dụ: 640) hoặc một tuple nơi chiều cao bằng chiều rộng. |
int8 | bool | True | Bật định lượng INT8. Bắt buộc đối với việc xuất DEEPX — tự động được đặt thành True nếu không được chỉ định. |
data | str | '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. |
device | str | None | Chỉ định thiết bị để xuất: GPU (device=0) hoặc CPU (device=cpu). |
optimize | bool | False | Bật tối ưu hóa trình biên dịch cao hơn giúp giảm độ trễ suy luận và tăng thời gian biên dịch. |
Luôn chạy xuất DEEPX trên máy chủ Linux x86-64. Trình biên dịch dx_com không hỗ trợ ARM64.
Để 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 thư mục mô hình sẽ được tạo với bố cục sau:
yolo26n_deepx_model/
├── yolo26n.dxnn # Compiled DEEPX model binary (NPU executable)
├── config.json # Calibration and preprocessing configuration
└── metadata.yaml # Model metadata (classes, image size, task, etc.)Tệp .dxnn là tệp nhị phân mô hình đã biên dịch mà runtime dx_engine tải trực tiếp trên NPU. metadata.yaml chứa tên lớp, kích thước hình ảnh và thông tin khác được đường ống suy luận của Ultralytics sử dụng.
Link to this sectionTriển khai các mô hình YOLO DEEPX đã xuất#
Khi bạn đã xuất thành công mô hình Ultralytics YOLO sang định dạng DEEPX, bước tiếp theo là triển khai các mô hình này trên phần cứng NPU của DEEPX.
Link to this sectionCài đặt Runtime#
Suy luận yêu cầu trình điều khiển NPU của DEEPX, runtime libdxrt và gói Python dx_engine.
Runtime DEEPX hỗ trợ cả Linux x86-64 và ARM64 (ví dụ: Raspberry Pi 5).
# Install the NPU driver and libdxrt runtime
sudo apt update
wget https://github.com/DEEPX-AI/dx_rt_npu_linux_driver/raw/main/release/2.4.1/dxrt-driver-dkms_2.4.1-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.1-2_all.deb
wget https://github.com/DEEPX-AI/dx_rt/raw/main/release/3.3.2/libdxrt_3.3.2_all.deb
sudo apt install ./libdxrt_3.3.2_all.deb
# Create dx-engine wheel
cd /usr/share/libdxrt/python_package && sudo ./make_whl.sh
# Install the bundled dx_engine Python wheel
pip install dx_engine-*.whlXác minh runtime đã được cài đặt chính xác bằng dxrt-cli --version. Bạn sẽ thấy đầu ra tương tự như:
DXRT v3.3.2
Minimum Driver Versions
Device Driver: v2.4.0
PCIe Driver: v2.2.0
Firmware: v2.5.2
Minimum Compiler Versions
Compiler: v1.18.1
.dxnn File Format: v6Sau khi runtime được cài đặt, hãy chạy suy luận và xác thực trên thiết bị DEEPX của bạn chính xác như phần Sử dụng ở trên — _deepx_model đã xuất sẽ tải trực tiếp với YOLO(...).
Link to this sectionHình dung với dxtron#
dxtron là công cụ hình ảnh hóa đồ thị của DEEPX để kiểm tra mô hình .dxnn đã biên dịch.
Cài đặt dxtron trên Linux x86-64 bằng cách tải xuống gói .deb từ DEEPX SDK và cài đặt thông qua dpkg:
wget https://sdk.deepx.ai/release/dxtron/v2.0.1/dxtron_2.0.1_amd64.deb
sudo dpkg -i dxtron_2.0.1_amd64.debSau đó mở mô hình đã xuất của bạn:
dxtron yolo26n_deepx_model/yolo26n.dxnndxtron khả dụng cho cả nền tảng x86-64 và aarch64.
Link to this sectionĐiểm chuẩn (Benchmarks)#
Nhóm Ultralytics đã kiểm chuẩn các mô hình YOLO26, so sánh tốc độ và độ chính xác giữa PyTorch và DEEPX.
| Mô hình | Định dạng | Trạng thái | Kích thước (MB) | metrics/mAP50-95(B) | Thời gian suy luận (ms/im) |
|---|---|---|---|---|---|
| YOLO26n | PyTorch | ✅ | 5.3 | 0.4760 | 315.2 |
| YOLO26n | DEEPX | ✅ | 6.6 | 0.4660 | 34.6 |
| YOLO26n-seg | PyTorch | ✅ | 6.5 | 0.4080 | 485.4 |
| YOLO26n-seg | DEEPX | ✅ | 7.9 | 0.3920 | 53.8 |
| YOLO26n-pose | PyTorch | ✅ | 7.6 | 0.4230 | 506.3 |
| YOLO26n-pose | DEEPX | ✅ | 8.8 | 0.4590 | 37.6 |
| YOLO26n-obb | PyTorch | ✅ | 5.7 | 0.817 | 1094.4 |
| YOLO26n-obb | DEEPX | ✅ | 7.3 | 0.783 | 56.4 |
| Mô hình | Định dạng | Trạng thái | Kích thước (MB) | acc (top1) | acc (top5) | Thời gian suy luận (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n-cls | PyTorch | ✅ | 5.6 | 0.431 | 0.716 | 23.8 |
| YOLO26n-cls | DEEPX | ✅ | 5.9 | 0.333 | 0.686 | 2.7 |
Việc xác thực cho các đánh giá hiệu năng trên được thực hiện bằng coco128 cho phát hiện, coco128-seg cho phân đoạn, coco8-pose cho ước tính tư thế, imagenet100 cho phân loại và dota128 cho các model OBB. Thời gian suy luận không bao gồm tiền xử lý/hậu xử lý.
Để đạt được lưu lượng suy luận tốt nhất từ NPU DX-M1 được kết nối với Raspberry Pi 5, hãy mở tệp cấu hình khởi động và bật hỗ trợ PCIe Gen 3.
sudo nano /boot/firmware/config.txtThêm các dòng sau vào cuối tệp:
dtparam=pciex1
dtparam=pciex1_gen=3Lưu và thoát (Ctrl+X, sau đó Y, rồi Enter), sau đó khởi động lại:
sudo rebootKiểm tra thế hệ PCIe. Tốc độ dự kiến là 8GT/s cho PCIe Gen3.
sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"Link to this sectionQuy trình làm việc được đề xuất#
- Huấn luyện model của bạn bằng Train Mode của Ultralytics
- Xuất sang định dạng DEEPX bằng
model.export(format="deepx") - Xác thực độ chính xác bằng
yolo valđể kiểm tra mức độ mất mát khi lượng tử hóa tối thiểu - Dự đoán bằng
yolo predictđể xác thực định tính - Triển khai thư mục
_deepx_model/đã xuất sang phần cứng NPU DEEPX bằng runtimedx_engine
Link to this sectionỨng dụng trong thực tế#
Các model YOLO được triển khai trên phần cứng NPU DEEPX rất phù hợp cho nhiều ứng dụng edge AI:
- Giám sát thông minh: object detection thời gian thực cho các hệ thống an ninh và giám sát với mức tiêu thụ điện năng thấp và không phụ thuộc vào đám mây.
- Tự động hóa công nghiệp: Kiểm soát chất lượng trên thiết bị, phát hiện lỗi và giám sát quy trình trong môi trường nhà máy.
- Robot: Điều hướng dựa trên thị giác, tránh chướng ngại vật và nhận dạng đối tượng trên robot và máy bay không người lái tự hành.
- Nông nghiệp thông minh: Giám sát sức khỏe cây trồng, phát hiện dịch hại và ước tính năng suất bằng computer vision in agriculture.
- Phân tích bán lẻ: Phân tích luồng khách hàng, giám sát kệ hàng và theo dõi hàng tồn kho với suy luận tại biên theo thời gian thực.
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 YOLO của Ultralytics sang định dạng DEEPX và triển khai chúng trên phần cứng NPU DEEPX. Pipeline xuất sử dụng hiệu chuẩn INT8 và trình biên dịch dx_com để tạo ra tệp nhị phân .dxnn được tối ưu hóa cho phần cứng, trong khi runtime dx_engine xử lý việc suy luận trên thiết bị.
Sự kết hợp giữa Ultralytics YOLO và công nghệ NPU của DEEPX cung cấp giải pháp hiệu quả để chạy các khối lượng công việc computer vision tiên tiến trên các thiết bị nhúng và thiết bị biên — mang lại lưu lượng cao với mức tiêu thụ điện năng thấp cho các ứng dụng thời gian thực.
Để biết thêm chi tiết về cách sử dụng, hãy truy cập trang web chính thức của DEEPX.
Ngoài ra, nếu bạn muốn biết thêm về các tích hợp Ultralytics YOLO khác, hãy truy cập trang hướng dẫn tích hợp của chúng tôi. Bạn sẽ tìm thấy rất nhiều tài nguyên và thông tin hữu ích ở đó.
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 sang định dạng DEEPX?#
Bạn có thể xuất model của mình bằng phương thức export() trong Python hoặc thông qua CLI. Quá trình xuất sẽ tự động bật lượng tử hóa INT8 và sử dụng tập dữ liệu hiệu chuẩn để giảm thiểu việc mất độ chính xác. Gói trình biên dịch dx_com sẽ được cài đặt tự động nếu chưa có sẵn.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="deepx")Link to this sectionTại sao xuất DEEPX lại yêu cầu lượng tử hóa INT8?#
NPU DEEPX được thiết kế để thực hiện các phép tính INT8 với hiệu suất tối đa. Trình biên dịch dx_com sẽ lượng tử hóa model trong quá trình xuất bằng cách sử dụng hiệu chuẩn dựa trên EMA với hình ảnh tập dữ liệu thực, cho phép NPU đạt được hiệu suất tối đa. INT8 luôn được áp dụng bắt buộc đối với các tệp xuất DEEPX — nếu bạn truyền int8=False, nó sẽ bị ghi đè kèm theo cảnh báo.
Link to this sectionNhững nền tảng nào được hỗ trợ để xuất DEEPX?#
Việc xuất (biên dịch) model DEEPX yêu cầu máy chủ x86-64 Linux. Bước xuất không được hỗ trợ trên các máy ARM64 (aarch64) và Windows. Suy luận sử dụng model .dxnn đã xuất có thể được chạy trên bất kỳ nền tảng Linux nào (x86-64 và ARM64) được hỗ trợ bởi runtime dx_engine.
Link to this sectionKết quả của việc xuất DEEPX là gì?#
Quá trình xuất tạo ra một thư mục (ví dụ: yolo26n_deepx_model/) chứa:
yolo26n.dxnn— tệp nhị phân NPU đã biên dịchconfig.json— các cài đặt hiệu chuẩn và tiền xử lýmetadata.yaml— siêu dữ liệu model bao gồm tên lớp và kích thước hình ảnh
Link to this sectionTôi có thể triển khai các model tự huấn luyện trên phần cứng DEEPX không?#
Có. Bất kỳ model nào được huấn luyện bằng Train Mode của Ultralytics và được xuất với format="deepx" đều có thể được triển khai trên phần cứng NPU DEEPX, miễn là nó sử dụng các thao tác lớp được hỗ trợ. Việc xuất hỗ trợ các tác vụ phát hiện, phân đoạn, ước tính tư thế, hộp bao hướng (OBB) và phân loại.
Link to this sectionTôi nên sử dụng bao nhiêu hình ảnh hiệu chuẩn để xuất DEEPX?#
Pipeline xuất DEEPX sử dụng mọi hình ảnh trong tập dữ liệu hiệu chuẩn với phương pháp hiệu chuẩn EMA. Một vài trăm hình ảnh thường là đủ để có độ chính xác lượng tử hóa tốt. Hãy trỏ data vào một tập dữ liệu nhỏ hơn nếu thời gian biên dịch trở thành vấn đề trên các tập dữ liệu lớn.
Link to this sectionLàm thế nào để tôi cài đặt runtime DEEPX cho suy luận?#
Runtime DEEPX không được đi kèm với ultralytics và phải được cài đặt riêng trước khi chạy suy luận. Trên các máy x86-64 Linux và máy ARM64 Linux (ví dụ: Raspberry Pi 5), hãy cài đặt driver NPU (dxrt-driver-dkms) và runtime (libdxrt) từ các bản phát hành DEEPX-AI GitHub, sau đó cài đặt Python wheel dx_engine đi kèm. Xem phần Runtime Installation ở trên để biết các lệnh từng bước.