跳至内容

YOLOv8 模型导出到 TFLite 的部署指南

TFLite 徽标

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

TensorFlow Lite 或 TFLite 导出格式可让您优化您的 Ultralytics YOLOv8模型,以便在基于边缘设备的应用中执行对象检测和图像分类等任务。在本指南中,我们将介绍将模型转换为 TFLite 格式的步骤,使您的模型更容易在各种边缘设备上良好运行。

为什么要导出到 TFLite?

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

TensorFlow TFLite 兼容多种平台,包括嵌入式 Linux、Android 、iOS 和 MCU。将模型导出到 TFLite 可使您的应用程序更快、更可靠,并能离线运行。

TFLite 型号的主要特点

TFLite 模型具有多种关键功能,可帮助开发人员在移动、嵌入式和边缘设备上运行模型,从而实现设备上的机器学习:

  • 设备上优化:TFLite 对设备上的 ML 进行了优化,通过本地处理数据来减少延迟,通过不传输个人数据来提高私密性,并尽量缩小模型尺寸以节省空间。

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

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

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

TFLite 中的部署选项

在我们查看导出代码之前 YOLOv8 模型转换为 TFLite 格式,让我们了解 TFLite 模型通常是如何使用的。

TFLite 为机器学习模型提供各种设备上部署选项,包括

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

建筑学

  • 使用嵌入式 Linux 实现:如果使用Ultralytics 指南树莓派上运行推理不能满足您的使用要求,您可以使用导出的 TFLite 模型来加快推理时间。此外,还可以利用Coral EdgeTPU 设备进一步提高性能。

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

导出到 TFLite:转换您的YOLOv8 模型

通过将它们转换为 TFLite 格式,可以提高设备上模型的执行效率并优化性能。

安装

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

安装

# Install the required package for YOLOv8
pip install ultralytics

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

使用方法

在了解使用说明之前,需要注意的是,虽然Ultralytics YOLOv8 的所有 型号都可以导出,但您可以在此确保您选择的型号支持导出功能。

使用方法

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

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

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

# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to TFLite format
yolo export model=yolov8n.pt format=tflite  # creates 'yolov8n_float32.tflite'

# Run inference with the exported model
yolo predict model='yolov8n_float32.tflite' source='https://ultralytics.com/images/bus.jpg'

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

部署导出的YOLOv8 TFLite 模型

成功将Ultralytics YOLOv8 模型导出为 TFLite 格式后,现在就可以部署它们了。运行 TFLite 模型的首要和推荐的第一步是使用YOLO("model.tflite") 方法,如前面的使用代码片段所述。不过,有关在其他各种设置中部署 TFLite 模型的深入说明,请参阅以下资源:

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

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

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

摘要

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

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

此外,如果您对Ultralytics YOLOv8 集成感兴趣,请务必查看我们的集成指南页面。您会在那里找到大量有用的信息和见解。

常见问题

如何将YOLOv8 模型导出为 TFLite 格式?

要将YOLOv8 模型导出为 TFLite 格式,可以使用Ultralytics 库。首先,使用

pip install ultralytics

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

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

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

对于CLI 用户,您可以通过以下方式实现这一目标:

yolo export model=yolov8n.pt format=tflite  # creates 'yolov8n_float32.tflite'

更多详情,请访问Ultralytics 出口指南

使用TensorFlow Lite 部署YOLOv8 模型有什么好处?

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

  • 设备上优化:通过本地处理数据,最大限度地减少延迟并提高私密性。
  • 平台兼容性:支持Android 、iOS 、嵌入式 Linux 和 MCU。
  • 性能利用硬件加速优化模型速度和效率。

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

有可能在 Raspberry Pi 上运行YOLOv8 TFLite 模型吗?

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

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

能否在微控制器上使用 TFLite 模型进行YOLOv8 预测?

是的,TFLite 支持在资源有限的微控制器上部署。在 Arm Cortex M3 上,TFLite 的核心运行时只需 16 KB 内存,即可运行基本的YOLOv8 模型。因此,它适合部署在计算能力和内存最小的设备上。

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

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

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

  • Android 和iOS :通过 TFLiteAndroid 和iOS 库提供本地支持。
  • 嵌入式 Linux:是 Raspberry Pi 等单板计算机的理想选择。
  • 微控制器:适用于资源有限的 MCU。

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

在YOLOv8 模型导出到 TFLite 的过程中,如何排除常见问题?

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

  • 检查软件包兼容性:确保您使用的是Ultralytics 和TensorFlow 的兼容版本。请参阅我们的安装指南
  • 型号支持:通过在此处选中验证特定YOLOv8 型号是否支持 TFLite 导出。

有关其他故障排除技巧,请访问我们的常见问题指南



创建于 2024-03-01,更新于 2024-07-05
作者:glenn-jocher(6)、abirami-vina(1)

评论