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

Понимание YOLOv8Варианты развертывания

Введение

Вы прошли долгий путь в своем путешествии с YOLOv8. Вы усердно собирали данные, скрупулезно аннотировали их и потратили часы на обучение и тщательную оценку своего пользовательского YOLOv8 модель. Теперь пришло время применить модель к конкретному приложению, варианту использования или проекту. Но перед вами стоит важнейшее решение: как эффективно экспортировать и развернуть модель.

В этом руководстве вы найдете следующие инструкции YOLOv8Варианты развертывания и основные факторы, которые следует учитывать, чтобы выбрать правильный вариант для вашего проекта.

Как выбрать правильный вариант развертывания для твоей модели YOLOv8

Когда приходит время развернуть твою YOLOv8 модель, выбор подходящего формата экспорта очень важен. Как указано в документацииUltralytics YOLOv8 Modes, функция model.export() позволяет преобразовать твою обученную модель в различные форматы, подходящие для разных сред и требований к производительности.

Идеальный формат зависит от предполагаемого рабочего контекста твоей модели, балансируя между скоростью, аппаратными ограничениями и простотой интеграции. В следующем разделе мы подробно рассмотрим каждый вариант экспорта и поймем, когда стоит выбирать каждый из них.

YOLOv8Варианты развертывания

Давай пройдемся по различным вариантам развертывания YOLOv8 . Подробное описание процесса экспорта можно найти на странице документацииUltralytics , посвященной экспорту.

PyTorch

PyTorch - это библиотека машинного обучения с открытым исходным кодом, широко используемая для приложений в области глубокого обучения и искусственного интеллекта. Она обеспечивает высокий уровень гибкости и скорости, что сделало ее фаворитом среди исследователей и разработчиков.

  • Бенчмарки производительности: PyTorch известен своей простотой в использовании и гибкостью, что может привести к небольшому компромиссу в сырой производительности по сравнению с другими фреймворками, более специализированными и оптимизированными.

  • Совместимость и интеграция: Предлагает отличную совместимость с различными библиотеками науки о данных и машинного обучения в Python.

  • Поддержка сообщества и экосистема: Одно из самых ярких сообществ с обширными ресурсами для обучения и устранения неполадок.

  • Примеры из практики: Часто используемые в исследованиях прототипы, многие академические работы ссылаются на модели, развернутые на сайте PyTorch.

  • Обслуживание и обновления: Регулярные обновления с активной разработкой и поддержкой новых функций.

  • Соображения безопасности: Регулярные патчи для решения проблем безопасности, но безопасность во многом зависит от общего окружения, в котором он развернут.

  • Hardware Acceleration: Supports CUDA for GPU acceleration, essential for speeding up model training and inference.

TorchScript

TorchScript Расширяет PyTorch, позволяя экспортировать модели в среде выполнения C++. Это делает его подходящим для производственных сред, где Python недоступен.

  • Бенчмарки производительности: Может предложить более высокую производительность по сравнению с родным PyTorch, особенно в производственных средах.

  • Совместимость и интеграция: Разработан для беспрепятственного перехода от PyTorch к производственным средам на C++, хотя некоторые продвинутые функции могут быть перенесены не идеально.

  • Поддержка сообщества и экосистема: Пользуется преимуществами большого сообщества PyTorch, но имеет более узкий круг специализированных разработчиков.

  • Примеры из практики: Широко используется в промышленности, где накладная производительность Python является узким местом.

  • Сопровождение и обновления: Поддерживается рядом с PyTorch с постоянными обновлениями.

  • Соображения безопасности: Улучшенная безопасность позволяет запускать модели в средах без полной установки Python .

  • Hardware Acceleration: Inherits PyTorch's CUDA support, ensuring efficient GPU utilization.

ONNX

Open Neural Network Exchange (ONNX) - это формат, который обеспечивает совместимость моделей в различных фреймворках, что может быть критично при развертывании на различных платформах.

  • Бенчмарки производительности: ONNX модели могут иметь различную производительность в зависимости от конкретного времени выполнения, на котором они развернуты.

  • Совместимость и интеграция: Высокая совместимость с различными платформами и аппаратным обеспечением благодаря своей фреймворк-агностичности.

  • Поддержка сообщества и экосистема: Поддерживается многими организациями, что приводит к широкой экосистеме и разнообразию инструментов для оптимизации.

  • Примеры из практики: Часто используется для перемещения моделей между различными фреймворками машинного обучения, демонстрируя свою гибкость.

  • Сопровождение и обновления: Будучи открытым стандартом, ONNX регулярно обновляется для поддержки новых операций и моделей.

  • Соображения безопасности: Как и в случае с любым кроссплатформенным инструментом, очень важно обеспечить безопасность при конвертации и развертывании.

  • Аппаратное ускорение: С помощью ONNX Runtime модели могут использовать различные аппаратные оптимизации.

OpenVINO

OpenVINO Это набор инструментов Intel , призванный облегчить развертывание моделей глубокого обучения на аппаратном обеспечении Intel , повышая производительность и скорость.

  • Performance Benchmarks: Specifically optimized for Intel CPUs, GPUs, and VPUs, offering significant performance boosts on compatible hardware.

  • Compatibility and Integration: Works best within the Intel ecosystem but also supports a range of other platforms.

  • 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.

  • Maintenance and Updates: Intel regularly updates OpenVINO to support the latest deep learning models and Intel hardware.

  • Соображения безопасности: Обеспечивает надежные функции безопасности, подходящие для развертывания в чувствительных приложениях.

  • Hardware Acceleration: Tailored for acceleration on Intel hardware, leveraging dedicated instruction sets and hardware features.

For more details on deployment using OpenVINO, refer to the Ultralytics Integration documentation: Intel OpenVINO Export.

TensorRT

TensorRT Это высокопроизводительный оптимизатор выводов глубокого обучения и время выполнения от NVIDIA, идеально подходящее для приложений, которым нужны скорость и эффективность.

  • Performance Benchmarks: Delivers top-tier performance on NVIDIA GPUs with support for high-speed inference.

  • Compatibility and Integration: Best suited for NVIDIA hardware, with limited support outside this environment.

  • Community Support and Ecosystem: Strong support network through NVIDIA's developer forums and documentation.

  • Примеры из практики: Широко распространены в отраслях, где требуются выводы в реальном времени по данным видео и изображений.

  • Maintenance and Updates: NVIDIA maintains TensorRT with frequent updates to enhance performance and support new GPU architectures.

  • Security Considerations: Like many NVIDIA products, it has a strong emphasis on security, but specifics depend on the deployment environment.

  • Hardware Acceleration: Exclusively designed for NVIDIA GPUs, providing deep optimization and acceleration.

CoreML

CoreML Это фреймворк машинного обучения Apple, оптимизированный для работы на устройствах в экосистеме Apple, включая iOS, macOS, watchOS и tvOS.

  • Бенчмарки производительности: Оптимизирован для работы на устройстве на аппаратуре Apple с минимальным расходом батареи.

  • Compatibility and Integration: Exclusively for Apple's ecosystem, providing a streamlined workflow for iOS and macOS applications.

  • Поддержка сообщества и экосистема: Сильная поддержка со стороны Apple и специализированное сообщество разработчиков, обширная документация и инструменты.

  • Примеры из практики: Обычно используется в приложениях, требующих возможностей машинного обучения на устройстве, на продуктах Apple.

  • Обслуживание и обновления: Регулярно обновляется Apple, чтобы поддерживать последние достижения в области машинного обучения и аппаратное обеспечение Apple.

  • Соображения безопасности: Преимущество Apple в том, что она уделяет особое внимание конфиденциальности пользователей и безопасности данных.

  • Hardware Acceleration: Takes full advantage of Apple's neural engine and GPU for accelerated machine learning tasks.

TF SavedModel

TF SavedModel есть TensorFlow, предназначенный для сохранения и обслуживания моделей машинного обучения, особенно подходит для масштабируемых серверных сред.

  • Бенчмарки производительности: Предлагает масштабируемую производительность в серверных средах, особенно при использовании с TensorFlow Serving.

  • Совместимость и интеграция: Широкая совместимость со всей экосистемой TensorFlow, включая облачные и корпоративные серверы.

  • Поддержка сообщества и экосистема: Большая поддержка сообщества, обусловленная популярностью TensorFlow, с огромным количеством инструментов для развертывания и оптимизации.

  • Примеры из практики: Широко используется в производственных средах для обслуживания моделей глубокого обучения в масштабе.

  • Maintenance and Updates: Supported by Google and the TensorFlow community, ensuring regular updates and new features.

  • Соображения безопасности: Развертывание с помощью TensorFlow Serving включает в себя надежные функции безопасности для приложений корпоративного уровня.

  • Аппаратное ускорение: Поддерживает различные аппаратные ускорения через бэкенды TensorFlow.

TF GraphDef

TF GraphDef - это формат TensorFlow, который представляет модель в виде графа, что полезно для сред, где требуется статичный граф вычислений.

  • Бенчмарки производительности: Обеспечивает стабильную производительность для статических вычислительных графов, уделяя особое внимание согласованности и надежности.

  • Совместимость и интеграция: Легко интегрируется в инфраструктуру TensorFlow, но менее гибок по сравнению с SavedModel.

  • Поддержка сообщества и экосистема: Хорошая поддержка со стороны экосистемы TensorFlow, где доступно множество ресурсов для оптимизации статических графов.

  • Примеры из практики: Полезен в сценариях, где необходим статичный граф, например, в некоторых встраиваемых системах.

  • Обслуживание и обновления: Регулярные обновления наряду с основными обновлениями TensorFlow.

  • Соображения безопасности: Обеспечивает безопасное развертывание с помощью TensorFlow'установленных практик безопасности.

  • Аппаратное ускорение: Может использовать возможности аппаратного ускорения TensorFlow, хотя и не так гибко, как SavedModel.

TF Lite

TF Lite - это TensorFlowРешение для машинного обучения мобильных устройств и встраиваемых устройств, предоставляющее облегченную библиотеку для логических выводов на устройстве.

  • Бенчмарки производительности: Разработан для скорости и эффективности работы на мобильных и встраиваемых устройствах.

  • Совместимость и интеграция: Может использоваться на широком спектре устройств благодаря своей легкости.

  • Community Support and Ecosystem: Backed by Google, it has a robust community and a growing number of resources for developers.

  • Примеры из практики: Популярен в мобильных приложениях, где требуется делать выводы на устройстве с минимальной занимаемой площадью.

  • Обслуживание и обновления: Регулярно обновляйся, чтобы включить новейшие функции и оптимизацию для мобильных устройств.

  • Соображения безопасности: Обеспечивает безопасную среду для запуска моделей на устройствах конечных пользователей.

  • Hardware Acceleration: Supports a variety of hardware acceleration options, including GPU and DSP.

TF Край TPU

TF Edge TPU предназначен для высокоскоростных и эффективных вычислений на аппаратном обеспечении Google's Edge TPU , идеально подходящем для IoT-устройств, требующих обработки данных в реальном времени.

  • Performance Benchmarks: Specifically optimized for high-speed, efficient computing on Google's Edge TPU hardware.

  • Совместимость и интеграция: Работает исключительно с моделями TensorFlow Lite на устройствах Edge TPU .

  • Community Support and Ecosystem: Growing support with resources provided by Google and third-party developers.

  • Примеры из практики: Используется в IoT-устройствах и приложениях, где требуется обработка данных в реальном времени с низкой задержкой.

  • Обслуживание и обновления: Постоянно совершенствуйся, чтобы использовать возможности новых аппаратных релизов Edge TPU .

  • Security Considerations: Integrates with Google's robust security for IoT and edge devices.

  • Hardware Acceleration: Custom-designed to take full advantage of Google Coral devices.

TF.js

TensorFlow.js (TF.js) - это библиотека, которая привносит возможности машинного обучения прямо в браузер, открывая новое царство возможностей как для веб-разработчиков, так и для пользователей. Она позволяет интегрировать модели машинного обучения в веб-приложения без необходимости использования внутренней инфраструктуры.

  • Бенчмарки производительности: Обеспечивает машинное обучение прямо в браузере с приемлемой производительностью, зависящей от клиентского устройства.

  • Совместимость и интеграция: Высокая совместимость с веб-технологиями, позволяющая легко интегрироваться в веб-приложения.

  • Поддержка сообщества и экосистема: Поддержка со стороны сообщества веб-разработчиков и разработчиков Node.js, а также множество инструментов для развертывания ML-моделей в браузерах.

  • Примеры из практики: Идеально подходит для интерактивных веб-приложений, которые выигрывают от машинного обучения на стороне клиента без необходимости обработки на стороне сервера.

  • Обслуживание и обновления: Поддерживается командой TensorFlow с помощью вклада сообщества open-source.

  • Соображения безопасности: Запускается в безопасном контексте браузера, используя модель безопасности веб-платформы.

  • Аппаратное ускорение: Производительность можно повысить с помощью веб-интерфейсов, которые обращаются к аппаратному ускорению, например WebGL.

PaddlePaddle

PaddlePaddle - это фреймворк глубокого обучения с открытым исходным кодом, разработанный компанией Baidu. Он призван быть одновременно эффективным для исследователей и простым в использовании для разработчиков. Он особенно популярен в Китае и предлагает специализированную поддержку обработки китайского языка.

  • Бенчмарки производительности: Предлагает конкурентоспособную производительность с упором на простоту использования и масштабируемость.

  • Совместимость и интеграция: Хорошо интегрирован в экосистему Baidu и поддерживает широкий спектр приложений.

  • Поддержка сообщества и экосистема: Хотя в глобальном масштабе сообщество меньше, оно быстро растет, особенно в Китае.

  • Примеры из практики: Часто используется на китайских рынках и разработчиками, которые ищут альтернативу другим основным фреймворкам.

  • Обслуживание и обновления: Регулярно обновляется, уделяя особое внимание обслуживанию приложений и сервисов ИИ на китайском языке.

  • Соображения безопасности: Уделяй особое внимание конфиденциальности и безопасности данных, ориентируясь на китайские стандарты управления данными.

  • Аппаратное ускорение: Поддерживает различные аппаратные ускорения, включая собственные чипы Kunlun от Baidu.

NCNN

NCNN - это высокопроизводительный фреймворк для нейросетевых выводов, оптимизированный для мобильной платформы. Он отличается своей легкостью и эффективностью, что делает его особенно хорошо подходящим для мобильных и встраиваемых устройств, где ресурсы ограничены.

  • Бенчмарки производительности: сильно оптимизирован для мобильных платформ, предлагая эффективные выводы на устройствах на базе ARM.

  • Совместимость и интеграция: Подходит для приложений на мобильных телефонах и встраиваемых системах с архитектурой ARM.

  • Поддержка сообщества и экосистема: Поддерживается нишевым, но активным сообществом, ориентированным на мобильные и встраиваемые ML-приложения.

  • Case Studies: Favoured for mobile applications where efficiency and speed are critical on Android and other ARM-based systems.

  • Техническое обслуживание и обновления: Постоянно совершенствуется, чтобы поддерживать высокую производительность на ряде ARM-устройств.

  • Соображения безопасности: Он сосредоточен на выполнении локально на устройстве, используя безопасность, присущую обработке данных на устройстве.

  • Аппаратное ускорение: Настроен на ARM CPU и GPU, с особыми оптимизациями для этих архитектур.

Сравнительный анализ вариантов развертывания YOLOv8

Следующая таблица дает представление о различных вариантах развертывания, доступных для моделей YOLOv8 , помогая тебе оценить, какой из них может наилучшим образом соответствовать потребностям твоего проекта, основываясь на нескольких важнейших критериях. Для более детального изучения формата каждого варианта развертывания, пожалуйста, обратись к странице документацииUltralytics , посвященной форматам экспорта.

Вариант развертывания Контрольные показатели производительности Совместимость и интеграция Поддержка сообщества и экосистемы Примеры из практики Обслуживание и обновления Соображения безопасности Аппаратное ускорение
PyTorch Хорошая гибкость; возможно, в ущерб сырой производительности Отлично работает с библиотеками Python Обширные ресурсы и сообщество Исследования и прототипы Регулярное, активное развитие Зависит от среды развертывания CUDA support for GPU acceleration
TorchScript Лучше для производства, чем PyTorch Плавный переход от PyTorch к C++ Специализированный, но более узкий, чем PyTorch Индустрия, где Python является узким местом Последовательные обновления с PyTorch Улучшенная безопасность без полного Python Inherits CUDA support from PyTorch
ONNX Изменяется в зависимости от времени выполнения Высокий уровень для разных фреймворков Широкая экосистема, поддерживаемая многими организациями Гибкость в использовании различных ML-фреймворков Регулярные обновления для новых операций Обеспечьте безопасные методы преобразования и развертывания Различные аппаратные оптимизации
OpenVINO Optimized for Intel hardware Best within Intel ecosystem Хорошо разбирается в области компьютерного зрения IoT and edge with Intel hardware Regular updates for Intel hardware Надежные функции для чувствительных приложений Tailored for Intel hardware
TensorRT Top-tier on NVIDIA GPUs Best for NVIDIA hardware Strong network through NVIDIA Вывод видео и изображений в реальном времени Частые обновления для новых графических процессоров Упор на безопасность Designed for NVIDIA GPUs
CoreML Оптимизирован для аппаратного обеспечения Apple на устройстве Эксклюзив для экосистемы Apple Сильная поддержка Apple и разработчиков Устройства ML на продуктах Apple Регулярные обновления Apple Сосредоточься на конфиденциальности и безопасности Apple neural engine and GPU
TF SavedModel Масштабируемость в серверных средах Широкая совместимость в экосистеме TensorFlow Большая поддержка благодаря популярности сайта TensorFlow Обслуживание моделей в масштабе Regular updates by Google and community Надежные функции для предприятий Различные аппаратные ускорения
TF GraphDef Стабильность для статических вычислительных графов Хорошо интегрируется с инфраструктурой TensorFlow Ресурсы для оптимизации статических графов Сценарии, требующие статичных графов Обновления наряду с ядром TensorFlow Установленная практика безопасности TensorFlow TensorFlow Варианты ускорения
TF Lite Скорость и эффективность на мобильных/встроенных устройствах Широкий спектр поддержки устройств Robust community, Google backed Мобильные приложения с минимальной занимаемой площадью Новейшие возможности для мобильных Безопасная среда на устройствах конечных пользователей GPU and DSP among others
TF Край TPU Optimized for Google's Edge TPU hardware Эксклюзивно для устройств Edge TPU Growing with Google and third-party resources IoT-устройства, требующие обработки данных в реальном времени Улучшения для нового оборудования Edge TPU Google's robust IoT security Custom-designed for Google Coral
TF.js Разумная производительность в браузере Высокий уровень владения веб-технологиями Поддержка веб-разработчиков и разработчиков Node.js Интерактивные веб-приложения TensorFlow Вклад в команду и сообщество Модель безопасности веб-платформы Улучшенный с помощью WebGL и других API
PaddlePaddle Конкурентоспособный, простой в использовании и масштабируемый Экосистема Baidu, широкая поддержка приложений Быстрый рост, особенно в Китае Китайский рынок и обработка языка Сосредоточься на китайских приложениях искусственного интеллекта Уделяй особое внимание конфиденциальности и безопасности данных Включая чипы Kunlun от Baidu.
NCNN Оптимизирован для мобильных устройств на базе ARM Мобильные и встраиваемые ARM-системы Нишевое, но активное мобильное/встроенное сообщество ML Android and ARM systems efficiency Высокопроизводительное обслуживание на ARM Преимущества безопасности на устройстве Оптимизация ARM-процессоров и графических процессоров

Этот сравнительный анализ дает тебе обзор высокого уровня. Для развертывания необходимо учитывать конкретные требования и ограничения твоего проекта, а также обращаться к подробной документации и ресурсам, доступным для каждого варианта.

Сообщество и поддержка

Когда ты только начинаешь работать с YOLOv8, наличие полезного сообщества и поддержки может оказать значительное влияние. Вот как связаться с теми, кто разделяет твои интересы, и получить необходимую помощь.

Взаимодействуй с широким сообществом

  • Обсуждения на GitHub: В репозитории YOLOv8 на GitHub есть раздел "Обсуждения", где ты можешь задавать вопросы, сообщать о проблемах и предлагать улучшения.

  • Ultralytics Сервер Discord: Ultralytics имеет сервер Discord, где ты можешь общаться с другими пользователями и разработчиками.

Официальная документация и ресурсы

  • Ultralytics YOLOv8 Документация: Официальная документация содержит исчерпывающий обзор YOLOv8, а также руководства по установке, использованию и устранению неполадок.

Эти ресурсы помогут тебе справиться с трудностями и быть в курсе последних тенденций и лучших практик в сообществе YOLOv8.

Заключение

В этом руководстве мы рассмотрели различные варианты развертывания YOLOv8. Мы также обсудили важные факторы, которые следует учитывать при выборе. Эти варианты позволяют тебе настроить модель под различные условия и требования к производительности, что делает ее пригодной для использования в реальных приложениях.

Не забывай, что сообщество YOLOv8 и Ultralytics - это ценный источник помощи. Общайся с другими разработчиками и экспертами, чтобы узнать уникальные советы и решения, которые ты можешь не найти в обычной документации. Продолжай искать знания, исследовать новые идеи и делиться своим опытом.

Счастливого развертывания!

ВОПРОСЫ И ОТВЕТЫ

Какие варианты развертывания доступны для YOLOv8 на разных аппаратных платформах?

Ultralytics YOLOv8 поддерживает различные форматы развертывания, каждый из которых предназначен для определенных сред и аппаратных платформ. К основным форматам относятся:

  • PyTorch для исследований и создания прототипов, с отличной интеграцией Python .
  • TorchScript для производственных сред, где Python недоступен.
  • ONNX для кроссплатформенной совместимости и аппаратного ускорения.
  • OpenVINO for optimized performance on Intel hardware.
  • TensorRT for high-speed inference on NVIDIA GPUs.

Каждый формат имеет уникальные преимущества. Для подробного ознакомления смотри нашу документацию по процессу экспорта.

Как повысить скорость вывода данных в моей модели YOLOv8 на Intel CPU ?

Чтобы увеличить скорость вычислений на процессорах Intel , ты можешь развернуть свою модель YOLOv8 с помощью инструментария Intel' OpenVINO . OpenVINO обеспечивает значительный прирост производительности за счет оптимизации моделей для эффективного использования аппаратного обеспечения Intel .

  1. Преобразуй свою модель YOLOv8 в формат OpenVINO , используя model.export() Функция.
  2. Follow the detailed setup guide in the Intel OpenVINO Export documentation.

Чтобы узнать больше, ознакомься с нашей статьей в блоге.

Можно ли развернуть модели YOLOv8 на мобильных устройствах?

Да, модели YOLOv8 можно развернуть на мобильных устройствах с помощью 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.

Какие факторы следует учитывать при выборе формата развертывания для модели YOLOv8 ?

Выбирая формат развертывания для YOLOv8, учитывай следующие факторы:

  • Performance: Some formats like TensorRT provide exceptional speeds on NVIDIA GPUs, while OpenVINO is optimized for Intel hardware.
  • Совместимость: ONNX предлагает широкую совместимость с различными платформами.
  • Ease of Integration: Formats like CoreML or TF Lite are tailored for specific ecosystems like iOS and Android, respectively.
  • Поддержка сообщества: Такие форматы, как PyTorch и TensorFlow , имеют обширные ресурсы и поддержку сообщества.

Для сравнительного анализа обратись к нашей документации по экспортным форматам.

Как развернуть модели YOLOv8 в веб-приложении?

Чтобы развернуть модели YOLOv8 в веб-приложении, ты можешь использовать TensorFlow.js (TF.js), который позволяет запускать модели машинного обучения прямо в браузере. Такой подход устраняет необходимость в бэкэнд-инфраструктуре и обеспечивает производительность в реальном времени.

  1. Экспортируй модель YOLOv8 в формат TF.js.
  2. Интегрируй экспортированную модель в свое веб-приложение.

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



Создано 2023-11-12, Обновлено 2024-07-05
Авторы: glenn-jocher (10), abirami-vina (1)

Комментарии