Использование интеграции ONNX для экспорта моделей Ultralytics YOLO
Узнай, как экспортировать модели Ultralytics YOLO11 в ONNX, запускать инференс с экспортированной моделью и развёртывать её на CPU, GPU, мобильных и периферийных устройствах.
Abirami Vina9 мин. чтения
Когда решения на базе AI только начали привлекать внимание, большинство моделей разворачивали на мощных серверах в контролируемых условиях. Однако по мере развития технологий развертывание вышло далеко за пределы центров обработки данных.
Сегодня модели ИИ работают на самых разных устройствах: от облачных серверов и настольных компьютеров до смартфонов и периферийных устройств. Благодаря этому обработка данных ускоряется, появляется возможность работы без подключения к сети, а интеллектуальные системы располагаются ближе к источникам данных.
Особенно наглядно это видно на примере компьютерного зрения — области ИИ, которая позволяет машинам интерпретировать визуальные данные. Компьютерное зрение используется в таких задачах, как распознавание лиц, автономное вождение и анализ видео в реальном времени. По мере расширения этих сценариев растёт и потребность в моделях, способных стабильно работать на разных типах оборудования и платформах.
Однако развернуть модели компьютерного зрения на разных целевых платформах не всегда просто. Устройства отличаются аппаратным обеспечением, операционными системами и поддерживаемыми фреймворками, поэтому важны гибкость и совместимость.
Вот почему возможность экспортировать модели компьютерного зрения, например Ultralytics YOLO11, в разные форматы так важна. Например, интеграция с ONNX (открытым форматом обмена нейросетями), поддерживаемая 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#
Прежде чем обсудить, как экспортировать Ultralytics YOLO11 в формат ONNX, рассмотрим несколько ключевых особенностей формата моделей 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), готовый к развертыванию на разных платформах и устройствах.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="onnx")Те же действия подойдут для более новых моделей, например Ultralytics YOLO26. Преобразовав модель в формат ONNX и убедившись, что она выдаёт те же результаты, что и исходная модель, ты сможешь развернуть её на самых разных платформах.
В примере ниже показано, как загрузить экспортированную модель YOLO11 (yolo11n.onnx) и выполнить с её помощью инференс. Инференс — это использование обученной модели для предсказаний на новых данных. В этом примере мы проверим модель, передав URL изображения автобуса.
onnx_model = YOLO("yolo11n.onnx")
results = onnx_model("https://ultralytics.com/images/bus.jpg", save=True)При запуске этого кода выходное изображение будет сохранено в папке runs/detect/predict.

Рис. 3. Инференс на изображении с помощью экспортированной модели Ultralytics YOLO11.
Когда стоит выбрать интеграцию с ONNX?#
Пакет Ultralytics для Python поддерживает экспорт моделей в несколько форматов, включая TorchScript, CoreML, TensorRT и ONNX. Почему же стоит выбрать 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, можно использовать для распознавания и подсчёта товаров в реальном времени с помощью камер и периферийных устройств. Экспортированная модель может сканировать полки и палеты, определять уровень запасов, отсутствующие товары и пустые места. Модели ONNX эффективно работают на самых разных устройствах, поэтому модель можно запускать непосредственно на компактных периферийных устройствах, например умных камерах, не прибегая к дорогим серверам и постоянному подключению к облаку.

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

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

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










