从YOLO11 模型格式导出到TF.js 模型格式
直接在浏览器或 Node.js 上部署机器学习模型可能比较棘手。您需要确保您的模型格式经过优化,性能更快,这样模型才能用于在用户设备上本地运行交互式应用。TensorFlow.js(或TF.js)模型格式的设计目的是在提供快速性能的同时将功耗降到最低。
导出为TF.js 模型格式 "功能可让您优化您的 Ultralytics YOLO11导出为 .js 模型格式 "功能可以优化您的模型,使其适用于高速和本地运行的对象检测推理。在本指南中,我们将指导您将模型转换为TF.js 格式,使您的模型更容易在各种本地浏览器和 Node.js 应用程序上良好运行。
为什么要导出到TF.js?
将机器学习模型导出到TensorFlow.js(由TensorFlow 团队开发,是更广泛的TensorFlow 生态系统的一部分)为部署机器学习应用提供了众多优势。它将敏感数据保存在设备上,有助于提高用户隐私和安全性。下图显示了TensorFlow.js 架构,以及机器学习模型如何在网络浏览器和 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 的部署选项
在深入了解将YOLO11 模型导出为TF.js 格式的过程之前,我们先来探讨一下使用这种格式的一些典型部署场景。
TF.js 提供了一系列部署机器学习模型的选项:
-
浏览器内的 ML 应用程序:您可以构建直接在浏览器中运行机器学习模型的网络应用程序。这样就不需要服务器端计算,也减轻了服务器负载。
-
Node.js 应用程序 TensorFlow.js 还支持在 Node.js 环境中部署,从而能够开发服务器端机器学习应用程序。它对于需要服务器处理能力或访问服务器端数据的应用程序尤其有用。
-
Chrome 浏览器扩展:一个有趣的部署场景是使用TensorFlow.js 创建 Chrome 浏览器扩展。例如,您可以开发一个扩展,允许用户右键单击任何网页中的图片,使用预先训练好的 ML 模型对其进行分类。TensorFlow.js 可以集成到日常网页浏览体验中,提供基于机器学习的即时见解或增强功能。
将YOLO11 模型导出为TensorFlow.js
您可以通过将YOLO11 模型转换为TF.js 来扩展模型兼容性和部署灵活性。
安装
要安装所需的软件包,请运行
有关安装过程的详细说明和最佳实践,请查阅我们的Ultralytics 安装指南。在安装YOLO11 所需的软件包时,如果遇到任何困难,请查阅我们的常见问题指南,了解解决方案和技巧。
使用方法
在了解使用说明之前,需要注意的是,虽然Ultralytics YOLO11 的所有 型号都可以导出,但您可以在此确保您选择的型号支持导出功能。
使用方法
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF.js format
model.export(format="tfjs") # creates '/yolo11n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO("./yolo11n_web_model")
# Run inference
results = tfjs_model("https://ultralytics.com/images/bus.jpg")
有关支持的导出选项的详细信息,请访问Ultralytics 部署选项文档页面。
部署导出的YOLO11 TensorFlow .js 模型
现在您已经将YOLO11 模型导出为TF.js 格式,下一步就是部署它。运行TF.js 的主要和推荐的第一步是使用 YOLO("./yolo11n_web_model")
方法,如之前的使用代码片段所示。
不过,有关部署TF.js 模型的深入说明,请参阅以下资源:
-
Chrome 浏览器扩展:以下是如何将TF.js 模型部署到 Chrome 浏览器扩展的开发人员文档。
-
在 Node.js 中运行TensorFlow.js:TensorFlow 关于直接在 Node.js 中运行TensorFlow.js 的博文。
-
在云平台上部署TensorFlow.js - Node 项目:TensorFlow 关于在云平台上部署TensorFlow.js 模型的博文。
摘要
在本指南中,我们学习了如何将Ultralytics YOLO11 模型导出为TensorFlow.js 格式。通过导出为TF.js,您可以灵活地在各种平台上优化、部署和扩展您的YOLO11 模型。
有关使用的详细信息,请访问TensorFlow.js 官方文档。
有关将Ultralytics YOLO11 与其他平台和框架集成的更多信息,请不要忘记查看我们的集成指南页面。该页面包含大量资源,可帮助您在项目中充分利用YOLO11 。
常见问题
如何将Ultralytics YOLO11 模型导出为TensorFlow.js 格式?
将Ultralytics YOLO11 模型导出为TensorFlow.js (TF.js) 格式非常简单。您可以按照以下步骤操作:
使用方法
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF.js format
model.export(format="tfjs") # creates '/yolo11n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO("./yolo11n_web_model")
# Run inference
results = tfjs_model("https://ultralytics.com/images/bus.jpg")
有关支持的导出选项的详细信息,请访问Ultralytics 部署选项文档页面。
为什么要将YOLO11 模型导出为TensorFlow.js?
将YOLO11 模型导出为TensorFlow.js 具有多种优势,包括
- 本地执行:模型可直接在浏览器或 Node.js 中运行,从而减少延迟并增强用户体验。
- 跨平台支持: TF.js 支持多种环境,可灵活部署。
- 脱机功能:使应用程序能够在没有互联网连接的情况下运行,确保可靠性和私密性。
- GPU 加速:利用 WebGL 实现GPU 加速,优化资源有限设备的性能。
有关全面概述,请参阅我们的集成TensorFlow.js。
TensorFlow.js 如何使基于浏览器的机器学习应用受益?
TensorFlow.js 专为在浏览器和 Node.js 环境中高效执行 ML 模型而设计。以下是它如何使基于浏览器的应用受益:
- 减少延迟:在本地运行机器学习模型,无需依赖服务器端计算,即可提供即时结果。
- 改善隐私:将敏感数据保存在用户设备上,将安全风险降至最低。
- 可离线使用:机型可以在没有互联网连接的情况下运行,确保功能的一致性。
- 支持多种后端:可灵活使用CPU 、WebGL、WebAssembly (WASM) 和 WebGPU 等后端,满足不同的计算需求。
有兴趣了解有关TF.js 的更多信息?请查看 TensorFlow.js 官方指南。
TensorFlow.js 在部署YOLO11 模型方面有哪些主要功能?
TensorFlow.js 的主要功能包括
- 跨平台支持: TF.js 可在网络浏览器和 Node.js 中使用,提供广泛的部署灵活性。
- 多种后端:支持CPU 、用于GPU 加速的 WebGL、WebAssembly (WASM) 和用于高级操作的 WebGPU。
- 离线功能:模型可直接在浏览器中运行,无需连接互联网,因此非常适合开发响应式网络应用程序。
有关部署方案和更深入的信息,请参阅我们的 TensorFlow.js 部署选项部分。
能否使用TensorFlow.js 在服务器端 Node.js 应用程序上部署YOLO11 模型?
是的,TensorFlow.js 允许在 Node.js 环境中部署YOLO11 模型。这样,服务器端机器学习应用就能受益于服务器的处理能力和对服务器端数据的访问。典型用例包括后端服务器上的实时数据处理和机器学习管道。
要开始部署 Node.js,请参阅TensorFlow上的在 Node.js 中运行TensorFlow.js指南。