Link to this sectionXuất DEEPX cho các mô hình Ultralytics YOLO#
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 đị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 được lượng tử hóa hiệu quả trên các bộ tăng tốc NPU DEEPX. Hướng dẫn này sẽ đưa bạn qua quá trình 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 chạy DEEPX.
Link to this sectionDEEPX là gì?#
DEEPX là một công ty bán dẫn AI chuyên về các bộ xử lý thần kinh (NPU) được thiết kế cho suy luận deep learning tiết kiệm năng lượng tại biên (edge). Các NPU DEEPX được chế tạo cho các ứng dụng AI công nghiệp và nhúng đò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 đáng tin cậy 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.
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 để chạy 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 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 một số ưu điểm cho việc triển khai tại biên:
- Lượng tử hóa INT8: Các mô hình được lượng tử hóa sang độ 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ề model quantization.
- Tối ưu hóa cho NPU: Định dạng
.dxnnđược biên dịch đặc biệt cho phần cứng NPU DEEPX, tận dụng các bộ tăng tốc chuyên dụng để suy luận nhanh chóng 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 suy luận trên CPU hoặc GPU tương đươ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 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 lượng tử hóa.
- Đầ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ụ Ultralytics tiêu chuẩn đề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 | ✅ |
| OBB Detection | ✅ |
| 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.
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 trong lần xuất đầu tiên. Để biết hướng dẫn chi tiết và các phương pháp hay nhất liên quan đến quy trình cài đặt, hãy xem Ultralytics Installation guide của chúng tôi. Trong khi cài đặt các gói cần thiết cho YOLO, nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo Common Issues guide 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ế độ Export, Predict, và Validate. Quá trình suy luận và xác thực chạy trên phần cứng NPU DEEPX. 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 DEEPX. |
imgsz | int hoặc tuple | 640 | Kích thước hình ảnh mong muốn cho đầu vào mô hình. Xuất DEEPX yêu cầu đầu vào hình vuông — truyền một số nguyên (ví dụ: 640) hoặc một bộ tuple trong đó chiều cao bằng chiều rộng. |
int8 | bool | True | Bật lượng tử hóa INT8. Bắt buộc đối với xuất DEEPX — tự động được đặt thành True nếu không được chỉ định. |
data | str | 'coco128.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ủ x86-64 Linux. 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 Ultralytics documentation page on exporting.
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 đượ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. Tệp metadata.yaml chứa tên lớp, kích thước hình ảnh và các thông tin khác được sử dụng bởi pipeline suy luận của Ultralytics.
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 của mình 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 DEEPX.
Link to this sectionCài đặt Runtime#
Quá trình suy luận yêu cầu trình điều khiển NPU 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 rằng runtime được cài đặt chính xác với 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ư trong phần Usage ở trên — _deepx_model đã xuất sẽ tải trực tiếp với YOLO(...).
Link to this sectionTrực quan hóa với dxtron#
dxtron là trình trực quan 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 có sẵn cho cả nền tảng x86-64 và aarch64.
Link to this sectionĐiểm chuẩn#
Nhóm Ultralytics đã đánh giá các mô hình YOLO26, so sánh tốc độ và độ chính xác giữa PyTorch và DEEPX.
| Model | Format | Status | Size (MB) | metrics/mAP50-95(B) | Inference time (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 |
| Model | Format | Status | Size (MB) | acc (top1) | acc (top5) | Inference time (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 kết quả đo lường trên được thực hiện bằng cách sử dụng coco128 cho nhận diệ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 mô hình OBB. Thời gian suy luận không bao gồm tiền xử lý/hậu xử lý.
Để đạt được thông 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 khuyến nghị#
- Train (Huấn luyện) mô hình của bạn bằng Train Mode của Ultralytics
- Export (Xuất) sang định dạng DEEPX bằng
model.export(format="deepx") - Validate (Xác thực) độ chính xác với
yolo valđể kiểm tra độ mất mát do lượng tử hóa ở mức tối thiểu - Predict (Dự đoán) bằng
yolo predictđể xác thực định tính - Deploy (Triển khai) thư mục
_deepx_model/đã xuất sang phần cứng NPU DEEPX bằng runtimedx_engine
Link to this sectionCác Ứng dụng Thực tế#
Các mô hình 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: Nhận diện đối tượng 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 tại 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 vật cản và nhận diện đối tượng trên các robot tự hành và thiết bị bay không người lái (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 cách sử dụ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 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 mô hình YOLO của Ultralytics sang định dạng DEEPX và triển khai chúng trên phần cứng NPU DEEPX. Quy trình 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 thị giác máy tính tiên tiến trên các thiết bị nhúng và thiết bị biên — 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 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 YOLO khác của Ultralytics, 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 (FAQ)#
Link to this sectionLàm thế nào để xuất mô hình YOLO của Ultralytics sang định dạng DEEPX?#
Bạn có thể xuất mô hình của mình bằng phương thức export() trong Python hoặc thông qua CLI. Quá trình xuất tự động kích hoạ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 việc xuất sang 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 tính toán INT8 với hiệu suất tối đa. Trình biên dịch dx_com sẽ thực hiện lượng tử hóa mô hình 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ừ tập dữ liệu thực tế, cho phép NPU đạt được hiệu năng tối đa. INT8 luôn được bắt buộc đối với các tệp xuất DEEPX — nếu bạn đặt int8=False, nó sẽ bị ghi đè và kèm theo một 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) mô hình 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 mô hình .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 runtime dx_engine hỗ trợ.
Link to this sectionĐầu ra 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/) bao gồm:
yolo26n.dxnn— tệp nhị phân NPU đã biên dịchconfig.json— các thiết lập hiệu chuẩn và tiền xử lýmetadata.yaml— siêu dữ liệu mô hình 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 mô hình tùy chỉnh trên phần cứng DEEPX không?#
Có. Bất kỳ mô hình 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 phép toán lớp được hỗ trợ. Tính năng xuất hỗ trợ các tác vụ nhận diện, phân đoạn, ước tính tư thế, hộp bao quanh định 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 cho việc xuất DEEPX?#
Quy trình xuất DEEPX sử dụng mọi hình ảnh trong tập dữ liệu hiệu chuẩn (sau khi lọc fraction) với phương pháp hiệu chuẩn EMA. Một vài trăm hình ảnh thường là đủ cho độ chính xác lượng tử hóa tốt. Hãy trỏ data đến một tập dữ liệu nhỏ hơn (hoặc đặt fraction dưới 1.0) 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 cách nào để cài đặt runtime DEEPX để 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 chạy Linux x86-64 và Linux ARM64 (ví dụ: Raspberry Pi 5), hãy cài đặt trình điều khiển NPU (dxrt-driver-dkms) và runtime (libdxrt) từ các bản phát hành GitHub của DEEPX-AI, 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.