Link to this sectionXuất mô hình Ultralytics YOLO sang Huawei Ascend#
Triển khai các mô hình 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 mô hình ngoại tuyến .om được thực thi bởi Ascend AI Core. Việc xuất mô hình Ultralytics YOLO sang Ascend cho phép bạn chạy suy luận tốc độ cao, tiêu thụ điện năng thấp trên các bo mạch nhà phát triển Atlas và thiết bị OrangePi AIPro được sử dụng trong các ứng dụng robot, kiểm tra công nghiệp và triển khai camera thông minh.
Link to this sectionHuawei Ascend là gì?#
Huawei Ascend là một dòng Bộ xử lý AI đi kèm với CANN (Compute Architecture for Neural Networks), ngăn xếp điện toán dị thể của Huawei. CANN tích hợp ATC (Ascend Tensor Compiler), một công cụ phía máy chủ (host) chuyển đổi biểu đồ ONNX chuẩn thành mô hình ngoại tuyến .om đặc thù cho phần cứng nhằm mục tiêu nhắm đến Ascend AI Core.
Vì ATC chạy hoàn toàn trên máy chủ, bạn có thể biên dịch các mô hình trên máy tính Linux x86-64 hoặc ARM64 thông thường mà không cần gắn bất kỳ phần cứng Ascend nào, sau đó sao chép tệp .om kết quả sang thiết bị mục tiêu để chạy suy luận.
Link to this sectionĐịnh dạng xuất Ascend#
Trình xuất của Ultralytics trước tiên ghi một biểu đồ ONNX trung gian, sau đó gọi ATC để biên dịch nó cho SoC mà bạn nhắm tới bằng đối số name. Kết quả là một thư mục mô hình độc lập chứa tệp nhị phân .om và siêu dữ liệu (metadata) của Ultralytics.
Link to this sectionCác tính năng chính của mô hình Ascend#
- AI Core chuyên dụng: Các mô hình đã biên dịch được thực thi trên Ascend AI Core thay vì CPU của máy chủ, mang lại thông lượng cao hơn đáng kể cho các đường ống xử lý camera thời gian thực.
- Biên dịch phía máy chủ: ATC không cần NPU đính kèm, do đó quá trình xuất chạy được trong CI, trong các container hoặc trên máy tính xách tay.
- Ưu tiên ONNX: Quá trình xuất ONNX tiêu chuẩn của Ultralytics đưa trực tiếp vào chuỗi công cụ CANN mà không cần định dạng trung gian độc quyền nào.
- Hình dạng tĩnh (Static shapes): Hình dạng đầu vào được cố định vào tệp
.omtại thời điểm biên dịch, loại bỏ độ trễ do đàm phán hình dạng tại thời điểm chạy. - Nhắm mục tiêu đa thiết bị: Cùng một biểu đồ ONNX có thể được biên dịch cho bất kỳ SoC được hỗ trợ nào bằng cách thay đổi
name.
Link to this sectionCác tác vụ được hỗ trợ#
Xuất sang Ascend hỗ trợ tất cả bảy tác vụ của Ultralytics. Phát hiện đối tượng, phân đoạn thực thể (instance segmentation), ước lượng tư thế, OBB và phân loại bao gồm các dòng YOLO26, YOLO11 và YOLOv8; phân đoạn ngữ nghĩa và ước lượng chiều sâu chỉ dành riêng cho YOLO26.
| Tác vụ | Được hỗ trợ |
|---|---|
| Phát hiện đối tượng | ✅ |
| Phân đoạn Instance | ✅ |
| Phân đoạn ngữ nghĩa | ✅ |
| Ước tính tư thế | ✅ |
| OBB Detection | ✅ |
| Phân loại | ✅ |
| Ước tính độ sâu | ✅ |
Link to this sectionThiết bị được hỗ trợ#
Truyền SoC mục tiêu bằng name; ATC ghi nó vào tệp .om dưới dạng --soc_version, do đó nó phải khớp với bo mạch bạn triển khai lên. Tại máy 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 nhân (kernel). Trên Ultralytics Platform, các mục tiêu 310B được liệt kê là sắp ra mắt trong lúc các nhân toán tử của chúng được thêm vào hình ảnh bản dựng.
name | Thiết bị | Xuất cục bộ | Nền tảng |
|---|---|---|---|
Ascend310P3 | Atlas 300I Pro, Atlas 300V Pro | ✅ | ✅ |
Ascend310P1 | Atlas 300I | ✅ | ✅ |
Ascend310B4 | OrangePi AIPro 20T, Atlas 200I A2 | ✅ | Sắp ra mắt |
Ascend310B1 | OrangePi AIPro 8T | ✅ | Sắp ra mắt |
Link to this sectionXuất sang Ascend: Chuyển đổi mô hình YOLO của bạn#
Quá trình xuất sang Ascend yêu cầu bộ công cụ CANN, chỉ hỗ trợ Linux. Trình biên dịch atc phải nằm trong biến môi trường PATH của bạn — hãy chạy nguồn tệp lệnh môi trường CANN trước khi xuất, ví dụ: source /usr/local/Ascend/ascend-toolkit/set_env.sh.
Link to this sectionCài đặt#
Cài đặt Ultralytics, sau đó cài đặt riêng CANN từ Huawei.
# Install the required package for YOLO
pip install ultralyticsBộ công cụ CANN được phân phối bởi Huawei 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 ảnh container ascendai/cann chính thức, tích hợp sẵn ATC và các phụ thuộc của nó.
ATC chỉ có thể biên dịch cho các dòng SoC có cài đặt nhân toán tử tương ứng. Bộ công cụ chỉ mang các nhân ascend310p sẽ báo lỗi No supported Ops kernel and engine are found for ... Conv2D khi được yêu cầu mục tiêu Ascend310B4. Hãy cài đặt gói Ascend-cann-kernels-<soc> tương ứng với thiết bị bạn triển khai.
Link to this sectionCách sử dụng#
Định dạng Ascend hỗ trợ các chế độ Xuất (Export), Dự đoán (Predict) và Đánh giá (Validate). Suy luận và đánh giá chạy trên phần cứng Ascend. 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 đánh giá độ chính xác của nó.
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")Link to this sectionĐối số xuất#
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
format | str | 'ascend' | Định dạng mục tiêu cho mô hình đã xuất, xác định tính tương thích với Bộ xử lý AI Ascend. |
name | str | 'Ascend310B4' | SoC mục tiêu được truyền tới ATC dưới dạng --soc_version, ví dụ: Ascend310P3. Bất kỳ SoC nào mà bản cài đặt CANN của bạn có nhân đều hợp lệ; xem Thiết bị được hỗ trợ. Phải khớp với thiết bị triển khai của bạn. |
imgsz | int hoặc tuple | 640 | Kích thước ảnh mong muốn cho đầu vào mô hình, được nhúng vào tệp .om dưới dạng hình dạng tĩnh (static shape). |
batch | int | 1 | Kích thước batch tĩnh được biên dịch vào mô hình ngoại tuyến. |
quantize | int | 16 | Độ chính xác lượng tử hóa. Quá trình xuất Ascend chỉ hỗ trợ FP16 và tự động bật 16 nếu không được chỉ định. Thay thế các cờ half/int8 đã lỗi thời. |
opset | int | 17 | ONNX opset cho biểu đồ trung gian. Giới hạn ở 17, 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. |
simplify | bool | True | Đơn giản hóa biểu đồ ONNX trung gian bằng onnxslim. |
nms | bool | False | Thêm Non-Maximum Suppression vào các mô hình phát hiện, phân đoạn, tư thế và OBB được hỗ trợ. |
Ascend AI Core chỉ chấp nhận đầu vào DT_FLOAT16 và DT_INT8 cho các phép chập (convolution), do đó mô hình ngoại tuyến FP32 không thể thực thi trên phần cứng. Yêu cầu quantize=32 sẽ gây ra lỗi thay vì âm thầm tạo ra một mô hình không chạy được.
Để 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_ascend_model/
├── yolo26n_Ascend310B4.om # Compiled Ascend offline model (AI Core executable)
└── metadata.yaml # Model metadata (classes, image size, task, etc.)Tệp .om là mô hình ngoại tuyến đã biên dịch mà thời gian chạy CANN tải trên thiết bị. Tên của nó chứa SoC mục tiêu để tệp kết quả tự mô tả; hãy giữ một tệp .om cho mỗi thư mục, vì trình tải chọn mô hình duy nhất mà nó tìm thấy ở đó. metadata.yaml chứa tên lớp, kích thước ảnh và thông tin khác được sử dụng bởi đường ống suy luận Ultralytics.
Link to this sectionTriển khai các mô hình YOLO Ascend đã xuất#
Khi bạn đã xuất thành công mô hình Ultralytics YOLO sang định dạng Ascend, bước tiếp theo là triển khai nó trên phần cứng Ascend.
Link to this sectionCài đặt Runtime#
Suy luận yêu cầu thời gian chạy CANN trên thiết bị cộng với gói Python ais_bench, bao bọc các liên kết pyACL của CANN. Xây dựng và cài đặt nó từ kho lưu trữ 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-*.whlSao chép thư mục yolo26n_ascend_model đã xuất sang thiết bị, sau đó chạy suy luận chính xác như bạn làm với bất kỳ định dạng Ultralytics nào khác.
Link to this sectionQuy trình làm việc được đề xuất#
- Huấn luyện (Train) mô hình của bạn bằng Chế độ Huấn luyện của Ultralytics, hoặc bắt đầu từ một checkpoint được huấn luyện trước.
- Xuất (Export) sang Ascend trên bất kỳ máy chủ Linux nào đã cài đặt CANN, truyền đối số
namekhớp với SoC mục tiêu của bạn. - Sao chép thư mục mô hình đã xuất sang thiết bị Ascend.
- Triển khai (Deploy) với thời gian chạy CANN và
ais_benchđể chạy suy luận trên thiết bị.
Link to this sectionỨng dụng trong thực tế#
Các mô hình 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 các dây chuyền sản xuất.
- Giám sát thông minh: Phát hiện đối tượng đa camera thời gian thực trên các cổng biên (edge gateway) mà không cần máy chủ trung tâm.
- Robot: Nhận thức trên bo mạch cho các robot di động tự hành và cánh tay cộng tác.
- Thành phố thông minh: Giám sát giao thông và phân tích người đi bộ trên các thiết bị ven đường tiêu thụ điện năng thấp.
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 Ultralytics YOLO sang định dạng .om của Huawei Ascend bằng trình biên dịch CANN ATC. Quá trình xuất chạy hoàn toàn trên máy chủ, tạo ra một thư mục mô hình độc lập và nhắm mục tiêu đến bất kỳ SoC Ascend nào được hỗ trợ thông qua một đối số name duy nhất — mang lại cho bạn một con đường trực tiếp từ checkpoint .pt đã huấn luyện đến suy luận FP16 tăng tốc trên Bộ xử lý AI Ascend.
Để biết thêm chi tiết về cách sử dụng, hãy truy cập tài liệu chính thức về CANN.
Ngoài ra, nếu bạn 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 rất nhiều tài nguyên hữu ích.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionLàm cách nào để xuất mô hình Ultralytics YOLO của tôi sang định dạng Ascend?#
Cài đặt Ultralytics và bộ công cụ CANN, chạy nguồn môi trường CANN để atc nằm trong PATH, sau đó xuất 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 của bạn.
Link to this sectionTôi có cần phần cứng Ascend để xuất mô hình không?#
Không. Trình biên dịch ATC chạy hoàn toàn trên máy chủ, do đó việc biên dịch hoạt động trên máy tính Linux x86-64 hoặc ARM64 tiêu chuẩn mà không cần gắn NPU. Bạn chỉ cần phần cứng Ascend để chạy suy luận trên tệp .om đã xuất.
Link to this sectionTại sao quá trình xuất của tôi thất bại với lỗi "No supported Ops kernel and engine are found"?#
Bản cài đặt CANN của bạn không chứa các nhân toán tử cho SoC mà bạn yêu cầu. Mỗi bộ công cụ tích hợp các nhân cho các dòng SoC cụ thể, vì vậy hãy cài đặt gói Ascend-cann-kernels-<soc> khớp với mục tiêu của bạn, hoặc sử dụng ảnh container được xây dựng cho dòng thiết bị đó.
Link to this sectionTại sao việc xuất sang Ascend chỉ hỗ trợ FP16?#
Các phép chập của Ascend AI Core chỉ chấp nhận các tensor DT_FLOAT16 và DT_INT8. Một mô hình ngoại tuyến FP32 sẽ không thể thực thi trên phần cứng, vì vậy trình xuất biên dịch với --precision_mode=force_fp16 và từ chối yêu cầu quantize=32 rõ ràng.
Link to this sectionNhững thiết bị Ascend nào được hỗ trợ?#
Bất kỳ SoC nào mà bộ công cụ CANN đã cài đặt của bạn cung cấp nhân, được chọn thông qua đối số name. Xem Thiết bị được hỗ trợ để biết bốn mục tiêu đã được xác thực và tính sẵn có của chúng trên Ultralytics Platform.