跳转至内容

YOLO11 部署选项的对比分析

简介

您在 YOLO11 的探索之路上已经走了很远。您勤奋地收集数据,细致地进行标注,并投入大量时间来训练和严格评估您的自定义 YOLO11 模型。现在,是时候让您的模型为您的特定应用、用例或项目服务了。但是,在您面前有一个关键的决定:如何有效地导出和部署您的模型。



观看: 如何为您的项目选择最佳的 Ultralytics YOLO11 部署格式 | TensorRT | OpenVINO 🚀

本指南将引导您了解 YOLO11 的部署选项以及选择适合您项目的正确选项时需要考虑的关键因素。

如何为您的 YOLO11 模型选择正确的部署选项

当需要部署您的YOLO11模型时,选择合适的导出格式非常重要。正如Ultralytics YOLO11 Modes 文档中所述,model.export()函数允许将您训练好的模型转换为各种格式,以适应不同的环境和性能要求。

理想的格式取决于您的模型的目标操作环境,从而平衡速度、硬件约束和易于集成。在以下部分中,我们将仔细研究每个导出选项,了解何时选择每个选项。

YOLO11 的部署选项

让我们来看看不同的 YOLO11 部署选项。有关导出过程的详细步骤,请访问 Ultralytics 文档页面,了解有关导出的信息

PyTorch

PyTorch 是一个开源机器学习库,广泛用于深度学习人工智能领域的应用。它提供了高度的灵活性和速度,这使其成为研究人员和开发人员的最爱。

  • 性能基准测试: PyTorch 以其易用性和灵活性而闻名,与其他更专业和优化的框架相比,这可能会导致原始性能略有下降。
  • 兼容性和集成: 在 python 中,与各种数据科学和机器学习库具有出色的兼容性。
  • 社区支持与生态系统: 拥有最活跃的社区之一,提供丰富的学习和问题排查资源。
  • 案例研究: 常用于研究原型,许多学术论文都引用了在 PyTorch 中部署的模型。
  • 维护和更新: 定期更新,并积极开发和支持新功能。
  • 安全注意事项: 定期修复安全问题,但安全性在很大程度上取决于部署的整体环境。
  • 硬件加速: 支持 CUDA 进行 GPU 加速,这对于加速模型训练和推理至关重要。

TorchScript

TorchScript 扩展了 PyTorch 的功能,允许导出模型以在 C++ 运行时环境中运行。这使其适用于 Python 不可用的生产环境。

  • 性能基准测试: 可以提供比原生 PyTorch 更好的性能,尤其是在生产环境中。
  • 兼容性和集成: 专为从 PyTorch 到 C++ 生产环境的无缝过渡而设计,但某些高级功能可能无法完美转换。
  • 社区支持和生态系统 (Community Support and Ecosystem): 受益于 PyTorch 庞大的社区,但专业开发人员的范围较窄。
  • 案例研究: 广泛应用于 Python 性能开销成为瓶颈的行业环境中。
  • 维护和更新: 与 PyTorch 一起维护,并提供一致的更新。
  • 安全注意事项: 通过在没有完整 python 安装的环境中运行模型,从而提高安全性。
  • 硬件加速: 继承 PyTorch 的 CUDA 支持,确保高效的 GPU 利用率。

ONNX

开放式 神经网络 交换 (ONNX) 是一种允许跨不同框架进行模型互操作性的格式,这在部署到各种平台时可能至关重要。

  • 性能基准测试: ONNX 模型可能会根据其部署的特定运行时环境而遇到不同的性能表现。
  • 兼容性和集成: 由于其与框架无关的特性,因此在多个平台和硬件上具有很高的互操作性。
  • 社区支持与生态系统: 受到许多组织的支持,从而形成广泛的生态系统和各种优化工具。
  • 案例研究: 经常用于在不同的机器学习框架之间迁移模型,展示了其灵活性。
  • 维护和更新: 作为开放标准,ONNX 会定期更新以支持新的操作和模型。
  • 安全注意事项: 与任何跨平台工具一样,必须确保转换和部署管道中的安全措施。
  • 硬件加速: 借助 ONNX Runtime,模型可以利用各种硬件优化。

OpenVINO

OpenVINO 是一个 Intel 工具包,旨在促进深度学习模型在 Intel 硬件上的部署,从而提高性能和速度。

  • 性能基准测试: 专门针对 Intel CPU、GPU 和 VPU 进行了优化,可在兼容硬件上提供显著的性能提升。
  • 兼容性和集成: 在Intel生态系统中表现最佳,但也支持各种其他平台。
  • 社区支持和生态系统 (Community Support and Ecosystem): 由 Intel 提供支持,拥有坚实的用户基础,尤其是在计算机视觉领域。
  • 案例研究: 经常用于物联网和 边缘计算 场景,在这些场景中,Intel 硬件非常普遍。
  • 维护和更新: Intel 定期更新 OpenVINO,以支持最新的深度学习模型和 Intel 硬件。
  • 安全注意事项: 提供强大的安全功能,适合在敏感应用程序中部署。
  • 硬件加速: 专为 Intel 硬件上的加速而定制,利用专用指令集和硬件功能。

有关使用 OpenVINO 部署的更多详细信息,请参阅 Ultralytics 集成文档:Intel OpenVINO 导出

TensorRT

TensorRT 是 NVIDIA 提供的高性能深度学习推理优化器和运行时,非常适合需要速度和效率的应用程序。

  • 性能基准测试: 在支持高速推理的 NVIDIA GPU 上提供顶级的性能。
  • 兼容性和集成: 最适合 NVIDIA 硬件,在此环境之外的支持有限。
  • 社区支持与生态系统: 通过 NVIDIA 的开发者论坛和文档提供强大的支持网络。
  • 案例研究: 广泛应用于需要在视频和图像数据上进行实时推理的行业。
  • 维护和更新: NVIDIA 维护 TensorRT,并经常更新以提高性能并支持新的 GPU 架构。
  • 安全注意事项: 与许多 NVIDIA 产品一样,它非常重视安全性,但具体取决于部署环境。
  • 硬件加速: 专为 NVIDIA GPU 设计,提供深度优化和加速。

有关 TensorRT 部署的更多信息,请查看TensorRT 集成指南

CoreML

CoreML 是 Apple 的机器学习框架,针对 Apple 生态系统(包括 iOS、macOS、watchOS 和 tvOS)中的设备端性能进行了优化。

  • 性能基准测试: 经过优化,可在 Apple 硬件上实现最佳设备性能,并最大限度地减少电池使用。
  • 兼容性和集成: 专为 Apple 的生态系统设计,为 iOS 和 macOS 应用程序提供简化的工作流程。
  • 社区支持与生态系统: 获得 Apple 的强大支持以及专门的开发者社区,提供大量的文档和工具。
  • 案例研究: 常用于需要在 Apple 产品上实现设备端机器学习功能的应用程序。
  • 维护和更新: Apple 定期更新以支持最新的机器学习进步和 Apple 硬件。
  • 安全注意事项: 受益于 Apple 对用户隐私和数据安全的关注。
  • 硬件加速: 充分利用 Apple 的神经引擎和 GPU 来加速机器学习任务。

TF SavedModel

TF SavedModel 是 TensorFlow 用于保存和提供机器学习模型的格式,特别适合可扩展的服务器环境。

  • 性能基准测试: 在服务器环境中提供可扩展的性能,尤其是在与 TensorFlow Serving 一起使用时。
  • 兼容性和集成: 在TensorFlow生态系统中具有广泛的兼容性,包括云和企业服务器部署。
  • 社区支持和生态系统 (Community Support and Ecosystem): 由于 TensorFlow 的普及,拥有庞大的社区支持,以及大量的部署和优化工具。
  • 案例研究: 广泛应用于生产环境中,用于大规模部署深度学习模型。
  • 维护和更新: 由 Google 和 TensorFlow 社区提供支持,确保定期更新和新功能。
  • 安全注意事项: 使用 TensorFlow Serving 进行部署包括强大的安全功能,适用于企业级应用程序。
  • 硬件加速: 通过 TensorFlow 的后端支持各种硬件加速。

TF GraphDef

TF GraphDef 是一种 TensorFlow 格式,它将模型表示为一个图,这对于需要静态计算图的环境非常有用。

  • 性能基准测试: 为静态计算图提供稳定的性能,并注重一致性和可靠性。
  • 兼容性和集成: 易于集成到 TensorFlow 的基础设施中,但与 SavedModel 相比灵活性较差。
  • 社区支持和生态系统 (Community Support and Ecosystem): TensorFlow 的生态系统提供了良好的支持,有许多可用于优化静态图的资源。
  • 案例研究: 在需要静态图的场景中非常有用,例如在某些嵌入式系统中。
  • 维护和更新: 与 TensorFlow 的核心更新一起定期更新。
  • 安全注意事项: 通过 TensorFlow 既定的安全实践,确保安全部署。
  • 硬件加速: 可以利用 TensorFlow 的硬件加速选项,但不如 SavedModel 灵活。

在我们的 TF GraphDef 集成指南 中了解更多关于 TF GraphDef 的信息。

TF Lite

TF Lite 是 TensorFlow 针对移动和嵌入式设备机器学习的解决方案,提供了一个轻量级库,用于在设备上进行推理。

  • 性能基准测试: 专为移动和嵌入式设备的快速和高效而设计。
  • 兼容性和集成: 由于其轻量级的特性,可以用于各种设备。
  • 社区支持和生态系统 (Community Support and Ecosystem): 由 Google 提供支持,拥有强大的社区和越来越多的开发者资源。
  • 案例研究: 在移动应用中很受欢迎,这些应用需要在设备上进行推理,且占用空间最小。
  • 维护和更新: 定期更新,以包含移动设备的最新功能和优化。
  • 安全注意事项: 为在最终用户设备上运行模型提供安全的环境。
  • 硬件加速: 支持各种硬件加速选项,包括 GPU 和 DSP。

TF Edge TPU

TF Edge TPU 专为 Google 的 Edge TPU 硬件上的高速、高效计算而设计,非常适合需要实时处理的 IoT 设备。

  • 性能基准测试: 专门针对 Google 的 Edge TPU 硬件上的高速、高效计算进行了优化。
  • 兼容性和集成: 仅适用于Edge TPU设备上的TensorFlow Lite模型。
  • 社区支持和生态系统 (Community Support and Ecosystem): 在 Google 和第三方开发者提供的资源的支持下,支持力度不断增长。
  • 案例研究: 用于需要低延迟实时处理的物联网设备和应用程序。
  • 维护和更新: 不断改进以利用新的 Edge TPU 硬件版本的功能。
  • 安全注意事项: 与 Google 强大的物联网和边缘设备安全性集成。
  • 硬件加速: 专为充分利用 Google Coral 设备而设计。

TF.js

TensorFlow.js (TF.js) 是一个将机器学习功能直接引入浏览器的库,为 Web 开发者和用户提供了新的可能性。它允许在 Web 应用程序中集成机器学习模型,而无需后端基础设施。

  • 性能基准测试: 允许直接在浏览器中进行机器学习,并具有合理的性能,具体取决于客户端设备。
  • 兼容性和集成: 与 Web 技术高度兼容,可以轻松集成到 Web 应用程序中。
  • 社区支持与生态系统: 获得 Web 和 Node.js 开发者社区的支持,并提供各种在浏览器中部署 ML 模型的工具。
  • 案例研究: 非常适合交互式 Web 应用程序,这些应用程序受益于客户端机器学习,而无需服务器端处理。
  • 维护和更新: 由 TensorFlow 团队维护,并接受来自开源社区的贡献。
  • 安全注意事项: 在浏览器的安全上下文中运行,利用 Web 平台的安全模型。
  • 硬件加速: 性能可以通过访问 WebGL 等硬件加速的基于 Web 的 API 来增强。

PaddlePaddle

PaddlePaddle 是由百度开发的开源深度学习框架。它旨在为研究人员提供效率,并为开发人员提供易用性。它在中国尤其受欢迎,并为中文语言处理提供专门的支持。

  • 性能基准测试: 提供具有竞争力的性能,同时注重易用性和可扩展性。
  • 兼容性和集成: 在百度的生态系统中实现了良好的集成,并支持广泛的应用程序。
  • 社区支持与生态系统: 虽然在全球范围内社区较小,但它正在迅速增长,尤其是在中国。
  • 案例研究: 常用于中国市场以及寻求替代其他主要框架的开发人员。
  • 维护和更新: 定期更新,重点是为中文 AI 应用和服务提供支持。
  • 安全注意事项: 强调数据隐私和安全,满足中国的数据治理标准。
  • 硬件加速: 支持各种硬件加速,包括百度的昆仑芯片。

MNN

MNN 是一种高效且轻量级的深度学习框架。它支持深度学习模型的推理和训练,并在设备上的推理和训练方面具有行业领先的性能。此外,MNN 还用于嵌入式设备,如物联网。

  • 性能基准: 移动设备的高性能,针对 ARM 系统进行了出色的优化。
  • 兼容性和集成: 与移动和嵌入式 ARM 系统以及 X86-64 CPU 架构配合良好。
  • 社区支持和生态系统: 受到移动和嵌入式机器学习社区的支持。
  • 案例研究: 非常适合需要在移动系统上实现高效性能的应用程序。
  • 维护和更新: 定期维护,以确保在移动设备上的高性能。
  • 安全考量:通过将数据保存在本地,提供设备上的安全优势。
  • 硬件加速:针对ARM CPUs和GPUs进行了优化,以实现最高的效率。

NCNN

NCNN 是一种针对移动平台优化的高性能神经网络推理框架。它以其轻量级和高效性而著称,特别适合资源有限的移动和嵌入式设备。

  • 性能基准测试: 针对移动平台进行了高度优化,可在基于 ARM 的设备上提供高效的推理。
  • 兼容性和集成: 适用于采用 ARM 架构的手机和嵌入式系统上的应用程序。
  • 社区支持与生态系统: 受到专注于移动和嵌入式 ML 应用的小众但活跃的社区的支持。
  • 案例研究: 在移动应用中备受欢迎,在 Android 和其他基于 ARM 的系统中,效率和速度至关重要。
  • 维护和更新: 不断改进,以在各种 ARM 设备上保持高性能。
  • 安全注意事项: 侧重于在设备本地运行,利用设备上处理的固有安全性。
  • 硬件加速: 专为 ARM CPU 和 GPU 定制,针对这些架构进行了特定优化。

YOLO11 部署选项的对比分析

下表提供了 YOLO11 模型各种部署选项的快照,帮助您根据几个关键标准评估哪种部署方式最适合您的项目需求。要深入了解每种部署选项的格式,请参阅 Ultralytics 关于导出格式的文档页面

部署选项 性能基准 兼容性与集成 社区支持与生态系统 案例研究 维护和更新 安全注意事项 硬件加速
PyTorch 具有良好的灵活性,可能会牺牲一部分原始性能 与 python 库配合良好 丰富的资源和社区 研究和原型 定期、积极的开发 取决于部署环境 用于 GPU 加速的 CUDA 支持
TorchScript 比 PyTorch 更适合生产环境 从 PyTorch 到 C++ 的平滑过渡 比 PyTorch 更专业但更窄 Python成为瓶颈的行业 使用 PyTorch 进行持续更新 在没有完整 python 的情况下提高安全性 继承 PyTorch 的 CUDA 支持
ONNX 取决于运行时的变量 在不同框架中表现出色 广泛的生态系统,受到许多组织的支持 跨 ML 框架的灵活性 新操作定期更新 确保安全的转换和部署实践 各种硬件优化
OpenVINO 针对 Intel 硬件进行了优化 Intel 生态系统中的最佳选择 在计算机视觉领域中很可靠 基于 Intel 硬件的物联网和边缘计算 Intel 硬件定期更新 强大的敏感应用功能 专为 Intel 硬件量身定制
TensorRT NVIDIA GPU 上的顶尖性能 NVIDIA 硬件的最佳选择 通过 NVIDIA 建立强大的网络 实时视频和图像推理 新 GPU 的频繁更新 强调安全性 专为 NVIDIA GPU 设计
CoreML 针对设备上的 Apple 硬件进行了优化 Apple 生态系统专有 强大的 Apple 和开发者支持 Apple 产品上的设备端 ML Apple 定期更新 专注于隐私和安全 Apple 神经网络引擎和 GPU
TF SavedModel 在服务器环境中可扩展 TensorFlow 生态系统中的广泛兼容性 由于 TensorFlow 的普及,拥有广泛的支持 大规模模型服务 Google 和社区定期更新 强大的企业功能 各种硬件加速
TF GraphDef 静态计算图的稳定性 与 TensorFlow 基础设施良好集成 用于优化静态图的资源 需要静态图的场景 与 TensorFlow 核心一同更新 已建立的 TensorFlow 安全实践 TensorFlow 加速选项
TF Lite 移动/嵌入式设备上的速度和效率 广泛的设备支持 强大的社区,Google 支持 占用空间最小的移动应用程序 最新的移动功能 最终用户设备上的安全环境 GPU 和 DSP 等
TF Edge TPU 针对 Google 的 Edge TPU 硬件进行了优化 Edge TPU 设备专有 与 Google 和第三方资源共同成长 需要实时处理的物联网设备 新 Edge TPU 硬件的改进 Google 强大的物联网安全 专为 Google Coral 设计
TF.js 合理的浏览器内性能 与 Web 技术结合 Web 和 Node.js 开发者支持 交互式 Web 应用程序 TensorFlow 团队和社区贡献 Web 平台安全模型 通过 WebGL 和其他 API 增强
PaddlePaddle 具有竞争力、易于使用且可扩展 百度生态系统,广泛的应用支持 快速增长,尤其是在中国 中国市场和语言处理 专注于中国 AI 应用 强调数据隐私和安全 包括百度的昆仑芯片
MNN 移动设备的高性能。 移动和嵌入式 ARM 系统和 X86-64 CPU 移动/嵌入式 ML 社区 移动系统效率 移动设备上的高性能维护 设备端安全优势 ARM CPUs 和 GPUs 优化
NCNN 针对移动 ARM 设备进行了优化 移动和嵌入式 ARM 系统 小众但活跃的移动/嵌入式 ML 社区 Android 和 ARM 系统的效率 ARM 上的高性能维护 设备端安全优势 ARM CPUs 和 GPUs 优化

此对比分析为您提供了一个高级概述。对于部署,必须考虑项目的具体要求和约束,并查阅每个选项的详细文档和可用资源。

社区与支持

当您开始使用 YOLO11 时,拥有一个乐于助人的社区和支持可以产生重大影响。以下是如何与分享您的兴趣的其他人联系并获得您需要的帮助。

参与更广泛的社区

  • GitHub 讨论: GitHub 上的 YOLO11 仓库 包含一个“Discussions”版块,您可以在其中提问、报告问题和提出改进建议。
  • Ultralytics Discord 服务器: Ultralytics 拥有一个 Discord 服务器,您可以在其中与其他用户和开发人员互动。

官方文档和资源

  • Ultralytics YOLO11 Docs: 官方文档 提供了 YOLO11 的全面概述,以及关于安装、使用和故障排除的指南。

这些资源将帮助您应对挑战,并及时了解 YOLO11 社区中的最新趋势和最佳实践。

结论

在本指南中,我们探讨了 YOLO11 的不同部署选项。我们还讨论了在做出选择时要考虑的重要因素。这些选项允许您为各种环境和性能要求定制您的模型,使其适用于实际应用。

不要忘记 YOLO11 和 Ultralytics 社区 是一个宝贵的帮助来源。与其他开发者和专家联系,学习您可能在常规文档中找不到的独特技巧和解决方案。不断寻求知识,探索新想法,并分享您的经验。

祝您部署顺利!

常见问题

在不同的硬件平台上,YOLO11 有哪些可用的部署选项?

Ultralytics YOLO11 支持各种部署格式,每种格式都专为特定环境和硬件平台而设计。主要格式包括:

  • PyTorch 用于研究和原型设计,具有出色的 python 集成。
  • 用于 Python 不可用的生产环境的 TorchScript
  • ONNX,实现跨平台兼容性和硬件加速。
  • OpenVINO,在 Intel 硬件上实现优化的性能。
  • TensorRT,用于在 NVIDIA GPU 上进行高速推理。

每种格式都有其独特的优势。有关详细的演练,请参阅我们的导出过程文档

如何提高我的 YOLO11 模型在 Intel CPU 上的推理速度?

要提高 Intel CPU 上的推理速度,可以使用 Intel 的 OpenVINO 工具包部署 YOLO11 模型。OpenVINO 通过优化模型以有效利用 Intel 硬件,从而显著提高性能。

  1. 使用以下方法将您的 YOLO11 模型转换为 OpenVINO 格式 model.export() 函数。
  2. 请按照Intel OpenVINO 导出文档中的详细设置指南进行操作。

要获得更多见解,请查看我们的博客文章

是否可以在移动设备上部署 YOLO11 模型?

是的,YOLO11 模型可以使用 TensorFlow Lite (TF Lite) 部署在 Android 和 iOS 平台的移动设备上。TF Lite 专为移动和嵌入式设备而设计,可提供高效的设备端推理。

示例

# Export command for TFLite format
model.export(format="tflite")
# CLI command for TFLite export
yolo export --format tflite

有关将模型部署到移动设备的更多详细信息,请参阅我们的TF Lite 集成指南

为我的 YOLO11 模型选择部署格式时,应考虑哪些因素?

在为 YOLO11 选择部署格式时,请考虑以下因素:

  • 性能:某些格式(如 TensorRT)在 NVIDIA GPU 上提供出色的速度,而 OpenVINO 针对 Intel 硬件进行了优化。
  • 兼容性: ONNX在不同平台之间提供广泛的兼容性。
  • 易于集成:CoreML 或 TF Lite 等格式专为 iOS 和 Android 等特定生态系统量身定制。
  • 社区支持: PyTorch 和 TensorFlow 等格式拥有广泛的社区资源和支持。

有关对比分析,请参阅我们的导出格式文档

如何在 Web 应用程序中部署 YOLO11 模型?

要在 Web 应用程序中部署 YOLO11 模型,可以使用 TensorFlow.js (TF.js),它允许直接在浏览器中运行机器学习模型。这种方法无需后端基础设施,并提供实时性能。

  1. 将 YOLO11 模型导出为 TF.js 格式。
  2. 将导出的模型集成到您的 Web 应用程序中。

有关分步说明,请参阅我们的 TensorFlow.js 集成 指南。



📅 创建于 1 年前 ✏️ 更新于 3 个月前

评论