Triển khai YOLO26 trên Thiết bị di động & Biên với ExecuTorch
Việc triển khai các mô hình thị giác máy tính trên các thiết bị biên như điện thoại thông minh, máy tính bảng và hệ thống nhúng đòi hỏi thời gian chạy được tối ưu hóa để cân bằng hiệu suất với các hạn chế về tài nguyên. ExecuTorch, PyTorch Giải pháp của Ultralytics dành cho điện toán biên, cho phép suy luận hiệu quả trên thiết bị cho các mô hình YOLO Ultralytics .
Hướng dẫn này phác thảo cách xuất Ultralytics YOLO chuyển đổi mô hình sang định dạng ExecuTorch, cho phép bạn triển khai mô hình trên thiết bị di động và thiết bị biên với hiệu suất được tối ưu hóa.
Tại sao nên xuất sang ExecuTorch?

ExecuTorch là giải pháp end-to-end của PyTorch để kích hoạt các khả năng suy luận trên thiết bị trên các thiết bị di động và biên. Được xây dựng với mục tiêu có tính di động và hiệu quả, ExecuTorch có thể được sử dụng để chạy các chương trình PyTorch trên nhiều nền tảng điện toán khác nhau.
Các tính năng chính của ExecuTorch
ExecuTorch cung cấp một số tính năng mạnh mẽ để triển khai Ultralytics YOLO các mô hình trên thiết bị biên:
Định dạng mô hình di động: ExecuTorch sử dụng
.pte( PyTorch Định dạng ExecuTorch được tối ưu hóa về kích thước và tốc độ tải trên các thiết bị có tài nguyên hạn chế.XNNPACK Backend : Tích hợp mặc định với XNNPACK cung cấp khả năng suy luận được tối ưu hóa cao trên CPU di động, mang lại hiệu suất tuyệt vời mà không cần phần cứng chuyên dụng.
Hỗ trợ lượng tử hóa : Hỗ trợ tích hợp cho các kỹ thuật lượng tử hóa để giảm kích thước mô hình và cải thiện tốc độ suy luận trong khi vẫn duy trì độ chính xác.
Hiệu quả bộ nhớ : Quản lý bộ nhớ được tối ưu hóa giúp giảm dung lượng bộ nhớ thời gian chạy, phù hợp với các thiết bị có RAM hạn chế.
Siêu dữ liệu mô hình : Các mô hình được xuất bao gồm siêu dữ liệu (kích thước hình ảnh, tên lớp, v.v.) trong một tệp YAML riêng để dễ dàng tích hợp.
Tùy chọn triển khai với ExecuTorch
Các mô hình ExecuTorch có thể được triển khai trên nhiều nền tảng di động và biên khác nhau:
Ứng dụng di động : Triển khai trên iOS Và Android các ứng dụng có hiệu suất gốc, cho phép phát hiện đối tượng theo thời gian thực trong ứng dụng di động.
Hệ thống nhúng : Chạy trên các thiết bị Linux nhúng như Raspberry Pi, NVIDIA Jetson và các hệ thống dựa trên ARM khác có hiệu suất được tối ưu hóa.
Thiết bị AI biên : Triển khai trên phần cứng AI biên chuyên dụng với các đại biểu tùy chỉnh để suy luận nhanh hơn.
Thiết bị IoT : Tích hợp vào các thiết bị IoT để suy luận trên thiết bị mà không cần kết nối đám mây.
Xuất các mô hình Ultralytics YOLO26 sang ExecuTorch
Chuyển đổi các mô hình Ultralytics YOLO26 sang định dạng ExecuTorch cho phép triển khai hiệu quả trên các thiết bị di động và biên.
Cài đặt
Xuất ExecuTorch yêu cầu Python 3.10 trở lên và các phụ thuộc cụ thể:
Cài đặt
# Install Ultralytics package
pip install ultralytics
Để biết hướng dẫn chi tiết và các phương pháp hay nhất liên quan đến quá trình cài đặt, hãy xem hướng dẫn cài đặt YOLO26 của chúng tôi. Trong quá trình cài đặt các gói cần thiết cho YOLO26, nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo hướng dẫn các vấn đề thường gặp của chúng tôi để tìm giải pháp và mẹo.
Cách sử dụng
Việc xuất các mô hình YOLO26 sang ExecuTorch rất đơn giản:
Cách sử dụng
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to ExecuTorch format
model.export(format="executorch") # creates 'yolo26n_executorch_model' directory
executorch_model = YOLO("yolo26n_executorch_model")
results = executorch_model.predict("https://ultralytics.com/images/bus.jpg")
# Export a YOLO26n PyTorch model to ExecuTorch format
yolo export model=yolo26n.pt format=executorch # creates 'yolo26n_executorch_model' directory
# Run inference with the exported model
yolo predict model=yolo26n_executorch_model source=https://ultralytics.com/images/bus.jpg
Xuất ExecuTorch tạo ra một thư mục bao gồm một .pte tệp và siêu dữ liệu. Sử dụng thời gian chạy ExecuTorch trong ứng dụng di động hoặc nhúng của bạn để tải .pte mô hình và thực hiện suy luận.
Các đối số xuất
Khi xuất sang định dạng ExecuTorch, bạn có thể chỉ định các đối số sau:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
imgsz | int hoặc list | 640 | Kích thước hình ảnh cho đầu vào mô hình (chiều cao, chiều rộng) |
device | str | 'cpu' | Thiết bị sử dụng để xuất khẩu ('cpu') |
Cấu trúc đầu ra
Xuất ExecuTorch tạo một thư mục chứa mô hình và siêu dữ liệu:
yolo26n_executorch_model/
├── yolo26n.pte # ExecuTorch model file
└── metadata.yaml # Model metadata (classes, image size, etc.)
Sử dụng các mô hình ExecuTorch đã xuất
Sau khi xuất mô hình, bạn sẽ cần tích hợp nó vào ứng dụng mục tiêu bằng cách sử dụng thời gian chạy ExecuTorch.
Tích hợp di động
Đối với ứng dụng di động ( iOS / Android ), bạn sẽ cần phải:
- Thêm ExecuTorch Runtime: Bao gồm thư viện ExecuTorch runtime trong dự án di động của bạn
- Mô hình tải: Tải
.ptenộp hồ sơ vào đơn đăng ký của bạn - Chạy suy luận : Xử lý hình ảnh và đưa ra dự đoán
Ví dụ iOS tích hợp (Objective-C/C++):
// iOS uses C++ APIs for model loading and inference
// See https://pytorch.org/executorch/stable/using-executorch-ios.html for complete examples
#include <executorch/extension/module/module.h>
using namespace ::executorch::extension;
// Load the model
Module module("/path/to/yolo26n.pte");
// Create input tensor
float input[1 * 3 * 640 * 640];
auto tensor = from_blob(input, {1, 3, 640, 640});
// Run inference
const auto result = module.forward(tensor);
Ví dụ Android tích hợp (Kotlin):
import org.pytorch.executorch.EValue
import org.pytorch.executorch.Module
import org.pytorch.executorch.Tensor
// Load the model
val module = Module.load("/path/to/yolo26n.pte")
// Prepare input tensor
val inputTensor = Tensor.fromBlob(floatData, longArrayOf(1, 3, 640, 640))
val inputEValue = EValue.from(inputTensor)
// Run inference
val outputs = module.forward(inputEValue)
val scores = outputs[0].toTensor().dataAsFloatArray
Linux nhúng
Đối với hệ thống Linux nhúng, hãy sử dụng API ExecuTorch C++:
#include <executorch/extension/module/module.h>
// Load model
auto module = torch::executor::Module("yolo26n.pte");
// Prepare input
std::vector<float> input_data = preprocessImage(image);
auto input_tensor = torch::executor::Tensor(input_data, {1, 3, 640, 640});
// Run inference
auto outputs = module.forward({input_tensor});
Để biết thêm chi tiết về cách tích hợp ExecuTorch vào ứng dụng của bạn, hãy truy cập Tài liệu ExecuTorch .
Tối ưu hóa hiệu suất
Tối ưu hóa kích thước mô hình
Để giảm kích thước mô hình khi triển khai:
- Sử dụng các mô hình nhỏ hơn: Bắt đầu với YOLO26n (nano) để có dung lượng nhỏ nhất
- Độ phân giải đầu vào thấp hơn: Sử dụng kích thước ảnh nhỏ hơn (ví dụ:
imgsz=320hoặcimgsz=416) - Lượng tử hóa : Áp dụng các kỹ thuật lượng tử hóa (được hỗ trợ trong các phiên bản ExecuTorch trong tương lai)
Tối ưu hóa tốc độ suy luận
Để suy luận nhanh hơn:
- XNNPACK Backend : Backend XNNPACK mặc định cung cấp khả năng tối ưu hóa CPU suy luận
- Tăng tốc phần cứng : Sử dụng các đại biểu dành riêng cho nền tảng (ví dụ: CoreML vì iOS )
- Xử lý hàng loạt : Xử lý nhiều hình ảnh khi có thể
Điểm chuẩn
Nhóm Ultralytics đã đánh giá hiệu năng các mô hình YOLO26, so sánh tốc độ và độ chính xác giữa PyTorch và ExecuTorch.
Hiệu suất
| Mô hình | Định dạng | Trạng thái | Kích thước (MB) | chỉ số/mAP50-95(B) | Thời gian suy luận (ms/ảnh) |
|---|---|---|---|---|---|
| YOLO11n | PyTorch | ✅ | 5.4 | 0.5060 | 337.67 |
| YOLO11n | ExecuTorch | ✅ | 11 | 0.5080 | 167.28 |
| YOLO11s | PyTorch | ✅ | 19 | 0.5770 | 928.80 |
| YOLO11s | ExecuTorch | ✅ | 37 | 0.5780 | 388.31 |
Lưu ý
Thời gian suy luận không bao gồm tiền/hậu xử lý.
Khắc phục sự cố
Các Vấn Đề Thường Gặp
Vấn đề: Python version error
Giải pháp : ExecuTorch yêu cầu Python 3.10 trở lên. Nâng cấp Python cài đặt:
# Using conda
conda create -n executorch python=3.10
conda activate executorch
Vấn đề: Export fails during first run
Giải pháp : ExecuTorch có thể cần tải xuống và biên dịch các thành phần khi sử dụng lần đầu. Hãy đảm bảo bạn có:
pip install --upgrade executorch
Vấn đề: Import errors for ExecuTorch modules
Giải pháp : Đảm bảo ExecuTorch được cài đặt đúng cách:
pip install executorch --force-reinstall
Để biết thêm trợ giúp khắc phục sự cố, hãy truy cập Sự cố GitHub Ultralytics hoặc Tài liệu ExecuTorch .
Tóm tắt
Việc xuất các mô hình YOLO26 sang định dạng ExecuTorch cho phép triển khai hiệu quả trên các thiết bị di động và biên. Với tích hợp gốc PyTorch, hỗ trợ đa nền tảng và hiệu suất tối ưu, ExecuTorch là một lựa chọn tuyệt vời cho các ứng dụng AI biên.
Những điểm chính cần ghi nhớ:
- ExecuTorch cung cấp PyTorch -triển khai edge gốc với hiệu suất tuyệt vời
- Xuất khẩu thật đơn giản với
format='executorch'tham số - Các mô hình được tối ưu hóa cho CPU di động thông qua phần phụ trợ XNNPACK
- Hỗ trợ iOS , Android và nền tảng Linux nhúng
- Yêu cầu Python Trình biên dịch 3.10+ và FlatBuffers
Câu hỏi thường gặp
Làm cách nào để xuất một mô hình YOLO26 sang định dạng ExecuTorch?
Xuất một mô hình YOLO26 sang ExecuTorch bằng Python hoặc CLI:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="executorch")
hoặc
yolo export model=yolo26n.pt format=executorch
Yêu cầu hệ thống để xuất ExecuTorch là gì?
Xuất ExecuTorch yêu cầu:
- Python 3.10 trở lên
executorchgói (cài đặt quapip install executorch)- PyTorch (được cài đặt tự động với ultralytics )
Lưu ý: Trong lần xuất đầu tiên, ExecuTorch sẽ tự động tải xuống và biên dịch các thành phần cần thiết bao gồm trình biên dịch FlatBuffers.
Tôi có thể chạy suy luận với các mô hình ExecuTorch trực tiếp trong Python ?
Các mô hình ExecuTorch (.pte Các tệp) được thiết kế để triển khai trên thiết bị di động và thiết bị biên bằng cách sử dụng thời gian chạy ExecuTorch. Chúng không thể được tải trực tiếp bằng YOLO() để suy luận trong Python . Bạn cần tích hợp chúng vào ứng dụng mục tiêu của mình bằng cách sử dụng thư viện thời gian chạy ExecuTorch.
ExecuTorch hỗ trợ những nền tảng nào?
ExecuTorch hỗ trợ:
- Di động : iOS Và Android
- Linux nhúng : Raspberry Pi, NVIDIA Jetson và các thiết bị ARM khác
- Máy tính để bàn : Linux, macOS và Windows (dành cho phát triển)
ExecuTorch so sánh với TFLite như thế nào cho việc triển khai trên thiết bị di động?
Cả ExecuTorch và TFLite đều rất xuất sắc cho việc triển khai trên thiết bị di động:
- ExecuTorch : Tốt hơn PyTorch tích hợp, bản địa PyTorch quy trình làm việc, hệ sinh thái đang phát triển
- TFLite: Trưởng thành hơn, hỗ trợ phần cứng rộng hơn, nhiều ví dụ triển khai hơn
Chọn ExecuTorch nếu bạn đã sử dụng PyTorch và muốn một đường dẫn triển khai gốc. Chọn TFLite để có khả năng tương thích tối đa và bộ công cụ trưởng thành.
Tôi có thể sử dụng các mô hình ExecuTorch với GPU gia tốc?
Có! ExecuTorch hỗ trợ tăng tốc phần cứng thông qua nhiều nền tảng khác nhau:
- GPU di động : Thông qua các đại biểu Vulkan, Metal hoặc OpenCL
- NPU/DSP : Thông qua các đại biểu dành riêng cho nền tảng
- Mặc định : XNNPACK để tối ưu hóa CPU suy luận
Tham khảo Tài liệu ExecuTorch để biết cách thiết lập cụ thể cho phần phụ trợ.