深圳Yolo 视觉
深圳
立即加入

如何使用Ultralytics 导出Ultralytics YOLO

借助Ultralytics 轻松导出视觉 AI 模型。了解如何通过几下点击,为边缘、移动和云端部署做好模型准备。

想部署一个计算机视觉项目吗?

了解授权

上个月,我们推出了Ultralytics 这是一个旨在简化整个计算机视觉工作流的统一工作区。它将数据集管理、标注、模型训练、测试、部署和监控等关键视觉 AI 功能整合到一个简洁高效的界面中。

图1.Ultralytics 一瞥(来源

作为这一端到端工作流的重要组成部分,部署在将模型从实验阶段推向实际应用的过程中发挥着关键作用。此前,我们探讨了平台上可用的各种部署选项,包括通过 API 进行共享推理、用于可扩展生产部署的专用端点,以及将模型导出以在边缘设备或外部基础设施上运行。

现在,让我们来详细了解一下模型导出功能,以及它如何支持在不同环境中的部署。与在Ultralytics 的基础设施内执行模型的共享推理和专用端点不同,模型导出功能允许将模型部署并运行在外部环境中,例如边缘设备、移动应用程序和自定义基础设施。

在模型能够在这些环境中运行之前,需要将其转换为目标运行时支持的格式。每种部署方案都有其特定的要求,从适用于移动设备和边缘设备的轻量级格式,到适用于云端和GPU系统的高性能格式。

传统上,这一过程往往耗时较长,涉及脚本、依赖项和多种工具。借助Ultralytics ,导出操作变得简单得多。只需点击几下,即可转换和优化模型,无需额外配置。

在本文中,我们将详细介绍模型导出的含义、Ultralytics 支持的格式,以及如何根据您的具体应用场景选择合适的格式。让我们开始吧!

模型导出概述

导出模型是指将预训练或自定义训练的模型转换为可在其原始框架之外使用的格式。Ultralytics YOLO 使用PyTorch 构建PyTorch 以原生格式存储,这使其非常适合在PyTorch 进行训练、评估和实验。

然而,部署环境通常具有不同的运行时和硬件要求。因此,训练过程中使用的格式并不总是适合部署。

例如,移动应用程序可能需要一种针对低功耗进行优化的轻量级格式,而基于浏览器的应用程序则需要一种能在网络环境中高效运行的格式。 

边缘设备(如摄像头和嵌入式系统)更适合使用紧凑且运行速度快的模型,而云系统则专为高性能推理而设计。为了支持这些不同的应用场景,模型需要导出为兼容的格式。 

为什么“导出模型”功能比以往任何时候都更加重要

如今,计算机视觉模型正被部署在更接近数据生成源的位置,尤其是边缘设备上。智能手机运行着实时视觉应用程序,闭路电视摄像头在设备端进行监控,而自主系统则依赖于即时决策。

然而,在这些环境中部署模型也面临着一系列挑战。边缘设备计算能力有限,对延迟有严格要求,且在内存和能耗方面存在限制。一个在训练阶段拥有充足资源时表现良好的模型,在这些受限条件下可能无法高效运行。

将模型导出为正确的格式有助于解决这些难题。通过适当转换模型,可以优化其运行速度、减小文件大小,并使其与特定硬件兼容。 

与此同时,导出功能提供了灵活性。同一模型可根据具体需求转换为多种格式,从而适应不同的部署环境。

图2.Ultralytics 中可用的部分导出格式(来源

例如NCNN 格式经过优化,适用于资源消耗较低的移动设备和边缘设备。而OpenVINO 则是专Intel 量身定制的,在中央处理器(CPU)、图形处理器(GPU)和神经处理单元(NPU)上能提供更出色的性能。 

在大多数情况下,要实现这种程度的灵活性,往往需要处理手动转换、依赖关系以及多种工具,导致整个过程既耗时又复杂。Ultralytics 简化模型导出流程并使其更易于管理,从而优化了这一工作流程。

Ultralytics 如何简化模型导出

通常,在计算机视觉工作流中,模型导出被视为一个独立且复杂的步骤。Ultralytics 通过将模型导出功能直接集成到一个涵盖从训练到部署所有环节的统一工作空间中,改变了这一现状。

其主要优势之一在于无需编码的导出体验。用户无需编写脚本、管理环境,也无需使用特定框架的命令。只需通过直观的界面点击几下,即可导出模型。

图 3. 从Ultralytics 导出模型的示例(来源

在后台,该平台承担了繁重的工作。那些通常需要多种工具和手动配置的任务,如今已被简化为一个统一流程。您无需安装额外的依赖项,也无需处理兼容性问题,从而能够更轻松地将训练好的模型转化为可投入生产的解决方案。

Ultralytics 支持的模型导出格式

Ultralytics 支持 17 种导出格式,可轻松为各种部署环境准备模型,且不会增加额外复杂性。

以下是一些常用导出格式的概述:

  • 跨平台与互操作性: ONNX TorchScript 广泛用于在不同框架和环境中运行模型。ONNX 生态系统之间的桥梁,使模型在不同工具间迁移变得更加容易;而TorchScript 在生产环境中运行PyTorch ,且无需Python 。
  • GPU 上的高性能推理: TensorRT NVIDIA TensorRT 致力于优化模型以实现低延迟和高吞吐量。它支持精度缩减和层融合等技术来加速推理,因此是实时和生产级应用的理想选择。
  • 移动端和边缘部署: CoreML、LiteRT(TensorFlow )和NCNN 专为计算能力和内存有限的设备NCNN 优化。这些格式可缩减模型体积并提升效率,从而在智能手机、嵌入式系统和边缘硬件上实现流畅的性能。CoreML 通常CoreML Apple 生态系统,而 LiteRT 则在Android 平台上较为常见。
  • 针对硬件优化的执行: OpenVINO Intel (包括 CPU、GPU 和 VPU)OpenVINO 有助于提升这些设备上的推理速度和效率。当您需要从特定系统中获得最佳性能时,此类针对特定硬件的格式便大有裨益。
  • 特定框架和专用运行时: PaddlePaddle ExecuTorch 等格式 支持特定的生态系统和部署需求,包括在边缘设备上高效运行模型,或与特定的深度学习技术栈集成。

如何使用Ultralytics 导出模型

在Ultralytics 导出模型是一个简单的、基于用户界面的过程。整个工作流均通过界面完成,无需使用脚本或命令行工具。

以下是通过该平台导出模型的方法:

  • 登录并选择模型:进入 您的项目,打开您想要导出的已训练模型。
  • 转到“导出”选项卡:在模型仪表盘中,点击“导出”选项卡以查看可用的导出选项。
  • 选择导出格式:CoreML 您的部署需求,选择ONNX、TensorRT 或CoreML 等格式。
  • ‍配置导出设置(可选):调整图像大小、精度或批处理大小等参数,以优化性能。
  • ‍开始导出流程:点击“开始导出”以启动该流程。平台将自动处理转换工作。
  • 下载导出的模型:导出完成后,您可以下载该模型并在部署管道中使用。
图 4.Ultralytics 中导出设置的配置示例

选择合适的导出格式

在探索Ultralytics 支持的各种导出格式时,您可能会疑惑该选择哪一种。答案其实取决于您计划在何处以及如何使用该模型。

以下是需要考虑的几个因素:

  • 延迟要求:对于视频分析或自动驾驶系统等实时应用,低延迟至关重要。针对高性能推理进行优化的格式,例如 TensorRT,通常更为合适。
  • 硬件限制:对于内存和处理能力有限的设备(如手机或嵌入式系统),需要使用 LiteRT 或NCNN 这样的轻量级格式。 
  • ‍模型大小与功耗:在处理边缘设备时,模型大小和功耗变得尤为重要。更小、经过优化的模型有助于确保性能稳定,同时不会耗尽资源。
  • 部署环境:如果您的模型需要在不同平台上运行ONNX 等格式ONNX 更大的灵活性。对于特定平台的使用场景(例如iOS ),CoreML 更优的选择。

并没有一种通用的格式。关键在于平衡性能、兼容性以及目标环境的限制。Ultralytics 通过让您无需额外操作即可尝试和比较不同格式,使这一过程变得更加轻松。

主要要点

导出是将模型准备就绪以供在不同环境中实际应用的关键步骤。借助Ultralytics 这一过程变得更加简单,您无需额外配置或面对复杂操作,即可转换和优化模型。通过根据具体应用场景选择合适的格式,您可以确保模型无论部署在何处都能高效运行。

加入我们不断壮大的社区,访问我们的GitHub 仓库,深入了解计算机视觉。浏览我们的解决方案页面,了解更多关于机器人领域的人工智能以及物流领域计算机视觉等应用。了解我们的授权方案,立即开始构建基于视觉的人工智能系统! 

让我们一起共建AI的未来!

开启您的机器学习未来之旅