Skip to content

YOLO11模型导出至TFLite部署指南

TFLite Logo

在边缘设备或嵌入式设备上部署计算机视觉模型需要一种能够确保无缝性能的格式。

TensorFlow Lite(简称TFLite)导出格式允许您优化Ultralytics YOLO11模型,以在基于边缘设备的应用中进行目标检测图像分类等任务。在本指南中,我们将逐步介绍将您的模型转换为TFLite格式的步骤,使您的模型在各种边缘设备上表现更佳。

为什么要导出至TFLite?

TensorFlow Lite(简称TFLite)是Google于2017年5月作为其TensorFlow框架的一部分推出的开源深度学习框架,专为设备端推理(也称为边缘计算)设计。它为开发者提供了在移动设备、嵌入式设备和物联网设备以及传统计算机上执行其训练模型的必要工具。

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部署:Android和iOS应用程序使用TFLite可以分析基于边缘的摄像头流和传感器,以检测和识别物体。TFLite还提供了用SwiftObjective-C编写的原生iOS库。下面的架构图展示了使用TensorFlow Lite将训练好的模型部署到Android和iOS平台的过程。

Architecture

  • 通过嵌入式Linux实现:如果在Raspberry Pi上使用Ultralytics指南进行推理的速度无法满足您的使用场景需求,您可以使用导出的TFLite模型来加速推理时间。此外,通过使用Coral Edge TPU设备,还可以进一步提高性能。

  • 通过微控制器部署:TFLite模型也可以部署在微控制器和其他仅有几千字节内存的设备上。核心运行时只需在Arm Cortex M3上占用16 KB,并且可以运行许多基本模型。它不需要操作系统支持、任何标准C或C++库,也不需要动态内存分配。

导出至TFLite:转换您的YOLO11模型

您可以通过将模型转换为TFLite格式来提高设备端模型执行效率并优化性能。

安装

要安装所需的包,请运行:

安装

# 安装YOLO11所需的包
pip install ultralytics

有关安装过程的详细说明和最佳实践,请查看我们的Ultralytics 安装指南。在安装 YOLO11 所需包的过程中,如果遇到任何困难,请参考我们的常见问题指南以获取解决方案和提示。

使用方法

在深入使用说明之前,需要注意的是,虽然所有Ultralytics YOLO11 模型都可用于导出,但您可以确保所选模型支持导出功能在此

使用方法

from ultralytics import YOLO

# 加载 YOLO11 模型
model = YOLO("yolo11n.pt")

# 将模型导出为 TFLite 格式
model.export(format="tflite")  # 创建 'yolo11n_float32.tflite'

# 加载导出的 TFLite 模型
tflite_model = YOLO("yolo11n_float32.tflite")

# 运行推理
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# 将 YOLO11n PyTorch 模型导出为 TFLite 格式
yolo export model=yolo11n.pt format=tflite  # 创建 'yolo11n_float32.tflite'

# 使用导出的模型进行推理
yolo predict model='yolo11n_float32.tflite' source='https://ultralytics.com/images/bus.jpg'

有关导出过程的更多详细信息,请访问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

# 加载 YOLO11 模型
model = YOLO("yolo11n.pt")

# 将模型导出为 TFLite 格式
model.export(format="tflite")  # 创建 'yolo11n_float32.tflite'

对于 CLI 用户,您可以使用以下命令实现此操作:

yolo export model=yolo11n.pt format=tflite  # 创建 'yolo11n_float32.tflite'

有关更多详细信息,请访问Ultralytics 导出指南

使用 TensorFlow Lite 进行 YOLO11 模型部署 的好处是什么?

TensorFlow Lite (TFLite) 是一个开源的深度学习框架,专为设备上的推理设计,非常适合在移动、嵌入式和物联网设备上部署 YOLO11 模型。主要好处包括:

  • 设备上优化:通过本地处理数据来最小化延迟并增强隐私。
  • 平台兼容性:支持 Android、iOS、嵌入式 Linux 和 MCU。
  • 性能:利用硬件加速来优化模型速度和效率。 要了解更多信息,请查看 TFLite 指南

是否可以在 Raspberry Pi 上运行 YOLO11 TFLite 模型?

是的,您可以在 Raspberry Pi 上运行 YOLO11 TFLite 模型以提高推理速度。首先,按照这里的说明将您的模型导出为 TFLite 格式。然后,使用 TensorFlow Lite Interpreter 等工具在您的 Raspberry Pi 上执行模型。

为了进一步优化,您可以考虑使用 Coral Edge TPU。有关详细步骤,请参阅我们的 Raspberry Pi 部署指南

我可以在微控制器上使用 TFLite 模型进行 YOLO11 预测吗?

是的,TFLite 支持在资源有限的微控制器上部署。TFLite 的核心运行时在 Arm Cortex M3 上仅需 16 KB 内存,并且可以运行基本的 YOLO11 模型。这使其适合部署在计算能力和内存有限的设备上。

要开始使用,请访问 TFLite Micro for Microcontrollers 指南

哪些平台与 TFLite 导出的 YOLO11 模型兼容?

TensorFlow Lite 提供了广泛的平台兼容性,使您能够在多种设备上部署 YOLO11 模型,包括:

  • Android 和 iOS:通过 TFLite Android 和 iOS 库提供原生支持。
  • 嵌入式 Linux:适用于单板计算机,如 Raspberry Pi。
  • 微控制器:适用于资源受限的 MCU。

有关部署选项的更多信息,请参阅我们的详细 部署指南

如何解决 YOLO11 模型导出到 TFLite 时的常见问题?

如果在将 YOLO11 模型导出到 TFLite 时遇到错误,常见的解决方案包括:

  • 检查包兼容性:确保您使用的是兼容版本的 Ultralytics 和 TensorFlow。请参阅我们的 安装指南
  • 模型支持:验证特定的 YOLO11 模型是否支持 TFLite 导出,请查看这里

有关更多故障排除提示,请访问我们的 常见问题指南


📅 Created 7 months ago ✏️ Updated 13 days ago

Comments