YOLO Vision 2026:

Export DEEPX cho model Ultralytics YOLO#

Việc triển khai các model thị giác máy tính trên phần cứng NPU chuyên dụng yêu cầu định dạng model tương thích và được tối ưu hóa. Export model Ultralytics YOLO sang định dạng DEEPX cho phép suy luận hiệu quả với lượng tử hóa INT8 trên các bộ tăng tốc NPU DEEPX. Hướng dẫn này sẽ giúp bạn chuyển đổi model YOLO sang định dạng DEEPX và triển khai chúng trên phần cứng hỗ trợ DEEPX.

DEEPX là gì?#

DEEPX NPU Inference

DEEPX là một công ty bán dẫn AI chuyên về các Bộ xử lý thần kinh (NPUs), được thiết kế để suy luận deep learning tiết kiệm điện năng tại edge. NPU DEEPX được thiết kế cho các ứng dụng AI nhúng và công nghiệp đòi hỏi cao, mang lại thông lượng lớn với mức tiêu thụ điện năng tối thiểu. Phần cứng của họ đặc biệt phù hợp với các kịch bản triển khai khi kết nối cloud không ổn định hoặc không mong muốn, chẳng hạn như robot, camera thông minh và hệ thống tự động hóa công nghiệp.

Định dạng Export DEEPX#

Export DEEPX tạo ra một binary model .dxnn đã biên dịch và được tối ưu hóa để thực thi trên phần cứng NPU DEEPX. Pipeline biên dịch sử dụng bộ công cụ dx_com để thực hiện lượng tử hóa INT8 và tối ưu hóa dành riêng cho phần cứng, tạo ra một thư mục model độc lập, sẵn sàng triển khai.

Các tính năng chính của model DEEPX#

Model DEEPX mang lại một số lợi thế cho việc triển khai tại edge:

  • Lượng tử hóa INT8: Model được lượng tử hóa xuống độ chính xác INT8 trong quá trình export, giúp giảm đáng kể kích thước model và tối đa hóa thông lượng NPU. Tìm hiểu thêm về lượng tử hóa model.
  • Tối ưu hóa cho NPU: Định dạng .dxnn được biên dịch riêng cho phần cứng NPU 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ả.
  • Mức tiêu thụ điện năng thấp: Bằng cách chuyển tác vụ suy luận sang NPU, model DEEPX tiêu thụ ít điện năng hơn nhiều so với suy luận tương đương trên CPU hoặc GPU.
  • Độ chính xác dựa trên calibration: Export sử dụng calibration dựa trên EMA với ảnh từ dataset thực để giảm thiểu việc suy giảm độ chính xác trong quá trình lượng tử hóa.
  • Output độc lập: Thư mục model đã export bao gồm binary đã biên dịch, cấu hình calibration và metadata để triển khai đơn giản.

Các Task được hỗ trợ#

Export DEEPX 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 duy nhất được phát hành cùng các head đó.

TaskYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Export sang DEEPX: Chuyển đổi model YOLO của bạn#

Export model Ultralytics YOLO sang định dạng DEEPX và chạy suy luận với model đã export.

Lưu ý

Export DEEPX chỉ được hỗ trợ trên máy Linux x86-64. ARM64 (aarch64) không được hỗ trợ cho bước export. Tuy nhiên, các model dxnn đã export hoàn toàn tương thích và có thể thực thi trên các nền tảng ARM64.

Cài đặt#

Để cài đặt các package bắt buộc, hãy chạy:

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

Trình biên dịch dx_com được cài đặt tự động từ kho lưu trữ DEEPX SDK trong lần xuất đầu tiên. Quy trình xuất hiện tại sử dụng DX-COM 2.3.0, cung cấp các gói wheel cho Python 3.8–3.12 trên hệ thống x86-64 Linux chạy glibc 2.31 trở lên.

Các bản phát hành PyPI của trình biên dịch đã bị thu hồi. Để cài đặt trước các phụ thuộc xuất, hãy cung cấp trang wheel SDK với --find-links; cách này hoạt động với cả pipuv pip:

pip install "ultralytics[export-deepx]" --find-links https://sdk.deepx.ai/release/dxcom/v2.3.0/index.html

Đối với quá trình cài đặt kho lưu trữ có thể chỉnh sửa, hãy thay thế "ultralytics[export-deepx]" bằng -e ".[export-base,export-deepx]". Để tái tạo môi trường Python 3.12 và quá trình kiểm tra xuất khói được CI sử dụng, hãy chạy trình xây dựng môi trường hiện có từ thư mục gốc của kho lưu trữ:

ULTRALYTICS_ISOLATED_VENVS="$PWD/.venvs" python .github/scripts/create-export-env.py --env isolated-deepx

Trình xây dựng môi trường yêu cầu uv và một bản sao Ultralytics đã được cài đặt. Trình xây dựng này sẽ cài đặt trình biên dịch từ mã nguồn SDK và tự động áp dụng các ràng buộc phụ thuộc đã được kiểm thử.

Cách sử dụng#

Định dạng DEEPX hỗ trợ các mode Export, PredictValidate. Suy luận và validation chạy trên phần cứng NPU DEEPX. Hãy export model, sau đó load model đã export để chạy suy luận hoặc validation độ chính xác.

Export
from ultralytics import YOLO

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

# Export the model to DEEPX format (quantize=8 is enforced automatically)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'
Predict
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validate
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")

Đối số Export#

Đối sốKiểuMặc địnhMô tả
formatstr'deepx'Định dạng đích cho model đã export, xác định khả năng tương thích với phần cứng NPU DEEPX.
imgszint hoặc tuple640Kích thước ảnh mong muốn cho input của model. Export DEEPX yêu cầu input vuông — truyền một số nguyên (ví dụ: 640) hoặc một tuple trong đó chiều cao bằng chiều rộng.
quantizeint hoặc str8/autoĐộ chính xác lượng tử hóa. 8 (INT8) là bắt buộc đối với export DEEPX và được tự động bật nếu không chỉ định. Thay thế các flag half/int8 đã deprecated.
simplifyboolTrueĐơn giản hóa graph ONNX trung gian bằng onnxslim.
opsetintNoneChỉ định phiên bản opset ONNX cho graph ONNX trung gian. Nếu không thiết lập, phiên bản được hỗ trợ mới nhất sẽ được sử dụng.
datastrNoneDataset YAML được sử dụng cho calibration INT8; với classification, thay vào đó cần một thư mục dataset hoặc tên dataset tích hợp sẵn. Nếu bỏ qua cùng với quantize=8, Ultralytics sẽ chọn dataset calibration mặc định cho tác vụ của model.
devicestrNoneChỉ định device dùng để export: GPU (device=0) hoặc CPU (device=cpu).
optimizeboolFalseBật mức tối ưu hóa compiler cao hơn, giúp giảm latency suy luận nhưng làm tăng thời gian biên dịch.
Mẹo

Luôn chạy export DEEPX trên host Linux x86-64. Compiler dx_com không hỗ trợ ARM64.

Để 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.

Cấu trúc Output#

Sau khi export thành công, một thư mục model sẽ được tạo với cấu trú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.)

File .dxnn là binary model đã biên dịch mà runtime dx_engine load trực tiếp trên NPU. File metadata.yaml chứa tên class, kích thước ảnh và các thông tin khác được pipeline suy luận của Ultralytics sử dụng.

Triển khai model YOLO DEEPX đã export#

Sau khi export thành công model Ultralytics YOLO sang định dạng DEEPX, bước tiếp theo là triển khai các model này trên phần cứng NPU DEEPX.

Cài đặt runtime#

Suy luận yêu cầu driver NPU DEEPX, runtime libdxrt và package Python dx_engine.

Lưu ý

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-*.whl

Xác minh runtime đã được cài đặt đúng bằng dxrt-cli --version. Bạn sẽ thấy output tương tự như sau:

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: v6

Sau khi cài đặt runtime, hãy chạy suy luận và validation trên thiết bị DEEPX chính xác như trong phần Usage ở trên — model _deepx_model đã export sẽ được load trực tiếp bằng YOLO(...).

Trực quan hóa với dxtron#

dxtron là graph visualizer của DEEPX để kiểm tra model .dxnn đã biên dịch.

Cài đặt dxtron trên Linux x86-64 bằng cách tải package .deb từ DEEPX SDK và cài đặt package này 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.deb

Sau đó mở model đã export:

dxtron yolo26n_deepx_model/yolo26n.dxnn
Lưu ý

dxtron khả dụng trên cả nền tảng x86-64 và aarch64.

Benchmark#

Đội ngũ Ultralytics đã benchmark các model YOLO26, so sánh tốc độ và độ chính xác giữa PyTorch và DEEPX.

Hiệu năng
Raspberry Pi 5 DEEPX M1 NPU vs PyTorch benchmarks
ModelĐịnh dạngTrạng tháiKích thước (MB)metrics/mAP50-95(B)Thời gian suy luận (ms/im)
YOLO26nPyTorch5.30.4760315.2
YOLO26nDEEPX6.60.466034.6
YOLO26n-segPyTorch6.50.4080485.4
YOLO26n-segDEEPX7.90.392053.8
YOLO26n-posePyTorch7.60.4230506.3
YOLO26n-poseDEEPX8.80.459037.6
YOLO26n-obbPyTorch5.70.8171094.4
YOLO26n-obbDEEPX7.30.78356.4
ModelĐịnh dạngTrạng tháiKích thước (MB)acc (top1)acc (top5)Thời gian suy luận (ms/im)
YOLO26n-clsPyTorch5.60.4310.71623.8
YOLO26n-clsDEEPX5.90.3330.6862.7
Lưu ý

Việc kiểm định cho các benchmark trên được thực hiện bằng cách sử dụng COCO128 cho bài toán phát hiện, COCO128-seg cho phân đoạn, COCO8-pose cho ước lượng 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 quá trình tiền xử lý/hậu xử lý.

Mẹo tối ưu hóa hiệu năng

Để đạt thông lượng suy luận tốt nhất từ NPU DX-M1 kết nối với Raspberry Pi 5, hãy mở file cấu hình boot và bật hỗ trợ PCIe Gen 3.

sudo nano /boot/firmware/config.txt

Thêm các dòng sau vào cuối file:

dtparam=pciex1
dtparam=pciex1_gen=3

Lưu và thoát (Ctrl+X, sau đó Y, rồi Enter), sau đó reboot:

sudo reboot

Kiểm tra thế hệ PCIe. Tốc độ dự kiến là 8GT/s đối với PCIe Gen3.

sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"

Workflow Khuyến nghị#

  1. Train model bằng Ultralytics Train Mode
  2. Export sang định dạng DEEPX bằng model.export(format="deepx")
  3. Validate độ chính xác bằng yolo val để xác minh mức mất mát quantization tối thiểu
  4. Predict bằng yolo predict để validation định tính
  5. Triển khai thư mục _deepx_model/ đã export lên phần cứng NPU DEEPX bằng runtime dx_engine

Ứng dụng thực tế#

Các model YOLO được triển khai trên phần cứng NPU DEEPX rất phù hợp với nhiều ứng dụng AI tại edge:

  • Giám sát thông minh: Phát hiện vật thể theo 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 cloud.
  • Tự động hóa công nghiệp: Kiểm soát chất lượng, phát hiện lỗi và giám sát quy trình ngay trên thiết bị 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 vật thể trên robot tự hành và drone.
  • Nông nghiệp thông minh: Giám sát sức khỏe cây trồng, phát hiện sâu bệnh và ước tính năng suất bằng thị giác máy tính trong nông nghiệp.
  • 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 tồn kho với suy luận tại edge theo thời gian thực.

Tóm tắt#

Trong hướng dẫn này, bạn đã tìm hiểu cách export model Ultralytics YOLO sang định dạng DEEPX và triển khai chúng trên phần cứng NPU DEEPX. Pipeline export sử dụng calibration INT8 và compiler dx_com để tạo binary .dxnn được tối ưu hóa cho phần cứng, trong khi runtime dx_engine xử lý 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 một giải pháp hiệu quả để chạy các workload thị giác máy tính nâng cao trên thiết bị nhúng và edge — mang lại thông 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 website chính thức của DEEPX.

Ngoài ra, nếu muốn tìm hiểu 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 nhiều tài nguyên và thông tin hữu ích tại đó.

FAQ#

  • Bạn có thể export model bằng method export() trong Python hoặc thông qua CLI. Export sẽ tự động bật lượng tử hóa INT8 và sử dụng dataset calibration để giảm thiểu suy giảm độ chính xác. Gói compiler dx_com sẽ được tự động cài đặt nếu chưa có.

    Ví dụ
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="deepx")
  • NPU DEEPX được thiết kế để thực thi các phép tính INT8 với hiệu suất tối đa. Compiler dx_com lượng tử hóa model trong quá trình export bằng calibration dựa trên EMA với ảnh từ dataset thực, giúp NPU đạt được toàn bộ hiệu năng. INT8 luôn được bắt buộc đối với export DEEPX — nếu bạn yêu cầu độ chính xác khác, yêu cầu đó sẽ bị ghi đè và kèm theo cảnh báo.

  • Export (biên dịch) model DEEPX yêu cầu host Linux x86-64. Bước export không được hỗ trợ trên ARM64 (aarch64) và máy Windows. Suy luận bằng model .dxnn đã export có thể chạy trên mọi nền tảng Linux (x86-64 và ARM64) được runtime dx_engine hỗ trợ.

  • Export tạo một thư mục (ví dụ: yolo26n_deepx_model/) chứa:

    • yolo26n.dxnn — binary NPU đã biên dịch
    • config.json — các thiết lập calibration và tiền xử lý
    • metadata.yaml — metadata của model, bao gồm tên class và kích thước ảnh
  • Có. Bất kỳ model nào được train bằng Train Mode của Ultralytics và export bằng format="deepx" đều có thể được triển khai trên phần cứng NPU DEEPX, miễn là sử dụng các phép toán layer được hỗ trợ. Export hỗ trợ cả bảy tác vụ của Ultralytics: detection, instance segmentation, semantic segmentation, depth estimation, classification, pose estimation và oriented bounding box (OBB).

  • Pipeline export DEEPX sử dụng mọi ảnh trong dataset calibration với phương pháp calibration EMA. Thông thường, vài trăm ảnh là đủ để đạt độ chính xác lượng tử hóa tốt. Hãy trỏ data đến một dataset nhỏ hơn nếu thời gian biên dịch trên các dataset lớn trở thành mối lo ngại.

  • Runtime DEEPX không được đóng gói cùng ultralytics và phải được cài đặt riêng trước khi chạy suy luận. Trên máy Linux x86-64 và máy Linux ARM64 (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 trên GitHub, sau đó cài đặt Python wheel dx_engine đi kèm. Xem phần Cài đặt runtime ở trên để biết các lệnh từng bước.

Bình luận