Фронтенд визуального SLAM: обзор

Христолюбов Филипп Михайлович – бакалавр Московского физико-технического института.

Аннотация: В статье рассматриваются алгоритмы одновременных локализации и картографирования (simultaneous localization and mapping - SLAM) для мобильного автономного робота, перемещающегося на плоскости или в трехмерном пространстве. Произведен обзор одной из принципиальных составляющих таких алгоритмов – фронтэнда. Произведено структурирование методов извлечение визуальных особенностей изображения по уровням абстракции. Особое внимание уделено выбору сенсора для имплементации SLAM на борту автономного робота.

Ключевые слова: SLAM (Simultaneous Localization and Mapping), visual SLAM, monoSLAM, stereoSLAM, RGB-D SLAM, visual features, direct SLAM.

Алгоритмы SLAM, построенного на различных камерах (Visual SLAM), бурно развивались последние 20 лет. На сегодня не существует единственного подхода к решению данной задачи. Было создано как минимум несколько сотен алгоритмов [1], выбор конкретного алгоритма должен зависеть от специфики задачи. Каждый алгоритм Visual SLAM состоит из двух принципиальных частей: фронтэнд и бэкэнд.

1

Рисунок 1. Структурная схема SLAM алгоритма.

Фронтэнд (frontend) – “внешняя часть алгоритма”. Отвечает за получение сырых данных с сенсора, их представление в памяти компьютера и локальную одометрию (то есть, вычисление изменения положения робота между двумя кадрами). Фронтэнд зависит от типа сенсора.

234

Рисунок 2. Камеры для SLAM (слева направо: вебкамера, стереокамера, RGB-D камера).

  • Монокулярная камера. Например – обычная веб-камера. С монокулярной камеры система получает плоское цветное 2D изображение. Стереокамера – самое дешевое и простое решение.
  • Стереокамера. Со стереокамеры получают пару изображений. За счет того, что два изображения сняты одновременно на небольшом расстоянии, называемым “базой” камеры, возможно построение карты глубин. Трехмерное изображение со стереокамеры обычно получают пассивным методом. Машина сопоставляет пиксели с пары изображений и вычисляет относительное смещение. Зная смещение и базу камеры, можно определить расстояние до каждого пикселя при помощи триангуляции. Однако, стереокамеры плохо справляются с условиями низкой освещенности или однотонными поверхностями. В таких условиях сложно сопоставить одну и ту же точку, снятую с разных камер.
  • RGB-D камера. С RGB-D камеры в дополнение к обычной цветной картинке (RGB) получают также канал глубины (-D). Обработка информации для извлечения карты глубин происходит непосредственно на камере. Таким образом экономятся ресурсы бортового компьютера робота. Чаще всего, для получения информации о глубине на камере предусматривают инфракрасный проектор. Он проецирует паттерн из ИК точек в поле видимости камеры. Две инфракрасные камеры снимают изображение. Точки паттерна смещаются в зависимости от геометрии, на которую они проецируются. На основании смещений точек можно оценить расстояние до них. В остальных пикселях изображений глубину получают интерполяцией. Информацию о глубине камера может передать в виде облака точек и в виде карты глубин каждого отдельного пикселя. Такой способ получения информации называют активным. Он работает в случае однотонных поверхностей и в темноте.

56

Рисунок 3. Слева – проекция ИК точек, справа – карта глубин.

В дополнение к данным с камер используют другие сенсоры. В первую очередь – акселерометры и гироскопы (IMU сенсоры). Они позволяют получать информацию о скорости и ускорении робота с высокой частотой независимо от обстоятельств (например, в момент, когда система Visual SLAM потеряла положение).

Существует два подхода к обработке полученного с камеры изображения (в виде обычного изображения в случае моно-камеры, или карты глубин в случае стерео- или RGB-D- камеры): прямой или основанный на извлечении визуальных особенностей.

  • Прямой (direct) подход. В прямом подходе непосредственно сравниваются два изображения в разные моменты времени, без всяческих абстракций. Два изображения совмещаются при помощи минимизации фотометрической ошибки (photometric error)[2]. Зная смещение изображения, можно рассчитать смещение робота между двумя кадрами. При таком подходе необходимо сохранять целые изображения, что требует значительного расхода памяти. Однако, прямой подход хорошо работает в среде с большим количеством однотонных поверхностей, обыкновенно представляющей сложности для следующего подхода.
  • Подход, основанный на извлечении визуальных особенностей (feature-based). В feature-based подходе вместо того, чтобы обрабатывать и хранить целые изображения, выделяют визуальные особенности (особые точки). Выделяют особенности нескольких уровней абстракции[3]:
    • Низкий уровень абстракции – точки, линии, грани, углы
    • Средний уровень абстракции – плоскости, капли
    • Высокий уровень абстракции – семантические метки для предметов

Исторически Visual SLAM алгоритмы работали с особенностями низкого уровня абстракции. До сих пор они остаются самыми популярными для реальных применений. Особая точка m, или точечная особенность (key point) изображения – это точка изображения, окрестность которой o(m) можно отличить от окрестности любой другой точки изображения o(n) в некоторой другой окрестности особой точки o2(m). Для обработки особенностей низкого уровня абстракции необходимо найти особую точку, для этого используют детектор. Детектор – это метод извлечения особых точек из изображения. Детектор обеспечивает инвариантность нахождения одних и тех же особых точек относительно преобразований изображений. Самые распространенные детекторы – детекторы углов Harris, Shi-Tomasi, Förstner, Difference of Gaussians. Далее необходимо описать найденную особенность. Для этого используется дескриптор – идентификатор особой точки, выделяющий её из остального множества особых точек. В свою очередь, дескрипторы должны обеспечивать инвариантность нахождения соответствия между особыми точками относительно преобразований изображений [4]. Дескрипторы обеспечивают инвариантность по отношению к перепаду освещенности, угла съемки, масштабу. В последнее время для ускорения быстродействия применяются так называемые бинарные дескрипторы, в них информация кодируется последовательностью бит. Их обработка может выполняться побитовыми операциями. Обратной стороной является более низкая точность. Популярный классический алгоритм SIFT – содержит в себе как детектор, так и дескриптор. Пример распространенного бинарного алгоритма – ORB.

Выделять низкоуровневые особенности, такие как углы, грани и так далее можно эффективно на высоконтрастных изображениях со множеством деталей. Если в поле зрения робота присутствуют однотонные области, такие как крашенная стена или потолок, может оказаться целесообразным определять другие геометрические примитивы, например линии или плоскости. Это можно сделать, например, вычисляя нормали [5]. Подобные особенности относят к особенностям среднего уровня абстракции.

В последнее время наблюдается серьёзный прогресс в области распознавания образов при помощи Deep Learning и нейросетей. Это позволяет размечать целые предметы в поле зрения робота и использовать их как особенности. Такие особенности относят к особенностям высокого уровня абстракции. Это позволяет роботу воспринимать окружение в человеческой манере.

Зная координаты извлечённых особенностей на изображениях, высчитывают смещение камеры между кадрами.

7

Рисунок 4. Пример сопоставления особенностей между кадрами.

Список литературы

  1. «A Survey of Simultaneous Localization and Mapping with an Envision in 6G Wireless Networks» [Электронный ресурс]. – Режим доступа: https://arxiv.org/pdf/1909.05214.pdf.
  2. Photo-Consistency [Электронный ресурс]. – Режим доступа: https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-31439-6_204.
  3. Feature‐based visual simultaneous localization and mapping: a survey» [Электронный ресурс]. – Режим доступа: https://www.researchgate.net/publication/234081012_Visual_Simultaneous_Localization_and_Mapping_A_Survey.
  4. Детекторы углов [Электронный ресурс]. – Режим доступа: https://habr.com/ru/post/244541.
  5. Towards semantic SLAM: points, planes and objects [Электронный ресурс]. – Режим доступа: https://arxiv.org/pdf/1804.09111.pdf.

Интересная статья? Поделись ей с другими: