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 : Intel OpenVINO Экспорт.
TensorRT
TensorRT Это высокопроизводительный оптимизатор выводов глубокого обучения и время выполнения от NVIDIA, идеально подходящее для приложений, которым нужны скорость и эффективность.
Бенчмарки производительности: Обеспечивает высочайшую производительность на графических процессорах NVIDIA с поддержкой высокоскоростных выводов.
Совместимость и интеграция: Лучше всего подходит для оборудования NVIDIA , за пределами этой среды поддержка ограничена.
Поддержка сообщества и экосистема: Сильная сеть поддержки через форумы разработчиков и документацию NVIDIA.
Примеры из практики: Широко распространены в отраслях, где требуются выводы в реальном времени по данным видео и изображений.
Обслуживание и обновления: NVIDIA поддерживает TensorRT с помощью частых обновлений для повышения производительности и поддержки новых GPU архитектур.
Соображения безопасности: Как и многие другие продукты NVIDIA , он уделяет большое внимание безопасности, но особенности зависят от среды развертывания.
Аппаратное ускорение: Эксклюзивно разработанная для графических процессоров NVIDIA , она обеспечивает глубокую оптимизацию и ускорение.
CoreML
CoreML Это фреймворк машинного обучения Apple, оптимизированный для работы на устройствах в экосистеме Apple, включая iOS, macOS, watchOS и tvOS.
Бенчмарки производительности: Оптимизирован для работы на устройстве на аппаратуре Apple с минимальным расходом батареи.
Совместимость и интеграция: Эксклюзивно для экосистемы Apple, обеспечивая оптимизированный рабочий процесс для приложений iOS и macOS.
Поддержка сообщества и экосистема: Сильная поддержка со стороны Apple и специализированное сообщество разработчиков, обширная документация и инструменты.
Примеры из практики: Обычно используется в приложениях, требующих возможностей машинного обучения на устройстве, на продуктах 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 Lite
TF Lite - это TensorFlowРешение для машинного обучения мобильных устройств и встраиваемых устройств, предоставляющее облегченную библиотеку для логических выводов на устройстве.
Бенчмарки производительности: Разработан для скорости и эффективности работы на мобильных и встраиваемых устройствах.
Совместимость и интеграция: Может использоваться на широком спектре устройств благодаря своей легкости.
Поддержка сообщества и экосистема: Поддерживаемый Google, он имеет сильное сообщество и растущее количество ресурсов для разработчиков.
Примеры из практики: Популярен в мобильных приложениях, где требуется делать выводы на устройстве с минимальной занимаемой площадью.
Обслуживание и обновления: Регулярно обновляйся, чтобы включить новейшие функции и оптимизацию для мобильных устройств.
Соображения безопасности: Обеспечивает безопасную среду для запуска моделей на устройствах конечных пользователей.
Аппаратное ускорение: Поддерживает различные варианты аппаратного ускорения, включая GPU и DSP.
TF Край TPU
TF Edge TPU предназначен для высокоскоростных и эффективных вычислений на аппаратном обеспечении Google's Edge TPU , идеально подходящем для IoT-устройств, требующих обработки данных в реальном времени.
Бенчмарки производительности: Специально оптимизирован для высокоскоростных и эффективных вычислений на оборудовании Google's Edge TPU .
Совместимость и интеграция: Работает исключительно с моделями TensorFlow Lite на устройствах Edge TPU .
Поддержка сообщества и экосистема: Растущая поддержка с помощью ресурсов, предоставляемых Google и сторонними разработчиками.
Примеры из практики: Используется в IoT-устройствах и приложениях, где требуется обработка данных в реальном времени с низкой задержкой.
Обслуживание и обновления: Постоянно совершенствуйся, чтобы использовать возможности новых аппаратных релизов Edge TPU .
Соображения безопасности: Интегрируется с Google'надежной системой безопасности для IoT и пограничных устройств.
Аппаратное ускорение: Разработано на заказ, чтобы использовать все преимущества устройств Google Coral.
TF.js
TensorFlow.js (TF.js) - это библиотека, которая привносит возможности машинного обучения прямо в браузер, открывая новое царство возможностей как для веб-разработчиков, так и для пользователей. Она позволяет интегрировать модели машинного обучения в веб-приложения без необходимости использования внутренней инфраструктуры.
Бенчмарки производительности: Обеспечивает машинное обучение прямо в браузере с приемлемой производительностью, зависящей от клиентского устройства.
Совместимость и интеграция: Высокая совместимость с веб-технологиями, позволяющая легко интегрироваться в веб-приложения.
Поддержка сообщества и экосистема: Поддержка со стороны сообщества веб-разработчиков и разработчиков Node.js, а также множество инструментов для развертывания ML-моделей в браузерах.
Примеры из практики: Идеально подходит для интерактивных веб-приложений, которые выигрывают от машинного обучения на стороне клиента без необходимости обработки на стороне сервера.
Обслуживание и обновления: Поддерживается командой TensorFlow с помощью вклада сообщества open-source.
Соображения безопасности: Запускается в безопасном контексте браузера, используя модель безопасности веб-платформы.
Аппаратное ускорение: Производительность можно повысить с помощью веб-интерфейсов, которые обращаются к аппаратному ускорению, например WebGL.
PaddlePaddle
PaddlePaddle - это фреймворк глубокого обучения с открытым исходным кодом, разработанный компанией Baidu. Он призван быть одновременно эффективным для исследователей и простым в использовании для разработчиков. Он особенно популярен в Китае и предлагает специализированную поддержку обработки китайского языка.
Бенчмарки производительности: Предлагает конкурентоспособную производительность с упором на простоту использования и масштабируемость.
Совместимость и интеграция: Хорошо интегрирован в экосистему Baidu и поддерживает широкий спектр приложений.
Поддержка сообщества и экосистема: Хотя в глобальном масштабе сообщество меньше, оно быстро растет, особенно в Китае.
Примеры из практики: Часто используется на китайских рынках и разработчиками, которые ищут альтернативу другим основным фреймворкам.
Обслуживание и обновления: Регулярно обновляется, уделяя особое внимание обслуживанию приложений и сервисов ИИ на китайском языке.
Security Considerations: Emphasizes data privacy and security, catering to Chinese data governance standards.
Аппаратное ускорение: Поддерживает различные аппаратные ускорения, включая собственные чипы Kunlun от Baidu.
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 . | Хорошо разбирается в области компьютерного зрения | IoT и edge с аппаратным обеспечением Intel | Регулярные обновления для оборудования Intel | Надежные функции для чувствительных приложений | Предназначен для оборудования Intel |
TensorRT | Топ-уровень на графических процессорах NVIDIA | Лучше всего для оборудования NVIDIA | Сильная сеть благодаря NVIDIA | Вывод видео и изображений в реальном времени | Частые обновления для новых графических процессоров | Упор на безопасность | Разработан для графических процессоров NVIDIA |
CoreML | Оптимизирован для аппаратного обеспечения Apple на устройстве | Эксклюзив для экосистемы Apple | Сильная поддержка Apple и разработчиков | Устройства ML на продуктах Apple | Регулярные обновления Apple | Сосредоточься на конфиденциальности и безопасности | Нейронный движок Apple и GPU |
TF SavedModel | Масштабируемость в серверных средах | Широкая совместимость в экосистеме TensorFlow | Большая поддержка благодаря популярности сайта TensorFlow | Обслуживание моделей в масштабе | Регулярные обновления на Google и в сообществе | Надежные функции для предприятий | Различные аппаратные ускорения |
TF GraphDef | Стабильность для статических вычислительных графов | Хорошо интегрируется с инфраструктурой TensorFlow | Ресурсы для оптимизации статических графов | Сценарии, требующие статичных графов | Обновления наряду с ядром TensorFlow | Установленная практика безопасности TensorFlow | TensorFlow Варианты ускорения |
TF Lite | Скорость и эффективность на мобильных/встроенных устройствах | Широкий спектр поддержки устройств | Прочное сообщество, Google с поддержкой | Мобильные приложения с минимальной занимаемой площадью | Новейшие возможности для мобильных | Безопасная среда на устройствах конечных пользователей | GPU и DSP в том числе. |
TF Край TPU | Оптимизирован для аппаратного обеспечения Google'Edge TPU . | Эксклюзивно для устройств Edge TPU | Развивайся с помощью Google и сторонних ресурсов. | IoT-устройства, требующие обработки данных в реальном времени | Улучшения для нового оборудования Edge TPU | Googleнадежная защита IoT | Индивидуальная разработка для Google Coral |
TF.js | Разумная производительность в браузере | Высокий уровень владения веб-технологиями | Поддержка веб-разработчиков и разработчиков Node.js | Интерактивные веб-приложения | TensorFlow Вклад в команду и сообщество | Модель безопасности веб-платформы | Улучшенный с помощью WebGL и других API |
PaddlePaddle | Конкурентоспособный, простой в использовании и масштабируемый | Экосистема Baidu, широкая поддержка приложений | Быстрый рост, особенно в Китае | Китайский рынок и обработка языка | Сосредоточься на китайских приложениях искусственного интеллекта | Уделяй особое внимание конфиденциальности и безопасности данных | Включая чипы Kunlun от Baidu. |
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-процессоров и графических процессоров |
NCNN | Оптимизирован для мобильных устройств на базе ARM | Мобильные и встраиваемые ARM-системы | Нишевое, но активное мобильное/встроенное сообщество ML | Android и эффективность систем ARM | Высокопроизводительное обслуживание на ARM | Преимущества безопасности на устройстве | Оптимизация ARM-процессоров и графических процессоров |
Этот сравнительный анализ дает тебе обзор высокого уровня. Для развертывания необходимо учитывать конкретные требования и ограничения твоего проекта, а также обращаться к подробной документации и ресурсам, доступным для каждого варианта.
Сообщество и поддержка
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 для кроссплатформенной совместимости и аппаратного ускорения.
- OpenVINO для оптимизации производительности на оборудовании Intel .
- TensorRT для высокоскоростных выводов на графических процессорах NVIDIA .
Каждый формат имеет уникальные преимущества. Для подробного ознакомления смотри нашу документацию по процессу экспорта.
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.