Chuyển đến nội dung

Hướng dẫn về YOLO11 Xuất mô hình sang TFLite để triển khai

TFLite Biểu trưng

Việc triển khai các mô hình computer vision trên các thiết bị biên hoặc thiết bị nhúng đòi hỏi một định dạng có thể đảm bảo hiệu suất liền mạch.

Các TensorFlow Lite hoặc TFLite Định dạng xuất cho phép bạn tối ưu hóa các mô hình Ultralytics YOLO11 của mình cho các tác vụ như phát hiện đối tượngphân loại hình ảnh trong các ứng dụng dựa trên thiết bị biên. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn các bước để chuyển đổi mô hình của bạn sang TFLite định dạng, giúp các mô hình của bạn hoạt động tốt hơn trên nhiều thiết bị biên khác nhau.

Tại sao bạn nên xuất khẩu sang TFLite ?

Được giới thiệu bởi Google vào tháng 5 năm 2017 như một phần của TensorFlow khung, TensorFlow Lite hoặc TFLite Nói tóm lại, đây là một nền tảng học sâu mã nguồn mở được thiết kế cho suy luận trên thiết bị, còn được gọi là điện toán biên . Nó cung cấp cho các nhà phát triển các công cụ cần thiết để thực thi các mô hình đã được đào tạo của họ trên các thiết bị di động, nhúng và IoT, cũng như trên máy tính truyền thống.

TensorFlow Lite tương thích với nhiều nền tảng khác nhau, bao gồm cả Linux nhúng, Android , iOS và vi điều khiển (MCU). Xuất mô hình của bạn sang TFLite giúp ứng dụng của bạn nhanh hơn, đáng tin cậy hơn và có khả năng chạy ngoại tuyến.

Các tính năng chính của TFLite Các mô hình

TFLite các mô hình cung cấp nhiều tính năng chính cho phép học máy trên thiết bị bằng cách giúp các nhà phát triển chạy mô hình của họ trên thiết bị di động, nhúng và biên:

  • Tối ưu hóa trên thiết bị : TFLite tối ưu hóa cho ML trên thiết bị, giảm độ trễ bằng cách xử lý dữ liệu cục bộ, tăng cường quyền riêng tư bằng cách không truyền dữ liệu cá nhân và giảm thiểu kích thước mô hình để tiết kiệm không gian.

  • Hỗ trợ nhiều nền tảng : TFLite cung cấp khả năng tương thích nền tảng rộng rãi, hỗ trợ Android , iOS , Linux nhúng và vi điều khiển.

  • Hỗ trợ nhiều ngôn ngữ : TFLite tương thích với nhiều ngôn ngữ lập trình khác nhau, bao gồm Java, Swift, Objective-C, C++ và Python .

  • Hiệu suất cao: Đạt được hiệu suất vượt trội thông qua tăng tốc phần cứng và tối ưu hóa mô hình.

Tùy chọn triển khai trong TFLite

Trước khi chúng ta xem xét mã để xuất YOLO11 các mô hình cho TFLite định dạng, chúng ta hãy hiểu cách TFLite các mô hình thường được sử dụng.

TFLite cung cấp nhiều tùy chọn triển khai trên thiết bị cho các mô hình học máy, bao gồm:

  • Triển khai với Android và iOS : Cả hai Android Và iOS các ứng dụng với TFLite có thể phân tích nguồn cấp dữ liệu camera và cảm biến dựa trên cạnh để detect và xác định các đối tượng. TFLite cũng cung cấp bản địa iOS thư viện được viết bằng SwiftObjective-C . Sơ đồ kiến trúc bên dưới cho thấy quá trình triển khai một mô hình đã được đào tạo lên Android Và iOS nền tảng sử dụng TensorFlow Nhẹ nhàng.

Kiến trúc

  • Triển khai với Embedded Linux : Nếu chạy suy luận trên Raspberry Pi bằng Hướng dẫn Ultralytics không đáp ứng được yêu cầu về tốc độ cho trường hợp sử dụng của bạn, bạn có thể sử dụng TFLite mô hình để tăng tốc thời gian suy luận. Ngoài ra, có thể cải thiện hiệu suất hơn nữa bằng cách sử dụng thiết bị TPU Coral Edge .

  • Triển khai với vi điều khiển : TFLite Các mô hình cũng có thể được triển khai trên vi điều khiển và các thiết bị khác chỉ với vài kilobyte bộ nhớ. Bộ nhớ lõi chỉ chứa 16 KB trên ARM Cortex M3 và có thể chạy nhiều mô hình cơ bản. Nó không yêu cầu hỗ trợ hệ điều hành, bất kỳ thư viện C hoặc C++ chuẩn nào, hay phân bổ bộ nhớ động.

Xuất sang TFLite : Chuyển đổi của bạn YOLO11 Người mẫu

Bạn có thể cải thiện hiệu quả thực thi mô hình trên thiết bị và tối ưu hóa hiệu suất bằng cách chuyển đổi mô hình của bạn thành TFLite định dạng.

Cài đặt

Để cài đặt các gói cần thiết, hãy chạy:

Cài đặt

# Install the required package for YOLO11
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 quy trình cài đặt, hãy xem hướng dẫn Cài đặt Ultralytics của chúng tôi. Trong khi cài đặt các gói cần thiết cho YOLO11, 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 để biết các giải pháp và mẹo.

Cách sử dụng

Tất cả các mô hình Ultralytics YOLO11 đều được thiết kế để hỗ trợ xuất ngay lập tức, giúp bạn dễ dàng tích hợp chúng vào quy trình triển khai ưa thích của mình. Bạn có thể xem danh sách đầy đủ các định dạng xuất và tùy chọn cấu hình được hỗ trợ để chọn thiết lập tốt nhất cho ứng dụng của mình.

Cách sử dụng

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolo11n_float32.tflite'

# Load the exported TFLite model
tflite_model = YOLO("yolo11n_float32.tflite")

# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TFLite format
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'

# Run inference with the exported model
yolo predict model='yolo11n_float32.tflite' source='https://ultralytics.com/images/bus.jpg'

Các đối số xuất

Đối sốLoạiMặc địnhMô tả
formatstr'tflite'Dạng mục tiêu cho mô hình được xuất, xác định khả năng tương thích với các môi trường triển khai khác nhau.
imgszint hoặc tuple640Kích thước hình ảnh mong muốn cho đầu vào của mô hình. Có thể là một số nguyên cho hình ảnh vuông hoặc một bộ giá trị (height, width) cho các kích thước cụ thể.
halfboolFalseCho phép lượng tử hóa FP16 (nửa độ chính xác), giảm kích thước mô hình và có khả năng tăng tốc độ suy luận trên phần cứng được hỗ trợ.
int8boolFalseKích hoạt lượng tử hóa INT8, nén thêm mô hình và tăng tốc độ suy luận với mức giảm độ chính xác tối thiểu, chủ yếu dành cho các thiết bị biên.
nmsboolFalseThêm sự ức chế không tối đa ( NMS ), cần thiết cho quá trình xử lý phát hiện sau đó chính xác và hiệu quả.
batchint1Chỉ định kích thước suy luận theo lô của mô hình xuất hoặc số lượng hình ảnh tối đa mà mô hình đã xuất sẽ xử lý đồng thời ở chế độ predict chế độ.
datastr'coco8.yaml'Đường dẫn đến tập dữ liệu tệp cấu hình (mặc định: coco8.yaml), cần thiết cho lượng tử hóa.
fractionfloat1.0Chỉ định tỷ lệ phần trăm của tập dữ liệu được sử dụng để hiệu chỉnh lượng tử hóa INT8. Cho phép hiệu chỉnh trên một tập hợp con của toàn bộ tập dữ liệu, hữu ích cho các thử nghiệm hoặc khi tài nguyên bị hạn chế. Nếu không được chỉ định khi bật INT8, toàn bộ tập dữ liệu sẽ được sử dụng.
devicestrNoneChỉ định thiết bị để xuất: CPU (device=cpu), MPS cho Apple silicon (device=mps).

Để biết thêm chi tiết về quy trình xuất, hãy truy cập trang tài liệu Ultralytics về xuất.

Triển khai đã xuất YOLO11 TFLite Các mô hình

Sau khi xuất thành công Ultralytics YOLO11 các mô hình để TFLite định dạng, bây giờ bạn có thể triển khai chúng. Bước đầu tiên chính và được khuyến nghị để chạy TFLite mô hình là sử dụng YOLO("model.tflite") phương pháp, như đã nêu trong đoạn mã sử dụng trước đó. Tuy nhiên, để biết hướng dẫn chi tiết về cách triển khai TFLite các mô hình trong nhiều bối cảnh khác nhau, hãy xem các tài nguyên sau:

  • Android: Hướng dẫn khởi động nhanh để tích hợp TensorFlow Lite vào các ứng dụng Android, cung cấp các bước dễ thực hiện để thiết lập và chạy các mô hình máy học.

  • iOS: Hãy xem hướng dẫn chi tiết này dành cho nhà phát triển về tích hợp và triển khai các mô hình TensorFlow Lite trong các ứng dụng iOS, cung cấp hướng dẫn và tài nguyên từng bước.

  • Ví dụ Toàn diện: Trang này cung cấp tổng quan về các ví dụ TensorFlow Lite khác nhau, giới thiệu các ứng dụng thực tế và hướng dẫn được thiết kế để giúp các nhà phát triển triển khai TensorFlow Lite trong các dự án máy học của họ trên thiết bị di động và thiết bị biên.

Tóm tắt

Trong hướng dẫn này, chúng tôi tập trung vào cách xuất sang TFLite định dạng. Bằng cách chuyển đổi Ultralytics YOLO11 các mô hình để TFLite định dạng mô hình, bạn có thể cải thiện hiệu quả và tốc độ của YOLO11 các mô hình, giúp chúng hiệu quả hơn và phù hợp hơn với môi trường điện toán biên.

Để 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 TFLite .

Ngoài ra, nếu bạn tò mò về các tích hợp Ultralytics YOLO11 khác, hãy nhớ xem trang hướng dẫn tích hợp của chúng tôi. Bạn sẽ tìm thấy vô số thông tin và hiểu biết hữu ích đang chờ bạn ở đó.

Câu hỏi thường gặp

Làm thế nào để tôi xuất khẩu một YOLO11 mô hình để TFLite định dạng?

Để xuất khẩu một YOLO11 mô hình để TFLite định dạng, bạn có thể sử dụng Ultralytics thư viện. Đầu tiên, cài đặt gói cần thiết bằng cách sử dụng:

pip install ultralytics

Sau đó, sử dụng đoạn mã sau để xuất mô hình của bạn:

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolo11n_float32.tflite'

Đối với người dùng CLI, bạn có thể đạt được điều này bằng:

yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'

Để biết thêm chi tiết, hãy truy cập hướng dẫn xuất Ultralytics.

Những lợi ích của việc sử dụng TensorFlow Lite để triển khai mô hình YOLO11 là gì?

TensorFlow Lite ( TFLite ) là một khuôn khổ học sâu nguồn mở được thiết kế để suy luận trên thiết bị, khiến nó trở nên lý tưởng để triển khai YOLO11 các mô hình trên thiết bị di động, nhúng và IoT. Các lợi ích chính bao gồm:

  • Tối ưu hóa trên thiết bị: Giảm thiểu độ trễ và tăng cường quyền riêng tư bằng cách xử lý dữ liệu cục bộ.
  • Khả năng tương thích nền tảng: Hỗ trợ Android, iOS, embedded Linux và MCU.
  • Hiệu suất: Sử dụng khả năng tăng tốc phần cứng để tối ưu hóa tốc độ và hiệu quả của mô hình.

Để tìm hiểu thêm, hãy xem hướng dẫn TFLite .

Có thể chạy được không? YOLO11 TFLite mô hình trên Raspberry Pi?

Vâng, bạn có thể chạy YOLO11 TFLite các mô hình trên Raspberry Pi để cải thiện tốc độ suy luận. Đầu tiên, hãy xuất mô hình của bạn sang TFLite định dạng như đã giải thích ở trên. Sau đó, sử dụng một công cụ như TensorFlow Lite Interpreter để thực thi mô hình trên Raspberry Pi của bạn.

Để tối ưu hóa hơn nữa, bạn có thể cân nhắc sử dụng Coral Edge TPU. Để biết các bước chi tiết, hãy tham khảo hướng dẫn triển khai Raspberry Pihướng dẫn tích hợp Edge TPU của chúng tôi.

Tôi có thể sử dụng TFLite các mô hình trên vi điều khiển cho YOLO11 dự đoán?

Đúng, TFLite hỗ trợ triển khai trên các bộ vi điều khiển có nguồn lực hạn chế. TFLite Thời gian chạy lõi của chỉ cần 16 KB bộ nhớ trên Arm Cortex M3 và có thể chạy cơ bản YOLO11 mô hình. Điều này làm cho nó phù hợp để triển khai trên các thiết bị có công suất tính toán và bộ nhớ tối thiểu.

Để bắt đầu, hãy truy cập hướng dẫn TFLite Micro dành cho Vi điều khiển .

Những nền tảng nào tương thích với TFLite xuất khẩu YOLO11 mô hình?

TensorFlow Lite cung cấp khả năng tương thích nền tảng mở rộng, cho phép bạn triển khai các mô hình YOLO11 trên nhiều loại thiết bị, bao gồm:

  • Android và iOS: Hỗ trợ gốc thông qua các thư viện TFLite Android và iOS.
  • Embedded Linux: Lý tưởng cho các máy tính đơn bảng như Raspberry Pi.
  • Vi điều khiển: Phù hợp cho các MCU có tài nguyên hạn chế.

Để biết thêm thông tin về các tùy chọn triển khai, hãy xem hướng dẫn triển khai chi tiết của chúng tôi.

Làm thế nào để tôi khắc phục sự cố thường gặp trong YOLO11 xuất mô hình sang TFLite ?

Nếu bạn gặp lỗi khi xuất YOLO11 các mô hình để TFLite các giải pháp phổ biến bao gồm:

  • Kiểm tra tính tương thích của gói: Đảm bảo bạn đang sử dụng các phiên bản tương thích của Ultralytics và TensorFlow. Tham khảo hướng dẫn cài đặt của chúng tôi.
  • Hỗ trợ mô hình : Xác minh rằng cụ thể YOLO11 mô hình hỗ trợ TFLite xuất khẩu bằng cách kiểm tra Ultralytics trang tài liệu xuất khẩu .
  • Các vấn đề về lượng tử hóa: Khi sử dụng lượng tử hóa INT8, hãy đảm bảo đường dẫn bộ dữ liệu của bạn được chỉ định chính xác trong data tham số.

Để biết thêm các mẹo khắc phục sự cố, hãy truy cập hướng dẫn Các vấn đề thường gặp của chúng tôi.



📅 Đã tạo 1 năm trước ✏️ Cập nhật 25 ngày trước
glenn-jocherlakshanthadambitious-octopusUltralyticsAssistantMatthewNoyceRizwanMunawarabirami-vina

Bình luận