了解YOLO11 的部署选项
导言
在使用YOLO11 的过程中,您已经走过了漫长的道路。您辛勤收集了数据,对其进行了细致的注释,并投入了大量时间来训练和严格评估您的自定义YOLO11 模型。现在,是时候让您的模型为您的特定应用、用例或项目工作了。但有一个关键的决定摆在您面前:如何有效地导出和部署您的模型。
本指南将向您介绍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++ 生产环境而设计,但某些高级功能可能无法完美转换。
-
社区支持和生态系统:受益于PyTorch 的大型社区,但专业开发人员范围较窄。
-
案例研究:广泛应用于Python 性能开销成为瓶颈的行业环境中。
-
维护和更新:与PyTorch 一起维护,持续更新。
-
安全考虑:通过在没有完全安装Python 的环境中运行模型,提高了安全性。
-
硬件加速:继承PyTorch 的CUDA 支持,确保高效利用GPU 。
ONNX
开放神经网络交换(ONNX )是一种可在不同框架间实现模型互操作性的格式,这在部署到不同平台时至关重要。
-
性能基准:ONNX 模型的性能可能会有所不同,这取决于其部署的具体运行时间。
-
兼容性和集成性:由于其框架无关性,可在多个平台和硬件之间实现高度互操作性。
-
社区支持和生态系统:得到许多组织的支持,形成了广泛的生态系统和各种优化工具。
-
案例研究:经常用于在不同的机器学习框架之间移动模型,体现了其灵活性。
-
维护和更新:作为一项开放标准,ONNX 会定期更新,以支持新的操作和模式。
-
安全考虑因素:与任何跨平台工具一样,确保转换和部署管道的安全至关重要。
-
硬件加速:通过ONNX Runtime,模型可以利用各种硬件优化。
OpenVINO
OpenVINO 是一个Intel 工具包,旨在促进深度学习模型在Intel 硬件上的部署,提高性能和速度。
-
性能基准:专门针对Intel CPU、GPU 和 VPU 进行了优化,可在兼容硬件上显著提升性能。
-
兼容性和集成性:在Intel 生态系统中运行效果最佳,但也支持一系列其他平台。
-
社区支持和生态系统:由Intel 支持,拥有坚实的用户基础,尤其是在计算机视觉领域。
-
案例研究:通常用于物联网和边缘计算场景,在这些场景中普遍使用Intel 硬件。
-
维护和更新:Intel 定期更新OpenVINO ,以支持最新的深度学习模型和Intel 硬件。
-
安全考虑因素:提供强大的安全功能,适合在敏感应用中部署。
-
硬件加速:专为在Intel 硬件上加速而定制,利用专用指令集和硬件功能。
有关使用OpenVINO 进行部署的详细信息,请参阅Ultralytics Integration 文档:Intel OpenVINO 导出。
TensorRT
TensorRT 是一款高性能深度学习推理优化器和运行时,来自NVIDIA ,非常适合需要速度和效率的应用。
-
性能基准:在NVIDIA GPU 上提供顶级性能,支持高速推理。
-
兼容性和集成性:最适合NVIDIA 硬件,在此环境之外的支持有限。
-
社区支持和生态系统:通过NVIDIA 开发人员论坛和文档建立强大的支持网络。
-
案例研究:广泛应用于需要对视频和图像数据进行实时推理的行业。
-
维护和更新:NVIDIA 维护TensorRT ,经常更新以提高性能和支持新的GPU 架构。
-
安全考虑因素:与许多NVIDIA 产品一样,它非常注重安全性,但具体情况取决于部署环境。
-
硬件加速:专为NVIDIA GPU 设计,提供深度优化和加速。
CoreML
CoreML 是 Apple 的机器学习框架,针对 Apple 生态系统(包括iOS 、macOS、watchOS 和 tvOS)中的设备性能进行了优化。
-
性能基准:针对 Apple 硬件上的设备性能进行了优化,同时将电池使用量降至最低。
-
兼容性和集成性:专为苹果生态系统设计,为iOS 和 macOS 应用程序提供简化的工作流程。
-
社区支持和生态系统来自 Apple 的强大支持和专门的开发者社区,以及大量的文档和工具。
-
案例研究:常用于苹果产品上需要设备上机器学习功能的应用。
-
维护和更新:由 Apple 定期更新,以支持最新的机器学习进展和 Apple 硬件。
-
安全考虑:受益于苹果公司对用户隐私和数据安全的重视。
-
硬件加速充分利用 Apple 的神经引擎和GPU 加速机器学习任务。
TF SavedModel
TF SavedModel 是TensorFlow 用来保存和提供机器学习模型的格式,特别适用于可扩展的服务器环境。
-
性能基准:在服务器环境中提供可扩展的性能,尤其是与TensorFlow Serving 一起使用时。
-
兼容性和集成性:TensorFlow 生态系统的广泛兼容性,包括云和企业服务器部署。
-
社区支持和生态系统:由于TensorFlow 广受欢迎,因此拥有大量社区支持,以及大量用于部署和优化的工具。
-
案例研究:广泛应用于生产环境,为深度学习模型提供大规模服务。
-
维护和更新:由Google 和TensorFlow 社区提供支持,确保定期更新和新增功能。
-
安全考虑因素:使用TensorFlow Serving 进行的部署包括针对企业级应用的强大安全功能。
-
硬件加速:通过TensorFlow 的后端支持各种硬件加速。
TF GraphDef
TF GraphDef 是一种TensorFlow 格式,它将模型表示为图形,有利于需要静态计算图形的环境。
-
性能基准:为静态计算图提供稳定的性能,重点关注一致性和可靠性。
-
兼容性和集成性:可轻松集成到TensorFlow 的基础设施中,但灵活性不如SavedModel 。
-
社区支持和生态系统:TensorFlow 的生态系统提供了良好的支持,有许多资源可用于优化静态图。
-
案例研究:适用于需要静态图形的场景,如某些嵌入式系统。
-
维护和更新:与TensorFlow 的核心更新一起定期更新。
-
安全考虑因素:通过TensorFlow 的既定安全实践确保安全部署。
-
硬件加速:可利用TensorFlow 的硬件加速选项,但不如SavedModel 灵活。
TF 轻型
TF Lite 是TensorFlow 的移动和嵌入式设备机器学习解决方案,为设备推理提供了一个轻量级库。
-
性能基准:专为提高移动和嵌入式设备的速度和效率而设计。
-
兼容性和集成性:由于其轻便的特性,可在多种设备上使用。
-
社区支持和生态系统:在Google 的支持下,它拥有一个强大的社区和越来越多的开发人员资源。
-
案例研究:在需要在设备上进行推理且占用空间最小的移动应用中很受欢迎。
-
维护和更新:定期更新,纳入最新功能并优化移动设备。
-
安全考虑因素:为在终端用户设备上运行模型提供安全环境。
-
硬件加速:支持多种硬件加速选项,包括GPU 和 DSP。
TF 边缘TPU
TF EdgeTPU 专为在Google 的 EdgeTPU 硬件上进行高速、高效计算而设计,非常适合需要实时处理的物联网设备。
-
性能基准:专门针对Google's EdgeTPU 硬件上的高速、高效计算进行了优化。
-
兼容性和集成性:仅适用于 EdgeTPU 设备上的TensorFlow Lite 型号。
-
社区支持和生态系统:通过Google 和第三方开发人员提供的资源,不断扩大支持范围。
-
案例研究:用于需要低延迟实时处理的物联网设备和应用。
-
维护和更新:不断改进,以充分利用新发布的 EdgeTPU 硬件的功能。
-
安全考虑因素:与Google 强大的物联网和边缘设备安全功能集成。
-
硬件加速:专为充分利用Google Coral 设备而设计。
TF.js
TensorFlow.js (TF.js) 是一个将机器学习功能直接引入浏览器的库,为网络开发人员和用户提供了一个全新的可能性领域。它允许在网络应用程序中集成机器学习模型,而无需后端基础设施。
-
性能基准:可直接在浏览器中进行机器学习,性能合理,具体取决于客户端设备。
-
兼容性和集成性:与网络技术高度兼容,可轻松集成到网络应用程序中。
-
社区支持和生态系统:来自网络和 Node.js 开发人员社区的支持,以及在浏览器中部署 ML 模型的各种工具。
-
案例研究:适用于交互式网络应用程序,无需服务器端处理即可从客户端机器学习中获益。
-
维护和更新:由TensorFlow 团队维护,开源社区也提供了支持。
-
安全考虑因素:利用网络平台的安全模型,在浏览器的安全环境中运行。
-
硬件加速:通过访问 WebGL 等硬件加速的基于网络的应用程序接口,可以提高性能。
PaddlePaddle
PaddlePaddle 是百度开发的一个开源深度学习框架。其设计宗旨是既能为研究人员提供高效服务,又能让开发人员轻松使用。它在中国尤其流行,并为中文处理提供专门支持。
-
性能基准:提供具有竞争力的性能,注重易用性和可扩展性。
-
兼容性和集成性:在百度生态系统中集成良好,支持广泛的应用程序。
-
社区支持和生态系统:虽然该社区在全球范围内规模较小,但发展迅速,尤其是在中国。
-
案例研究:常用于中国市场,以及为其他主要框架寻找替代方案的开发人员。
-
维护和更新:定期更新,重点服务于中文人工智能应用程序和服务。
-
安全考虑:强调数据隐私和安全,符合中国数据管理标准。
-
硬件加速:支持各种硬件加速,包括百度自己的昆仑芯片。
NCNN
NCNN 是专为移动平台优化的高性能神经网络推理框架。它具有轻量级和高效的特点,特别适合资源有限的移动和嵌入式设备。
-
性能基准:针对移动平台进行了高度优化,可在基于 ARM 的设备上进行高效推理。
-
兼容性和集成性:适用于采用 ARM 架构的手机和嵌入式系统。
-
社区支持和生态系统:由一个专注于移动和嵌入式 ML 应用的小众但活跃的社区提供支持。
-
案例研究:适用于Android 和其他基于 ARM 的系统上对效率和速度要求极高的移动应用。
-
维护和更新:持续改进,在一系列 ARM 设备上保持高性能。
-
安全考虑:侧重于在设备上本地运行,利用设备上处理的固有安全性。
-
硬件加速:专为 ARM CPU 和 GPU 量身定制,并针对这些架构进行了特定优化。
MNN
MNN 是一个高效、轻量级的深度学习框架。它支持深度学习模型的推理和训练,在设备上进行推理和训练时具有业界领先的性能。此外,MNN 还可用于物联网等嵌入式设备。
YOLO11 部署方案比较分析
下表简要介绍了YOLO11 模型的各种部署选项,可帮助您根据几个关键标准评估哪种选项最适合您的项目需求。如需深入了解每种部署选项的格式,请参阅Ultralytics 文档页面上的导出格式。
部署选项 | 性能基准 | 兼容性和一体化 | 社区支持和生态系统 | 案例研究 | 维护和更新 | 安全考虑因素 | 硬件加速 |
---|---|---|---|---|---|---|---|
PyTorch | 良好的灵活性;可能会牺牲原始性能 | 与Python 库配合默契 | 广泛的资源和社区 | 研究与原型 | 定期、积极的发展 | 取决于部署环境 | CUDA 支持GPU 加速 |
TorchScript | 比PyTorch | 从PyTorch 到 C++ 的平滑过渡 | 专业化,但比PyTorch | Python 是瓶颈所在的行业 | 持续更新PyTorch | 提高安全性,无需全面Python | 从CUDA 继承支持PyTorch |
ONNX | 根据运行时间而变化 | 跨越不同框架的程度高 | 广泛的生态系统,得到许多组织的支持 | 跨 ML 框架的灵活性 | 定期更新新业务 | 确保安全转换和部署实践 | 各种硬件优化 |
OpenVINO | 针对Intel 硬件进行了优化 | Intel 生态系统内最佳 | 扎实的计算机视觉领域知识 | 利用Intel 硬件实现物联网和边缘技术 | 定期更新Intel 硬件 | 适用于敏感应用的强大功能 | 专为Intel 硬件定制 |
TensorRT | 顶级NVIDIA GPU | 最适合NVIDIA 硬件 | 通过以下方式建立强大的网络NVIDIA | 实时视频和图像推理 | 针对新 GPU 的频繁更新 | 强调安全 | 专为NVIDIA GPU 设计 |
CoreML | 针对设备上的 Apple 硬件进行了优化 | 苹果生态系统独享 | 苹果公司和开发者的大力支持 | 苹果产品上的设备 ML | 苹果定期更新 | 关注隐私和安全 | 苹果神经引擎和GPU |
TF SavedModel | 可在服务器环境中扩展 | TensorFlow 生态系统的广泛兼容性 | TensorFlow 人气高,支持率大 | 按比例为模型提供服务 | Google 和社区定期更新 | 适用于企业的强大功能 | 各种硬件加速 |
TF GraphDef | 静态计算图的稳定性 | 与TensorFlow 基础设施良好集成 | 优化静态图形的资源 | 需要静态图形的场景 | 与TensorFlow 核心同时更新 | 建立TensorFlow 安全实践 | TensorFlow 加速选项 |
TF 轻型 | 移动/嵌入式的速度和效率 | 支持多种设备 | 强大的社区,Google 支持 | 移动应用程序占用空间最小 | 移动设备的最新功能 | 终端用户设备的安全环境 | GPU 和 DSP 等 |
TF 边缘TPU | 针对Google's EdgeTPU 硬件进行了优化 | 仅限 EdgeTPU 设备 | 与Google 和第三方资源共同成长 | 需要实时处理的物联网设备 | 改进新 EdgeTPU 硬件 | Google强大的物联网安全 | 为Google 珊瑚定制 |
TF.js | 合理的浏览器性能 | 精通网络技术 | 支持 Web 和 Node.js 开发人员 | 交互式网络应用程序 | TensorFlow 团队和社区贡献 | 网络平台安全模式 | 利用 WebGL 和其他应用程序接口增强功能 |
PaddlePaddle | 具有竞争力、易于使用且可扩展 | 百度生态系统,广泛的应用支持 | 快速增长,尤其是在中国 | 中文市场和语言处理 | 关注中国的人工智能应用 | 强调数据隐私和安全 | 包括百度的昆仑芯片 |
MNN | 为移动设备提供高性能。 | 移动和嵌入式 ARM 系统及 X86-64CPU | 移动/嵌入式 ML 社区 | 移动系统效率 | 移动设备的高性能维护 | 设备安全优势 | ARM CPU 和 GPU 优化 |
NCNN | 针对基于 ARM 的移动设备进行了优化 | 移动和嵌入式 ARM 系统 | 小众但活跃的移动/嵌入式 ML 社区 | Android 和 ARM 系统的效率 | ARM 上的高性能维护 | 设备安全优势 | ARM CPU 和 GPU 优化 |
本比较分析为您提供了一个高层次的概览。在部署时,必须考虑项目的具体要求和限制因素,并查阅每个选项的详细文档和资源。
社区与支持
当您开始使用YOLO11 时,拥有一个有用的社区和支持会产生重大影响。以下是如何与志同道合者建立联系并获得所需帮助的方法。
与更广泛的社区互动
-
GitHub 讨论: YOLO11 仓库在 GitHub 上有一个 "讨论 "版块,您可以在此提问、报告问题和提出改进建议。
-
Ultralytics Discord 服务器: Ultralytics 有一个Discord 服务器,您可以在这里与其他用户和开发人员互动。
官方文件和资源
- Ultralytics YOLO11 文档: 官方文档全面介绍了YOLO11 以及安装、使用和故障排除指南。
这些资源将帮助您应对挑战,了解YOLO11 社区的最新趋势和最佳实践。
结论
在本指南中,我们探讨了YOLO11 的不同部署选项。我们还讨论了做出选择时需要考虑的重要因素。通过这些选项,您可以根据不同的环境和性能要求定制模型,使其适用于实际应用。
不要忘记,YOLO11 和Ultralytics 社区是宝贵的帮助来源。与其他开发人员和专家联系,学习常规文档中可能找不到的独特技巧和解决方案。不断寻求知识、探索新思路并分享经验。
祝您部署愉快
常见问题
YOLO11 在不同硬件平台上有哪些部署选项?
Ultralytics YOLO11 支持各种部署格式,每种格式都是为特定环境和硬件平台设计的。主要格式包括
- PyTorch用于研究和原型开发,与Python 完美集成。
- TorchScript用于Python 不可用的生产环境。
- ONNX以实现跨平台兼容性和硬件加速。
- OpenVINOIntel 硬件上优化性能。
- TensorRTNVIDIA GPU 上进行高速推理。
每种格式都有独特的优势。有关详细说明,请参阅我们的出口流程文档。
如何提高YOLO11 模型在Intel CPU 上的推理速度?
为了提高Intel CPU 的推理速度,您可以使用Intel 的OpenVINO 工具包来部署您的YOLO11 模型。OpenVINO 通过优化模型来有效利用Intel 硬件,从而显著提高性能。
- 将YOLO11 模型转换为OpenVINO 格式。
model.export()
功能。 - 请按照Intel OpenVINO Export 文档中的详细设置指南进行操作。
如需了解更多信息,请参阅我们的博文。
能否在移动设备上部署YOLO11 模型?
是的,YOLO11 模型可在移动设备上使用 TensorFlowLite (TF Lite) 在Android 和iOS 平台上部署。TF Lite 专为移动和嵌入式设备设计,可提供高效的设备推理。
示例
有关将模型部署到移动设备的更多详情,请参阅我们的TF Lite 集成指南。
在为YOLO11 模型选择部署格式时,应该考虑哪些因素?
在为YOLO11 选择部署格式时,请考虑以下因素:
- 性能:有些格式(如TensorRT )在NVIDIA GPU 上运行速度极快,而OpenVINO 则针对Intel 硬件进行了优化。
- 兼容性:ONNX 提供跨平台的广泛兼容性。
- 易于集成:CoreML 或TF Lite 等格式分别为iOS 和Android 等特定生态系统定制。
- 社区支持:格式,如 PyTorch和TensorFlow 等格式拥有广泛的社区资源和支持。
有关比较分析,请参阅我们的出口格式文档。
如何在网络应用程序中部署YOLO11 模型?
要在网络应用程序中部署YOLO11 模型,可以使用TensorFlow.js (TF.js),它允许直接在浏览器中运行机器学习模型。这种方法无需后端基础设施,并能提供实时性能。
- 将YOLO11 模型导出为TF.js 格式。
- 将导出的模型集成到网络应用程序中。
有关分步说明,请参阅我们的TensorFlow.js 集成指南。