YOLO11 模型导出到 TFLite 以进行部署的指南

在边缘设备或嵌入式设备上部署计算机视觉模型需要一种能够确保无缝性能的格式。
TensorFlow Lite或TFLite导出格式允许您优化Ultralytics YOLO11模型,以用于边缘设备应用中的目标检测和图像分类等任务。在本指南中,我们将逐步介绍将模型转换为TFLite格式的步骤,使您的模型更容易在各种边缘设备上良好运行。
为什么你应该导出到TFLite?
由 Google 于 2017 年 5 月作为其 TensorFlow 框架的一部分推出,TensorFlow Lite,简称 TFLite,是一个开源深度学习框架,专为设备端推理(也称为边缘计算)而设计。它为开发者提供了在移动、嵌入式和物联网设备以及传统计算机上执行其训练模型的必要工具。
TensorFlow Lite 兼容多种平台,包括嵌入式 Linux、Android、iOS 和微控制器 (MCU)。将模型导出到 TFLite 可以使您的应用程序更快、更可靠,并能够离线运行。
TFLite 模型的主要特性
TFLite 模型提供了一系列关键功能,通过帮助开发者在移动、嵌入式和边缘设备上运行模型,从而赋能设备端机器学习:
设备端优化:TFLite针对设备端机器学习进行优化,通过本地处理数据减少延迟,通过不传输个人数据增强隐私,并最小化模型大小以节省空间。
多平台支持:TFLite 提供广泛的平台兼容性,支持 Android、iOS、嵌入式 Linux 和微控制器。
多语言支持:TFLite 兼容多种编程语言,包括 Java、Swift、Objective-C、C++ 和 Python。
高性能: 通过硬件加速和模型优化实现卓越性能。
TFLite中的部署选项
在我们查看将 YOLO11 模型导出到 TFLite 格式的代码之前,让我们先了解 TFLite 模型通常是如何使用的。
TFLite 为机器学习模型提供了多种设备端部署选项,包括:
- 部署到 Android 和 iOS: 搭载 TFLite 的 Android 和 iOS 应用程序可以分析边缘侧的摄像头输入和传感器数据,以 detect 和识别目标。TFLite 还提供用 Swift 和 Objective-C 编写的原生 iOS 库。下面的架构图展示了使用 TensorFlow Lite 将训练好的模型部署到 Android 和 iOS 平台的过程。

使用嵌入式Linux实现:如果使用Ultralytics指南在Raspberry Pi上运行推理无法满足您的用例的速度要求,您可以使用导出的TFLite模型来加速推理时间。此外,还可以通过利用Coral Edge TPU设备进一步提高性能。
部署到微控制器: TFLite 模型也可以部署到微控制器和其他只有几千字节内存的设备上。核心运行时在 Arm Cortex M3 上仅占用 16 KB,并且可以运行许多基本模型。它不需要操作系统支持、任何标准 C 或 C++ 库,也不需要动态内存分配。
导出到 TFLite:转换您的 YOLO11 模型
通过将模型转换为 TFLite 格式,您可以提高设备上的模型执行效率并优化性能。
安装
要安装所需的软件包,请运行:
安装
# Install the required package for YOLO11
pip install ultralytics
有关安装过程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。如果在为 YOLO11 安装所需软件包时遇到任何困难,请查阅我们的 常见问题指南以获取解决方案和提示。
用法
所有Ultralytics YOLO11 模型都设计为支持开箱即用的导出,从而可以轻松地将其集成到您首选的部署工作流程中。您可以查看支持的导出格式和配置选项的完整列表,以选择最适合您应用程序的设置。
用法
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'
导出参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
format | str | 'tflite' | 导出模型的目标格式,定义与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入的所需图像大小。 可以是正方形图像的整数或元组 (height, width) 用于指定特定维度。 |
half | bool | False | 启用 FP16(半精度)量化,从而减小模型大小并可能加快受支持硬件上的推理速度。 |
int8 | bool | False | 激活 INT8 量化,进一步压缩模型并以最小的精度损失加快推理速度,主要用于边缘设备。 |
nms | bool | False | 添加非极大值抑制 (NMS),这对于准确高效的检测后处理至关重要。 |
batch | int | 1 | 指定导出模型批处理推理大小或导出模型将并发处理的最大图像数量,在 predict 模式下。 |
data | str | 'coco8.yaml' | 路径指向 数据集 配置文件(默认: coco8.yaml),这对于量化至关重要。 |
fraction | float | 1.0 | 指定用于 INT8 量化校准的数据集比例。允许在完整数据集的子集上进行校准,这对于实验或资源有限时非常有用。如果未在使用 INT8 启用时指定,则将使用完整数据集。 |
device | str | None | 指定导出设备:CPU(device=cpu),适用于 Apple 芯片的 MPS(device=mps)。 |
有关导出过程的更多详细信息,请访问Ultralytics 文档页面上的导出。
部署导出的 YOLO11 TFLite 模型
成功将您的 Ultralytics YOLO11 模型导出为 TFLite 格式后,您现在可以部署它们。运行 TFLite 模型的主要且推荐的第一步是使用 YOLO("model.tflite") 方法,如之前的用法代码片段中所示。然而,有关在各种其他环境中部署 TFLite 模型的深入说明,请查阅以下资源:
Android: 将 TensorFlow Lite 集成到 Android 应用程序的快速入门指南,提供易于遵循的步骤来设置和运行 机器学习 模型。
iOS:查看此针对开发人员的详细指南,了解如何在 iOS 应用程序中集成和部署 TensorFlow Lite 模型,提供分步说明和资源。
端到端示例: 此页面概述了各种TensorFlow Lite示例,展示了旨在帮助开发人员在移动和边缘设备的机器学习项目中实施TensorFlow Lite的实际应用和教程。
总结
在本指南中,我们重点介绍了如何导出为TFLite格式。通过将您的Ultralytics YOLO11模型转换为TFLite模型格式,您可以提高YOLO11模型的效率和速度,使它们在边缘计算环境中更有效和适用。
有关使用详情,请访问 TFLite 官方文档。
此外,如果您对其他 Ultralytics YOLO11 集成感兴趣,请查看我们的 集成指南页面。您将在那里找到大量有用的信息和见解。
常见问题
如何将 YOLO11 模型导出为 TFLite 格式?
要将 YOLO11 模型导出为 TFLite 格式,您可以使用 Ultralytics 库。首先,使用以下命令安装所需的软件包:
pip install ultralytics
然后,使用以下代码片段导出您的模型:
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'
对于 CLI 用户,您可以使用以下命令实现:
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
更多详情,请访问Ultralytics 导出指南。
使用 TensorFlow Lite 进行 YOLO11 模型部署有哪些好处?
TensorFlow Lite (TFLite) 是一个开源的深度学习框架,专为设备端推理而设计,使其成为在移动、嵌入式和物联网设备上部署YOLO11模型的理想选择。主要优势包括:
- 设备端优化: 通过在本地处理数据,最大限度地减少延迟并增强隐私。
- 平台兼容性:支持 Android、iOS、嵌入式 Linux 和 MCU。
- 性能: 利用硬件加速来优化模型速度和效率。
要了解更多信息,请查阅TFLite 指南。
是否可以在树莓派上运行 YOLO11 TFLite 模型?
是的,您可以在 Raspberry Pi 上运行 YOLO11 TFLite 模型以提高推理速度。首先,如上所述将模型导出为 TFLite 格式。然后,使用 TensorFlow Lite Interpreter 等工具在您的 Raspberry Pi 上执行模型。
为了进一步优化,您可以考虑使用 Coral Edge TPU。有关详细步骤,请参阅我们的 Raspberry Pi 部署指南 和 Edge TPU 集成指南。
我可以在微控制器上使用TFLite模型进行YOLO11预测吗?
是的,TFLite 支持在资源有限的微控制器上部署。TFLite 的核心运行时在 Arm Cortex M3 上仅需 16 KB 内存,即可运行基本的 YOLO11 模型。这使其适用于计算能力和内存极小的设备部署。
开始之前,请访问适用于微控制器的TFLite Micro指南。
哪些平台与TFLite导出的YOLO11模型兼容?
TensorFlow Lite 提供了广泛的平台兼容性,允许您在各种设备上部署 YOLO11 模型,包括:
- Android 和 iOS:通过 TFLite Android 和 iOS 库提供原生支持。
- 嵌入式 Linux: 适用于 Raspberry Pi 等单板计算机。
- 微控制器: 适用于资源受限的 MCU。
有关部署选项的更多信息,请参阅我们详细的 部署指南。
在将YOLO11模型导出到TFLite时,如何排查常见问题?
如果在将 YOLO11 模型导出到 TFLite 时遇到错误,常见的解决方案包括:
- 检查包兼容性: 确保您使用的是兼容版本的 Ultralytics 和 TensorFlow。请参考我们的安装指南。
- 模型支持:通过查看 Ultralytics 导出文档页面,验证特定的 YOLO11 模型是否支持 TFLite 导出。
- 量化问题: 当使用 INT8 量化时,请确保在 中正确指定了数据集路径
data参数。
有关其他故障排除提示,请访问我们的 常见问题解答指南。