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

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

Узнай, как экспортировать модели 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 (yolo11nonnx), делая ее готовой к развертыванию на разных платформах и устройствах.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="onnx") 

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

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

onnx_model = YOLO("yolo11n.onnx")

results = onnx_model("https://ultralytics.com/images/bus.jpg",save=True)

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

Рис. 3. Запуск умозаключения с использованием экспортированной модели YOLO11 на изображении.

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

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

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

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

  • Портативное развертывание: После экспорта в ONNX твоя модель YOLO11 может быть развернута на различных платформах без изменения кода и переобучения.
  • Общеиндустриальная поддержка: ONNX поддерживается крупнейшими AI-компаниями и фреймворками, что делает его надежным, широко распространенным форматом. Он обеспечивает долгосрочную совместимость, подобно тому, как 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, общайся с нашим сообществом и ознакомься с нашими вариантами лицензирования, чтобы начать свой проект по компьютерному зрению. Если ты изучаешь такие инновации, как ИИ в производстве и компьютерное зрение в автомобильной промышленности, посети страницы наших решений, чтобы узнать больше. 

Логотип LinkedInЛоготип ТвиттераЛоготип FacebookСимвол копирования-ссылки

Читайте больше в этой категории

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

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

OSZAR »