YOLO Vision 2026:

Tích hợp Huawei Ascend cho Ultralytics YOLO#

Việc triển khai các model thị giác máy tính trên Bộ xử lý AI Huawei Ascend yêu cầu biên dịch chúng sang định dạng model offline .om được thực thi bởi Ascend AI Core. Xuất các model Ultralytics YOLO sang Ascend cho phép chạy inference nhanh, tiết kiệm năng lượng trên các board phát triển Atlas và thiết bị OrangePi AIPro được sử dụng trong robot, kiểm tra công nghiệp và các hệ thống camera thông minh.

Huawei Ascend là gì?#

Huawei Ascend là một dòng Bộ xử lý AI đi kèm với CANN (Kiến trúc Điện toán cho Mạng Nơ-ron), stack điện toán không đồng nhất của Huawei. CANN cung cấp ATC (Trình biên dịch Tensor Ascend), một công cụ phía host chuyển đổi graph ONNX tiêu chuẩn thành model offline .om dành riêng cho phần cứng, nhắm đến Ascend AI Core.

Vì ATC chạy hoàn toàn trên host, bạn có thể biên dịch model trên một máy Linux x86-64 hoặc ARM64 thông thường mà không cần kết nối phần cứng Ascend, sau đó sao chép .om tạo ra sang thiết bị đích để chạy inference.

Huấn luyện trên NPU Ascend#

Ultralytics hỗ trợ huấn luyện đơn NPU và đa NPU với torch_npu, bao gồm AMP, validation, checkpointing, resume và AutoBatch. Chọn một NPU bằng device=npu:0 hoặc nhiều NPU bằng device=npu:0,1; huấn luyện phân tán sử dụng HCCL. Cài đặt các phiên bản CANN, PyTorch và torch_npu tương thích, đồng thời source môi trường CANN trước. Xem phần huấn luyện Ascend NPU để biết ví dụ cài đặt và cách sử dụng.

Định dạng xuất Ascend#

Exporter của Ultralytics trước tiên ghi một graph ONNX trung gian, sau đó gọi ATC để biên dịch graph cho SoC đích bằng tham số name. Kết quả là một thư mục model độc lập chứa binary .om và metadata của Ultralytics.

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

  • AI Core chuyên dụng: Các model đã biên dịch được thực thi trên Ascend AI Core thay vì CPU của host, mang lại throughput cao hơn đáng kể cho các pipeline camera thời gian thực.
  • Biên dịch phía host: ATC không cần NPU được kết nối, vì vậy quá trình export có thể chạy trong CI, container hoặc trên laptop.
  • ONNX trước tiên: Ultralytics ONNX export tiêu chuẩn được đưa trực tiếp vào toolchain CANN mà không cần định dạng trung gian độc quyền.
  • Shape tĩnh: Shape đầu vào được cố định trong .om tại thời điểm biên dịch, loại bỏ overhead thương lượng shape khi runtime.
  • Nhắm mục tiêu đa thiết bị: Cùng một graph ONNX có thể được biên dịch cho mọi SoC được hỗ trợ bằng cách thay đổi name.

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

Export Huawei Ascend hỗ trợ cả bảy tác vụ của Ultralytics. Phân đoạn ngữ nghĩa và ước lượng độ sâu chỉ khả dụng với YOLO26, dòng duy nhất cung cấp các head đó.

TaskYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Thiết bị được hỗ trợ#

Truyền SoC đích bằng name; ATC tích hợp thông tin này vào .om dưới dạng --soc_version, vì vậy giá trị này phải khớp với board triển khai. Cục bộ, bạn có thể biên dịch cho bất kỳ SoC nào mà bản cài đặt CANN của bạn cung cấp kernel. Ultralytics Platform hỗ trợ các target Ascend310P1, Ascend310P3, Ascend310B1 và Ascend310B4.

nameThiết bịExport cục bộPlatform
Ascend310P3Atlas 300I Pro, Atlas 300V Pro
Ascend310P1Atlas 300I
Ascend310B4OrangePi AIPro 20T, Atlas 200I A2
Ascend310B1OrangePi AIPro 8T

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

Lưu ý

Export Ascend yêu cầu bộ toolkit CANN, chỉ hỗ trợ Linux. Compiler atc phải có trên PATH — hãy source script môi trường CANN trước khi export, ví dụ: source /usr/local/Ascend/ascend-toolkit/set_env.sh.

Cài đặt#

Cài đặt Ultralytics, sau đó cài đặt CANN riêng từ Huawei.

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

Bộ toolkit CANN do Huawei phân phối và không được cài đặt tự động. Tải xuống từ trang tải xuống cộng đồng Ascend, hoặc sử dụng một trong các image container ascendai/cann chính thức, vốn đã đóng gói ATC và các dependency của nó.

Đối chiếu toolkit với SoC đích

ATC chỉ có thể biên dịch cho các dòng SoC đã cài đặt kernel toán tử tương ứng. Một toolkit chỉ chứa kernel ascend310p sẽ thất bại với No supported Ops kernel and engine are found for ... Conv2D khi được yêu cầu target Ascend310B4. Hãy cài đặt package Ascend-cann-kernels-<soc> tương ứng với thiết bị triển khai.

Cách sử dụng#

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

Export
from ultralytics import YOLO

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

# Export the model to Ascend format for an Atlas 200I / OrangePi AIPro board
model.export(format="ascend", name="Ascend310B4")

# Load the exported Ascend model and run inference on the device
ascend_model = YOLO("yolo26n_ascend_model")
results = ascend_model("https://ultralytics.com/images/bus.jpg")

Đối số Export#

Đối sốKiểuMặc địnhMô tả
formatstr'ascend'Định dạng đích cho model đã export, xác định khả năng tương thích với Bộ xử lý AI Ascend.
namestr'Ascend310B4'SoC đích được truyền cho ATC dưới dạng --soc_version, ví dụ Ascend310P3. Bất kỳ SoC nào có kernel trong bản cài đặt CANN của bạn đều hợp lệ; xem Thiết bị được hỗ trợ. Phải khớp với thiết bị triển khai.
imgszint hoặc tuple640Kích thước ảnh mong muốn cho input của model, được cố định trong .om dưới dạng shape tĩnh.
batchint1Batch size tĩnh được biên dịch vào model offline.
quantizeint16Độ chính xác lượng tử hóa. Export Ascend chỉ hỗ trợ FP16 và tự động bật 16 nếu không được chỉ định. Thay thế các flag half/int8 đã deprecated.
opsetint17Opset ONNX cho graph trung gian. Bị giới hạn ở 17, là phiên bản cao nhất mà trình phân tích cú pháp ONNX của CANN chấp nhận.
simplifyboolTrueĐơn giản hóa graph ONNX trung gian bằng onnxslim.
nmsboolFalseThêm Non-Maximum Suppression vào các model detection, segmentation, pose và OBB được hỗ trợ.
Tại sao FP32 không khả dụng?

Ascend AI Core chỉ chấp nhận input DT_FLOAT16DT_INT8 cho các phép tích chập, vì vậy model offline FP32 không thể thực thi trên phần cứng. Yêu cầu quantize=32 sẽ tạo ra lỗi thay vì âm thầm tạo một model không thể chạy.

Để 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_ascend_model/
├── yolo26n_Ascend310B4.om  # Compiled Ascend offline model (AI Core executable)
└── metadata.yaml           # Model metadata (classes, image size, task, etc.)

File .om là model offline đã biên dịch mà runtime CANN load trên thiết bị. Tên file chứa SoC đích để artifact tự mô tả; chỉ giữ một .om trong mỗi thư mục, vì loader sẽ chọn model duy nhất tìm thấy tại đó. metadata.yaml chứa tên class, kích thước ảnh và các thông tin khác được pipeline inference của Ultralytics sử dụng.

Triển khai model YOLO Ascend đã export#

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

Cài đặt runtime#

Inference yêu cầu runtime CANN trên thiết bị cùng package Python ais_bench, package này bọc các binding pyACL của CANN. Build và cài đặt package từ repository công cụ Ascend của Huawei:

# On the Ascend device, with CANN installed and sourced
source /usr/local/Ascend/ascend-toolkit/set_env.sh

# Build and install the ais_bench inference wheel
git clone https://gitee.com/ascend/tools.git
cd tools/ais-bench_workload/tool/ais_bench
pip3 wheel ./backend -v
pip3 install ./aclruntime-*.whl
pip3 wheel ./ -v
pip3 install ./ais_bench-*.whl

Sao chép thư mục yolo26n_ascend_model đã export sang thiết bị, sau đó chạy inference בדיוק như với bất kỳ định dạng Ultralytics nào khác.

Workflow Khuyến nghị#

  1. Huấn luyện model bằng Train Mode của Ultralytics, hoặc bắt đầu từ một checkpoint pre-trained.
  2. Export sang Ascend trên bất kỳ host Linux nào đã cài đặt CANN, truyền name khớp với SoC đích.
  3. Sao chép thư mục model đã export sang thiết bị Ascend.
  4. Triển khai với runtime CANN và ais_bench để chạy inference trên thiết bị.

Ứng dụng thực tế#

Các model YOLO chạy trên phần cứng Ascend phù hợp với nhiều ứng dụng thị giác nhúng và công nghiệp:

  • Tự động hóa công nghiệp: Kiểm tra chất lượng tốc độ cao và phát hiện lỗi trên dây chuyền sản xuất.
  • Giám sát thông minh: Detection đối tượng thời gian thực từ nhiều camera trên các edge gateway mà không cần server trung tâm.
  • Robot: Nhận thức trên thiết bị cho robot di động tự hành và cánh tay cộng tác.
  • Đô thị thông minh: Giám sát giao thông và phân tích người đi bộ trên các unit ven đường công suất thấp.

Tóm tắt#

Trong hướng dẫn này, bạn đã học cách huấn luyện Ultralytics YOLO trên NPU Huawei Ascend và export model sang định dạng Ascend .om bằng compiler CANN ATC. Export chạy hoàn toàn trên host, tạo ra một thư mục model độc lập và nhắm đến mọi SoC Ascend được hỗ trợ thông qua một tham số name duy nhất.

Để biết thêm chi tiết về cách sử dụng, hãy truy cập tài liệu CANN chính thức.

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 để tìm nhiều tài nguyên hữu ích.

FAQ#

  • Cài đặt Ultralytics và bộ toolkit CANN, source môi trường CANN để atc có trên PATH, sau đó export bằng model.export(format="ascend", name="Ascend310B4") trong Python hoặc yolo export model=yolo26n.pt format=ascend name=Ascend310B4 từ CLI. Đặt name thành SoC của thiết bị triển khai.

  • Không. Compiler ATC chạy hoàn toàn trên host, vì vậy quá trình biên dịch hoạt động trên máy Linux x86-64 hoặc ARM64 tiêu chuẩn mà không cần kết nối NPU. Bạn chỉ cần phần cứng Ascend để chạy inference trên .om đã export.

  • Bản cài đặt CANN của bạn không chứa kernel toán tử cho SoC đã yêu cầu. Mỗi toolkit đóng gói kernel cho các dòng SoC cụ thể, vì vậy hãy cài đặt package Ascend-cann-kernels-<soc> khớp với target hoặc sử dụng container image được build cho dòng thiết bị đó.

  • Các phép tích chập của Ascend AI Core chỉ chấp nhận tensor DT_FLOAT16DT_INT8. Model offline FP32 sẽ không thể thực thi trên phần cứng, vì vậy exporter biên dịch bằng --precision_mode=force_fp16 và từ chối yêu cầu quantize=32 được chỉ định rõ ràng.

  • Bất kỳ SoC nào mà bộ toolkit CANN đã cài đặt của bạn cung cấp kernel, được chọn thông qua tham số name. Xem Thiết bị được hỗ trợ để biết bốn target đã được xác thực và khả năng sử dụng của chúng trên Ultralytics Platform.

Bình luận