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 硬件,从而显著提高性能。
- 使用以下方法将您的 YOLO11 模型转换为 OpenVINO 格式
model.export()
函数。 - 请按照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),它允许直接在浏览器中运行机器学习模型。这种方法无需后端基础设施,并提供实时性能。
- 将 YOLO11 模型导出为 TF.js 格式。
- 将导出的模型集成到您的 Web 应用程序中。
有关分步说明,请参阅我们的 TensorFlow.js 集成 指南。