Meet YOLO26: next-gen vision AI.

Link to this sectionHướng dẫn xuất mô hình YOLO26 sang TFLite để triển khai#

TensorFlow Lite edge deployment framework

Việc triển khai các mô hình computer vision trên các thiết bị edge hoặc thiết bị nhúng yêu cầu 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 cho phép bạn tối ưu hóa các mô hình Ultralytics YOLO26 cho các tác vụ như object detectionimage classification trong các ứng dụng trên thiết bị edge. Trong hướng dẫn này, chúng ta sẽ thực hiện các bước chuyển đổi mô hình sang định dạng TFLite, giúp mô hình của bạn dễ dàng đạt hiệu suất tốt trên nhiều thiết bị edge khác nhau.

Link to this sectionTại sao bạn nên xuất sang TFLite?#

Đượ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ị (on-device inference), hay còn được gọi là edge computing. Nó cung cấp cho các nhà phát triển những công cụ cần thiết để thực thi các mô hình đã huấn luyện trên các thiết bị di động, thiết bị nhúng, thiết bị IoT, cũng như các máy tính truyền thống.

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

Link to this sectionCác tính năng chính của mô hình TFLite#

Các mô hình 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ợ các nhà phát triển chạy mô hình của họ trên thiết bị di động, thiết bị nhúng và thiết bị edge:

  • 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 mô hình để 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 rộng rãi, hỗ trợ Android, iOS, Linux nhúng và vi điều khiển.

  • Hỗ trợ đa dạng 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.

Link to this sectionCác tùy chọn triển khai trong TFLite#

Trước khi xem code để xuất các mô hình YOLO26 sang định dạng TFLite, 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 các tùy chọn triển khai trên thiết bị đa dạng cho các mô hình machine learning, bao gồm:

  • Triển khai với Android và iOS: Cả ứng dụng Android và iOS với TFLite đều có thể phân tích các luồng camera và cảm biến dựa trên edge để phát hiện và nhận diện đối tượng. TFLite cũng cung cấp các thư viện iOS gốc được viết bằng SwiftObjective-C. Biểu đồ kiến trúc bên dưới mô tả quá trình triển khai một mô hình đã được huấn luyện lên các nền tảng Android và iOS sử dụng TensorFlow Lite.

TensorFlow Lite deployment architecture for mobile

  • Triển khai với Linux nhúng: Nếu việc chạy suy luận trên Raspberry Pi sử dụng Ultralytics Guide không đáp ứng 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 mô hình TFLite đã xuất để 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ị Coral Edge TPU.

  • Triển khai với vi điều khiển: Các mô hình TFLite 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ớ. Runtime cốt lõi chỉ chiếm 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++ tiêu chuẩn nào, hoặc cấp phát bộ nhớ động.

Link to this sectionXuất sang TFLite: Chuyển đổi mô hình YOLO26 của bạn#

Bạn có thể cải thiện hiệu suất 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 các mô hình sang định dạng TFLite.

Link to this sectionCà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 YOLO26
pip install ultralytics

Để có hướng dẫn chi tiết và các phương pháp tốt nhất liên quan đến quy trình cài đặt, hãy kiểm tra 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 để tìm giải pháp và mẹo xử lý.

Link to this sectionCách sử dụng#

Tất cả các model Ultralytics YOLO26 đều được thiết kế để hỗ trợ xuất dữ liệu ngay lập tức, giúp dễ dàng tích hợp chúng vào quy trình triển khai ưa thích của bạn. 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.

Định dạng TFLite hỗ trợ các chế độ Export, PredictValidate. 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 xác thực độ chính xác của nó.

Export
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolo26n_float32.tflite'
Predict
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validate
from ultralytics import YOLO

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

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionĐối số xuất#

Đối sốLoạiMặc địnhMô tả
formatstr'tflite'Định dạng đích cho model được xuất, xác định khả năng tương thích với nhiều 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 model. Có thể là một số nguyên cho hình ảnh vuông hoặc một tuple (height, width) cho các kích thước cụ thể.
halfboolFalseKích hoạt lượng tử hóa FP16 (độ chính xác một nửa), giúp giảm kích thước model và có khả năng tăng tốc độ suy luận trên các phần cứng được hỗ trợ.
int8boolFalseKích hoạt lượng tử hóa INT8, giúp nén model thêm nữa và tăng tốc độ suy luận với mức giảm accuracy tối thiểu, chủ yếu dành cho các thiết bị biên (edge devices).
nmsboolFalseThêm Non-Maximum Suppression (NMS), rất quan trọng cho việc hậu xử lý phát hiện chính xác và hiệu quả.
batchint1Xác định kích thước suy luận batch 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.
datastr'coco8.yaml'Đường dẫn đến tệp cấu hình dataset (mặc định: coco8.yaml), rất cần thiết cho việc lượng tử hóa.
fractionfloat1.0Chỉ định tỷ lệ phần trăm của dataset được sử dụng để hiệu chuẩn lượng tử hóa INT8. Cho phép hiệu chuẩn trên một tập con của toàn bộ dataset, 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ộ dataset 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 dữ liệu.

Link to this sectionTriển khai các mô hình YOLO26 TFLite đã xuất#

Sau khi xuất thành công các mô hình Ultralytics YOLO26 sang định dạng TFLite, bây giờ bạn có thể triển khai chúng. Bước đầu tiên quan trọng và được khuyến nghị để chạy một mô hình TFLite là sử dụng phương thức YOLO("model.tflite"), như đã nêu trong đoạn mã sử dụng trước đó. Tuy nhiên, để có hướng dẫn chuyên sâu về việc triển khai các mô hình TFLite trong các thiết lập khác, hãy xem qua 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ễ làm theo để thiết lập và chạy các mô hình machine learning.

  • iOS: Kiểm tra hướng dẫn chi tiết này dành cho các nhà phát triển về việc 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 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 cái nhìn tổng quan về các ví dụ khác nhau của TensorFlow Lite, 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ị edge.

Link to this sectionTóm tắt#

Trong hướng dẫn này, chúng tôi đã tập trung vào cách xuất sang định dạng TFLite. Bằng cách chuyển đổi các mô hình Ultralytics YOLO26 sang định dạng mô hình TFLite, bạn có thể cải thiện hiệu suất và tốc độ của các mô hình YOLO26, làm cho chúng trở nên hiệu quả và phù hợp hơn 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 khác của Ultralytics YOLO26, hãy kiểm tra integration guide page của chúng tôi. Bạn sẽ tìm thấy rất nhiều thông tin và kiến thức hữu ích ở đó.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionLàm thế nào để xuất mô hình YOLO26 sang định dạng TFLite?#

Để xuất mô hình YOLO26 sang định dạng TFLite, bạn có thể sử dụng thư viện Ultralytics. Đầu tiên, hãy 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 a YOLO26 model
model = YOLO("yolo26n.pt")

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

Đố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=tflite # creates 'yolo26n_float32.tflite'

Để biết thêm chi tiết, hãy truy cập Ultralytics export guide.

Link to this sectionNhững lợi ích của việc sử dụng TensorFlow Lite cho việc triển khai mô hình YOLO26 là gì?#

TensorFlow Lite (TFLite) là một framework deep learning mã nguồn mở được thiết kế cho suy luận trên thiết bị, giúp nó trở nên lý tưởng cho việc triển khai các mô hình 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ị (On-device optimization): Giảm thiểu độ trễ và nâng cao 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, Linux nhúng và MCU.
  • Hiệu suất: Sử dụ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 kiểm tra TFLite guide.

Link to this sectionCó thể chạy các mô hình YOLO26 TFLite trên Raspberry Pi không?#

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 TFLite 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 thêm, 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 guideEdge TPU integration guide của chúng tôi.

Link to this sectionTôi có thể sử dụng các mô hình TFLite trên vi điều khiển cho các dự đoán YOLO26 không?#

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 mô hình 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ó công suất tính toán và bộ nhớ tối thiểu.

Để bắt đầu, hãy truy cập TFLite Micro for Microcontrollers guide.

Link to this sectionNhững nền tảng nào tương thích với các mô hình YOLO26 đã xuất sang TFLite?#

TensorFlow Lite cung cấp khả năng tương thích nền tảng rộng rãi, cho phép bạn triển khai các mô hình YOLO26 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.
  • Linux nhúng: Lý tưởng cho các máy tính bảng mạch đơn (single-board computers) 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 deployment guide chi tiết của chúng tôi.

Link to this sectionLàm thế nào để khắc phục các sự cố thường gặp trong quá trình xuất mô hình YOLO26 sang TFLite?#

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

  • Kiểm tra khả năng 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. Hãy tham khảo installation guide của chúng tôi.
  • Hỗ trợ mô hình: Xác minh rằng mô hình YOLO26 cụ thể có hỗ trợ xuất TFLite hay không bằng cách kiểm tra export documentation page của Ultralytics.
  • Sự cố định lượng (Quantization issues): Khi sử dụng định lượng INT8, hãy đảm bảo rằng đường dẫn tập dữ liệu 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.

Bình luận