从 YOLO26 模型格式导出为 TF.js 模型格式
直接在浏览器或 Node.js 中部署 机器学习 模型可能会很棘手。你需要确保模型格式已针对更快的性能进行了优化,以便该模型能在用户的设备上本地运行交互式应用程序。TensorFlow.js(或 TF.js)模型格式旨在以极低的功耗实现快速的性能表现。
“导出为 TF.js 模型格式”功能允许你优化 Ultralytics YOLO26 模型,以实现高速、本地运行的 目标检测 推理。在本指南中,我们将带你了解如何将模型转换为 TF.js 格式,从而使你的模型更容易在各种本地浏览器和 Node.js 应用程序中发挥出色表现。
为什么要导出到 TF.js?
将你的机器学习模型导出到 TensorFlow.js(由 TensorFlow 团队开发,是更广泛的 TensorFlow 生态系统的一部分)为部署机器学习应用程序提供了诸多优势。它通过将敏感数据保留在设备上来增强用户隐私和安全性。下图显示了 TensorFlow.js 的架构,以及机器学习模型是如何转换并部署在 Web 浏览器和 Node.js 上的。
在本地运行模型还可以降低延迟,并提供更具响应性的用户体验。TensorFlow.js 还附带离线功能,允许用户在没有互联网连接的情况下使用你的应用程序。TF.js 专为在资源受限的设备上高效执行复杂模型而设计,它具有可扩展性,并支持 GPU 加速。
TF.js 的主要功能
以下是使 TF.js 成为开发人员强大工具的关键功能:
-
跨平台支持: TensorFlow.js 可用于浏览器和 Node.js 环境,为跨不同平台的部署提供了灵活性。它让开发人员能够更轻松地构建和部署应用程序。
-
支持多种后端: TensorFlow.js 支持各种计算后端,包括 CPU、用于 GPU 加速的 WebGL、用于近原生执行速度的 WebAssembly (WASM),以及用于高级浏览器机器学习功能的 WebGPU。
-
离线功能: 有了 TensorFlow.js,模型可以在浏览器中运行而无需互联网连接,这使得开发功能齐全的离线应用程序成为可能。
TensorFlow.js 的部署选项
在我们深入研究将 YOLO26 模型导出到 TF.js 格式的过程之前,让我们先探讨一下使用该格式的一些典型部署场景。
TF.js 提供了一系列部署机器学习模型的选项:
-
浏览器端 ML 应用程序: 你可以构建直接在浏览器中运行机器学习模型的 Web 应用程序。这消除了对服务器端计算的需求,并减轻了服务器负载。
-
Node.js 应用程序: TensorFlow.js 还支持在 Node.js 环境中部署,从而实现服务器端机器学习应用程序的开发。这对于需要服务器处理能力或需要访问服务器端数据的应用程序特别有用。
-
Chrome 扩展程序: 一个有趣的部署场景是使用 TensorFlow.js 创建 Chrome 扩展程序。例如,你可以开发一个扩展程序,允许用户在任何网页上右键单击图像,以使用预训练的机器学习模型对其进行分类。TensorFlow.js 可以集成到日常网页浏览体验中,以基于机器学习提供即时见解或增强功能。
将 YOLO26 模型导出到 TensorFlow.js
你可以通过将 YOLO26 模型转换为 TF.js 来扩展模型的兼容性和部署灵活性。
安装
要安装所需的包,请运行:
# Install the required package for YOLO26
pip install ultralytics有关安装过程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。如果在安装 YOLO26 所需的软件包时遇到任何困难,请查阅我们的 常见问题指南 获取解决方案和建议。
使用方法
所有 Ultralytics YOLO26 模型 均设计为支持直接开箱导出,使你能够轻松将其集成到你首选的部署工作流中。你可以查看支持的导出格式和配置选项的完整列表,为你的应用选择最佳设置。
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF.js format
model.export(format="tfjs") # creates '/yolo26n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO("./yolo26n_web_model")
# Run inference
results = tfjs_model("https://ultralytics.com/images/bus.jpg")导出参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
format | str | 'tfjs' | 导出模型的目标格式,定义与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入的所需图像尺寸。可以是正方形图像的整数,也可以是特定维度的元组 (height, width)。 |
half | bool | False | 启用 FP16(半精度)量化,减小模型大小并可能在受支持的硬件上加快推理速度。 |
int8 | bool | False | 激活 INT8 量化,进一步压缩模型并以极小的准确性损失加快推理速度,主要适用于边缘设备。 |
nms | bool | False | 添加非极大值抑制(NMS),这对于准确且高效的检测后处理至关重要。 |
batch | int | 1 | 指定导出模型的批量推理大小,或者导出模型在 predict 模式下将同时处理的最大图像数量。 |
data | str | 'coco8.yaml' | 数据集配置文件的路径(默认:coco8.yaml),这对量化至关重要。 |
fraction | float | 1.0 | 指定用于 INT8 量化校准的数据集比例。允许在完整数据集的子集上进行校准,这对于实验或资源受限时非常有用。如果在启用 INT8 时未指定,将使用完整数据集。 |
device | str | None | 指定导出的设备:CPU (device=cpu),Apple 芯片的 MPS (device=mps)。 |
有关导出过程的更多详细信息,请访问 Ultralytics 导出文档页面。
部署已导出的 YOLO26 TensorFlow.js 模型
既然你已经将 YOLO26 模型导出为 TF.js 格式,下一步就是部署它。运行 TF.js 模型的主要且建议的首要步骤是使用 YOLO("./yolo26n_web_model") 方法,正如之前的用法代码片段所示。
然而,如需部署 TF.js 模型的深入说明,请查看以下资源:
-
Chrome 扩展程序:这是关于如何将 TF.js 模型部署到 Chrome 扩展程序的开发人员文档。
-
在 Node.js 中运行 TensorFlow.js:一篇关于直接在 Node.js 中运行 TensorFlow.js 的 TensorFlow 博客文章。
-
部署 TensorFlow.js - 云平台上的 Node 项目:一篇关于在云平台上部署 TensorFlow.js 模型的 TensorFlow 博客文章。
总结
在本指南中,我们学习了如何将 Ultralytics YOLO26 模型导出为 TensorFlow.js 格式。通过导出到 TF.js,你可以获得在各种平台上优化、部署和扩展 YOLO26 模型的灵活性。
有关用法的更多详细信息,请访问 TensorFlow.js 官方文档。
欲了解更多有关将 Ultralytics YOLO26 与其他平台和框架集成的资讯,请务必查看我们的集成指南页面。它包含了丰富的资源,旨在帮助你在项目中充分利用 YOLO26。
常见问题 (FAQ)
我该如何将 Ultralytics YOLO26 模型导出为 TensorFlow.js 格式?
将 Ultralytics YOLO26 模型导出为 TensorFlow.js (TF.js) 格式非常简单。你可以按照以下步骤操作:
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF.js format
model.export(format="tfjs") # creates '/yolo26n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO("./yolo26n_web_model")
# Run inference
results = tfjs_model("https://ultralytics.com/images/bus.jpg")有关受支持导出选项的更多详细信息,请访问 Ultralytics 关于部署选项的文档页面。
我为什么要将我的 YOLO26 模型导出到 TensorFlow.js?
将 YOLO26 模型导出到 TensorFlow.js 具有多种优势,包括:
- 本地执行: 模型可以直接在浏览器或 Node.js 中运行,从而降低延迟并增强用户体验。
- 跨平台支持: TF.js 支持多种环境,为部署提供了灵活性。
- 离线功能: 使应用程序无需互联网连接即可运行,从而确保了可靠性和隐私性。
- GPU 加速: 利用 WebGL 进行 GPU 加速,优化资源受限设备上的性能。
有关全面概述,请参阅我们的 与 TensorFlow.js 的集成。
TensorFlow.js 如何使基于浏览器的机器学习应用程序受益?
TensorFlow.js 专为在浏览器和 Node.js 环境中高效执行机器学习模型而设计。以下是它如何使基于浏览器的应用程序受益:
- 降低延迟: 在本地运行机器学习模型,无需依赖服务器端计算即可提供即时结果。
- 提高隐私性: 将敏感数据保留在用户设备上,从而最大限度地降低安全风险。
- 实现离线使用: 模型可以在没有互联网连接的情况下运行,确保了一致的功能性。
- 支持多种后端: 提供 CPU、WebGL、WebAssembly (WASM) 和 WebGPU 等后端,以满足不同的计算需求。
想了解更多关于 TF.js 的信息吗?请查看 官方 TensorFlow.js 指南。
TensorFlow.js 在部署 YOLO26 模型方面有哪些关键功能?
TensorFlow.js 的关键功能包括:
- 跨平台支持: TF.js 可用于 Web 浏览器和 Node.js,提供广泛的部署灵活性。
- 多种后端: 支持 CPU、用于 GPU 加速的 WebGL、WebAssembly (WASM) 以及用于高级操作的 WebGPU。
- 离线功能: 模型可以直接在浏览器中运行而无需互联网连接,使其成为开发响应式 Web 应用程序的理想选择。
有关部署场景和更深入的信息,请参阅我们关于 TensorFlow.js 部署选项 的部分。
我可以使用 TensorFlow.js 在服务器端 Node.js 应用程序上部署 YOLO26 模型吗?
是的,TensorFlow.js 允许在 Node.js 环境中部署 YOLO26 模型。这使得服务器端机器学习应用程序能够受益于服务器的处理能力和对服务器端数据的访问。典型的用例包括后端服务器上的实时数据处理和机器学习流水线。
要开始使用 Node.js 部署,请参考 TensorFlow 的 在 Node.js 中运行 TensorFlow.js 指南。