Ultralytics YOLO27:
Get Started

将 YOLO 模型导出为 LiteRT 格式,用于边缘设备和 Web 部署#

LiteRT edge deployment framework

LiteRT(Lite Runtime 的简称)是 Google 面向设备端 AI 的高性能运行时。它是 TensorFlow Lite (TFLite) 的新一代版本和新名称,并运行相同的 .tflite 模型格式。借助 LiteRT,只需导出一个 Ultralytics YOLO 模型,即可部署到移动设备、嵌入式设备、边缘设备和浏览器——旧版 tflite 和 tfjs 导出格式分别处理的所有场景,如今都由 LiteRT 统一支持。



观看: 如何将 Ultralytics YOLO26 导出为 Google LiteRT | 在 Android 和 iOS 上部署视觉 AI | 移动端 AI 📱🚀

LiteRT 导出格式可针对目标检测、分割、姿态估计和分类等任务优化模型,使模型能够在各种设备上快速离线运行。

立即通过官方 Flutter 插件在 Android 上运行 LiteRT YOLO

官方 Ultralytics YOLO Flutter 插件开箱即用,可在 Android 上运行 LiteRT .tflite 导出模型——支持实时摄像头推理、单图预测、GPU 加速,以及为全部七种 YOLO26 任务(包括深度)自动下载模型。对于 Apple 设备,请使用 CoreML 导出;对于 Qualcomm Snapdragon NPU,请参阅 Qualcomm QNN 集成。

官方移动端输入尺寸

在 imgsz=224 导出分类模型。在 imgsz=640 导出检测、分割、语义分割、深度、姿态和 OBB 模型。官方 LiteRT、CoreML 和 QNN 移动端资源采用相同的 224/640 标准。

立即通过官方 @ultralytics/yolo npm 软件包在 Web 上运行 LiteRT.js YOLO

官方 Ultralytics YOLO NPM 软件包可通过 LiteRT.js直接在浏览器中运行 LiteRT .tflite 导出模型,无需服务器或 Python——支持实时网络摄像头推理、单图预测,以及 WebGPU 加速(自动回退到 CPU/WASM),覆盖六种 YOLO26 任务(检测、分割、语义分割、分类、姿态和 OBB)。在 WebGPU 上,其速度通常比 ONNX Runtime Web 快约 ~2 倍。

npm i @ultralytics/yolo @litertjs/core

为什么要导出为 LiteRT?#

LiteRT 是一款开源框架,专为设备端推理设计,也称为边缘计算。它为开发者提供工具,可在移动设备、嵌入式设备和 IoT 设备、传统计算机上运行训练好的模型,也可通过 LiteRT.js直接在 Web 浏览器和 Node.js 中运行模型。

一种模型格式,适用于所有目标平台:

  • 移动设备和嵌入式设备:Android、iOS、嵌入式 Linux 和微控制器 (MCU)。
  • 边缘加速器:兼容 Coral Edge TPU,可进一步加速。
  • 浏览器和 Node.js:LiteRT.js 可在 Web 上运行相同的 .tflite 模型,并通过 WebGPU/WASM 加速——无需单独导出 TensorFlow.js 格式。

LiteRT 模型的主要功能#

  • 端侧优化:通过本地处理数据降低延迟,不传输个人数据以增强隐私保护,并缩小模型体积以节省空间。
  • 多平台支持:可在 Android、iOS、嵌入式 Linux、微控制器和现代 Web 浏览器上运行。
  • 硬件加速:利用 CPU 上的 XNNPACK,并通过 OpenCL、Metal 和 WebGPU 实现 GPU 加速。GPU delegate 默认以 FP16 运行,以进一步提升速度。
  • 量化:支持 FP32、静态 INT8(quantize=8,int8 权重 + int8 激活)、静态 INT16 激活(quantize="w8a16",int8 权重 + int16 激活,精度更高)和动态 INT8(quantize="w8a32",int8 权重 + FP32 激活,无需校准数据),以压缩模型并加快推理,同时将 精度损失降至最低。
  • 多种语言支持:兼容 Java/Kotlin、Swift、Objective-C、C++、Python 和 JavaScript。

实测性能#

硬件:Xiaomi 17,配备 12 GB LPDDR5X 内存,运行 Android 16 / API 36。其 3 nm Snapdragon 8 Elite Gen 5 (SM8850) 配备 8 核 Qualcomm Oryon CPU(2 个 Prime 核心,最高 4.6 GHz;6 个 Performance 核心,最高 3.62 GHz)、Adreno GPU 和 Hexagon NPU。

模型任务尺寸
(像素)
CPU
w8a32 LiteRT
(毫秒)
GPU
w8a32 LiteRT
(毫秒)
YOLO26n检测64052.2
1.8 / 48.1 / 2.4
15.8
2.3 / 8.9 / 4.6
YOLO26n-seg分割64073.4
1.8 / 65.6 / 6.0
33.2
1.8 / 23.8 / 7.6
YOLO26n-sem语义64061.2
1.8 / 51.1 / 8.3
34.2
1.8 / 24.0 / 8.3
YOLO26n-depth深度640124.4
1.9 / 115.1 / 7.4
23.0
1.8 / 13.5 / 7.7
YOLO26n-cls分类2244.4
0.4 / 4.0 / 0.0
3.1
0.8 / 2.1 / 0.2
YOLO26n-pose姿态64057.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
  • 速度数值为单张图像突发延迟——在 bus.jpg 上预热运行 3 次后测量 15 次运行的平均值,测量时使用 Ultralytics Flutter 插件 0.6.10 和标准化的 v0.6.6 资源。CPU/GPU 的执行顺序在单次顺序测试中按任务交替。原生日志确认,每一行 CPU 数据都使用 LiteRT CPU/XNNPACK,而每一行 GPU 数据都将完整计算图委托给 LiteRT OpenCL(LITERT_CL)。
  • LiteRT 导出会直接跟踪 PyTorch 模型,生成浮点输入的 NCHW .tflite——GPU delegate 会编译整个计算图(此处七项任务均在 Adreno GPU 上运行),且 w8a32 无需校准数据。使用者应读取张量形状和签名名称,而不是假设使用传统的 onnx2tf NHWC 布局或 Identity 输出名称;应将 RGB 数据直接打包为平面 CHW 格式,或在推理前进行转置。语义分割导出会返回 NCHW logits,需要在主机端执行类别 argmax。官方 Android 资源托管在 yolo-flutter-app v0.6.6 版本中,详细基准测试记录见Flutter 性能文档。
  • 匹配的 Snapdragon Hexagon NPU 和 LiteRT CPU/GPU 数据见 Qualcomm QNN 集成。
  • 请在 CoreML 集成中对比 Apple CPU/加速器的结果。

以下设备测试使用相同的标准化 v0.6.6 资源。

Google Pixel 10#

硬件:Google Pixel 10,配备 12 GB 内存,运行 Android 16 / API 36。其 3 nm Google Tensor G5 配备 8 核 CPU(1 个 Prime 核心,最高 3.78 GHz;5 个 Performance 核心,最高 3.05 GHz;2 个 Efficiency 核心,最高 2.25 GHz)、PowerVR D-Series GPU 和 Google TPU。由于 Google 未在链接的规格中公布核心时钟频率和 GPU 驱动名称,因此这些信息是从基准测试设备上读取的。

模型任务尺寸
(像素)
CPU
w8a32 LiteRT
(毫秒)
GPU
w8a32 LiteRT
(毫秒)
YOLO26n检测64053.3
1.5 / 50.2 / 1.6
45.5
3.8 / 37.7 / 4.0
YOLO26n-seg分割64087.7
1.8 / 78.5 / 7.5
50.9
3.0 / 36.9 / 10.9
YOLO26n-sem语义64068.6
1.5 / 59.0 / 8.0
71.6
1.5 / 59.5 / 10.6
YOLO26n-depth深度640120.3
1.5 / 112.5 / 6.3
52.5
2.0 / 37.5 / 13.0
YOLO26n-cls分类2244.0
0.3 / 3.4 / 0.2
17.6
0.9 / 16.7 / 0.1
YOLO26n-pose姿态64059.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

基准测试:在 bus.jpg 上预热运行 3 次后,计算 predict() 调用 15 次的平均值;使用 ultralytics_yolo 0.6.10 和官方 v0.6.6 资源。CPU/GPU 的执行顺序在单次顺序测试中按任务交替。原生日志确认,每一行 CPU 数据都使用 LiteRT CPU/XNNPACK,而每一行 GPU 数据都将完整计算图委托给 LiteRT OpenCL(LITERT_CL)。

Samsung Galaxy S26#

硬件:Samsung Galaxy S26 (SM-S942B),配备 12 GB 内存,运行 Android 16 / API 36。其 2 nm Exynos 2600 配备 10 核 Armv9.3 CPU(1 个 C1-Ultra 核心,最高 3.8 GHz;3 个性能型 C1-Pro 核心,最高 3.26 GHz;6 个能效型 C1-Pro 核心,最高 2.76 GHz)、Xclipse 960 GPU 和 Samsung NPU。

模型任务尺寸
(像素)
CPU
w8a32 LiteRT
(毫秒)
GPU
w8a32 LiteRT
(毫秒)
YOLO26n检测64036.7
1.3 / 33.8 / 1.7
16.4
1.4 / 12.3 / 2.6
YOLO26n-seg分割64054.6
1.2 / 48.0 / 5.3
32.8
1.3 / 24.5 / 7.0
YOLO26n-sem语义64047.8
1.2 / 38.4 / 8.1
34.2
1.3 / 24.9 / 8.0
YOLO26n-depth深度64092.9
1.2 / 84.8 / 6.9
33.5
1.3 / 22.4 / 9.8
YOLO26n-cls分类2242.7
0.2 / 2.3 / 0.2
2.6
0.2 / 2.4 / 0.0
YOLO26n-pose姿态64042.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

基准测试:在 bus.jpg 上预热运行 3 次后,计算 predict() 调用 15 次的平均值;使用 ultralytics_yolo 0.6.10 和官方 v0.6.6 资源。CPU/GPU 的执行顺序在单次顺序测试中按任务交替。原生日志确认,每一行 CPU 数据都使用 LiteRT CPU/XNNPACK,而每一行 GPU 数据都将完整计算图委托给 LiteRT OpenCL(LITERT_CL)。

Xiaomi 17T Pro#

硬件:Xiaomi 17T Pro (2602EPTC0G),配备 12 GB LPDDR5X 内存,运行 Android 16 / API 36。其 3 nm MediaTek Dimensity 9500 (MT6993) 配备 8 核 Armv9.3 CPU(1 个 C1-Ultra 核心,最高 4.21 GHz;3 个 C1-Premium 核心,最高 3.5 GHz;4 个 C1-Pro 核心,最高 2.7 GHz)、Mali-G1 Ultra MC12 GPU 和 MediaTek NPU 990。

模型任务尺寸
(像素)
CPU
w8a32 LiteRT
(毫秒)
GPU
w8a32 LiteRT
(毫秒)
YOLO26n检测64045.4
1.3 / 42.1 / 2.0
26.6
1.9 / 22.0 / 2.7
YOLO26n-seg分割640126.2
2.6 / 113.9 / 9.7
46.7
2.6 / 33.3 / 10.8
YOLO26n-sem语义640117.9
2.6 / 98.8 / 16.5
74.3
2.6 / 54.7 / 17.0
YOLO26n-depth深度640182.4
2.5 / 167.6 / 12.3
47.8
2.5 / 32.3 / 12.9
YOLO26n-cls分类2246.2
0.4 / 5.3 / 0.4
7.4
0.4 / 6.9 / 0.1
YOLO26n-pose姿态64097.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

基准测试:在 bus.jpg 上预热运行 3 次后,计算 predict() 调用 15 次的平均值;使用 ultralytics_yolo 0.6.10 和官方 v0.6.6 资源。CPU/GPU 的执行顺序在单次顺序测试中按任务交替。原生日志确认,每一行 CPU 数据都使用 LiteRT CPU/XNNPACK,而每一行 GPU 数据都将完整计算图委托给 LiteRT OpenCL(LITERT_CL)。

支持的任务#

LiteRT 导出支持 Ultralytics 的全部七项任务。语义分割和深度估计仅适用于 YOLO26,因为只有 YOLO26 系列包含这些检测头。

任务YOLOv8YOLO11YOLO26
检测✅✅✅
分割✅✅✅
语义分割❌❌✅
深度估计❌❌✅
分类✅✅✅
姿态✅✅✅
OBB✅✅✅

导出为 LiteRT:转换你的 YOLO 模型#

将模型转换为 LiteRT 格式,可以提高端侧执行效率并扩展部署选项。

安装#

要安装所需软件包,请运行:

安装
# Install the required package for YOLO
pip install ultralytics

如需详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。如果遇到任何问题,请参阅我们的常见问题指南。

平台支持

目前,LiteRT 导出支持 Linux x86_64 和 macOS。导出的 .tflite 模型本身可在所有 LiteRT 支持的平台上运行(移动设备、嵌入式设备、边缘设备和浏览器)。

用法#

所有 Ultralytics YOLO 模型均开箱即支持导出。LiteRT 格式支持导出、预测和验证模式,因此你可以导出模型,然后加载模型以在本地运行推理或验证精度。

导出
from ultralytics import YOLO

# 加载 YOLO26 模型
model = YOLO("yolo26n.pt")

# 将模型导出为 LiteRT 格式
model.export(format="litert", imgsz=640)  # 会生成 'yolo26n.tflite';分类任务使用 imgsz=224
量化导出
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# 动态 INT8:int8 权重,FP32 激活——无需校准数据
model.export(format="litert", quantize="w8a32", imgsz=640)  # 会生成 'yolo26n_w8a32.tflite'

# 静态 INT8:int8 权重 + int8 激活——需要校准数据
model.export(format="litert", quantize=8, data="coco8.yaml", imgsz=640)  # 会生成 'yolo26n_int8.tflite'

# 静态 w8a16:int8 权重 + int16 激活(精度更高)——需要校准数据
model.export(format="litert", quantize="w8a16", data="coco8.yaml", imgsz=640)  # 会生成 'yolo26n_w8a16.tflite'
预测
from ultralytics import YOLO

# 加载导出的 LiteRT 模型
model = YOLO("yolo26n.tflite")

# 运行推理
results = model("https://ultralytics.com/images/bus.jpg")
验证
from ultralytics import YOLO

# 加载导出的 LiteRT 模型
model = YOLO("yolo26n.tflite")

# 在 COCO8 数据集上验证准确率
metrics = model.val(data="coco8.yaml")

导出参数#

参数类型默认值说明
formatstr'litert'导出模型的目标格式,用于定义与各种部署环境的兼容性。
imgszint 或 tuple640模型输入所需的图像尺寸。正方形图像可使用整数;若要指定具体尺寸,则可使用元组 (height, width)。
quantizeint 或 strNone量化精度:8(静态 INT8,int8 权重 + int8 激活;需要校准 data/fraction)、'w8a16'(静态,int8 权重 + int16 激活;需要校准 data/fraction)、'w8a32'(动态 INT8,int8 权重 + FP32 激活;无需校准)或 32/未设置(FP32)。FP16 不会单独导出(见下方说明)。替代已弃用的 half/int8 标志。
batchint1指定导出模型的批量推理大小,或导出模型在 predict 模式下可同时处理的最大图像数。
datastrNone用于 INT8 校准的数据集 YAML;分类任务则接收数据集目录或内置数据集名称。如果使用 quantize=8 或 'w8a16' 时未指定,Ultralytics 会为该模型任务选择默认校准数据集。
fractionfloat、int 或 list1.0校准子集,可按比例、图像数量或 [train, val, test] 比例/数量指定。包含两个项目的列表会让 test 保持完整,而 0 会跳过它。
devicestrNone指定导出所用的设备。LiteRT 导出在 CPU 上运行(device=cpu)。
FP16 精度

与传统的 tflite 导出不同,LiteRT 不需要单独导出 FP16。使用 GPU delegate(WebGPU、OpenCL、Metal)时,FP32 .tflite 模型会在运行时以半精度运行——这是 LiteRT 官方采用的 FP16 推理方式。

有关导出流程的更多详情,请访问 Ultralytics 导出文档页面。

部署导出的 YOLO LiteRT 模型#

将 Ultralytics YOLO 模型导出为 LiteRT 后,你可以在多个平台上部署模型。要在本地快速验证,最简便的方法是使用上文所示的 YOLO("yolo26n.tflite") 方法。要在其他环境中部署,请参阅以下资源:

移动设备与嵌入式设备#

  • Android:将 LiteRT 集成到 Android 应用中的快速入门指南。
  • iOS:在 iOS 应用中集成和部署 LiteRT 模型的指南。
  • 嵌入式 Linux 与 Raspberry Pi:在单板计算机上运行 LiteRT 模型,也可选择使用 Coral Edge TPU 加速。
  • 微控制器:在内存仅有几 KB 的 MCU 上部署——核心运行时在 Arm Cortex-M3 上约占 16 KB。

浏览器与 Node.js (LiteRT.js)#

  • LiteRT.js 概览:使用 WebGPU/WASM 加速,在浏览器中直接运行相同的 .tflite 模型,无需服务器端计算,并让数据保留在用户设备上。
  • 端到端示例:提供在移动设备、边缘设备和 Web 平台上实现 LiteRT 的实用示例和教程。

总结#

本指南介绍了如何将 Ultralytics YOLO 模型导出为 LiteRT 格式。LiteRT 将移动端/边缘端(以前使用 TFLite)和浏览器(以前使用 TF.js)的部署整合到单一的 .tflite 模型中,让你的 YOLO 模型速度更快、体积更小,并能在几乎所有设备端目标上移植运行。

如需了解更多详情,请访问 LiteRT 官方文档。

另外,如果你想了解其他 Ultralytics YOLO 集成方案,可以查看我们的集成指南页面,其中包含许多实用资源。

常见问题#

  • 使用 Ultralytics 库将 YOLO 模型导出为 LiteRT (.tflite)。首先,安装软件包:

    pip install ultralytics

    然后导出模型:

    from ultralytics import YOLO
    
    # 加载 YOLO26 模型
    model = YOLO("yolo26n.pt")
    
    # 将模型导出为 LiteRT 格式
    model.export(format="litert", imgsz=640)  # 分类任务使用 imgsz=224

    CLI 用户请执行:

    yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classification

    如需了解更多详情,请访问 Ultralytics 导出指南。

  • LiteRT 是 TensorFlow Lite 的新名称——模型格式 .tflite 相同,运行时沿革相同,由 Google 重新命名。在 Ultralytics 中,单一的 litert 导出格式现在涵盖了以前需要两种独立格式的两种用途:

    • 旧的 tflite 格式 → 用于移动端、嵌入式设备和边缘端部署。
    • 旧的 tfjs 格式 → 用于浏览器和 Node.js 部署,现在由运行相同 .tflite 文件的 LiteRT.js 处理。

    如果你已有 .tflite 文件,可以直接使用 YOLO("model.tflite") 加载该文件,并通过 LiteRT 后端运行。

  • 可以。将模型导出为 LiteRT 格式,然后在 Raspberry Pi 上运行,以提高推理速度。如需进一步优化,可以考虑使用 Coral Edge TPU。具体步骤请参阅我们的 Raspberry Pi 部署指南。

  • 可以。LiteRT.js 可以使用 WebGPU/WASM 加速,在 Web 浏览器或 Node.js 应用中直接运行相同的已导出 .tflite 模型。这取代了之前的 TensorFlow.js 工作流——无需单独导出浏览器版本,只需使用 LiteRT.js 运行时部署 LiteRT 模型即可。

  • 支持——在运行时支持。FP32 LiteRT 模型在 GPU 委托(WebGPU、OpenCL 或 Metal)上运行时会自动以 FP16 运行,这是 LiteRT 官方采用的方式。因此,你无需专门导出 FP16 模型;如需进一步压缩,可使用 quantize=8 进行 INT8 量化。

  • 如果将 YOLO 模型导出为 LiteRT 时遇到错误,常见解决方法包括:

    • 检查平台:LiteRT 导出支持 Linux x86_64 和 macOS。请确认你的环境符合要求。
    • 检查软件包兼容性:确保使用兼容版本的 Ultralytics。请参阅我们的安装指南。
    • 量化问题:使用 INT8 量化时,请确保在 data 参数中正确指定数据集路径。

    如需了解更多故障排除技巧,请访问我们的常见问题指南。

评论