Перейти к содержимому

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, с особыми оптимизациями для этих архитектур.

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Установленная практика безопасности TensorFlowTensorFlow Варианты ускорения
TF LiteСкорость и эффективность на мобильных/встроенных устройствахШирокий спектр поддержки устройствПрочное сообщество, Google с поддержкойМобильные приложения с минимальной занимаемой площадьюНовейшие возможности для мобильныхБезопасная среда на устройствах конечных пользователейGPU и DSP в том числе.
TF Край TPUОптимизирован для аппаратного обеспечения Google'Edge TPU .Эксклюзивно для устройств Edge TPUРазвивайся с помощью Google и сторонних ресурсов.IoT-устройства, требующие обработки данных в реальном времениУлучшения для нового оборудования Edge TPUGoogleнадежная защита IoTИндивидуальная разработка для Google Coral
TF.jsРазумная производительность в браузереВысокий уровень владения веб-технологиямиПоддержка веб-разработчиков и разработчиков Node.jsИнтерактивные веб-приложенияTensorFlow Вклад в команду и сообществоМодель безопасности веб-платформыУлучшенный с помощью WebGL и других API
PaddlePaddleКонкурентоспособный, простой в использовании и масштабируемыйЭкосистема Baidu, широкая поддержка приложенийБыстрый рост, особенно в КитаеКитайский рынок и обработка языкаСосредоточься на китайских приложениях искусственного интеллектаУделяй особое внимание конфиденциальности и безопасности данныхВключая чипы Kunlun от Baidu.
NCNNОптимизирован для мобильных устройств на базе ARMМобильные и встраиваемые ARM-системыНишевое, но активное мобильное/встроенное сообщество MLAndroid и эффективность систем 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.

  1. Convert your YOLO11 model to the OpenVINO format using the model.export() Функция.
  2. Следуй подробному руководству по настройке в документации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.

Пример

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

Более подробно о развертывании моделей на мобильных устройствах читай в нашем руководстве по интеграции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.

  1. Export the YOLO11 model to the TF.js format.
  2. Интегрируй экспортированную модель в свое веб-приложение.

Пошаговые инструкции ты найдешь в нашем руководстве по интеграцииTensorFlow.js.

📅 Created 11 months ago ✏️ Updated 23 days ago

Комментарии