Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Интеграции

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

Узнай, как экспортировать модели Ultralytics YOLO11 в ONNX, запускать инференс с экспортированной моделью и развёртывать её на CPU, GPU, мобильных и периферийных устройствах.

Абирами ВинаAbirami Vina9 мин. чтения
Узнай, как экспортировать модели Ultralytics YOLO11 в ONNX, запускать инференс с экспортированной моделью и развёртывать её на CPU, GPU, мобильных и периферийных устройствах.

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

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

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

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

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

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, поэтому её легко интегрировать в разные рабочие процессы и развертывать модели там, где они нужны.

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

Рис. 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.

Инференс на изображении с помощью экспортированной модели Ultralytics YOLO11

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

Пример обнаружения и подсчёта посылок с помощью Ultralytics YOLO11

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

Управление больничными отходами с помощью Ultralytics YOLO11#

Больницы по всему миру ежедневно производят огромное количество отходов: от использованных перчаток и шприцев до инструментов, применяемых во время операций, например одноразовых или загрязненных ножниц и скальпелей. Исследования показывают, что больницы ежегодно производят более 5 миллионов тонн отходов — по 29 фунтов отходов на койку в день.

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

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

Обнаружение медицинских инструментов с помощью Ultralytics YOLO11

Рис. 5. Обнаружение медицинских инструментов с помощью Ultralytics YOLO11.

Мониторинг посевов с помощью Ultralytics YOLO11#

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

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

Ultralytics YOLO11 обнаруживает посевы на аэроснимках с дрона

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

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

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

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

Главные выводы#

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

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

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

Автор

Abirami Vina
Abirami Vina

Создатель контента · Ultralytics

Начав карьеру инженером по компьютерному зрению, Абирами Вина заложила прочную основу в области ИИ для компьютерного зрения и машинного обучения. Она создает контент для Ultralytics и является основательницей и главным автором Scribe of AI, где готовит качественные технические материалы для компаний, работающих в сфере ИИ. Стремясь сделать ИИ понятным и увлекательным, она помогает связать передовые технологии с их практическим применением.

Комментарии

Задай вопрос, поделись результатами или помоги кому-нибудь.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

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

Компьютерное зрение в аэрокосмической отрасли

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

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

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

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

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

Давай вместе строить будущее ИИ!

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