Ultralytics YOLO27:

Xuất model YOLO sang LiteRT để triển khai trên thiết bị biên và web#

LiteRT edge deployment framework

LiteRT (viết tắt của môi trường runtime Lite) là runtime hiệu năng cao của Google dành cho AI trên thiết bị. Đây là thế hệ tiếp theo và là tên mới của Lite TensorFlow (TFLite), đồng thời chạy cùng định dạng model .tflite. Với LiteRT, một model Ultralytics YOLO được xuất có thể triển khai trên thiết bị di động, thiết bị nhúng, thiết bị biên và trình duyệt — bao phủ mọi trường hợp mà các định dạng xuất tflitetfjs trước đây xử lý riêng lẻ, nay được hợp nhất trong một nền tảng.



Watch: How to Export Ultralytics YOLO26 to Google LiteRT | Deploy Vision AI on Android & iOS | Mobile AI 📱🚀

Định dạng xuất LiteRT tối ưu model cho các tác vụ như phát hiện đối tượng, phân đoạn, ước tính tư thếphân loại, giúp chúng chạy nhanh và offline trên nhiều loại thiết bị.

Chạy YOLO trên Android với LiteRT ngay hôm nay thông qua Flutter plugin chính thức

Flutter plugin Ultralytics YOLO chính thức chạy các model LiteRT .tflite được xuất trên Android ngay sau khi cài đặt — hỗ trợ suy luận camera theo thời gian thực, dự đoán ảnh đơn, tăng tốc GPU và tự động tải model cho cả bảy tác vụ YOLO26, bao gồm Depth. Với thiết bị Apple, hãy sử dụng CoreML export; với NPU Qualcomm Snapdragon, xem tích hợp Qualcomm QNN.

Kích thước input di động chính thức

Xuất model phân loại tại imgsz=224. Xuất model detect, segment, semantic, depth, pose và OBB tại imgsz=640. Tiêu chuẩn 224/640 này được dùng chung cho các mobile asset LiteRT, CoreML và QNN chính thức.

Chạy YOLO trên web với LiteRT.js ngay hôm nay thông qua npm package @ultralytics/yolo chính thức

NPM package Ultralytics YOLO chính thức chạy trực tiếp các model LiteRT .tflite được xuất trong trình duyệt thông qua LiteRT.js, không cần server hoặc Python — hỗ trợ suy luận webcam theo thời gian thực, dự đoán ảnh đơn và tăng tốc WebGPU (tự động fallback sang CPU/WASM) trên cả sáu tác vụ YOLO26 (detect, segment, pose, OBB, classify, semantic). Trên WebGPU, tốc độ thường nhanh hơn khoảng ~2× so với ONNX Runtime Web.

npm i @ultralytics/yolo @litertjs/core

Tại sao nên xuất sang LiteRT?#

LiteRT là framework 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. Framework này cung cấp cho developer các công cụ để thực thi model đã huấn luyện trên thiết bị di động, thiết bị nhúng và thiết bị IoT, máy tính truyền thống, cũng như — thông qua LiteRT.js — trực tiếp trong trình duyệt web và Node.js.

Một định dạng model, mọi nền tảng đích:

  • Di động & Nhúng: Android, iOS, Linux nhúng và vi điều khiển (MCU).
  • Bộ tăng tốc biên: Tương thích với Coral Edge TPU để tăng tốc hơn nữa.
  • Trình duyệt & Node.js: LiteRT.js chạy cùng model .tflite trên web với tăng tốc WebGPU/WASM — loại bỏ nhu cầu xuất TensorFlow.js riêng biệt.

Các tính năng chính của model LiteRT#

  • Tối ưu hóa 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ư do không truyền dữ liệu cá nhân và giảm kích thước model để tiết kiệm dung lượng.
  • Hỗ trợ nhiều nền tảng: Chạy trên Android, iOS, Linux nhúng, vi điều khiển và các trình duyệt web hiện đại.
  • Tăng tốc phần cứng: Tận dụng XNNPACK trên CPU và tăng tốc GPU thông qua OpenCL, Metal và WebGPU. GPU delegate mặc định chạy ở FP16 để tăng thêm tốc độ.
  • Lượng tử hóa: Hỗ trợ FP32, INT8 tĩnh (quantize=8, trọng số int8 + activation int8), activation INT16 tĩnh (quantize="w8a16", trọng số int8 + activation int16 để đạt độ chính xác cao hơn) và INT8 động (quantize="w8a32", trọng số int8 + activation FP32, không cần dữ liệu calibration) nhằm nén model và tăng tốc suy luận với mức mất độ chính xác tối thiểu.
  • Hỗ trợ đa ngôn ngữ: Tương thích với Java/Kotlin, Swift, Objective-C, C++, Python và JavaScript.

Hiệu năng đo được#

Phần cứng: Xiaomi 17 với bộ nhớ LPDDR5X 12 GB và Android 16 / API 36. Snapdragon 8 Elite Gen 5 tiến trình 3 nm của máy (SM8850) có CPU Qualcomm Oryon 8 lõi (2 lõi Prime tối đa 4.6 GHz và 6 lõi Performance tối đa 3.62 GHz), GPU Adreno và NPU Hexagon.

ModelTaskkích thước
(pixel)
CPU
LiteRT w8a32
(ms)
GPU
LiteRT w8a32
(ms)
YOLO26nDetect64052.2
1.8 / 48.1 / 2.4
15.8
2.3 / 8.9 / 4.6
YOLO26n-segSegment64073.4
1.8 / 65.6 / 6.0
33.2
1.8 / 23.8 / 7.6
YOLO26n-semSemantic64061.2
1.8 / 51.1 / 8.3
34.2
1.8 / 24.0 / 8.3
YOLO26n-depthDepth640124.4
1.9 / 115.1 / 7.4
23.0
1.8 / 13.5 / 7.7
YOLO26n-clsClassify2244.4
0.4 / 4.0 / 0.0
3.1
0.8 / 2.1 / 0.2
YOLO26n-posePose64057.4
1.8 / 53.8 / 1.8
16.6
2.7 / 10.1 / 3.9
YOLO26n-obbOBB64050.3
1.8 / 47.2 / 1.4
11.7
1.8 / 7.8 / 2.0
  • Các giá trị Tốc độđộ trễ burst trên ảnh đơn — giá trị trung bình của 15 lần chạy sau 3 lần warmup trên bus.jpg, được đo bằng Ultralytics Flutter plugin 0.6.10 và các asset v0.6.6 theo tiêu chuẩn. Thứ tự CPU/GPU được luân phiên giữa các tác vụ trong một lượt chạy tuần tự. Log native xác nhận rằng mọi hàng CPU đều sử dụng LiteRT CPU/XNNPACK và mọi hàng GPU đều ủy quyền toàn bộ graph cho LiteRT OpenCL (LITERT_CL).
  • Bản xuất LiteRT trace trực tiếp model PyTorch, tạo ra .tflite NCHW với input float — GPU delegate biên dịch toàn bộ graph (cả bảy tác vụ đều chạy trên GPU Adreno tại đây), và w8a32 không cần dữ liệu calibration. Consumer nên đọc shape tensor và tên signature thay vì giả định layout NHWC legacy của onnx2tf hoặc tên output Identity; hãy đóng gói dữ liệu RGB trực tiếp dưới dạng CHW planar hoặc transpose dữ liệu trước khi suy luận. Bản xuất semantic trả về logits NCHW và yêu cầu thực hiện argmax lớp ở phía host. Các Android asset chính thức được lưu trữ trong bản phát hành v0.6.6 của yolo-flutter-app, cùng bản ghi benchmark chi tiết trong tài liệu hiệu năng Flutter.
  • Các con số của NPU Hexagon Snapdragon tương ứng và LiteRT CPU/GPU có trong tích hợp Qualcomm QNN.
  • So sánh kết quả CPU/bộ tăng tốc của Apple trong tích hợp CoreML.

Các lượt quét thiết bị sau đây sử dụng cùng các asset v0.6.6 theo tiêu chuẩn.

Google Pixel 10#

Phần cứng: Google Pixel 10 với bộ nhớ 12 GB và Android 16 / API 36. Google Tensor G5 tiến trình 3 nm của máy có CPU 8 lõi (1 lõi Prime tối đa 3.78 GHz, 5 lõi Performance tối đa 3.05 GHz và 2 lõi Efficiency tối đa 2.25 GHz), GPU PowerVR D-Series và Google TPU. Xung nhịp lõi và tên driver GPU được đọc từ thiết bị benchmark vì Google không công bố chúng trong thông số kỹ thuật được liên kết.

ModelTaskkích thước
(pixel)
CPU
LiteRT w8a32
(ms)
GPU
LiteRT w8a32
(ms)
YOLO26nDetect64053.3
1.5 / 50.2 / 1.6
45.5
3.8 / 37.7 / 4.0
YOLO26n-segSegment64087.7
1.8 / 78.5 / 7.5
50.9
3.0 / 36.9 / 10.9
YOLO26n-semSemantic64068.6
1.5 / 59.0 / 8.0
71.6
1.5 / 59.5 / 10.6
YOLO26n-depthDepth640120.3
1.5 / 112.5 / 6.3
52.5
2.0 / 37.5 / 13.0
YOLO26n-clsClassify2244.0
0.3 / 3.4 / 0.2
17.6
0.9 / 16.7 / 0.1
YOLO26n-posePose64059.7
1.5 / 57.0 / 1.2
46.6
3.8 / 39.2 / 3.5
YOLO26n-obbOBB64052.0
1.5 / 48.9 / 1.7
45.5
4.0 / 38.5 / 2.9

Benchmark: Giá trị trung bình của 15 lần gọi predict() sau 3 lần warmup trên bus.jpg, sử dụng ultralytics_yolo, 0.6.10 và các asset v0.6.6 chính thức. Thứ tự CPU/GPU được luân phiên giữa các tác vụ trong một lượt chạy tuần tự. Log native xác nhận rằng mọi hàng CPU đều sử dụng LiteRT CPU/XNNPACK và mọi hàng GPU đều ủy quyền toàn bộ graph cho LiteRT OpenCL (LITERT_CL).

Samsung Galaxy S26#

Phần cứng: Samsung Galaxy S26 (SM-S942B) với bộ nhớ 12 GB và Android 16 / API 36. Exynos 2600 tiến trình 2 nm của máy có CPU Armv9.3 10 lõi (1 lõi C1-Ultra tối đa 3.8 GHz, 3 lõi hiệu năng C1-Pro tối đa 3.26 GHz và 6 lõi tiết kiệm C1-Pro tối đa 2.76 GHz), GPU Xclipse 960 và NPU Samsung.

ModelTaskkích thước
(pixel)
CPU
LiteRT w8a32
(ms)
GPU
LiteRT w8a32
(ms)
YOLO26nDetect64036.7
1.3 / 33.8 / 1.7
16.4
1.4 / 12.3 / 2.6
YOLO26n-segSegment64054.6
1.2 / 48.0 / 5.3
32.8
1.3 / 24.5 / 7.0
YOLO26n-semSemantic64047.8
1.2 / 38.4 / 8.1
34.2
1.3 / 24.9 / 8.0
YOLO26n-depthDepth64092.9
1.2 / 84.8 / 6.9
33.5
1.3 / 22.4 / 9.8
YOLO26n-clsClassify2242.7
0.2 / 2.3 / 0.2
2.6
0.2 / 2.4 / 0.0
YOLO26n-posePose64042.8
1.3 / 40.5 / 1.0
18.4
1.4 / 14.1 / 2.9
YOLO26n-obbOBB64037.5
1.3 / 35.1 / 1.2
18.8
2.5 / 14.6 / 1.8

Benchmark: Giá trị trung bình của 15 lần gọi predict() sau 3 lần warmup trên bus.jpg, sử dụng ultralytics_yolo, 0.6.10 và các asset v0.6.6 chính thức. Thứ tự CPU/GPU được luân phiên giữa các tác vụ trong một lượt chạy tuần tự. Log native xác nhận rằng mọi hàng CPU đều sử dụng LiteRT CPU/XNNPACK và mọi hàng GPU đều ủy quyền toàn bộ graph cho LiteRT OpenCL (LITERT_CL).

Xiaomi 17T Pro#

Phần cứng: Xiaomi 17T Pro (2602EPTC0G) với bộ nhớ LPDDR5X 12 GB và Android 16 / API 36. MediaTek Dimensity 9500 tiến trình 3 nm (MT6993) có CPU Armv9.3 8 lõi (1 lõi C1-Ultra tối đa 4.21 GHz, 3 lõi C1-Premium tối đa 3.5 GHz và 4 lõi C1-Pro tối đa 2.7 GHz), GPU Mali-G1 Ultra MC12 và NPU MediaTek 990.

ModelTaskkích thước
(pixel)
CPU
LiteRT w8a32
(ms)
GPU
LiteRT w8a32
(ms)
YOLO26nDetect64045.4
1.3 / 42.1 / 2.0
26.6
1.9 / 22.0 / 2.7
YOLO26n-segSegment640126.2
2.6 / 113.9 / 9.7
46.7
2.6 / 33.3 / 10.8
YOLO26n-semSemantic640117.9
2.6 / 98.8 / 16.5
74.3
2.6 / 54.7 / 17.0
YOLO26n-depthDepth640182.4
2.5 / 167.6 / 12.3
47.8
2.5 / 32.3 / 12.9
YOLO26n-clsClassify2246.2
0.4 / 5.3 / 0.4
7.4
0.4 / 6.9 / 0.1
YOLO26n-posePose64097.6
2.5 / 93.3 / 1.8
28.6
2.5 / 23.3 / 2.8
YOLO26n-obbOBB64091.5
2.6 / 85.8 / 3.2
27.5
2.7 / 21.8 / 2.9

Benchmark: Giá trị trung bình của 15 lần gọi predict() sau 3 lần warmup trên bus.jpg, sử dụng ultralytics_yolo, 0.6.10 và các asset v0.6.6 chính thức. Thứ tự CPU/GPU được luân phiên giữa các tác vụ trong một lượt chạy tuần tự. Log native xác nhận rằng mọi hàng CPU đều sử dụng LiteRT CPU/XNNPACK và mọi hàng GPU đều ủy quyền toàn bộ graph cho LiteRT OpenCL (LITERT_CL).

Các Task được hỗ trợ#

Bản xuất LiteRT hỗ trợ cả bảy tác vụ Ultralytics. Phân đoạn ngữ nghĩa và ước tính độ sâu chỉ khả dụng với YOLO26, dòng duy nhất cung cấp các head này.

TaskYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Xuất sang LiteRT: Chuyển đổi model YOLO của bạn#

Bạn có thể cải thiện hiệu quả thực thi trên thiết bị và mở rộng các tùy chọn triển khai bằng cách chuyển đổi model sang định dạng LiteRT.

Cài đặt#

Để cài đặt package bắt buộc, hãy chạy:

Cài đặt
# Install the required package for YOLO
pip install ultralytics

Để xem hướng dẫn chi tiết và các phương pháp tốt nhất, hãy tham khảo hướng dẫn Cài đặt Ultralytics. Nếu gặp khó khăn, hãy xem hướng dẫn Các vấn đề thường gặp.

Hỗ trợ nền tảng

Export LiteRT hiện được hỗ trợ trên Linux x86_64macOS. Bản thân model .tflite đã xuất chạy trên mọi nền tảng được LiteRT hỗ trợ (di động, nhúng, biên và trình duyệt).

Cách sử dụng#

Tất cả model Ultralytics YOLO đều hỗ trợ export ngay sau khi cài đặt. Định dạng LiteRT hỗ trợ các mode Export, PredictValidate, vì vậy bạn có thể xuất model, sau đó tải model để chạy suy luận hoặc xác thực độ chính xác cục bộ.

Export
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
Xuất model đã lượng tử hóa
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Dynamic INT8: int8 weights, FP32 activations - no calibration data needed
model.export(format="litert", quantize="w8a32", imgsz=640)  # use imgsz=224 for classification

# Static INT8: int8 weights + int8 activations - needs calibration data
model.export(format="litert", quantize=8, data="coco8.yaml", imgsz=640)  # use 224 for classification

# Static w8a16: int8 weights + int16 activations (higher accuracy) - needs calibration data
model.export(format="litert", quantize="w8a16", data="coco8.yaml", imgsz=640)  # use 224 for classification
Predict
from ultralytics import YOLO

# Load the exported LiteRT model
model = YOLO("yolo26n.tflite")

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

# Load the exported LiteRT model
model = YOLO("yolo26n.tflite")

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

Đối số Export#

Đối sốKiểuMặc địnhMô tả
formatstr'litert'Định dạng đích của model đã export, xác định khả năng tương thích với nhiều môi trường triển khai.
imgszint hoặc tuple640Kích thước ảnh mong muốn cho input của model. Có thể là một số nguyên đối với ảnh vuông hoặc một tuple (height, width) cho các kích thước cụ thể.
quantizeint hoặc strNoneĐộ chính xác lượng tử hóa: 8 (INT8 tĩnh, trọng số int8 + activation int8; cần calibration data/fraction), 'w8a16' (tĩnh, trọng số int8 + activation int16; cần calibration data/fraction), 'w8a32' (INT8 động, trọng số int8 + activation FP32; không cần calibration) hoặc 32/không đặt (FP32). FP16 không được xuất riêng (xem lưu ý bên dưới). Thay thế các flag half/int8 đã lỗi thời.
batchint1Chỉ định batch inference size của model export hoặc số image tối đa mà model đã export sẽ xử lý đồng thời trong mode predict.
datastrNoneYAML của dataset được sử dụng để hiệu chuẩn INT8; trong khi đó, bài toán phân loại sử dụng một thư mục dataset hoặc tên dataset tích hợp sẵn. Nếu bỏ qua tham số này cùng với quantize=8 hoặc 'w8a16', Ultralytics sẽ chọn dataset hiệu chuẩn mặc định cho tác vụ của model.
devicestrNoneChỉ định thiết bị dùng để export. Việc export LiteRT chạy trên CPU (device=cpu).
Độ chính xác FP16

Không giống như quy trình export tflite cũ, LiteRT không yêu cầu export FP16 riêng biệt. Model FP32 .tflite sẽ chạy ở độ chính xác half tại runtime khi sử dụng GPU delegate (WebGPU, OpenCL, Metal) — đây là phương pháp chính thức của LiteRT để suy luận FP16.

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

Triển khai các model YOLO LiteRT đã export#

Sau khi export model Ultralytics YOLO sang LiteRT, bạn có thể triển khai model trên nhiều nền tảng. Cách nhanh nhất để xác minh model trên máy cục bộ là sử dụng phương thức YOLO("yolo26n.tflite") được nêu ở trên. Để triển khai trong các môi trường khác, hãy xem các tài nguyên sau:

Thiết bị di động & nhúng#

  • Android: Hướng dẫn bắt đầu nhanh để tích hợp LiteRT vào các ứng dụng Android.
  • iOS: Hướng dẫn tích hợp và triển khai các model LiteRT trong ứng dụng iOS.
  • Linux nhúng & Raspberry Pi: Chạy các model LiteRT trên máy tính bo mạch đơn, với tùy chọn tăng tốc bằng Coral Edge TPU.
  • Vi điều khiển: Triển khai trên các MCU chỉ có vài kilobyte bộ nhớ — runtime cốt lõi chỉ chiếm khoảng 16 KB trên Arm Cortex-M3.

Trình duyệt & Node.js (LiteRT.js)#

  • Tổng quan về LiteRT.js: Chạy trực tiếp cùng model .tflite trong trình duyệt với khả năng tăng tốc WebGPU/WASM, loại bỏ việc tính toán phía server và giữ dữ liệu trên thiết bị của người dùng.
  • Ví dụ đầu-cuối: Các ví dụ thực tế và hướng dẫn triển khai LiteRT trên thiết bị di động, edge và web.

Tóm tắt#

Trong hướng dẫn này, chúng ta đã tìm hiểu cách export các model Ultralytics YOLO sang định dạng LiteRT. Bằng cách hợp nhất việc triển khai trên thiết bị di động/edge (trước đây là TFLite) và trình duyệt (trước đây là TF.js) vào một model .tflite duy nhất, LiteRT giúp các model YOLO chạy nhanh hơn, có kích thước nhỏ hơn và có thể portable trên hầu hết mọi thiết bị đích.

Để biết thêm chi tiết, hãy truy cập tài liệu chính thức của LiteRT.

Ngoài ra, nếu bạn muốn tìm hiểu về các tích hợp Ultralytics YOLO khác, hãy xem trang hướng dẫn tích hợp của chúng tôi để tham khảo nhiều tài nguyên hữu ích.

FAQ#

  • Sử dụng thư viện Ultralytics để export model YOLO sang LiteRT (.tflite). Trước tiên, hãy cài đặt package:

    pip install ultralytics

    Sau đó export 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

    Dành cho người dùng CLI:

    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 hướng dẫn export của Ultralytics.

  • LiteRT là tên mới của TensorFlow Lite — cùng định dạng model .tflite, cùng dòng runtime, được Google đổi thương hiệu. Trong Ultralytics, định dạng export litert duy nhất hiện bao phủ cả hai trường hợp sử dụng trước đây cần đến hai định dạng riêng biệt:

    • Định dạng tflite cũ → triển khai trên thiết bị di động, thiết bị nhúng và edge.
    • Định dạng tfjs cũ → triển khai trên trình duyệt và Node.js, hiện được xử lý bởi LiteRT.js khi chạy cùng file .tflite.

    Nếu bạn có một file .tflite hiện có, bạn có thể tải trực tiếp file đó bằng YOLO("model.tflite") và file sẽ chạy thông qua backend LiteRT.

  • Có. Hãy export model của bạn sang định dạng LiteRT, sau đó chạy model trên Raspberry Pi để cải thiện tốc độ suy luận. Để tối ưu hóa thêm, hãy cân nhắc sử dụng Coral Edge TPU. Để xem các bước chi tiết, hãy tham khảo hướng dẫn triển khai trên Raspberry Pi của chúng tôi.

  • Có. LiteRT.js chạy trực tiếp cùng model .tflite đã export trong trình duyệt web hoặc ứng dụng Node.js, với khả năng tăng tốc WebGPU/WASM. Điều này thay thế quy trình TensorFlow.js trước đây — không có export riêng cho trình duyệt; chỉ cần triển khai model LiteRT bằng runtime LiteRT.js.

  • Có — tại runtime. Model LiteRT FP32 sẽ tự động chạy ở FP16 khi được thực thi trên GPU delegate (WebGPU, OpenCL hoặc Metal), đây là phương pháp chính thức của LiteRT. Vì vậy, bạn không cần export FP16 riêng; để nén thêm, hãy sử dụng lượng tử hóa INT8 với quantize=8.

  • Nếu gặp lỗi khi export model YOLO sang LiteRT, các giải pháp thường gặp bao gồm:

    • Kiểm tra nền tảng: LiteRT hỗ trợ export trên Linux x86_64 và macOS. Hãy xác minh môi trường của bạn phù hợp.
    • Kiểm tra khả năng tương thích của package: Đảm bảo bạn đang sử dụng phiên bản Ultralytics tương thích. Hãy tham khảo hướng dẫn cài đặt của chúng tôi.
    • 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 dataset được chỉ định chính xác trong tham số data.

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

Bình luận