Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

ONNX (Открытая биржа нейронных сетей)

Изучите формат Open Neural Network Exchange (ONNX). Узнайте, как экспортировать Ultralytics в ONNX быстрого кроссплатформенного развертывания и оптимизации оборудования.

ONNX Open Neural Network Exchange) — это формат с открытым исходным кодом, предназначенный для представления моделей машинного обучения и обеспечивающий совместимость между различными фреймворками и инструментами искусственного интеллекта. Он служит универсальным переводчиком для глубокого обучения, позволяя разработчикам создавать модели в одном фреймворке, таком как PyTorch, TensorFlow или Scikit-learn, и беспрепятственно развертывать их в другой среде, оптимизированной для вывода. Определяя общий набор операторов и стандартный формат файлов, ONNX необходимость в сложных пользовательских скриптах преобразования, которые исторически требовались для переноса моделей из исследовательской среды в производственную. Такая гибкость имеет решающее значение для современных рабочих процессов искусственного интеллекта, где обучение может происходить на мощных облачных графических процессорах, а развертывание — на разнообразном оборудовании, таком как пограничные устройства, мобильные телефоны или веб-браузеры.

Роль ONNX современном искусственном интеллекте

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

ONNX этот разрыв, предоставляя общее определение графа вычислений. Когда модель экспортируется в ONNX, она сериализуется в формат, который фиксирует структуру сети (слои, соединения) и параметры (веса, смещения) независимо от используемой платформы. Это позволяет механизмам вывода, специально настроенным для аппаратного ускорения, таким как ONNX , эффективно выполнять модель на нескольких платформах, включая Linux, Windows, macOS, Android и iOS.

Основные преимущества использования ONNX

Принятие формата Open Neural Network Exchange дает несколько стратегических преимуществ для проектов в области искусственного интеллекта:

  • Взаимодействие между фреймворками: разработчики могут переключаться между фреймворками, не привязываясь к одной экосистеме. Вы можете обучить модель с помощью удобного Python Ultralytics и экспортировать ее для использования в C++ приложении или веб-среде JavaScript.
  • Оптимизация оборудования: Многие производители оборудования предоставляют специализированных поставщиков исполнения, которые взаимодействуют с ONNX. Это означает, что один .onnx файл может быть ускорен на NVIDIA , Intel или мобильных нейронных процессорах (NPU) с помощью таких инструментов, как OpenVINO или CoreML.
  • Более быстрое выведение: ONNX применяет оптимизации графов, такие как слияние узлов и постоянное складывание, которые могут значительно сократить задержку вывода. Это необходимо для приложений реального времени, таких как автономные транспортные средства или высокоскоростные производственные линии.
  • Упрощенное развертывание: вместо поддержания отдельных конвейеров развертывания для каждой среды обучения инженерные команды могут стандартизировать ONNX формата доставки, оптимизируя процессы ModelOps.

Применение в реальном мире

Универсальность ONNX его незаменимым инструментом в различных отраслях. Вот два конкретных примера его применения:

1. Краевой искусственный интеллект на мобильных устройствах

Рассмотрим мобильное приложение, предназначенное для мониторинга состояния сельскохозяйственных культур в режиме реального времени. Модель может быть обучена на мощном облачном сервере с использованием большого набора данных с изображениями растений. Однако приложение должно работать в автономном режиме на смартфоне фермера. Экспортируя обученную модель в ONNX, разработчики могут интегрировать ее в мобильное приложение с помощью ONNX Mobile. Это позволяет процессору телефона выполнять локальное обнаружение объектов, мгновенно идентифицируя вредителей или болезни без необходимости подключения к Интернету.

2. Кроссплатформенное веб-вывод

В электронной коммерции функция «виртуальной примерки» может использовать оценку позы для наложения одежды на изображение с веб-камеры пользователя. Обучение этой модели может происходить в Python, но целью развертывания является веб-браузер. С помощью ONNX модель может быть преобразована и запущена непосредственно в браузере пользователя через ONNX Web. Это позволяет использовать возможности устройства клиента (WebGL или WebAssembly) для выполнения задач компьютерного зрения, обеспечивая плавную работу и сохранение конфиденциальности, поскольку видеоданные никогда не покидают компьютер пользователя.

Сравнение со связанными терминами

Полезно отличать ONNX других форматов моделей и инструментов:

  • vs. TensorRT: ONNX форматом обмена, TensorRTONNX является механизмом вывода и оптимизатором специально для NVIDIA . Обычный рабочий процесс включает в себя ONNX экспорт модели в ONNX , а затем разбор этого файла ONNX в TensorRT достижения максимальной пропускной способности на NVIDIA .
  • vs. TensorFlow SavedModel: SavedModel собственный формат сериализации для TensorFlow. Хотя он надежен в Google , он менее универсален, чем ONNX. Часто существуют инструменты для преобразования SavedModels в ONNX получить более широкую поддержку платформы
  • vs. CoreML: CoreML — это фреймворк Apple для машинного обучения на устройствах. Несмотря на различия, модели часто конвертируются из PyTorch ONNX, а затем из ONNX CoreML или напрямую), чтобы эффективно работать на iPhone и iPad.

Экспорт в ONNX Ultralytics

Ultralytics упрощает процесс преобразования современных моделей, таких как YOLO26, в ONNX . Функция экспорта встроена непосредственно в библиотеку и автоматически обрабатывает сложный обход графа и сопоставление операторов.

Следующий пример демонстрирует, как экспортировать предварительно обученную модель YOLO26 в ONNX для развертывания:

from ultralytics import YOLO

# Load the YOLO26n model (Nano version recommended for edge deployment)
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
# The 'dynamic' argument enables variable input sizes
path = model.export(format="onnx", dynamic=True)

print(f"Model exported successfully to: {path}")

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

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас