跳至内容

如何从YOLOv8 导出TF GraphDef 以进行部署

在不同环境中部署尖端计算机视觉模型(如YOLOv8 )时,可能会遇到兼容性问题。谷歌的TensorFlow GraphDef 或TF GraphDef 提供了一种解决方案,它为您的模型提供了一种序列化、与平台无关的表示方法。使用TF GraphDef 模型格式,您可以在不具备完整TensorFlow 生态系统的环境(如移动设备或专用硬件)中部署您的YOLOv8 模型。

在本指南中,我们将逐步指导您如何导出您的 Ultralytics YOLOv8模型导出为TF GraphDef 模型格式。通过转换模型,您可以简化部署,并在更广泛的应用和平台中使用YOLOv8 的计算机视觉功能。

TensorFlow GraphDef

为什么要导出到TF GraphDef ?

TF GraphDef 是TensorFlow 生态系统的一个强大组件,由 Google 开发。它可用于优化和部署模型,如YOLOv8 。导出到TF GraphDef 可以让我们将模型从研究转向实际应用。它允许模型在没有完整TensorFlow 框架的环境中运行。

GraphDef 格式将模型表示为序列化计算图。这使得各种优化技术成为可能,如常数折叠、量化和图转换。这些优化可确保高效执行、减少内存使用和加快推理速度。

GraphDef 模型可以使用 GPU、TPU 和人工智能芯片等硬件加速器,为YOLOv8 推论流水线带来显著的性能提升。TF GraphDef 格式创建了一个包含模型及其依赖项的独立软件包,从而简化了部署和集成到不同系统中的过程。

TF GraphDef 型号的主要特点

TF GraphDef 提供了简化模型部署和优化的独特功能。

下面来看看它的主要特点:

  • 模型序列化:TF GraphDef 提供了一种以独立于平台的格式序列化和存储TensorFlow 模型的方法。通过这种序列化表示,您可以在没有原始Python 代码库的情况下加载和执行模型,从而使部署变得更加容易。

  • 图形优化:TF GraphDef 可对计算图形进行优化。这些优化可以通过简化执行流程、减少冗余和调整操作以适应特定硬件来提高性能。

  • 部署灵活:导出为GraphDef 格式的模型可用于各种环境,包括资源受限的设备、网络浏览器和具有专用硬件的系统。这为更广泛地部署TensorFlow 模型提供了可能。

  • 生产重点:GraphDef 专为生产部署而设计。它支持高效执行、序列化功能以及与实际用例相一致的优化。

部署选项TF GraphDef

在我们深入研究将YOLOv8 模型导出到TF GraphDef 的过程之前,让我们来看看使用这种格式的一些典型部署情况。

下面介绍如何通过TF GraphDef 在各种平台上高效部署。

  • TensorFlow 服务:该框架设计用于在生产环境中部署TensorFlow 模型。TensorFlow Serving 提供模型管理、版本管理和基础架构,以实现大规模的高效模型服务。这是一种无缝方式,可将基于GraphDef 的模型集成到生产网络服务或 API 中。

  • 移动和嵌入式设备:利用TensorFlow Lite 等工具,您可以将TF GraphDef 模型转换为针对智能手机、平板电脑和各种嵌入式设备优化的格式。然后,您的模型可用于设备推理,在本地执行,通常可提高性能并提供离线功能。

  • 网络浏览器: TensorFlow.js 可在网络浏览器中直接部署TF GraphDef 模型。它通过 JavaScript 利用YOLOv8 的功能,为在客户端运行的实时对象检测应用程序铺平了道路。

  • 专用硬件: TF GraphDef 与平台无关的特性使其可以使用定制硬件,如加速器和 TPU(Tensor Processing Units)。这些设备可以为计算密集型模型提供性能优势。

将YOLOv8 模型导出到TF GraphDef

您可以将YOLOv8 对象检测模型转换为与各种系统兼容的TF GraphDef 格式,以提高其跨平台性能。

安装

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

安装

# 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 TF GraphDef format
model.export(format='pb')  # creates 'yolov8n.pb'

# Load the exported TF GraphDef model
tf_graphdef_model = YOLO('yolov8n.pb')

# Run inference
results = tf_graphdef_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TF GraphDef format
yolo export model=yolov8n.pt format=pb  # creates 'yolov8n.pb'

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

有关支持的导出选项的详细信息,请访问Ultralytics 部署选项文档页面

部署导出的YOLOv8 TF GraphDef 模型

将YOLOv8 模型导出为TF GraphDef 格式后,下一步就是部署。运行TF GraphDef 模型的主要和推荐的第一步是使用YOLO("model.pb") 方法,如之前的使用代码片段所示。

不过,要了解有关部署TF GraphDef 模型的更多信息,请参阅以下资源:

  • TensorFlow 服务:TensorFlow 服务指南,教授如何在生产环境中高效部署和服务机器学习模型。

  • TensorFlow 精简版:本页介绍如何使用TensorFlow Lite 将机器学习模型转换为针对设备上推理而优化的格式。

  • TensorFlow.js:模型转换指南,教您如何将TensorFlow 或 Keras 模型转换为TensorFlow.js 格式,以便在网络应用程序中使用。

摘要

在本指南中,我们探讨了如何将Ultralytics YOLOv8 模型导出为TF GraphDef 格式。这样,您就可以在不同环境中灵活部署优化后的YOLOv8 模型。

有关使用的更多详情,请访问TF GraphDef 官方文档

有关将Ultralytics YOLOv8 与其他平台和框架集成的更多信息,请不要忘记查看我们的集成指南页面。这里有大量资源和见解,可帮助您在项目中充分利用YOLOv8 。



创建于 2024-03-22,更新于 2024-04-03
作者:RizwanMunawar (1), Burhan-Q (1), abirami-vina (1)RizwanMunawar(1),Burhan-Q(1),abirami-vina(1)

评论