Нажимая “Принять все файлы cookie”, вы соглашаетесь на сохранение файлов cookie на вашем устройстве с целью улучшения навигации по сайту, анализа использования сайта и помощи в наших маркетинговых усилиях. Подробнее
Настройки cookie
Нажимая “Принять все файлы cookie”, вы соглашаетесь на сохранение файлов cookie на вашем устройстве с целью улучшения навигации по сайту, анализа использования сайта и помощи в наших маркетинговых усилиях. Подробнее
Узнайте, как экспортировать модели Ultralytics YOLO , например Ultralytics YOLO11, с помощью интеграции ONNX для кроссплатформенного развертывания на различном оборудовании.
Когда AI-решения только начали привлекать внимание, большинство моделей развертывались на мощных серверах в контролируемых средах. Однако, по мере развития технологий, развертывание вышло далеко за пределы центров обработки данных.
Сегодня модели ИИ работают на всем: от облачных серверов и настольных компьютеров до смартфонов и периферийных устройств. Этот сдвиг поддерживает более быструю обработку, автономную функциональность и более интеллектуальные системы, которые работают ближе к месту генерации данных.
Одной из областей, где это особенно заметно, является компьютерное зрение — раздел ИИ, который позволяет машинам интерпретировать визуальные данные. Он используется для управления такими приложениями, как распознавание лиц, автономное вождение и анализ видео в реальном времени. По мере роста этих вариантов использования растет и потребность в моделях, которые могут бесперебойно работать на различном оборудовании и платформах.
Но развертывание моделей компьютерного зрения на различных платформах не всегда просто. Устройства различаются с точки зрения аппаратного обеспечения, операционных систем и поддерживаемых фреймворков, что делает гибкость и совместимость необходимыми.
Именно поэтому возможность экспортировать модели компьютерного зрения, такие как 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, что позволяет легко интегрировать его в различные рабочие процессы и развертывать модели там, где они необходимы.
Прежде чем мы обсудим, как экспортировать 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), что делает ее готовой к развертыванию на различных платформах и устройствах.
После преобразования модели в формат ONNX вы можете развернуть ее на различных платформах.
В примере ниже показано, как загрузить экспортированную модель YOLO11 (yolo11nonnx) и запустить на ней вывод. Вывод означает использование обученной модели для прогнозирования на новых данных. В данном случае для проверки модели мы будем использовать URL-адрес изображения автобуса.
После выполнения этого кода в папке detect будет сохранено следующее изображение.
Рис. 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 , могут использоваться для идентификации и подсчета товаров в режиме реального времени с помощью камер и пограничных устройств. Экспортированная модель может помочь просканировать полки или паллеты, чтобы detect уровень запасов, недостающие товары или пустые места. Поскольку экспорт в ONNX делает модель легкой и эффективной, она может работать непосредственно на небольших краевых устройствах, таких как смарт-камеры, что устраняет необходимость в дорогостоящих серверах или постоянном доступе к облаку.
Рис. 4. Пример использования YOLO11 для detect и подсчета пакетов.
Утилизация больничных отходов с помощью YOLO11
Больницы по всему миру ежедневно производят огромное количество отходов, от использованных перчаток и шприцев до оборудования, используемого во время операций (например, одноразовые или загрязненные хирургические инструменты, такие как ножницы и скальпели). Фактически, исследования показывают, что больницы производят около 5 миллионов тонн отходов в год, что составляет 29 фунтов отходов на койку в день.
Правильная сортировка таких отходов необходима для обеспечения гигиены, безопасности и соблюдения нормативных требований. С помощью моделей YOLO11 , экспортированных в формат ONNX , больницы могут автоматизировать и контролировать удаление отходов в режиме реального времени.
Например, камеры, установленные рядом с мусорными контейнерами в таких помещениях, как операционные или коридоры, могут следить за тем, как выбрасываются предметы. Специальная модель YOLO11 , обученная распознавать различные типы медицинских отходов, может проанализировать отснятый материал и определить, что именно выбрасывается. Если предмет попадает не в ту корзину, например использованный шприц в обычный мусор, система может быть настроена на немедленное оповещение персонала с помощью светового или звукового сигнала, что поможет предотвратить загрязнение и обеспечить соблюдение норм.
Рис. 5. Использование YOLO11 для detect медицинских инструментов.
Мониторинг урожая YOLO11
Знание правильного времени сбора урожая может оказать большое влияние как на качество продукции, так и на общую продуктивность фермы. Традиционно фермеры полагаются на опыт и ручной осмотр, но с недавними достижениями в области технологий ситуация начинает меняться.
Теперь, благодаря инновациям в области компьютерного зрения, таким как YOLO11, экспортируемым в формате ONNX , фермеры могут привнести автоматизацию и точность в полевые работы. Используя беспилотники или камеры, установленные на тракторах или столбах, фермеры могут получать изображения своих культур (например, томатов, яблок или пшеницы). Затем YOLO11 можно использовать для detect ключевых показателей, таких как цвет, размер и распределение урожая. На основе этой информации фермеры могут определить, готовы ли они к сбору урожая, созревают ли они еще или уже достигли своего пика.
Рис. 6. YOLO11 можно использовать для detect сельскохозяйственных культур на съемках с беспилотников.
Ограничения ONNX , которые следует учитывать
Хотя ONNX предлагает множество преимуществ, таких как переносимость, кросс-платформенная совместимость и взаимодействие с фреймворками, следует помнить о некоторых ограничениях.
Размер модели: Преобразование моделей в формат ONNX иногда приводит к увеличению размера файлов по сравнению с их исходными форматами. Такие техники, как квантование и обрезка, могут помочь смягчить эту проблему, уменьшив размер модели без существенного влияния на производительность.
Совместимость с временем выполнения: Хотя ONNX Runtime разработан для кросс-платформенной совместимости, производительность и поддержка могут отличаться на разных аппаратных средствах и операционных системах.
Проблемы с отладкой: Отладка моделей ONNX может быть более сложной, чем в нативных фреймворках, таких как PyTorch или TensorFlow. Сообщения об ошибках могут быть менее описательными, что затрудняет выявление проблем. Однако такие инструменты, как Netron для визуализации моделей и возможности протоколирования в ONNX Runtime, могут помочь в устранении неполадок.
Основные выводы
Экспорт Ultralytics YOLO11 в ONNX позволяет легко взять обученную модель компьютерного зрения и развернуть ее практически в любом месте - будь то ноутбук, мобильное устройство или даже компактная смарт-камера. Благодаря интеграции с ONNX вы не привязаны к какому-то одному фреймворку или платформе, что дает вам гибкость при запуске модели в той среде, которая лучше всего подходит для вашего приложения.
Это ускоряет и упрощает переход от обучения к развертыванию в реальных условиях. Независимо от того, отслеживаете ли вы запасы на складе или обеспечиваете правильную утилизацию больничных отходов, эта настройка помогает системам работать более плавно, снижает количество ошибок и экономит ценное время.