跳至内容

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

TFLite 徽标

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

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

为什么要导出到 TFLite?

TensorFlow Lite(简称 TFLite)是谷歌于 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 模型的深入说明,请参阅以下资源:

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

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

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

摘要

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

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

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



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

评论