关于 YOLO26 模型导出至 TFLite 以进行部署的指南

TensorFlow Lite edge deployment framework

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

The TensorFlow Lite or TFLite export format allows you to optimize your Ultralytics YOLO26 models for tasks like object detection and image classification in edge device-based applications. In this guide, we'll walk through the steps for converting your models to the TFLite format, making it easier for your models to perform well on various edge devices.

为什么要导出至 TFLite?

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

TensorFlow Lite 与多种平台兼容,包括嵌入式 Linux、Android、iOS 和微控制器(MCU)。将模型导出为 TFLite 可以让你的应用程序运行得更快、更可靠,并支持离线运行。

TFLite 模型的主要功能

TFLite 模型提供了一系列核心功能,通过帮助开发者在移动、嵌入式和边缘设备上运行模型,从而实现端侧机器学习:

  • 端侧优化:TFLite 针对端侧机器学习进行了优化,通过本地处理数据来降低延迟,通过不传输个人数据来增强隐私性,并最小化模型大小以节省空间。

  • 多平台支持:TFLite 提供了广泛的平台兼容性,支持 Android、iOS、嵌入式 Linux 和微控制器。

  • 多语言支持:TFLite 与多种编程语言兼容,包括 Java、Swift、Objective-C、C++ 和 Python。

  • 高性能:通过硬件加速和模型优化实现卓越性能。

TFLite 中的部署选项

在我们查看将 YOLO26 模型导出至 TFLite 格式的代码之前,先来了解一下 TFLite 模型通常是如何使用的。

TFLite 为机器学习模型提供了多种端侧部署选项,包括:

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

TensorFlow Lite deployment architecture for mobile

  • Implementing with Embedded Linux: If running inferences on a Raspberry Pi using the Ultralytics Guide does not meet the speed requirements for your use case, you can use an exported TFLite model to accelerate inference times. Additionally, it's possible to further improve performance by utilizing a Coral Edge TPU device.

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

导出至 TFLite:转换你的 YOLO26 模型

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

安装

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

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

有关安装过程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。如果在安装 YOLO26 所需的软件包时遇到任何困难,请查阅我们的 常见问题指南 获取解决方案和建议。

使用方法

所有 Ultralytics YOLO26 模型 均设计为支持直接开箱导出,使你能够轻松将其集成到你首选的部署工作流中。你可以查看支持的导出格式和配置选项的完整列表,为你的应用选择最佳设置。

使用方法
  from ultralytics import YOLO

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

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

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

  # Run inference
  results = tflite_model("https://ultralytics.com/images/bus.jpg")

导出参数

参数类型默认值描述
formatstr'tflite'导出模型的目标格式,定义与各种部署环境的兼容性。
imgszinttuple640模型输入的所需图像尺寸。可以是正方形图像的整数,也可以是特定维度的元组 (height, width)
halfboolFalse启用 FP16(半精度)量化,减小模型大小并可能在受支持的硬件上加快推理速度。
int8boolFalse激活 INT8 量化,进一步压缩模型并以极小的准确性损失加快推理速度,主要适用于边缘设备。
nmsboolFalse添加非极大值抑制(NMS),这对于准确且高效的检测后处理至关重要。
batchint1指定导出模型的批量推理大小,或者导出模型在 predict 模式下将同时处理的最大图像数量。
datastr'coco8.yaml'数据集配置文件的路径(默认:coco8.yaml),这对量化至关重要。
fractionfloat1.0指定用于 INT8 量化校准的数据集比例。允许在完整数据集的子集上进行校准,这对于实验或资源受限时非常有用。如果在启用 INT8 时未指定,将使用完整数据集。
devicestrNone指定导出的设备:CPU (device=cpu),Apple 芯片的 MPS (device=mps)。

有关导出过程的更多详细信息,请访问 Ultralytics 导出文档页面

部署已导出的 YOLO26 TFLite 模型

成功将你的 Ultralytics YOLO26 模型导出为 TFLite 格式后,现在你可以部署它们了。运行 TFLite 模型的首选建议步骤是使用 YOLO("model.tflite") 方法,正如前文的使用代码片段所述。不过,若要获取在其他各种设置中部署 TFLite 模型的深入说明,请查看以下资源:

  • Android:一份将 TensorFlow Lite 集成到 Android 应用程序中的快速入门指南,提供了设置和运行 机器学习 模型的简单易懂步骤。

  • iOS:查看这份为开发者提供的详细指南,了解如何在 iOS 应用程序中集成和部署 TensorFlow Lite 模型,其中提供了分步说明和资源。

  • 端到端示例:此页面概述了各种 TensorFlow Lite 示例,展示了旨在帮助开发者在移动和边缘设备上的机器学习项目中实现 TensorFlow Lite 的实际应用和教程。

总结

在本指南中,我们重点介绍了如何导出至 TFLite 格式。通过将你的 Ultralytics YOLO26 模型转换为 TFLite 模型格式,你可以提高 YOLO26 模型的效率和速度,使其在边缘计算环境中更加有效且适用。

有关用法的更多详细信息,请访问 TFLite 官方文档

此外,如果你对其他 Ultralytics YOLO26 集成感兴趣,请查看我们的 集成指南页面。你会在那里找到许多有用的信息和见解。

常见问题 (FAQ)

我该如何将 YOLO26 模型导出至 TFLite 格式?

要将 YOLO26 模型导出至 TFLite 格式,你可以使用 Ultralytics 库。首先,使用以下命令安装所需的包:

pip install ultralytics

然后,使用以下代码片段导出你的模型:

from ultralytics import YOLO

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

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

对于 CLI 用户,你可以通过以下方式实现:

yolo export model=yolo26n.pt format=tflite # creates 'yolo26n_float32.tflite'

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

将 TensorFlow Lite 用于 YOLO26 模型部署有哪些好处?

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

  • 端侧优化:通过在本地处理数据,最小化延迟并增强隐私保护。
  • 平台兼容性:支持 Android、iOS、嵌入式 Linux 和 MCU。
  • 性能:利用硬件加速来优化模型速度和效率。

要了解更多信息,请查看 TFLite 指南

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

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

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

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

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

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

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

TensorFlow Lite 提供了广泛的平台兼容性,允许你在各种设备上部署 YOLO26 模型,包括:

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

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

在将 YOLO26 模型导出至 TFLite 过程中遇到常见问题时,我该如何排除故障?

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

  • 检查包兼容性:确保你使用的是兼容版本的 Ultralytics 和 TensorFlow。请参考我们的 安装指南
  • 模型支持:通过查看 Ultralytics 导出文档页面,验证特定的 YOLO26 模型是否支持 TFLite 导出。
  • 量化问题:使用 INT8 量化时,请确保在 data 参数中正确指定了你的数据集路径。

如需其他故障排除提示,请访问我们的 常见问题指南

评论