Link to this sectionYOLO26 模型导出至 TFLite 部署指南#
在边缘设备或嵌入式设备上部署 computer vision 模型,需要一种能够确保无缝性能的格式。
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.
Link to this section为什么要导出到 TFLite?#
TensorFlow Lite(简称 TFLite)由 Google 于 2017 年 5 月作为其 TensorFlow 框架的一部分引入,是一个开源深度学习框架,专为设备端推理(也称为 edge computing)而设计。它为开发者提供了必要的工具,以便在移动设备、嵌入式设备、物联网设备以及传统计算机上执行已训练的模型。
TensorFlow Lite 兼容多种平台,包括嵌入式 Linux、Android、iOS 和微控制器 (MCU)。将模型导出到 TFLite 可以使你的应用程序更快、更可靠,并具备离线运行能力。
Link to this sectionTFLite 模型的主要功能#
TFLite 模型提供了一系列关键功能,通过帮助开发者在移动、嵌入式和边缘设备上运行模型,从而实现设备端机器学习:
-
设备端优化:TFLite 针对设备端 ML 进行了优化,通过本地处理数据来减少延迟,通过不传输个人数据来增强隐私性,并最小化模型大小以节省空间。
-
多平台支持:TFLite 提供了广泛的平台兼容性,支持 Android、iOS、嵌入式 Linux 和微控制器。
-
多语言支持:TFLite 兼容多种编程语言,包括 Java、Swift、Objective-C、C++ 和 Python。
-
高性能:通过硬件加速和模型优化实现卓越性能。
Link to this sectionTFLite 中的部署选项#
在查看将 YOLO26 模型导出到 TFLite 格式的代码之前,让我们了解一下 TFLite 模型通常是如何使用的。
TFLite 为机器学习模型提供了多种设备端部署选项,包括:
- 使用 Android 和 iOS 部署:带有 TFLite 的 Android 和 iOS 应用程序都可以分析边缘摄像头的馈送和传感器,以检测和识别物体。TFLite 还提供使用 Swift 和 Objective-C 编写的原生 iOS 库。下方的架构图展示了使用 TensorFlow Lite 将训练好的模型部署到 Android 和 iOS 平台的过程。
-
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 模型也可以部署在仅有几 KB 内存的微控制器和其他设备上。核心运行时在 Arm Cortex M3 上仅占 16 KB,且能够运行许多基础模型。它不需要操作系统支持、任何标准的 C 或 C++ 库,也不需要动态内存分配。
Link to this section导出至 TFLite:转换你的 YOLO26 模型#
你可以通过将模型转换为 TFLite 格式来提高设备端模型执行效率并优化性能。
Link to this section安装#
要安装所需的包,请运行:
# Install the required package for YOLO26
pip install ultralytics有关安装过程的详细说明和最佳实践,请查看我们的Ultralytics 安装指南。如果在为 YOLO26 安装所需包时遇到任何困难,请咨询我们的常见问题指南获取解决方案和提示。
Link to this section使用方法#
所有 Ultralytics YOLO26 模型 都设计为开箱即用,支持导出,从而轻松集成到你首选的部署工作流程中。你可以 查看支持的导出格式和配置选项的完整列表 以选择最适合你应用程序的设置。
TFLite 格式支持 Export、Predict 和 Validate 模式。导出你的模型,然后加载该导出模型以运行推理或验证其准确性。
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo26n_float32.tflite'from ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n_float32.tflite")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n_float32.tflite")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this section导出参数#
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
format | str | 'tflite' | 导出模型的目标格式,定义了与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入的所需图像尺寸。可以是一个用于正方形图像的整数,或者是一个用于特定尺寸的元组 (height, width)。 |
half | bool | False | 启用 FP16(半精度)量化,可减小模型大小并可能在受支持的硬件上加快推理速度。 |
int8 | bool | False | 激活 INT8 量化,进一步压缩模型并以极小的 accuracy 损失加快推理速度,主要用于边缘设备。 |
nms | bool | False | 添加非极大值抑制(NMS),这对实现准确且高效的检测后处理至关重要。 |
batch | int | 1 | 指定导出模型的批量推理大小,或导出模型在 predict 模式下并发处理的最大图像数量。 |
data | str | 'coco8.yaml' | 指向 dataset 配置文件的路径(默认为 coco8.yaml),对于量化至关重要。 |
fraction | float | 1.0 | 指定用于 INT8 量化校准的数据集比例。允许在完整数据集的子集上进行校准,这对于实验或资源受限时非常有用。如果在启用 INT8 时未指定此参数,则将使用完整数据集。 |
device | str | None | 指定用于导出的设备:CPU (device=cpu),或 Apple 芯片的 MPS (device=mps)。 |
有关导出过程的更多详细信息,请访问 Ultralytics 导出文档页面。
Link to this section部署导出的 YOLO26 TFLite 模型#
在成功将 Ultralytics YOLO26 模型导出为 TFLite 格式后,你现在可以部署它们了。运行 TFLite 模型的主要且推荐的第一步是使用 YOLO("model.tflite") 方法,如前文用法代码片段所示。不过,若要获取在其他各种设置中部署 TFLite 模型的深入说明,请查看以下资源:
-
Android:一份将 TensorFlow Lite 集成到 Android 应用程序的快速入门指南,提供了设置和运行 machine learning 模型的操作步骤。
-
iOS:查看这份面向开发者的详细指南,了解如何在 iOS 应用程序中集成和部署 TensorFlow Lite 模型,其中提供了分步说明和资源。
-
端到端示例:此页面概述了各种 TensorFlow Lite 示例,展示了旨在帮助开发者在移动和边缘设备上的机器学习项目中实现 TensorFlow Lite 的实际应用和教程。
Link to this section总结#
在本指南中,我们重点介绍了如何导出为 TFLite 格式。通过将 Ultralytics YOLO26 模型转换为 TFLite 模型格式,你可以提高 YOLO26 模型的效率和速度,使其在边缘计算环境中更加有效且适用。
有关用法的更多详细信息,请访问 TFLite 官方文档。
此外,如果你对其他 Ultralytics YOLO26 集成感兴趣,请查看我们的 集成指南页面。你会在那里找到许多有用的信息和见解。
Link to this section常见问题解答#
Link to this section如何将 YOLO26 模型导出为 TFLite 格式?#
要将 YOLO26 模型导出为 TFLite 格式,你可以使用 Ultralytics 库。首先,使用以下命令安装所需的包:
pip install ultralytics然后,使用以下代码片段导出你的模型:
from ultralytics import YOLO
# Load a 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 导出指南。
Link to this section使用 TensorFlow Lite 进行 YOLO26 模型部署有什么好处?#
TensorFlow Lite (TFLite) 是一个开源的 deep learning 框架,专为设备端推理而设计,使其非常适合在移动设备、嵌入式设备和物联网设备上部署 YOLO26 模型。主要好处包括:
- 设备端优化:通过本地处理数据来最小化延迟并增强隐私性。
- 平台兼容性:支持 Android、iOS、嵌入式 Linux 和 MCU。
- 性能:利用硬件加速来优化模型速度和效率。
欲了解更多信息,请查看 TFLite 指南。
Link to this section可以在 Raspberry Pi 上运行 YOLO26 TFLite 模型吗?#
是的,你可以在 Raspberry Pi 上运行 YOLO26 TFLite 模型以提高推理速度。首先,按照上述说明将模型导出为 TFLite 格式。然后,使用 TensorFlow Lite Interpreter 等工具在 Raspberry Pi 上执行模型。
如需进一步优化,你可以考虑使用 Coral Edge TPU。有关详细步骤,请参阅我们的 Raspberry Pi 部署指南 和 Edge TPU 集成指南。
Link to this section我可以在微控制器上使用 TFLite 模型进行 YOLO26 预测吗?#
是的,TFLite 支持在资源受限的微控制器上部署。TFLite 的核心运行时在 Arm Cortex M3 上仅需 16 KB 内存,并且可以运行基础的 YOLO26 模型。这使其适合部署在计算能力和内存极小的设备上。
要开始使用,请访问 TFLite Micro for Microcontrollers 指南。
Link to this section哪些平台兼容 TFLite 导出的 YOLO26 模型?#
TensorFlow Lite 提供了广泛的平台兼容性,允许你在各种设备上部署 YOLO26 模型,包括:
- Android 和 iOS:通过 TFLite Android 和 iOS 库提供原生支持。
- 嵌入式 Linux:非常适合单板计算机,例如 Raspberry Pi。
- 微控制器:适合资源受限的 MCU。
有关部署选项的更多信息,请参阅我们详细的 部署指南。
Link to this section如何在 YOLO26 模型导出至 TFLite 的过程中排查常见问题?#
如果在将 YOLO26 模型导出到 TFLite 时遇到错误,常见的解决方法包括:
- 检查包兼容性:确保你使用的是兼容版本的 Ultralytics 和 TensorFlow。请参阅我们的 安装指南。
- 模型支持:通过查看 Ultralytics 导出文档页面,确认特定的 YOLO26 模型是否支持 TFLite 导出。
- 量化问题:使用 INT8 量化时,请确保你的数据集路径在
data参数中已正确指定。
如需更多排查技巧,请访问我们的 常见问题指南。