跳至内容

学习从YOLOv8 模型导出至 TFLite EdgeTPU 格式

在计算能力有限的设备(如移动或嵌入式系统)上部署计算机视觉模型可能非常棘手。使用为提高性能而优化的模型格式可以简化这一过程。TensorFlow LiteEdgeTPU或 TFLite EdgeTPU 模型格式旨在使用最少的功率,同时为神经网络提供快速性能。

导出到 TFLite EdgeTPU 格式的功能允许您优化您的 Ultralytics YOLOv8模型进行高速和低功耗推理。在本指南中,我们将指导您将模型转换为 TFLite EdgeTPU 格式,使您的模型更容易在各种移动和嵌入式设备上良好运行。

为什么要导出到 TFLite EdgeTPU ?

将模型导出到TensorFlow EdgeTPU 可快速高效地完成机器学习任务。这项技术适用于功率、计算资源和连接能力有限的应用。EdgeTPU 是Google 的硬件加速器。它可加快TensorFlow Lite 模型在边缘设备上的运行速度。下图显示了相关过程的示例。

TFLite EdgeTPU

边缘TPU 可使用量化模型。量化可使模型更小、更快,而不会损失太多准确性。它是边缘计算有限资源的理想选择,通过减少延迟和在本地快速处理数据,使应用程序能够快速响应,而无需依赖云。本地处理还能保证用户数据的私密性和安全性,因为数据不会发送到远程服务器。

TFLite Edge 的主要功能TPU

以下是使 TFLite EdgeTPU 成为开发人员最佳模型格式选择的主要功能:

  • 优化边缘设备的性能:TFLite EdgeTPU 通过量化、模型优化、硬件加速和编译器优化实现了高速神经网络性能。其简约的架构使其体积更小,成本更低。

  • 高计算吞吐量:TFLite EdgeTPU 结合了专门的硬件加速和高效的运行时执行,以实现高计算吞吐量。它非常适合在边缘设备上部署对性能有严格要求的机器学习模型。

  • 高效矩阵计算:TensorFlow EdgeTPU 针对矩阵运算进行了优化,这对神经网络计算至关重要。这种效率是机器学习模型的关键,尤其是那些需要大量复杂矩阵乘法和变换的模型。

TFLite Edge 的部署选项TPU

在我们开始讨论如何导出之前 YOLOv8 模型到 TFLite Edge TPU 格式,让我们了解一下TFLite Edge在哪里 TPU 通常使用模型。

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

  • 设备上部署:TensorFlow 边缘TPU 模型可直接部署在移动和嵌入式设备上。设备上部署允许模型直接在硬件上执行,无需云连接。

  • 使用云TensorFlow TPU的边缘计算:在边缘设备处理能力有限的情况下,TensorFlow Edge TPU 可将推理任务卸载到配备 TPU 的云服务器上。

  • 混合部署:混合部署方法结合了设备上部署和云计算部署,为部署机器学习模型提供了一个多功能、可扩展的解决方案。其优势包括:设备上处理可实现快速响应,云计算可实现更复杂的计算。

将YOLOv8 模型导出到 TFLite EdgeTPU

您可以通过将YOLOv8 型号转换为TensorFlow EdgeTPU 来扩展型号兼容性和部署灵活性。

安装

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

安装

# 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 Edge TPU format
model.export(format="edgetpu")  # creates 'yolov8n_full_integer_quant_edgetpu.tflite'

# Load the exported TFLite Edge TPU model
edgetpu_model = YOLO("yolov8n_full_integer_quant_edgetpu.tflite")

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

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

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

部署导出YOLOv8 TFLite EdgeTPU 模型

成功将Ultralytics YOLOv8 模型导出为 TFLite EdgeTPU 格式后,现在就可以部署它们了。运行 TFLite EdgeTPU 模型的首要和推荐的第一步是使用YOLO("model_edgetpu.tflite") 方法,如前面的使用代码片段所述。

不过,有关部署 TFLite EdgeTPU 型号的深入说明,请参阅以下资源:

摘要

在本指南中,我们学习了如何导出 Ultralytics YOLOv8 模型到 TFLite Edge TPU 格式。通过执行上述步骤,您可以提高计算机视觉应用程序的速度和功能。

有关使用的更多详情,请访问EdgeTPU 官方网站

此外,有关其他Ultralytics YOLOv8 集成的更多信息,请访问我们的集成指南页面。在那里,您将发现宝贵的资源和见解。

常见问题

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

要将YOLOv8 模型导出为 TFLite EdgeTPU 格式,可以按照以下步骤操作:

使用方法

from ultralytics import YOLO

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

# Export the model to TFLite Edge TPU format
model.export(format="edgetpu")  # creates 'yolov8n_full_integer_quant_edgetpu.tflite'

# Load the exported TFLite Edge TPU model
edgetpu_model = YOLO("yolov8n_full_integer_quant_edgetpu.tflite")

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

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

有关将模型导出为其他格式的完整详细信息,请参阅我们的导出指南

将YOLOv8 模型导出到 TFLite EdgeTPU 有什么好处?

将YOLOv8 模型导出到 TFLite EdgeTPU 有几个好处:

  • 优化性能:以最低的功耗实现高速神经网络性能。
  • 减少延迟:快速本地数据处理,无需依赖云。
  • 增强隐私性:本地处理可确保用户数据的私密性和安全性。

这使其成为边缘计算应用的理想选择,因为设备的功率和计算资源有限。进一步了解为什么要出口

我可以在移动和嵌入式设备上部署 TFLite EdgeTPU 型号吗?

是的,TensorFlow Lite EdgeTPU 模型可直接部署在移动和嵌入式设备上。这种部署方法允许模型直接在硬件上执行,从而提供更快、更高效的推理。有关集成示例,请查看我们在Raspberry Pi 上部署 Coral EdgeTPU 的指南

TFLite EdgeTPU 型号有哪些常见用途?

TFLite EdgeTPU 型号的常见使用情况包括:

  • 智能摄像头:加强实时图像和视频分析。
  • 物联网设备:实现智能家居和工业自动化。
  • 医疗保健:加速医学成像和诊断。
  • 零售:改进库存管理和顾客行为分析。

这些应用得益于 TFLite EdgeTPU 型号的高性能和低功耗。了解更多使用场景

如何在导出或部署 TFLite EdgeTPU 模型时排除故障?

如果您在导出或部署 TFLite EdgeTPU 模型时遇到问题,请参阅我们的常见问题指南了解故障排除技巧。本指南涵盖常见问题和解决方案,可帮助您确保顺利运行。如需更多支持,请访问我们的帮助中心



创建于 2024-03-13,更新于 2024-07-05
作者:glenn-jocher(5)、Burhan-Q(1)、abirami-vina(1)

评论