Использование интеграции ONNX для экспорта моделей Ultralytics YOLO

Абирами Вина

4 мин. чтения

2 мая 2025 г.

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

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

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

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

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

Именно поэтому возможность экспорта моделей компьютерного зрения, таких как Ultralytics YOLO11, в различные форматы имеет ключевое значение. Например, интеграция ONNX (Open Neural Network Exchange), поддерживаемая Ultralytics, обеспечивает практический способ преодоления разрыва между обучением и развертыванием. ONNX - это открытый формат, который делает модели не зависящими от фреймворка и готовыми к развертыванию на разных платформах.

Рис. 1. ONNX помогает взять модель, обученную в одном фреймворке, и легко запустить ее в другом.

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

Что такое ONNX и ONNX Runtime?

Open Neural Network Exchange - это проект с открытым исходным кодом, который определяет стандартный формат для моделей машинного обучения. Изначально разработанный Microsoft и Facebook, он позволяет разработчикам обучать модель в одном фреймворке, например PyTorch, и запускать ее в другом, например TensorFlow. Это делает разработку ИИ более гибкой, совместной и доступной, особенно в таких областях, как компьютерное зрение.

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

Кроме того, ONNX Runtime - это высокопроизводительный механизм вывода, разработанный специально для запуска моделей в формате ONNX. Он предназначен для ускорения и повышения эффективности работы моделей ONNX на широком спектре платформ, включая серверы, мобильные устройства и аппаратное обеспечение для пограничных систем. ONNX Runtime совместим с такими популярными фреймворками, как PyTorch, TensorFlow, TensorFlow Lite и scikit-learn, что позволяет легко интегрировать его в различные рабочие процессы и развертывать модели там, где они необходимы.

Рис. 2. ONNX и ONNX Runtime обеспечивают гибкое кроссплатформенное развертывание моделей.

Ключевые особенности ONNX 

Прежде чем мы обсудим, как экспортировать YOLO11 в формат ONNX, давайте рассмотрим некоторые ключевые особенности формата моделей ONNX. 

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

  • Единый стандартный формат: ONNX использует общий способ описания построения моделей, например, слои и операции (считайте их строительными блоками). Когда модель преобразуется в ONNX, она следует этому стандарту, чтобы любая система, поддерживающая ONNX, могла ее понять и запустить.
  • Обратная совместимость: Несмотря на то, что ONNX продолжает совершенствоваться, он гарантирует, что старые модели будут работать с новыми версиями. Это означает, что вам не придется заново обучать или перестраивать свои модели каждый раз, когда ONNX получает обновление.
  • Проектирование моделей на основе графов: Модели ONNX построены в виде вычислительных графов, где каждый узел представляет операцию (например, слой или математическую функцию), а ребра указывают на поток данных. Такой графовый дизайн облегчает интеграцию с различными системами, использующими аналогичные структуры вычислительных графов.
  • Удобные инструменты для разработчиков: В комплект поставки входит широкий набор инструментов, которые помогают конвертировать, проверять и оптимизировать модели. Эти инструменты упрощают процесс переноса моделей между различными фреймворками и ускоряют развертывание - особенно для приложений компьютерного зрения.

Обзор интеграции ONNX

Экспорт моделей Ultralytics YOLO, таких как Ultralytics YOLO11, в формат ONNX очень прост и выполняется в несколько шагов. 

Чтобы начать работу, установите пакет Ultralytics Python с помощью менеджера пакетов, например 'pip'. Это можно сделать, выполнив команду "pip install ultralytics" в командной строке или терминале, чтобы начать работу.

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

После установки пакета Ultralytics вы можете загрузить и экспортировать модель YOLO11 в формат ONNX, используя приведенный ниже код. Этот пример загружает предварительно обученную модель YOLO11 (yolo11n.pt) и экспортирует ее в файл ONNX (yolo11n.onnx), что делает ее готовой к развертыванию на различных платформах и устройствах.

После преобразования модели в формат ONNX вы можете развернуть ее на различных платформах. 

В примере ниже показано, как загрузить экспортированную модель YOLO11 (yolo11n.onnx) и запустить на ней вывод. Вывод означает использование обученной модели для прогнозирования на новых данных. В данном случае для проверки модели мы будем использовать URL-адрес изображения автобуса.

После выполнения этого кода в папке runs/detect/predict будет сохранено следующее изображение.

Рис. 3. Выполнение вывода с использованием экспортированной модели YOLO11 на изображении.

Когда следует выбирать интеграцию ONNX?

Пакет Ultralytics Python поддерживает экспорт моделей в несколько форматов, включая TorchScript, CoreML, TensorRT и ONNX. Почему же стоит выбрать ONNX?

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

Вот несколько причин, по которым интеграция ONNX может стать идеальным выбором для ваших проектов YOLO11:

  • Портативное развертывание: После экспорта в ONNX вашу модель YOLO11 можно развернуть на различных платформах без изменения кода и переобучения.
  • Общепромышленная поддержка: ONNX поддерживается крупнейшими компаниями и фреймворками ИИ, что делает его надежным и общепринятым форматом. Он обеспечивает долгосрочную совместимость, подобно тому, как PDF-файлы работают на разных устройствах.
  • Разработка с прицелом на будущее: Использование ONNX помогает защитить ваши инвестиции в модели. По мере развития инструментов ONNX сохраняет актуальность и пригодность ваших моделей даже в новых или иных средах.
  • Отсутствие привязки к поставщику: Некоторые инструменты привязывают вас к использованию только их системы, что может ограничить возможности вашей модели. ONNX избегает этого, позволяя вам выбрать платформу, которая лучше всего подходит для ваших нужд, и не зацикливаться на одной системе.

Применение YOLO11 и формата модели ONNX

Далее рассмотрим несколько реальных приложений, в которых YOLO11 может быть развернут с помощью интеграции с ONNX.

Отслеживание запасов на складах с помощью YOLO11

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

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

Рис. 4. Пример использования YOLO11 для обнаружения и подсчета пакетов.

Утилизация больничных отходов с помощью YOLO11

В больницах по всему миру ежедневно образуется большое количество отходов - от использованных перчаток и шприцев до оборудования, используемого во время операций (например, одноразовых или загрязненных хирургических инструментов, таких как ножницы и скальпели). По данным исследований, ежегодно в больницах образуется около 5 миллионов тонн отходов, что составляет 29 фунтов отходов на одну койку в день. 

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

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

Рис. 5. Использование YOLO11 для обнаружения медицинских инструментов.

Мониторинг урожая с помощью YOLO11

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

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

Рис. 6. YOLO11 можно использовать для обнаружения сельскохозяйственных культур на съемках с беспилотников. 

Ограничения ONNX, которые следует учитывать

Хотя ONNX предлагает множество преимуществ, таких как переносимость, кросс-платформенная совместимость и взаимодействие с фреймворками, следует помнить о некоторых ограничениях.

  • Размер модели: Преобразование моделей в формат ONNX иногда приводит к увеличению размера файлов по сравнению с их исходными форматами. Такие техники, как квантование и обрезка, могут помочь смягчить эту проблему, уменьшив размер модели без существенного влияния на производительность.
  • Совместимость с временем выполнения: Хотя ONNX Runtime разработан для кросс-платформенной совместимости, производительность и поддержка могут отличаться на разных аппаратных средствах и операционных системах. 
  • Проблемы с отладкой: Отладка моделей ONNX может быть более сложной, чем в нативных фреймворках, таких как PyTorch или TensorFlow. Сообщения об ошибках могут быть менее описательными, что затрудняет выявление проблем. Однако такие инструменты, как Netron для визуализации моделей и возможности протоколирования в ONNX Runtime, могут помочь в устранении неполадок.

Основные выводы

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

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

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

Давайте вместе построим будущее
искусственного интеллекта!

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

Начните бесплатно
Ссылка копируется в буфер обмена