跳至内容

从YOLOv8 模型格式导出到TF.js 模型格式

直接在浏览器或 Node.js 上部署机器学习模型可能比较棘手。您需要确保您的模型格式经过优化,性能更快,这样模型才能用于在用户设备上本地运行交互式应用。TensorFlow.js(或TF.js)模型格式的设计目的是在提供快速性能的同时将功耗降到最低。

导出为TF.js 模型格式 "功能可让您优化您的 Ultralytics YOLOv8导出为 .js 模型格式 "功能可以优化您的模型,使其适用于高速和本地运行的对象检测推理。在本指南中,我们将指导您将模型转换为TF.js 格式,使您的模型更容易在各种本地浏览器和 Node.js 应用程序上良好运行。

为什么要导出到TF.js?

将机器学习模型导出到TensorFlow.js(由TensorFlow 团队开发,是更广泛的TensorFlow 生态系统的一部分)为部署机器学习应用提供了众多优势。它将敏感数据保存在设备上,有助于提高用户隐私和安全性。下图显示了TensorFlow.js 架构,以及机器学习模型如何在网络浏览器和 Node.js 上转换和部署。

TF.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 的部署选项

在深入了解将YOLOv8 模型导出为TF.js 格式的过程之前,我们先来探讨一下使用这种格式的一些典型部署场景。

TF.js 提供了一系列部署机器学习模型的选项:

  • 浏览器内的 ML 应用程序:您可以构建直接在浏览器中运行机器学习模型的网络应用程序。这样就不需要服务器端计算,也减轻了服务器负载。

  • Node.js 应用程序 TensorFlow.js 还支持在 Node.js 环境中部署,从而能够开发服务器端机器学习应用程序。对于需要服务器处理能力或访问服务器端数据的应用程序来说,.js 尤其有用。

  • Chrome 浏览器扩展:一个有趣的部署场景是使用TensorFlow.js 创建 Chrome 浏览器扩展。例如,您可以开发一个扩展,允许用户右键单击任何网页中的图片,使用预先训练好的 ML 模型对其进行分类。TensorFlow.js 可以集成到日常网页浏览体验中,提供基于机器学习的即时见解或增强功能。

将YOLOv8 模型导出为TensorFlow.js

您可以通过将YOLOv8 模型转换为TF.js 来扩展模型兼容性和部署灵活性。

安装

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

安装

# 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.js format
model.export(format='tfjs')  # creates '/yolov8n_web_model'

# Load the exported TF.js model
tfjs_model = YOLO('./yolov8n_web_model')

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

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

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

部署导出的YOLOv8 TensorFlow .js 模型

现在您已经将YOLOv8 模型导出为TF.js 格式,下一步就是部署它。运行TF.js 的首要和推荐的第一步是使用YOLO("./yolov8n_web_model")方法,如之前的使用代码片段所示。

不过,有关部署TF.js 模型的深入说明,请参阅以下资源:

摘要

在本指南中,我们学习了如何将Ultralytics YOLOv8 模型导出为TensorFlow.js 格式。通过导出为TF.js,您可以灵活地在各种平台上优化、部署和扩展您的YOLOv8 模型。

有关使用的详细信息,请访问TensorFlow.js 官方文档

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



创建于 2024-04-03,更新于 2024-04-18
作者:glenn-jocher(1)、abirami-vina(1)

评论