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

Когда AI решения только начали привлекать к себе внимание, большинство моделей развертывалось на мощных серверах в контролируемых средах. Однако по мере развития технологий развертывание вышло далеко за пределы дата-центров.
Сегодня модели ИИ работают на чем угодно: от облачных серверов и настольных компьютеров до смартфонов и периферийных устройств. Этот сдвиг способствует ускорению обработки, поддержке офлайн-функций и созданию более «умных» систем, которые работают ближе к источнику генерации данных.
Одна из областей, где это особенно заметно — computer vision, ветвь ИИ, которая позволяет машинам интерпретировать визуальные данные. Эта технология используется в таких приложениях, как распознавание лиц, автономное вождение и видеоаналитика в реальном времени. По мере роста числа таких сценариев использования возрастает и потребность в моделях, способных бесперебойно работать на самых разных аппаратных средствах и платформах.
Но развертывание моделей компьютерного зрения на множестве целевых устройств не всегда проходит просто. Устройства различаются по аппаратной части, операционным системам и поддерживаемым фреймворкам, поэтому гибкость и совместимость здесь критически важны.
Именно поэтому возможность экспортировать модели компьютерного зрения, такие как Ultralytics YOLO11, в различные форматы имеет ключевое значение. Например, интеграция ONNX (Open Neural Network Exchange), поддерживаемая Ultralytics, предоставляет практичный способ преодолеть разрыв между обучением и развертыванием. ONNX — это открытый формат, который делает модели независимыми от фреймворков и готовыми к развертыванию на любых платформах.

Fig 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, что облегчает интеграцию в различные рабочие процессы и развертывание моделей там, где это необходимо.

Fig 2. ONNX и ONNX Runtime обеспечивают гибкое кросс-платформенное развертывание моделей.
Ключевые особенности ONNX#
Прежде чем мы обсудим, как экспортировать Ultralytics YOLO11 в формат ONNX, давай рассмотрим некоторые ключевые особенности формата модели ONNX.
Независимо от того, переключаешься ли ты между инструментами, развертываешь решения на разных устройствах или обновляешь системы, ONNX помогает поддерживать стабильную работу. Вот что делает формат моделей ONNX уникальным:
-
Один стандартный формат: ONNX использует общий способ описания того, как строятся модели, включая слои и операции (представь их как строительные блоки). Когда модель конвертируется в ONNX, она следует этому стандарту, поэтому любая система, поддерживающая ONNX, может её понять и запустить.
-
Обратная совместимость: Даже по мере развития ONNX гарантирует, что старые модели будут работать с новыми версиями. Это значит, что тебе не придется переобучать или перестраивать свои модели при каждом обновлении ONNX.
-
Графовый дизайн моделей: Модели ONNX структурированы как вычислительные графы, где каждый узел представляет собой операцию (например, слой или математическую функцию), а связи указывают на поток данных. Такой графовый дизайн облегчает интеграцию с различными системами, использующими схожие структуры вычислительных графов.
-
Инструменты для разработчиков: Он поставляется с широким спектром инструментов, помогающих конвертировать, проверять и оптимизировать модели. Эти инструменты упрощают процесс переноса моделей между различными фреймворками и могут ускорить развертывание, особенно в приложениях компьютерного зрения.
Обзор интеграции ONNX#
Экспорт моделей Ultralytics YOLO, таких как Ultralytics YOLO11, в формат ONNX прост и выполняется всего за несколько шагов.
Для начала установи Python пакет Ultralytics с помощью менеджера пакетов, такого как ‘pip’. Для этого выполни команду “pip install ultralytics” в командной строке или терминале.
С пакетом Ultralytics ты можешь легко обучать, тестировать, дообучать, экспортировать и развертывать модели для различных задач компьютерного зрения, делая весь процесс быстрее и эффективнее. Если при установке у тебя возникнут трудности, обратись к руководству по распространенным проблемам за решениями и подсказками.
После установки пакета Ultralytics ты можешь загрузить и экспортировать модель YOLO11 в формат ONNX, используя приведенный ниже код. Этот пример загружает предобученную модель YOLO11 (yolo11n.pt) и экспортирует её как файл ONNX (yolo11n.onnx), делая её готовой к развертыванию на различных платформах и устройствах.
После конвертации модели в формат ONNX ты можешь развернуть её на множестве различных платформ.
В примере ниже показано, как загрузить экспортированную модель YOLO11 (yolo11n.onnx) и запустить с ней инференс. Инференс — это просто использование обученной модели для получения предсказаний на новых данных. В данном случае мы используем URL изображения автобуса для тестирования модели.
Когда ты запустишь этот код, полученное выходное изображение будет сохранено в папке runs/detect/predict.

Рис. 3. Запуск инференса с использованием экспортированной модели Ultralytics YOLO11 на изображении.
Когда стоит выбрать интеграцию ONNX?#
Python пакет Ultralytics поддерживает экспорт моделей в несколько форматов, включая TorchScript, CoreML, TensorRT и ONNX. Так почему же стоит выбрать именно ONNX?
Что выделяет ONNX, так это то, что это формат, независимый от фреймворка. В то время как многие другие форматы экспорта привязаны к конкретным инструментам или средам, ONNX использует стандартизированный формат и общий набор операторов. Это делает его крайне портативным, дружелюбным к аппаратному обеспечению и идеальным для кроссплатформенного развертывания — работаешь ли ты с облачными серверами, мобильными приложениями или периферийными устройствами.
Вот несколько причин, почему интеграция с ONNX может стать идеальным выбором для твоих проектов на базе Ultralytics YOLO11:
-
Переносимость развертывания: После экспорта в ONNX твою модель Ultralytics YOLO11 можно развертывать на различных платформах без изменения кода или повторного обучения.
-
Отраслевая поддержка: ONNX поддерживается крупнейшими ИИ-компаниями и фреймворками, что делает его надежным и широко признанным форматом. Это обеспечивает долгосрочную совместимость, подобно тому, как PDF работает на разных устройствах.
-
Разработка с заделом на будущее: Использование ONNX помогает защитить инвестиции в создание моделей. По мере развития инструментов ONNX сохраняет актуальность и работоспособность твоих моделей, даже в новых или измененных средах.
-
Отсутствие привязки к вендору: Некоторые инструменты привязывают тебя к использованию только их системы, что может ограничивать возможности модели. ONNX позволяет этого избежать, предоставляя тебе свободу выбора платформы, которая лучше всего соответствует твоим потребностям, без привязки к конкретной настройке.
Применение Ultralytics YOLO11 и формата модели ONNX#
Далее давай изучим некоторые реальные сценарии применения, в которых можно развернуть Ultralytics YOLO11 с помощью интеграции с ONNX.
Отслеживание инвентаря на складах с помощью Ultralytics YOLO11#
На загруженных складах сложно постоянно следить за каждым товаром и упаковкой. Системы компьютерного зрения могут помочь сотрудникам находить товары на полках и получать аналитику, такую как количество товаров, их тип и т. д. Такие системы могут помочь бизнесу автоматически управлять огромными запасами и сэкономить массу времени складским работникам.
В частности, на умных складах модели Ultralytics YOLO11, экспортированные в ONNX, можно использовать для распознавания и подсчета товаров в реальном времени с помощью камер и edge-устройств. Экспортированная модель помогает сканировать полки или паллеты для определения уровней запасов, отсутствующих товаров или пустых мест. Поскольку экспорт в ONNX делает модель легковесной и эффективной, она может работать непосредственно на небольших edge-устройствах, таких как умные камеры, устраняя необходимость в дорогостоящих серверах или постоянном доступе к облаку.

Fig 4. Пример использования YOLO11 для обнаружения и подсчета упаковок.
Управление больничными отходами с помощью Ultralytics YOLO11#
Больницы по всему миру ежедневно создают огромное количество отходов: от использованных перчаток и шприцев до оборудования, применяемого во время операций (например, одноразовых или загрязненных хирургических инструментов вроде ножниц и скальпелей). Исследования показывают, что больницы производят около 5 миллионов тонн отходов ежегодно, что составляет 29 фунтов отходов на одну койку в день.
Правильная сортировка таких отходов имеет важное значение для гигиены, безопасности и соблюдения нормативных требований. С моделями Ultralytics YOLO11, экспортированными в формат ONNX, больницы могут автоматизировать и контролировать утилизацию отходов в режиме реального времени.
Например, камеры, размещенные рядом с урнами для отходов в таких зонах, как операционные или коридоры, могут отслеживать предметы по мере их выброса. Пользовательская модель Ultralytics YOLO11, обученная распознавать различные типы медицинских отходов, может анализировать видеоматериалы и определять, что именно выбрасывают. Если предмет попадает не в тот контейнер, например шприц в обычный мусор, систему можно настроить на немедленное оповещение персонала с помощью светового или звукового сигнала, что помогает предотвратить заражение и обеспечить соответствие требованиям.

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

Fig 6. YOLO11 можно использовать для обнаружения культур на кадрах с аэрофотосъемки с дрона.
Ограничения ONNX, которые стоит учитывать#
Хотя ONNX предлагает многочисленные преимущества, такие как портативность, кроссплатформенная совместимость и возможность взаимодействия между фреймворками, есть несколько ограничений, о которых стоит помнить:
-
Размер модели: Конвертация моделей в формат ONNX иногда может приводить к увеличению размера файлов по сравнению с их исходными форматами. Такие методы, как квантование и прунинг, могут помочь решить эту проблему, уменьшив размер модели без существенного влияния на производительность.
-
Совместимость среды выполнения: Хотя ONNX Runtime разработан для кроссплатформенной совместимости, производительность и поддержка могут различаться в зависимости от оборудования и операционной системы.
-
Сложности отладки: Отладка моделей ONNX может быть более сложной, чем в нативных фреймворках, таких как PyTorch или TensorFlow. Сообщения об ошибках могут быть менее информативными, что затрудняет выявление проблем. Тем не менее инструменты, такие как Netron для визуализации моделей, и возможности логирования ONNX Runtime могут помочь в устранении неполадок.
Основные выводы#
Экспорт Ultralytics YOLO11 в ONNX позволяет легко взять обученную модель компьютерного зрения и развернуть её практически где угодно — будь то ноутбук, мобильное устройство или даже компактная умная камера. С интеграцией ONNX ты не привязан к одному фреймворку или платформе, что дает тебе гибкость для запуска модели в той среде, которая лучше всего подходит для твоего приложения.
Это делает переход от обучения к реальному развертыванию быстрее и эффективнее. От отслеживания запасов на складе до обеспечения правильной утилизации отходов в больницах — такая конфигурация помогает системам работать более плавно, снижает количество ошибок и экономит ценное время.
Хочешь узнать больше о компьютерном зрении и ИИ? Изучи наш репозиторий на GitHub, присоединяйся к нашему сообществу и ознакомься с нашими вариантами лицензирования, чтобы дать старт своему проекту в области компьютерного зрения. Если ты изучаешь такие инновации, как ИИ в производстве и компьютерное зрение в автомобильной промышленности, посети страницы наших решений, чтобы узнать больше.






