Understanding YOLO11's Deployment Options
导言
You've come a long way on your journey with YOLO11. You've diligently collected data, meticulously annotated it, and put in the hours to train and rigorously evaluate your custom YOLO11 model. Now, it's time to put your model to work for your specific application, use case, or project. But there's a critical decision that stands before you: how to export and deploy your model effectively.
This guide walks you through YOLO11's deployment options and the essential factors to consider to choose the right option for your project.
How to Select the Right Deployment Option for Your YOLO11 Model
When it's time to deploy your YOLO11 model, selecting a suitable export format is very important. As outlined in the Ultralytics YOLO11 Modes documentation, the model.export() function allows for converting your trained model into a variety of formats tailored to diverse environments and performance requirements.
理想的格式取决于模型的预期运行环境,同时还要兼顾速度、硬件限制和集成便利性。在下一节中,我们将仔细研究每种导出选项,了解何时选择每种导出选项。
YOLO11's Deployment Options
Let's walk through the different YOLO11 deployment options. For a detailed walkthrough of the export process, visit the Ultralytics documentation page on exporting.
PyTorch
PyTorch is an open-source machine learning library widely used for applications in deep learning and artificial intelligence. It provides a high level of flexibility and speed, which has made it a favorite among researchers and developers.
性能基准:PyTorch 以易用性和灵活性著称,与其他更专业、更优化的框架相比,可能会在原始性能上略有折衷。
兼容性和集成性:与Python 中的各种数据科学和机器学习库具有出色的兼容性。
社区支持和生态系统:最有活力的社区之一,拥有丰富的学习和故障排除资源。
案例研究:许多学术论文参考了PyTorch 中部署的模型,这些模型常用于研究原型。
维护和更新:定期更新,积极开发和支持新功能。
安全考虑因素:定期修补安全问题,但安全性主要取决于部署的整体环境。
硬件加速:支持CUDA ,用于GPU 加速,这对加快模型训练和推理至关重要。
TorchScript
TorchScript 延伸 PyTorch的功能,允许导出模型在 C++ 运行时环境中运行。这使得它适用于以下生产环境: Python 不可用。
性能基准:可提供比本地PyTorch 更高的性能,尤其是在生产环境中。
兼容性和集成性:专为从PyTorch 无缝过渡到 C++ 生产环境而设计,但某些高级功能可能无法完美转换。
社区支持和生态系统:受益于PyTorch 的大型社区,但专业开发人员范围较窄。
案例研究:广泛应用于Python 性能开销成为瓶颈的行业环境中。
维护和更新:与PyTorch 一起维护,持续更新。
安全考虑:通过在没有完全安装Python 的环境中运行模型,提高了安全性。
硬件加速:继承PyTorch 的CUDA 支持,确保高效利用GPU 。
ONNX
The Open Neural Network Exchange (ONNX) is a format that allows for model interoperability across different frameworks, which can be critical when deploying to various platforms.
性能基准:ONNX 模型的性能可能会有所不同,这取决于其部署的具体运行时间。
兼容性和集成性:由于其框架无关性,可在多个平台和硬件之间实现高度互操作性。
社区支持和生态系统:得到许多组织的支持,形成了广泛的生态系统和各种优化工具。
案例研究:常用于在不同的机器学习框架之间移动模型,展示了其灵活性。
维护和更新:作为一项开放标准,ONNX 会定期更新,以支持新的操作和模式。
安全考虑因素:与任何跨平台工具一样,确保转换和部署管道的安全至关重要。
硬件加速:通过ONNX Runtime,模型可以利用各种硬件优化。
OpenVINO
OpenVINO 是一个Intel 工具包,旨在促进深度学习模型在Intel 硬件上的部署,提高性能和速度。
性能基准:专门针对Intel CPU、GPU 和 VPU 进行了优化,可显著提升兼容硬件的性能。
兼容性和集成性:在Intel 生态系统中运行效果最佳,但也支持一系列其他平台。
Community Support and Ecosystem: Backed by Intel, with a solid user base especially in the computer vision domain.
Case Studies: Often utilized in IoT and edge computing scenarios where Intel hardware is prevalent.
维护和更新: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 硬件。
Security Considerations: Benefits from Apple's focus on user privacy and data security.
硬件加速充分利用 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 精简版是 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 是百度开发的一个开源深度学习框架。其设计宗旨是既能为研究人员提供高效服务,又能让开发人员轻松使用。它在中国尤其流行,并为中文处理提供专门支持。
性能基准:提供具有竞争力的性能,注重易用性和可扩展性。
兼容性和集成性:在百度生态系统中集成良好,支持广泛的应用程序。
社区支持和生态系统:虽然该社区在全球范围内规模较小,但发展迅速,尤其是在中国。
案例研究:常用于中国市场,以及为其他主要框架寻找替代方案的开发人员。
维护和更新:定期更新,重点服务于中文人工智能应用程序和服务。
Security Considerations: Emphasizes data privacy and security, catering to Chinese data governance standards.
硬件加速:支持各种硬件加速,包括百度自己的昆仑芯片。
NCNN
NCNN 是专为移动平台优化的高性能神经网络推理框架。它具有轻量级和高效的特点,特别适合资源有限的移动和嵌入式设备。
性能基准:针对移动平台进行了高度优化,可在基于 ARM 的设备上进行高效推理。
兼容性和集成性:适用于采用 ARM 架构的手机和嵌入式系统。
社区支持和生态系统:由一个专注于移动和嵌入式 ML 应用的小众但活跃的社区提供支持。
案例研究:适用于Android 和其他基于 ARM 的系统上对效率和速度要求极高的移动应用。
维护和更新:不断改进,在一系列 ARM 设备上保持高性能。
安全考虑:侧重于在设备上本地运行,利用设备上处理的固有安全性。
硬件加速:专为 ARM CPU 和 GPU 量身定制,并针对这些架构进行了特定优化。
MNN
MNN is a highly efficient and lightweight deep learning framework. It supports inference and training of deep learning models and has industry-leading performance for inference and training on-device. In addition, MNN is also used on embedded devices, such as IoT.
Comparative Analysis of YOLO11 Deployment Options
The following table provides a snapshot of the various deployment options available for YOLO11 models, helping you to assess which may best fit your project needs based on several critical criteria. For an in-depth look at each deployment option's format, please see the Ultralytics documentation page on export formats.
部署选项 | 性能基准 | 兼容性和一体化 | 社区支持和生态系统 | 案例研究 | 维护和更新 | 安全考虑因素 | 硬件加速 |
---|---|---|---|---|---|---|---|
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 | High-performance for mobile devices. | Mobile and embedded ARM systems and X86-64 CPU | Mobile/embedded ML community | Moblile systems efficiency | High performance maintenance on Mobile Devices | 设备安全优势 | ARM CPU 和 GPU 优化 |
NCNN | 针对基于 ARM 的移动设备进行了优化 | 移动和嵌入式 ARM 系统 | 小众但活跃的移动/嵌入式 ML 社区 | Android 和 ARM 系统的效率 | ARM 上的高性能维护 | 设备安全优势 | ARM CPU 和 GPU 优化 |
本比较分析为您提供了一个高层次的概览。在部署时,必须考虑项目的具体要求和限制因素,并查阅每个选项的详细文档和资源。
社区与支持
When you're getting started with YOLO11, having a helpful community and support can make a significant impact. Here's how to connect with others who share your interests and get the assistance you need.
与更广泛的社区互动
GitHub Discussions: The YOLO11 repository on GitHub has a "Discussions" section where you can ask questions, report issues, and suggest improvements.
Ultralytics Discord 服务器: Ultralytics 有一个Discord 服务器,您可以在这里与其他用户和开发人员互动。
官方文件和资源
- Ultralytics YOLO11 Docs: The official documentation provides a comprehensive overview of YOLO11, along with guides on installation, usage, and troubleshooting.
These resources will help you tackle challenges and stay updated on the latest trends and best practices in the YOLO11 community.
结论
In this guide, we've explored the different deployment options for YOLO11. We've also discussed the important factors to consider when making your choice. These options allow you to customize your model for various environments and performance requirements, making it suitable for real-world applications.
Don't forget that the YOLO11 and Ultralytics community is a valuable source of help. Connect with other developers and experts to learn unique tips and solutions you might not find in regular documentation. Keep seeking knowledge, exploring new ideas, and sharing your experiences.
祝您部署愉快
常见问题
What are the deployment options available for YOLO11 on different hardware platforms?
Ultralytics YOLO11 supports various deployment formats, each designed for specific environments and hardware platforms. Key formats include:
- PyTorch用于研究和原型开发,与Python 完美集成。
- TorchScript用于Python 不可用的生产环境。
- ONNX以实现跨平台兼容性和硬件加速。
- OpenVINOIntel 硬件上优化性能。
- TensorRTNVIDIA GPU 上进行高速推理。
每种格式都有独特的优势。有关详细说明,请参阅我们的出口流程文档。
How do I improve the inference speed of my YOLO11 model on an Intel CPU?
To enhance inference speed on Intel CPUs, you can deploy your YOLO11 model using Intel's OpenVINO toolkit. OpenVINO offers significant performance boosts by optimizing models to leverage Intel hardware efficiently.
- Convert your YOLO11 model to the OpenVINO format using the
model.export()
功能。 - 请按照Intel OpenVINO Export 文档中的详细设置指南进行操作。
如需了解更多信息,请参阅我们的博文。
Can I deploy YOLO11 models on mobile devices?
Yes, YOLO11 models can be deployed on mobile devices using TensorFlow Lite (TF Lite) for both Android and iOS platforms. TF Lite is designed for mobile and embedded devices, providing efficient on-device inference.
示例
有关将模型部署到移动设备的更多详情,请参阅我们的TF Lite 集成指南。
What factors should I consider when choosing a deployment format for my YOLO11 model?
When choosing a deployment format for YOLO11, consider the following factors:
- 性能:有些格式(如TensorRT )在NVIDIA GPU 上运行速度极快,而OpenVINO 则针对Intel 硬件进行了优化。
- 兼容性:ONNX 提供跨平台的广泛兼容性。
- 易于集成:CoreML 或TF Lite 等格式分别为iOS 和Android 等特定生态系统定制。
- Community Support: Formats like PyTorch and TensorFlow have extensive community resources and support.
有关比较分析,请参阅我们的出口格式文档。
How can I deploy YOLO11 models in a web application?
To deploy YOLO11 models in a web application, you can use TensorFlow.js (TF.js), which allows for running machine learning models directly in the browser. This approach eliminates the need for backend infrastructure and provides real-time performance.
- Export the YOLO11 model to the TF.js format.
- 将导出的模型集成到网络应用程序中。
有关分步说明,请参阅我们的TensorFlow.js 集成指南。