Христолюбов Филипп Михайлович – бакалавр Московского физико-технического института.
Аннотация: В статье рассматриваются алгоритмы одновременных локализации и картографирования (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. Структурная схема SLAM алгоритма.
Фронтэнд (frontend) – “внешняя часть алгоритма”. Отвечает за получение сырых данных с сенсора, их представление в памяти компьютера и локальную одометрию (то есть, вычисление изменения положения робота между двумя кадрами). Фронтэнд зависит от типа сенсора.
Рисунок 2. Камеры для SLAM (слева направо: вебкамера, стереокамера, RGB-D камера).
Рисунок 3. Слева – проекция ИК точек, справа – карта глубин.
В дополнение к данным с камер используют другие сенсоры. В первую очередь – акселерометры и гироскопы (IMU сенсоры). Они позволяют получать информацию о скорости и ускорении робота с высокой частотой независимо от обстоятельств (например, в момент, когда система Visual SLAM потеряла положение).
Существует два подхода к обработке полученного с камеры изображения (в виде обычного изображения в случае моно-камеры, или карты глубин в случае стерео- или RGB-D- камеры): прямой или основанный на извлечении визуальных особенностей.
Исторически 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 и нейросетей. Это позволяет размечать целые предметы в поле зрения робота и использовать их как особенности. Такие особенности относят к особенностям высокого уровня абстракции. Это позволяет роботу воспринимать окружение в человеческой манере.
Зная координаты извлечённых особенностей на изображениях, высчитывают смещение камеры между кадрами.
Рисунок 4. Пример сопоставления особенностей между кадрами.
Список литературы