ONNX
ONNX (Open Neural Network Exchange) — это открытый формат описания нейросетевых моделей, независимый от фреймворка: модель, обученную в PyTorch или TensorFlow, сохраняют в ONNX и запускают в любой среде исполнения — на сервере, на бортовом компьютере дрона, на нейроускорителе.
Для интегратора это способ не привязываться к одному стеку: отраслевая модель детекции дефектов, обученная подрядчиком, переносится на борт без переписывания кода, а при смене платы меняется только среда исполнения.
Что такое ONNX и как устроен
Файл ONNX описывает модель как граф операций со стандартизированным набором операторов и весами. Среды исполнения — ONNX Runtime, TensorRT, OpenVINO и аналоги — читают этот граф и выполняют его на доступном железе. Версии набора операторов (opset) определяют совместимость: новая модель может требовать свежей среды исполнения.
Как конвертировать модель в ONNX
Экспорт встроен в основные фреймворки: модель вызывается с примером входа, граф записывается в файл. Дальше — проверка, что выход ONNX-модели совпадает с исходной на тестовых данных, затем оптимизация под плату: упрощение графа, квантование, конвертация в TensorRT для NVIDIA Jetson.
- Экспорт из PyTorch или TensorFlow с фиксированным размером входа
- Сверка результатов исходной и ONNX-модели
- Оптимизация графа и квантование под целевую плату
- Бенчмарк на борту: кадры в секунду и задержка
Где применяется
Модели YOLO для детекции дефектов ЛЭП и техники на стройке почти всегда разворачивают через ONNX. Модели сегментации для сельского хозяйства и классификаторы для контроля требований безопасности — тоже. Для навигационных моделей важна совместимость с ускорителем конкретной платы.
Подводные камни
Не все операторы поддерживаются всеми средами исполнения — экзотические слои приходится заменять. Динамические размеры входа ухудшают оптимизацию. Квантование после экспорта может сместить порог детекции, поэтому модель перепроверяют на тестовой выборке.
AI Captain в расширенном пакете принимает нейросетевые модели заказчика; стандартный путь — экспорт в ONNX с последующей оптимизацией под Orange Pi 5 или NVIDIA Jetson, на которых выполняется инференс в полёте.
Продукты: AI Captain
Частые вопросы
Обязательно ли конвертировать модель в ONNX для дрона?
Не обязательно, но это самый переносимый путь: один файл модели запускается на разных платах через разные среды исполнения.
Теряется ли точность при переходе в ONNX?
При экспорте без квантования — нет; потери возможны при квантовании до INT8, их проверяют на тестовых данных.
ONNX — открытый формат нейросетевых моделей, позволяющий обучить модель в одном фреймворке и запустить на борту дрона в другом. Стандартный шаг перед оптимизацией модели под бортовой компьютер.
Связанные термины: Inference (инференс), Edge AI, YOLO, Машинное обучение