Открыть сервис

VIO

VIO (от англ. Visual Inertial Odometry — визуально-инерциальная одометрия) — это метод оценки движения и положения (локализации) мобильного робота, беспилотного летательного аппарата (БПЛА), транспортного средства или носимого устройства в пространстве, основанный на совместной обработке данных, поступающих от видеокамеры (одной или нескольких) и инерциального измерительного блока (IMU), состоящего из акселерометров и гироскопов. VIO относится к классу алгоритмов одометрии, то есть вычисления пройденного пути, и является одним из ключевых компонентов систем одновременной локализации и построения карты (SLAM) для автономных систем.

История развития

Метод VIO возник как развитие более ранних подходов к одометрии — визуальной одометрии (VO) и инерциальной навигации (INS). Визуальная одометрия, основанная на анализе последовательности изображений, появилась в конце 1990-х годов, но имела ограничения: она чувствительна к быстрым движениям, плохому освещению и текстурированности сцены. Инерциальная навигация, использующая данные IMU, страдает от накопления ошибок (дрейфа) с течением времени.

Первые работы по объединению визуальных и инерциальных данных для повышения точности локализации появились в начале 2000-х годов. Значительный вклад внесли исследования в области аэрокосмической техники и робототехники. Ключевым прорывом стало развитие методов фильтрации (в частности, расширенного фильтра Калмана — EKF) и методов оптимизации на графах (факторных графов), которые позволили эффективно обрабатывать данные с разной частотой и природой.

В 2010-х годах, с появлением мощных и компактных вычислителей (например, NVIDIA Jetson) и миниатюрных камер (например, Intel RealSense), VIO стал широко внедряться в коммерческих продуктах: от дронов DJI до гарнитур смешанной реальности Microsoft HoloLens и Apple Vision Pro. В России разработкой алгоритмов VIO занимаются в научно-исследовательских институтах (например, ИПМ им. М.В. Келдыша РАН, МГУ им. М.В. Ломоносова) и в компаниях, занимающихся беспилотными технологиями (например, «Яндекс.Беспилотные технологии»).

Принцип работы

VIO решает задачу оценки положения (позиции и ориентации) и скорости устройства в реальном времени. Основная идея заключается в комплементарности двух типов сенсоров:

  • Камера предоставляет высокоинформативные, но относительно медленные (обычно 30–60 кадров в секунду) данные о внешней среде. По изменению положения характерных точек (особенностей, или фич) на последовательных кадрах можно оценить движение.
  • IMU предоставляет высокочастотные (100–1000 Гц), но зашумленные данные о собственном ускорении и угловой скорости. Интегрирование этих данных даёт оценку положения, но ошибка накапливается квадратично по времени.

Алгоритм VIO объединяет эти данные, чтобы компенсировать недостатки каждого. Типовой цикл работы включает:

  1. Синхронизация данных: Кадры с камеры и измерения с IMU приводятся к единой временной шкале.
  2. Визуальная обработка: На изображении выделяются и отслеживаются ключевые точки (например, углы, края). Между кадрами вычисляется их перемещение (оптический поток).
  3. Инерциальная обработка: Данные IMU интегрируются для получения грубой оценки движения между двумя визуальными кадрами.
  4. Слияние данных: Оценки движения от камеры и IMU объединяются с помощью вероятностных методов. Наиболее распространены два подхода:
  • Фильтрующий подход (EKF): Состояние системы (позиция, скорость, ориентация, смещения IMU) оценивается рекурсивно, с коррекцией по визуальным наблюдениям.
  • Оптимизационный подход (на факторных графах): Вся история состояний и наблюдений представляется в виде графа, где узлы — состояния, а рёбра — ограничения (измерения). Решается задача нелинейной оптимизации для нахождения наиболее вероятной траектории.
  1. Выдача результата: На выходе алгоритм выдаёт оценку положения (x, y, z, roll, pitch, yaw) и скорости с частотой до 1000 Гц.

Классификация методов VIO

Методы VIO классифицируются по нескольким признакам:

По типу слияния данных

  • Loosely-coupled (слабо связанные): Визуальная и инерциальная одометрии работают независимо, а затем их результаты объединяются (например, с помощью фильтра Калмана). Проще в реализации, но менее точны.
  • Tightly-coupled (тесно связанные): Визуальные и инерциальные данные обрабатываются совместно в единой оптимизационной задаче. Более точны и устойчивы, но требуют больших вычислительных ресурсов.

По способу обработки визуальной информации

  • Feature-based (на основе признаков): Выделяются и отслеживаются дискретные точки (например, углы Харриса, ORB, SIFT). Наиболее распространённый подход.
  • Direct (прямые): Используется яркость пикселей напрямую, без выделения признаков. Более устойчивы к размытию и текстурированным сценам, но менее надёжны при повторяющихся текстурах.

По типу камеры

  • Монокулярный VIO: Используется одна камера. Не может определить абсолютный масштаб движения (только относительный), что является существенным недостатком.
  • Стерео VIO: Используются две камеры, что позволяет оценить масштаб по стерео-базе. Более точен, но требует больше вычислительных ресурсов.
  • VIO с RGB-D камерой: Используется камера, дающая одновременно цветное изображение и карту глубины. Позволяет напрямую получать 3D-информацию, но ограничен по дальности (обычно до 10 метров).

Применение

VIO широко применяется в областях, где требуется точная и надёжная локализация в условиях отсутствия GPS или его нестабильности:

  • Беспилотные летательные аппараты (БПЛА): Навигация дронов в помещениях, в туннелях, под мостами, в городских каньонах. Например, российские дроны «Геоскан» и «Коптер-Экспресс» используют VIO для полётов в сложных условиях.
  • Мобильные роботы: Роботы-пылесосы, складские роботы, роботы-курьеры. VIO позволяет им строить карты помещений и точно перемещаться.
  • Автономные автомобили: Дополнение к GPS и лидарам для локализации в условиях плохой видимости или в туннелях.
  • Носимые устройства и гарнитуры дополненной/виртуальной реальности (AR/VR): Определение положения головы и рук пользователя. Например, гарнитура Apple Vision Pro использует VIO для отслеживания взгляда и жестов.
  • Роботизированная хирургия: Локализация хирургических инструментов внутри тела пациента.

Преимущества и недостатки

Преимущества

  • Высокая частота обновления: VIO выдаёт оценки положения с частотой до 1000 Гц, что критично для быстрых движений.
  • Устойчивость к кратковременным сбоям: IMU позволяет продолжать оценку движения даже при временной потере визуального контакта (например, при резком повороте камеры).
  • Независимость от внешних сигналов: Не требует GPS, Wi-Fi или других внешних источников.
  • Относительно низкая стоимость: Камеры и IMU — дешёвые и компактные сенсоры.

Недостатки

  • Накопление ошибки: Дрейф положения со временем неизбежен, особенно при длительном движении (например, более 10 минут). Для устранения дрейфа требуется коррекция по внешним ориентирам (например, по карте).
  • Чувствительность к условиям: Плохое освещение, быстрое движение, отсутствие текстур (например, белая стена) могут привести к сбоям.
  • Вычислительная сложность: Тесно связанные методы требуют мощных процессоров, что увеличивает энергопотребление и тепловыделение.
  • Проблема масштаба (для монокулярного VIO): Невозможность определить абсолютный масштаб движения, что делает его непригодным для задач, требующих точных метрических измерений.

Известные реализации

  • MSCKF (Multi-State Constraint Kalman Filter) — один из первых и наиболее известных фильтрующих методов, разработанный Анастасиосом Мурикисом и Стергиосом Румелиотисом (Университет Миннесоты, США).
  • VINS-Mono и VINS-Fusion (Visual-Inertial Navigation System) — открытые реализации тесно связанного VINS, разработанные в Гонконгском университете науки и технологий (HKUST). Широко используются в робототехнике.
  • OKVIS (Open Keyframe-based Visual-Inertial SLAM) — открытая реализация, основанная на оптимизации на факторных графах.
  • ORB-SLAM3 — одна из самых мощных современных систем SLAM, поддерживающая VIO с монокулярными, стерео и RGB-D камерами.
  • ROVIO (Robust Visual Inertial Odometry) — метод, разработанный в ETH Zurich (Швейцария), отличающийся высокой устойчивостью к динамическим сценам.

Интересные факты

  • Первый коммерческий продукт, массово использующий VIO, — дроны компании DJI (например, серия Phantom 4), которые применяли его для стабилизации полёта в помещении.
  • В 2020 году алгоритм VIO был использован для навигации марсохода «Персеверанс» (NASA) при посадке на Марс, хотя основным методом была лазерная локация.
  • В России разработка VIO-алгоритмов для беспилотных автомобилей ведётся, в частности, в компании «Яндекс.Беспилотные технологии», которая использует их для локализации в условиях плотной городской застройки.

Источники

  • Mourikis, A. I., & Roumeliotis, S. I. (2007). A Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation. IEEE International Conference on Robotics and Automation.
  • Qin, T., Li, P., & Shen, S. (2018). VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator. IEEE Transactions on Robotics.
  • Campos, C., Elvira, R., Rodríguez, J. J. G., Montiel, J. M. M., & Tardós, J. D. (2021). ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial, and Multimap SLAM. IEEE Transactions on Robotics.
  • Bloesch, M., Omari, S., Hutter, M., & Siegwart, R. (2015). Robust Visual Inertial Odometry Using a Direct EKF-Based Approach. IEEE/RSJ International Conference on Intelligent Robots and Systems.
  • Материалы конференций по робототехнике (ICRA, IROS) и компьютерному зрению (CVPR, ICCV).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →