Xuất mô hình TFLite để triển khai (Đã ngừng hỗ trợ)#
Kể từ Ultralytics 8.4.83, định dạng xuất độc lập tflite đã bị xóa và thay thế bằng định dạng Google LiteRT thống nhất. LiteRT (Lite Runtime) là thế hệ tiếp theo và là tên gọi mới của TensorFlow Lite, xuất ra cùng một model .tflite — nay bao gồm việc triển khai trên thiết bị di động, nhúng, biên và trình duyệt trong một định dạng duy nhất.
format="tflite" vẫn hoạt động nhưng sẽ phát cảnh báo ngừng hỗ trợ và thay vào đó xuất ra một model LiteRT. Hãy sử dụng format="litert" kể từ bây giờ; để biết các tùy chọn và hướng dẫn xuất hiện tại, hãy xem hướng dẫn xuất LiteRT.
Việc triển khai các model computer vision trên 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.
Định dạng xuất TensorFlow Lite hoặc TFLite trước đây đã tối ưu hóa các model Ultralytics YOLO26 cho các tác vụ như object detection và image classification trong các ứng dụng biên. Hướng dẫn này bảo lưu ngữ cảnh triển khai TFLite cũ; hãy sử dụng LiteRT cho các bản xuất mới.
Tại sao TFLite lại được sử dụng để xuất mô hình?#
Được Google giới thiệu vào tháng 5 năm 2017 như một phần của framework TensorFlow, TensorFlow Lite, hay gọi tắt là TFLite, là một framework deep learning mã nguồn mở được thiết kế cho việc suy luận trên thiết bị, còn được gọi là edge computing. Nó cung cấp cho các nhà phát triển các công cụ để thực thi các model đã được huấn luyện trên thiết bị di động, thiết bị nhúng và IoT, cũng như máy tính truyền thống.
TensorFlow Lite hỗ trợ nhiều nền tảng, bao gồm Linux nhúng, Android, iOS và vi điều khiển (MCU). Các bản xuất TFLite cho phép các ứng dụng chạy mô hình cục bộ và ngoại tuyến.
Các Tính năng Chính của Model TFLite#
Model TFLite cung cấp một loạt các tính năng chính cho phép machine learning trên thiết bị bằng cách hỗ trợ nhà phát triển chạy model trên thiết bị di động, thiết bị nhúng và thiết bị biên:
-
Tối ưu hóa trên thiết bị (On-device Optimization): 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 model để tiết kiệm không gian.
-
Hỗ trợ Đa nền tảng: TFLite cung cấp khả năng tương thích nền tảng sâu rộng, hỗ trợ Android, iOS, Linux nhúng và vi điều khiển.
-
Hỗ trợ Ngôn ngữ Đa dạng: TFLite tương thích với nhiều ngôn ngữ lập trình, bao gồm Java, Swift, Objective-C, C++ và Python.
-
Hiệu năng Cao: Đạt được hiệu năng vượt trội thông qua tăng tốc phần cứng và tối ưu hóa model.
Hiệu suất đo lường (lịch sử)#
Các kết quả này được ghi lại bằng plugin Ultralytics Flutter 0.6.8 và LiteRT 2.1.5 trên Android 16/API 36
trên Xiaomi 17 với bộ nhớ 12 GB LPDDR5X. Chip Snapdragon 8 Elite Gen 5
(SM8850) 3 nm của nó
có CPU Qualcomm Oryon 8 nhân (2 nhân Prime lên đến 4.6 GHz và 6 nhân Performance lên đến 3.62 GHz),
Adreno GPU và Hexagon NPU. Các bảng này so sánh các tài nguyên TFLite INT8 onnx2tf cũ với các bản xuất
litert-torch ứng viên được đánh giá trong quá trình di chuyển. Các tài nguyên phát hành sau đó đã được ghi đè bằng
các bản xuất tiêu chuẩn, do đó các con số này không mô tả các byte tài nguyên v0.6.6 hiện tại. Xem
bảng hiệu suất LiteRT để biết các phép đo hiện tại.
Cả hai định dạng đều chạy trong cùng một lượt quét GPU liên tiếp ở các kích thước đầu vào được hiển thị. Mỗi ô là tổng thời gian
(tiền xử lý + suy luận + hậu xử lý), với phần chia nhỏ theo từng giai đoạn bên dưới; các nhật ký gốc xác nhận rằng cả hai
định dạng đều ủy quyền toàn bộ đồ thị cho LiteRT OpenCL (LITERT_CL) trên Adreno GPU.
| Mô hình | Tác vụ | kích thước (pixel) | Cũ onnx2tf INT8 TFLite (ms) | Ứng viên w8a32 LiteRT (ms) |
|---|---|---|---|---|
| YOLO26n | Detect | 640 | 14.0 1.8 / 8.1 / 4.2 | 13.5 1.9 / 8.1 / 3.5 |
| YOLO26n-seg | Segment | 640 | 30.1 1.9 / 20.3 / 8.0 | 28.6 1.8 / 20.1 / 6.7 |
| YOLO26n-sem | Ngữ nghĩa | 640 | 26.4 1.9 / 16.4 / 8.1 | 32.9 1.8 / 23.0 / 8.2 |
| YOLO26n-cls | Classify | 224 | 3.5 0.9 / 2.2 / 0.4 | 3.2 1.0 / 2.2 / 0.1 |
| YOLO26n-pose | Pose | 640 | 17.4 2.4 / 9.9 / 5.1 | 14.0 1.9 / 9.3 / 2.8 |
| YOLO26n-obb | OBB | 640 | 13.9 3.0 / 8.3 / 2.7 | 13.0 2.9 / 7.9 / 2.3 |
Lần chạy di chuyển tương tự cũng so sánh các định dạng lượng tử hóa phát hiện YOLO26n. Suy luận là số liệu có thể so sánh và phụ thuộc vào định dạng:
| Định dạng Android | Suy luận GPU (ms) | Biên dịch GPU |
|---|---|---|
| onnx2tf INT8 (TFLite legacy) | 8.6 | có |
| LiteRT w8a32 (ứng viên) | 8.4 | có |
LiteRT INT8 (quantize=8) | 11.0 | có |
| LiteRT FP32 | 8.8 | có |
LiteRT w8a16 (quantize="w8a16") | Dự phòng CPU | không |
Trong lần chạy này, w8a16 đã quay lại sử dụng CPU với tổng thời gian khoảng 660 ms so với khoảng 17 ms đối với các định dạng GPU.
Những kết quả này đã thúc đẩy việc phát hành w8a32, nhưng khả năng tương thích của bộ ủy quyền (delegate) và hiệu suất phụ thuộc vào thiết bị và phiên bản runtime.
Hãy kiểm tra benchmark thiết bị mục tiêu và xác nhận vị trí đặt bộ tăng tốc trong nhật ký runtime của thiết bị đó.
Các Tùy chọn Triển khai trong TFLite#
Trước khi xem xét ví dụ về bản xuất thay thế bằng LiteRT, hãy cùng tìm hiểu cách các mô hình TFLite 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 model machine learning, bao gồm:
- Triển khai với Android và iOS: Cả ứng dụng Android và iOS sử dụng TFLite đều có thể phân tích các nguồn cấp dữ liệu camera và cảm biến ở biên để phát hiện và nhận dạng đối tượng. TFLite cũng cung cấp các thư viện iOS gốc được viết bằng Swift và Objective-C. Sơ đồ kiến trúc bên dưới hiển thị quy trình triển khai một model đã được huấn luyện lên các nền tảng Android và iOS bằng cách sử dụng TensorFlow Lite.
-
Thực hiện với Embedded Linux: Nếu việc chạy suy luận trên Raspberry Pi bằng Ultralytics Guide không đáp ứng cá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 model TFLite đã xuất để tăng tốc thời gian suy luận. Ngoài ra, bạn có thể cải thiện hiệu suất hơn nữa bằng cách tận dụng Coral Edge TPU device.
-
Triển khai với Vi điều khiển: Model TFLite cũng có thể được triển khai trên các vi điều khiển và các thiết bị khác chỉ có vài kilobyte bộ nhớ. Runtime cốt lõi chỉ vừa với 16 KB trên Arm Cortex M3 và có thể chạy nhiều model cơ bản. Nó không yêu cầu hỗ trợ hệ điều hành, bất kỳ thư viện chuẩn C hoặc C++ nào, hay cấp phát bộ nhớ động.
Thay thế bản xuất TFLite bằng LiteRT#
Đối với các bản xuất mới, hãy chuyển đổi model của bạn sang LiteRT. Model kết quả sẽ giữ phần mở rộng tệp .tflite.
Cài đặt#
Để cài đặt các gói cần thiết, hãy chạy:
# Install the required package for YOLO26
pip install ultralyticsĐể biết hướng dẫn chi tiết và các thực tiễn tốt nhất liên quan đến quá trình cài đặt, hãy xem Hướng dẫn Cài đặt Ultralytics 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#
Tất cả các Ultralytics YOLO26 models đều được thiết kế để hỗ trợ xuất ngay khi sử dụng, giúp bạn dễ dàng tích hợp chúng vào quy trình làm việc triển khai ưa thích của mình. Bạn có thể view the full list of supported export formats and configuration options để chọn thiết lập tốt nhất cho ứng dụng của mình.
Định dạng LiteRT thay thế hỗ trợ các chế độ Export, Predict và Validate. Hãy xuất model của bạn, sau đó tải model .tflite đã xuất để chạy suy luận hoặc xác thực độ chính xác của model.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to LiteRT format
model.export(format="litert", imgsz=640) # use imgsz=224 for classificationfrom ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n.tflite")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n.tflite")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Đối số xuất#
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
format | str | 'litert' | Định dạng đích cho model đượ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. |
imgsz | int hoặc tuple | 640 | Kích thước ảnh mong muốn cho đầu vào của mô hình. Có thể là một số nguyên cho ảnh vuông hoặc một tuple (height, width) cho các kích thước cụ thể. |
quantize | int hoặc str | None | Độ chính xác lượng tử hóa: 8 (INT8 tĩnh, trọng số int8 + kích hoạt int8; cần hiệu chuẩn data/fraction), 'w8a16' (tĩnh, trọng số int8 + kích hoạt int16; cần hiệu chuẩn data/fraction), 'w8a32' (INT8 động, trọng số int8 + kích hoạt FP32; không cần hiệu chuẩn), hoặc 32/không đặt (FP32). FP16 không được xuất riêng biệt — model FP32 chạy ở FP16 tự động trên các delegate GPU. Thay thế các cờ half/int8 đã bị ngừng hỗ trợ. |
batch | int | 1 | Chỉ định kích thước suy luận hàng loạt của mô hình xuất hoặc số lượng ảnh tối đa mà mô hình xuất sẽ xử lý đồng thời ở chế độ predict. |
data | str | None | Đường dẫn đến YAML dataset, rất cần thiết cho việc lượng tử hóa; phân loại (classification) thay vào đó sẽ nhận một thư mục dataset hoặc tên dataset tích hợp sẵn. Nếu bỏ qua với quantize=8 hoặc 'w8a16', Ultralytics sẽ chọn dataset hiệu chuẩn mặc định cho tác vụ mô hình. |
fraction | float, int, hoặc list | 1.0 | Tập hợp con hiệu chuẩn dưới dạng tỷ lệ, số lượng ảnh hoặc [train, val] tỷ lệ/số lượng; một danh sách giới hạn train hoặc val, trong khi test vẫn giữ nguyên toàn bộ. |
device | str | None | Chỉ định thiết bị để xuất: CPU (device=cpu), MPS cho Apple silicon (device=mps). |
Để biết thêm chi tiết về quá trình xuất, hãy truy cập trang tài liệu của Ultralytics về việc xuất model.
Triển khai các Model YOLO26 TFLite đã Xuất#
Sau khi xuất model Ultralytics YOLO26 của bạn sang định dạng LiteRT, bạn có thể triển khai model .tflite kết quả. Bước đầu tiên chính và được khuyến nghị để chạy model TFLite là sử dụng phương thức YOLO("model.tflite"), như được phác thảo trong đoạn mã sử dụng trước đó. Tuy nhiên, để có hướng dẫn chi tiết về việc triển khai các model TFLite của bạn trong nhiều cài đặt khác nhau, hãy xem các tài nguyên sau:
-
Android: Hướng dẫn bắt đầu 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 model machine learning.
-
iOS: Hãy xem hướng dẫn chi tiết này dành cho các nhà phát triển về cách tích hợp và triển khai các model TensorFlow Lite trong các ứng dụng iOS, cung cấp các hướng dẫn từng bước và tài nguyên.
-
End-To-End Examples: 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 machine learning của họ trên thiết bị di động và thiết bị biên.
Tóm tắt#
Hướng dẫn này bảo lưu quy trình triển khai TFLite cũ. Đối với các bản xuất mới, hãy sử dụng LiteRT để tạo các model .tflite cho các môi trường edge computing.
Để biết thêm chi tiết về cách sử dụng, hãy truy cập TFLite official documentation.
Ngoài ra, nếu bạn tò mò về các tích hợp Ultralytics YOLO26 khác, hãy xem integration guide page của chúng tôi. Bạn sẽ tìm thấy rất nhiều thông tin và hiểu biết hữu ích ở đó.
Câu hỏi thường gặp#
Đối với bản xuất mới, hãy sử dụng định dạng LiteRT. Đầu tiên, cài đặt gói cần thiết bằng cách sử dụng:
pip install ultralyticsSau đó, sử dụng đoạn mã sau để xuất model của bạn:
from ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export the model to LiteRT format model.export(format="litert", imgsz=640) # use imgsz=224 for classificationĐối với người dùng CLI, bạn có thể thực hiện việc này với:
yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classificationĐể biết thêm chi tiết, hãy truy cập Ultralytics export guide.
TensorFlow Lite (TFLite) là một framework deep learning mã nguồn mở được thiết kế để suy luận trên thiết bị, lý tưởng để triển khai các model YOLO26 trên thiết bị di động, thiết bị nhúng và thiết bị 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ộ.
- Tương thích nền tảng: Hỗ trợ Android, iOS, Linux nhúng và MCU.
- Hiệu năng: Tận dụng tăng tốc phần cứng để tối ưu hóa tốc độ và hiệu quả của model.
Để tìm hiểu thêm, hãy xem TFLite guide.
Có, bạn có thể chạy các mô hình YOLO26 TFLite 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 định dạng LiteRT 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.
Để có thêm các tối ưu hó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 Raspberry Pi deployment guide và Edge TPU integration guide của chúng tôi.
Có, TFLite hỗ trợ triển khai trên các vi điều khiển có tài nguyên hạn chế. Runtime cốt lõi của TFLite chỉ yêu cầu 16 KB bộ nhớ trên Arm Cortex M3 và có thể chạy các model YOLO26 cơ bản. Điều này làm cho nó phù hợp để triển khai trên các thiết bị có sức mạnh tính toán và bộ nhớ tối thiểu.
Để bắt đầu, hãy truy cập TFLite Micro for Microcontrollers guide.
TensorFlow Lite cung cấp khả năng tương thích nền tảng sâu rộng, cho phép bạn triển khai các model YOLO26 trên nhiều 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.
- Linux nhúng: Lý tưởng cho các máy tính bo mạch đơn như Raspberry Pi.
- Vi điều khiển: Phù hợp cho các MCU với tài nguyên bị hạn chế.
Để biết thêm thông tin về các tùy chọn triển khai, hãy xem deployment guide chi tiết của chúng tôi.
Nếu bạn gặp lỗi khi xuất mô hình YOLO26 sang LiteRT, 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,
litert-torchvàai-edge-litert. Tham khảo installation guide của chúng tôi. - Hỗ trợ model: Xác minh rằng model YOLO26 cụ thể hỗ trợ xuất LiteRT bằng cách kiểm tra export documentation page của Ultralytics.
- Quantization issues: Khi sử dụng lượng tử hóa INT8, hãy đảm bảo đường dẫn dataset của bạn được chỉ định chính xác trong tham số
data.
Để biết thêm các mẹo khắc phục sự cố, hãy truy cập Common Issues guide của chúng tôi.
- 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,