学习如何将 YOLO26 模型导出为 TFLite Edge TPU 格式#
在移动设备或嵌入式系统等计算能力有限的设备上部署计算机视觉模型可能颇具挑战。使用针对更快性能优化的模型格式可以简化这一过程。TensorFlow Lite Edge TPU,也称为 TFLite Edge TPU 模型格式,旨在以尽可能低的功耗为神经网络提供快速性能。
导出为 TFLite Edge TPU 格式的功能可优化你的 Ultralytics YOLO26 模型,从而实现高速、低功耗推理。本指南将介绍如何将模型转换为 TFLite Edge TPU 格式,让模型能够更轻松地在各种移动设备和嵌入式设备上高效运行。
为什么要导出为 TFLite Edge TPU?#
将模型导出到 TensorFlow Edge TPU 可让机器学习任务运行得更快、更高效。这项技术适用于电力、计算资源和连接能力有限的应用场景。Edge TPU 是 Google 推出的一款硬件加速器,可加速边缘设备上的 TensorFlow Lite 模型。下图展示了这一过程的示例。
Edge TPU 可与量化模型配合使用。量化可以缩小模型并提高运行速度,同时不会显著损失精度。它非常适合资源有限的边缘计算环境:通过降低延迟并加快本地数据处理,让应用快速响应,同时无需依赖云端。本地处理也能保护用户数据的隐私和安全,因为数据不会发送到远程服务器。
TFLite Edge TPU 的主要功能#
以下是让 TFLite Edge TPU 成为开发者理想模型格式的主要功能:
-
针对边缘设备优化性能:TFLite Edge TPU 通过量化、模型优化、硬件加速和编译器优化,实现高性能的神经网络运算。其精简架构有助于缩小体积并降低成本。
-
高计算吞吐量:TFLite Edge TPU 结合专用硬件加速和高效运行时执行,实现高计算吞吐量。它非常适合在边缘设备上部署性能要求严格的机器学习模型。
-
高效矩阵计算:TensorFlow Edge TPU 针对矩阵运算进行了优化,而矩阵运算对于神经网络计算至关重要。这种高效性对于机器学习模型尤为重要,尤其是那些需要进行大量复杂矩阵乘法和变换的模型。
TFLite Edge TPU 的部署选项#
在开始介绍如何将 YOLO26 模型导出为 TFLite Edge TPU 格式之前,我们先了解一下 TFLite Edge TPU 模型通常用于哪些场景。
TFLite Edge TPU 为机器学习模型提供多种部署选项,包括:
-
设备端部署:TensorFlow Edge TPU 模型可以直接部署到移动设备和嵌入式设备上。设备端部署让模型能够直接在硬件上运行,无需连接云端;你可以将模型嵌入应用程序包中,也可以按需下载模型。
-
混合部署:混合方式结合了设备端部署和云端部署,为机器学习模型的部署提供灵活且可扩展的解决方案。其优势包括通过设备端处理快速响应,以及利用云计算完成更复杂的计算。
支持的任务#
Edge TPU 导出支持 Ultralytics 七项任务中的六项。语义分割仅适用于 YOLO26,因为只有 YOLO26 系列包含该检测头。Edge TPU 不支持深度估计,因为其 INT8 模型会输出 Edge TPU 编译器无法解析的 EXP v2 运算符。
Edge TPU 编译器会将其支持的运算映射到加速器上,并将其余运算留给 CPU 执行,因此支持某项任务并不意味着该任务的每项运算都会在 TPU 上运行。
将 YOLO26 模型导出为 TFLite Edge TPU 格式#
将 YOLO26 模型转换为 TensorFlow Edge TPU 格式,可以扩展模型兼容性并提高部署灵活性。
安装#
要安装所需软件包,请运行:
# Install the required package for YOLO26
pip install ultralytics有关安装流程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。安装 YOLO26 所需的软件包时,如果遇到困难,请查阅我们的常见问题指南,获取解决方案和建议。
用法#
所有 Ultralytics YOLO26 模型均支持开箱即用的导出,便于你将模型集成到首选的部署工作流中。你可以查看支持的导出格式和配置选项的完整列表,为你的应用选择最佳配置。
TFLite Edge TPU 格式支持导出、预测和验证模式。推理和验证在 Coral Edge TPU 硬件上运行。导出模型后,加载导出的模型即可运行推理或验证其准确率。
from ultralytics import YOLO
# 加载 YOLO26 模型
model = YOLO("yolo26n.pt")
# 将模型导出为 TFLite Edge TPU 格式
model.export(format="edgetpu") # 创建 'yolo26n_saved_model/yolo26n_full_integer_quant_edgetpu.tflite'from ultralytics import YOLO
# 加载导出的 TFLite Edge TPU 模型
model = YOLO("yolo26n_saved_model/yolo26n_full_integer_quant_edgetpu.tflite")
# 运行推理
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# 加载导出的 TFLite Edge TPU 模型
model = YOLO("yolo26n_saved_model/yolo26n_full_integer_quant_edgetpu.tflite")
# 在 COCO8 数据集上验证准确率
metrics = model.val(data="coco8.yaml")导出参数#
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
format | str | 'edgetpu' | 导出模型的目标格式,用于定义与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入所需的图像尺寸。正方形图像可使用整数;若要指定具体尺寸,则可使用元组 (height, width)。 |
quantize | int 或 str | 8/自动 | 量化精度。Edge TPU 要求使用 8 (INT8),并会自动启用该设置,以压缩模型并加快边缘设备上的推理速度,同时最大限度地减少准确率损失。此设置替代了已弃用的 half/int8 标志。 |
opset | int | None | 指定中间 ONNX 图的 ONNX opset 版本。若未设置,则使用最新的受支持版本。 |
data | str | None | 数据集 YAML 文件路径,量化时必须提供;分类任务则接受数据集目录或内置数据集名称。如果使用 quantize=8 时未指定,Ultralytics 会根据模型任务选择默认校准数据集。 |
fraction | float、int 或 list | 1.0 | 校准子集,可按比例、图像数量或 [train, val, test] 比例/数量指定。包含两个项目的列表会让 test 保持完整,而 0 会跳过它。 |
device | str | None | 指定导出所用的设备:CPU (device=cpu)。 |
请确保使用 x86 Linux 机器导出 Edge TPU 模型。
有关导出流程的更多详情,请访问 Ultralytics 导出文档页面。
部署导出的 YOLO26 TFLite Edge TPU 模型#
成功将 Ultralytics YOLO26 模型导出为 TFLite Edge TPU 格式后,你就可以部署这些模型了。运行 TFLite Edge TPU 模型的首选且推荐的第一步,是使用 YOLO("model_edgetpu.tflite") 方法,如前面的用法代码片段所示。
若要详细了解如何部署 TFLite Edge TPU 模型,请参阅以下资源:
-
在 Raspberry Pi 上使用 Ultralytics YOLO26 部署 Coral Edge TPU:了解如何将 Coral Edge TPU 集成到 Raspberry Pi,以增强机器学习能力。
-
代码示例:查看实用的 TensorFlow Edge TPU 部署示例,快速启动你的项目。
-
使用 Python 在 Edge TPU 上运行推理:了解如何在 Edge TPU 应用中使用 TensorFlow Lite Python API,包括设置和使用指南。
总结#
本指南介绍了如何将 Ultralytics YOLO26 模型导出为 TFLite Edge TPU 格式。按照上述步骤操作,你可以提升计算机视觉应用的速度和性能。
如需了解更多用法详情,请访问Coral Edge TPU 官方网站。
此外,如需了解更多关于其他 Ultralytics YOLO26 集成的信息,请访问我们的集成指南页面。在这里,你可以找到有价值的资源和见解。
常见问题#
要将 YOLO26 模型导出为 TFLite Edge TPU 格式,可以按照以下步骤操作:
用法from ultralytics import YOLO # 加载 YOLO26 模型 model = YOLO("yolo26n.pt") # 将模型导出为 TFLite Edge TPU 格式 model.export(format="edgetpu") # 创建 'yolo26n_saved_model/yolo26n_full_integer_quant_edgetpu.tflite' # 加载导出的 TFLite Edge TPU 模型 edgetpu_model = YOLO("yolo26n_saved_model/yolo26n_full_integer_quant_edgetpu.tflite") # 运行推理 results = edgetpu_model("https://ultralytics.com/images/bus.jpg")有关将模型导出为其他格式的完整详情,请参阅我们的导出指南。
可以,TensorFlow Lite Edge TPU 模型可以直接部署到移动设备和嵌入式设备上。这种部署方式让模型能够直接在硬件上运行,从而实现更快、更高效的推理。有关集成示例,请查看我们的在 Raspberry Pi 上部署 Coral Edge TPU 指南。
TFLite Edge TPU 模型的常见用例包括:
- 智能摄像头:增强实时图像和视频分析能力。
- IoT 设备:实现智能家居和工业自动化。
- 医疗保健:加速医学影像处理和诊断。
- 零售:改善库存管理和客户行为分析。
这些应用受益于 TFLite Edge TPU 模型的高性能和低功耗。了解更多使用场景。