Встречай YOLO26: ИИ компьютерного зрения нового поколения.
Ultralytics
Интеграции

Развертывай модели Ultralytics YOLO с помощью интеграции ExecuTorch

Узнай, как экспортировать модели Ultralytics YOLO, такие как Ultralytics YOLO11, в формат ExecuTorch для эффективного развертывания на базе PyTorch на пограничных и мобильных устройствах.

АБАбирами Вина
5 min read
Развертывание моделей Ultralytics YOLO с помощью интеграции ExecuTorch

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

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

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

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

Эта интеграция позволяет легко перевести модель Ultralytics YOLO, такую как YOLO11, от обучения к развертыванию на периферийных устройствах. Объединив возможности компьютерного зрения YOLO11 с легковесной средой выполнения ExecuTorch и конвейером экспорта PyTorch, ты сможешь развертывать модели, которые эффективно работают на периферийном оборудовании, сохраняя при этом точность и производительность инференса на базе PyTorch.

В этой статье мы более подробно рассмотрим, как работает интеграция ExecuTorch, почему она отлично подходит для приложений edge AI и как ты можешь начать развертывание моделей Ultralytics YOLO с помощью ExecuTorch. Приступим!

Link to this sectionЧто такое ExecuTorch?#

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

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

Link to this sectionПеренос инференса PyTorch на периферию#

По своей сути ExecuTorch предоставляет легковесную среду выполнения C++, которая позволяет моделям PyTorch выполняться непосредственно на устройстве. ExecuTorch использует формат моделей PyTorch ExecuTorch (.pte) — оптимизированный формат экспорта, разработанный для ускоренной загрузки, меньшего потребления памяти и повышенной переносимости.

Он поддерживает XNNPACK в качестве бэкенда по умолчанию для эффективного инференса на центральном процессоре (CPU) и расширяет совместимость с широким спектром аппаратных бэкендов, включая CoreML, Metal, Vulkan, Qualcomm, MediaTek, Arm EthosU, OpenVINO и другие.

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

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

Обзор того, как работает ExecuTorch

Рис 1. Взгляд на работу ExecuTorch (Источник)

Link to this sectionЕдиный уровень для периферийного оборудования#

Помимо среды выполнения, ExecuTorch также выступает в качестве единого уровня абстракции для множества аппаратных бэкендов. Проще говоря, он абстрагирует детали, специфичные для оборудования, и управляет взаимодействием моделей с различными процессорами, включая CPU, GPU и нейронные процессоры (NPUs).

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

Благодаря модульной, портативной конструкции и бесшовной интеграции с PyTorch, ExecuTorch является отличным выбором для развертывания моделей компьютерного зрения, таких как Ultralytics YOLO11, на мобильных и встраиваемых системах. Он устраняет разрыв между обучением модели и развертыванием в реальных условиях, делая edge AI быстрее, эффективнее и проще в реализации.

Link to this sectionОсновные возможности ExecuTorch#

Прежде чем мы перейдем к тому, как экспортировать модели Ultralytics YOLO в формат ExecuTorch, давай разберемся, что делает ExecuTorch надежным вариантом для развертывания ИИ на периферии.

Вот краткий обзор некоторых его ключевых особенностей:

  • Поддержка квантования: ExecuTorch поддерживает квантование моделей — метод, преобразующий высокоточные значения в менее точные для уменьшения размера модели и ускорения инференса. Это помогает моделям работать быстрее и потреблять меньше памяти на периферийных устройствах, сохраняя при этом практически тот же уровень точности.
  • Эффективное использование памяти: Одно из главных преимуществ ExecuTorch — то, как он работает с памятью. Вместо полагания на динамическое выделение памяти, которое может увеличить задержки и энергопотребление, ExecuTorch использует предварительное планирование памяти (AOT — Ahead-of-Time). Во время экспорта он анализирует граф модели и заранее вычисляет объем памяти, необходимый для каждой операции. Это позволяет среде выполнения запускать модели, используя статический план памяти, что гарантирует предсказуемую производительность и предотвращает замедления или сбои на устройствах с ограниченным объемом RAM или вычислительными мощностями.
  • Встроенные метаданные модели: При экспорте с использованием интеграции, поддерживаемой Ultralytics, каждая модель включает YAML-файл, содержащий важные метаданные, такие как размер входного изображения, имена классов и параметры конфигурации. Этот дополнительный файл упрощает интеграцию модели в различные приложения и обеспечивает согласованное поведение на разных периферийных платформах.

Link to this sectionКак экспортировать модели Ultralytics YOLO в формат ExecuTorch#

Теперь, когда у нас есть лучшее представление о том, что предлагает ExecuTorch, давай пройдемся по процессу экспорта моделей Ultralytics YOLO в формат ExecuTorch.

Link to this sectionШаг 1: Установка пакета Ultralytics Python#

Для начала тебе нужно установить пакет Ultralytics Python с помощью pip, который является установщиком пакетов. Ты можешь сделать это, выполнив команду «pip install ultralytics» в терминале или командной строке.

Если ты работаешь в среде Jupyter Notebook или Google Colab, просто добавь восклицательный знак перед командой, например "!pip install ultralytics". После установки пакет Ultralytics предоставляет все необходимые инструменты для обучения, тестирования и экспорта моделей компьютерного зрения, включая Ultralytics YOLO11.

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

Link to this sectionШаг 2: Экспорт Ultralytics YOLO11#

После установки пакета Ultralytics ты можешь загрузить вариант модели YOLO11 и экспортировать его в формат ExecuTorch. Например, ты можешь использовать предварительно обученную модель, такую как "yolo11n.pt", и экспортировать ее, вызвав функцию экспорта с параметром формата, установленным в "executorch".

Это создает директорию с названием "yolo11n_executorch_model", которая включает оптимизированный файл модели (.pte) и отдельный YAML-файл метаданных, содержащий важные детали, такие как размер изображения и имена классов.

Вот код для экспорта твоей модели:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="executorch")

Link to this sectionШаг 3: Запуск инференса после экспорта модели#

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

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

executorch_model = YOLO("yolo11n_executorch_model")
results = executorch_model.predict("https://ultralytics.com/images/bus.jpg", save=True)

После выполнения кода ты найдешь выходное изображение с обнаруженными объектами, сохраненное в папке "runs/detect/predict".

Обнаружение объектов с использованием экспортированной модели YOLO11 в формате ExecuTorch

Рис 2. Обнаружение объектов с использованием экспортированной модели YOLO11 в формате ExecuTorch.

Link to this sectionПреимущества использования интеграции ExecuTorch#

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

Вот краткий обзор некоторых ключевых преимуществ использования интеграции ExecuTorch:

  • Гибкие варианты развертывания: Модели ExecuTorch можно развертывать в мобильных приложениях, встраиваемых системах, устройствах IoT (интернета вещей) и специализированном оборудовании для edge AI. Эта гибкость позволяет разработчикам создавать масштабируемые решения на базе ИИ, которые стабильно работают на разнообразных платформах и в различных средах.
  • Производительность, подтвержденная бенчмарками: Тесты на таких устройствах, как Raspberry Pi 5, показывают, что модели YOLO11, экспортированные в формат ExecuTorch, работают примерно в 2 раза быстрее, чем их аналоги в PyTorch, при практически идентичной точности.
  • Гибкие API для интеграции: ExecuTorch предоставляет API на C++, Kotlin и Objective-C для iOS, Android и встраиваемых Linux-систем, что позволяет разработчикам интегрировать модели YOLO непосредственно в нативные приложения.
  • Поддержка аппаратного ускорения: ExecuTorch поддерживает множество бэкендов аппаратного ускорения, включая Vulkan и Metal для мобильных GPU, с дополнительной интеграцией для OpenCL и других вендор-специфичных API. Он также может задействовать выделенные ускорители, такие как NPUs и DSPs, для достижения значительного прироста скорости по сравнению с инференсом только на CPU.

Link to this sectionРеальные сценарии использования YOLO11 и экспорта в ExecuTorch#

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

Link to this sectionОт облака к периферии: как ExecuTorch и YOLO11 оживляют ИИ компьютерного зрения#

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

Использование YOLO11 для анализа производственной сборочной линии

Рис 3. Пример использования YOLO11 для анализа производственной линии. (Источник)

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

Вот несколько других примеров того, как можно применять интеграцию ExecuTorch и модели Ultralytics YOLO:

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

Обнаружение и подсчет автомобилей в дорожном потоке с использованием YOLO11

Рис 4. Обнаружение и подсчет автомобилей в дорожном движении с использованием YOLO11 (Источник)

Link to this sectionОсновные выводы#

Экспорт моделей Ultralytics YOLO в формат ExecuTorch позволяет легко развертывать модели компьютерного зрения на множестве устройств, включая смартфоны, планшеты и встраиваемые системы, такие как Raspberry Pi. Это означает, что можно запускать оптимизированный инференс на устройстве без необходимости облачного подключения, что повышает скорость, конфиденциальность и надежность.

Наряду с ExecuTorch, Ultralytics поддерживает широкий спектр интеграций, включая TensorRT, OpenVINO, CoreML и другие, предоставляя разработчикам гибкость в запуске своих моделей на разных платформах. По мере роста внедрения ИИ в компьютерном зрении эти интеграции упрощают развертывание интеллектуальных систем, созданных для эффективной работы в реальных условиях.

Интересуешься ИИ? Загляни в наш репозиторий на GitHub, присоединяйся к нашему сообществу и изучи наши варианты лицензирования, чтобы дать старт своему проекту в области ИИ компьютерного зрения. Узнай больше об инновациях, таких как ИИ в ритейле и компьютерное зрение в логистике, посетив страницы наших решений.

Explore solutions

Real-time AI that works with your team

ИИ в робототехнике

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

Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.

Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.

Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

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

Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.

Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.

Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.

Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

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

Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.

Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.

Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

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

Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.

Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.

Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.

Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

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

Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.

Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.

Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

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

Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.

Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.

Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.

Узнать больше

Давай строить будущее ИИ вместе!

Начни свой путь в будущее машинного обучения