Chuyển đến nội dung

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?

PyTorch Khung suy luận di động 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ạiMặc địnhMô tả
imgszint hoặc list640Kích thước hình ảnh cho đầu vào mô hình (chiều cao, chiều rộng)
devicestr'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:

  1. Thêm ExecuTorch Runtime: Bao gồm thư viện ExecuTorch runtime trong dự án di động của bạn
  2. Mô hình tải: Tải .pte nộp hồ sơ vào đơn đăng ký của bạn
  3. 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=320 hoặc imgsz=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ạngTrạng tháiKích thước (MB)chỉ số/mAP50-95(B)Thời gian suy luận (ms/ảnh)
YOLO11nPyTorch5.40.5060337.67
YOLO11nExecuTorch110.5080167.28
YOLO11sPyTorch190.5770928.80
YOLO11sExecuTorch370.5780388.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
  • executorch gói (cài đặt qua pip 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ợ.



📅 Được tạo 3 tháng trước ✏️ Cập nhật 2 ngày trước
glenn-jocherLaughing-qlakshanthadambitious-octopus

Bình luận