Сравнение алгоритмов локализации ORB SLAM и LSD SLAM | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №27 (213) июль 2018 г.

Дата публикации: 09.07.2018

Статья просмотрена: 2375 раз

Библиографическое описание:

Панков, В. Д. Сравнение алгоритмов локализации ORB SLAM и LSD SLAM / В. Д. Панков, В. А. Шульга. — Текст : непосредственный // Молодой ученый. — 2018. — № 27 (213). — С. 16-19. — URL: https://moluch.ru/archive/213/51977/ (дата обращения: 18.12.2024).



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

Наиболее популярны методы, использующие камеру для построения карты и отслеживания перемещения робота в пространстве. Это обусловлено компактностью и дешевизной камер (например, в сравнении с LIDAR-датчиками, стоимость которых достигает 50000$). Данные методы можно разделить на два класса: использующие изображение с камеры целиком и строящие плотную карту местности (direct-based SLAM), и признаковые методы, которые строят разреженную карту: из кадра извлекаются ключевые точки — наиболее выделяющиеся точки изображения, а остальная информация отбрасывается.

В данной статье приведено сравнение двух реализаций SLAM из обеих групп: feature-based ORB SLAM и direct-based LSD SLAM.

ORBSLAM

Одна из наиболее популярных реализаций SLAM. Данный метод основан на детекторе ключевых точек ORB [1]. Высокая скорость детектора ORB позволяет методу работать в реальном времени в условиях ограниченных вычислительных ресурсов.

На рисунке 1 показаны основные компоненты алгоритма. Его работа разделена на три основных потока. Tracking — отслеживание кадров. Данный поток приблизительно определяет текущее положение камеры путем поиска похожего кадра в локальной карте и сопоставления ключевых точек с найденным кадром. Local Mapping — выполняет построение карты вблизи текущего положения камеры и оптимизирует карту. Loop Closing — алгоритм замыкания циклов, который ищет и объединяет похожие кадры.

Рис. 1. Основные компоненты ORB SLAM [2]

Первый шаг алгоритма — инициализация карты, которая состоит из карты точек (MapPoints) и ключевых кадров (KeyFrames). Ключевые кадры сохраняют информацию о положении камеры и ключевых точках, присутствующих на кадре.Далее, с использованием карты точек и ключевых кадров выполняется построение неориентированного взвешенного графа пересечений (Сovisibility Graph). В данном графе каждый кадр представляет собой узел. Пара узлов связывается ребрами, если у соответствующей пары кадров наблюдается более 15-ти общих точек карты. Весом ребер является число общих точек.

Поток Tracking отслеживает перемещение камеры. Он извлекает ключевые точки с помощью алгоритма ORB, а затем пытается сопоставить их с предыдущим кадром. В случае неудачи выполняется релокализация. В случае успешного сопоставления в графе пересечений ключевых кадров ищется локальная карта, после чего производится сопоставление точек текущего кадра с точками в локальной карте путем проекции. И, наконец, выполняется оптимизация локальной карты (Local BA), с помощью которой уточняется положение камеры.

Модуль локального построения карты (LocalMapping) обрабатывает новые кадры и добавляет их в граф пересечений и остовное дерево графа. Кроме того, он выполняет локальную оптимизацию карты (Local BA) для получения более точной реконструкции облака точек вблизи положения камеры.

Модуль замыкания циклов (LoopClosing) ищет похожие кадры для каждого нового кадра. Если такие кадры найдены — для них и текущего кадра вычисляется преобразование подобия (Compute SE3). Затем положения найденного и текущего кадров выравниваются путем применения найденного преобразования, а одинаковые ключевые точки объединяются.

Кроме локальной оптимизации, ORB SLAM выполняет глобальную оптимизацию карты (Full BA), которая позволяет уменьшить накопленную ошибку с учетом найденных замыканий циклов.

LSDSLAM

Алгоритм включает в себя три основных модуля: tracking, depth map estimation и map optimization. Схема модулей показана на рисунке 2.

Модуль tracking непрерывно отслеживает новые изображения с камеры и определяет перемещение камеры. Для оценки перемещения вычисляется преобразование подобия между предыдущим и новым кадрами. В отличие от ORB SLAM, основанном на сопоставлении ключевых точек, в LSD SLAM для расчета преобразования используется минимизация фотометрической ошибки.

Модуль depthmapestimationсравнивает новый кадр с текущим, а затемуточняет или полностью заменяет текущий кадр. Для сравнения используется взвешенная сумма относительного расстояния от нового кадра до текущего и углов поворота между ними. Если вычисленная сумма больше заданного порога — текущий кадр заменяется новым.

Модуль mapoptimization выполняет оптимизацию карты. Оптимизация позволяет предотвратить накопление ошибок в отслеживании местоположения и поддерживает точность построения карты окружающей среды. Оптимизация выполняется библиотекой g2o [3] непрерывно в отдельном потоке.

Для хранения карты окружающей среды используется граф. Каждый узел графа хранит изображение, и соответствующую ему обратную карту глубины. Узлы соединяются ребрами, которые содержат найденное преобразование подобия между двумя изображениями.

Рис. 2. Визуальное представление трех основных компонентов LSD SLAM [4]

Сравнение

В таблице 1 приведены основные характеристики рассматриваемых алгоритмов.

Таблица 1

Сравнение алгоритмов

ORB SLAM

LSD SLAM

  1. Open-Source

+

+

  1. Интеграция с ROS

+

+/-

  1. Поддерживаемые типы сенсоров

Monocular, Stereo, RGB-D

Monocular

  1. Ресурсоемкость

низкая

высокая

  1. Карта окружающей среды

разреженная

плотная

  1. Оба алгоритма имеют открытый исходный код, и опубликованы под лицензией GPL.
  2. Оба алгоритма имеют интеграцию со средой ROS (Robot Operating System, популярный робототехнический фреймворк). Недостатком LSD SLAM является отсутствие поддержки последних версий ROS: алгоритм не обновлялся с 2011 года.
  3. LSD SLAM имеет реализацию только для монокулярной камеры. ORB SLAM поддерживает работу с монокулярными, стерео и RGB-D камерами.
  4. ORB SLAM значительно менее требователен к ресурсам, и способен работать в реальном времени, например, на Raspberry PI (популярном микрокомпьютере с тактовой частотой 1–1.5 ГГц). LSD SLAM менее производителен, поскольку хранит и обрабатывает существенно больший объем информации (изображения целиком, а не только ключевые точки), и для приемлемой работы требует значительных вычислительных ресурсов.
  5. В отличие от первого алгоритма, LSD SLAM способен строить плотную карту окружающей среды, которую можно использовать для планирования пути в среде с препятствиями.

Наиболее важным параметром для сравнения является точность локализации, т. е. точность оценки местоположения камеры (и робота). В таблице 2 приведена погрешность локализации для обеих алгоритмов, протестированных на различных наборах тестовых данных, предоставленных TUM RGB-D dataset [5].

Таблица 2

Оценка погрешности локализации

ORB SLAM

LSD SLAM

fr1/xyz

0.014м.

0.272м.

fr1/room

0.120м.

0.053м.

fr2/desk

0.018м.

0.045м.

Оценка погрешности рассчитана следующим образом (RMSE — Root Mean Square Error):

где — измеренное положение камеры в момент времени , — истинное положение, n — количество измерений на всей траектории движения камеры.

Заключение

В данной статье приведен обзор SLAM-алгоритмов, используемых для локализации робота в пространстве с помощью камеры. Приведено описание реализаций ORB SLAM и LSD SLAM, а также их сильные и слабые стороны. Кроме того, оценена точность локализации с использованием набора данных TUM RGB-D.

Литература:

  1. Ethan R., Vincent R., Kurt K., Gary B., ORB: an efficient alternative to SIFT or SURF 2011. URL: http://www.willowgarage.com/sites/default/files/orb_final.pdf (дата обращения: 06.07.2018)
  2. Raul Mur-Artal and Juan D. T, ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras // IEEE TRANSACTIONS ON ROBOTIC, Октябрь 2017.
  3. Kummerle R., Giorgio G., Hauke S., Intl. Conf. on Robotics and Automation // g2o: A general framework for graph optimization. 2011.
  4. Engel J. Schops T., Cremers D., LSD-SLAM: Large-Scale Direct Monocular SLAM // ECCV. Lecture Notes in Computer Science, Springer, Vol. 8690, 2014.
  5. RGB-D SLAM Dataset and Benchmark // Computer Vision Group: [сайт]. URL: https://vision.in.tum.de/data/datasets/rgbd-dataset (дата обращения: 06.07.2018)
Основные термины (генерируются автоматически): SLAM, ORB, LSD, RGB-D, ROS, кадр, окружающая среда, текущий кадр, TUM, локальная карта.


Похожие статьи

Применение UML-диаграмм для проектирования программных комплексов

Реализация частотной фильтрации рентгеновских изображений в MATLAB

Сравнительный анализ систем отслеживания ошибок Jira и Redmine

Реализация линейного алгоритма «Видеопамять» (среда Delphi)

Сравнительный анализ функциональных возможностей в Microsoft Excel и MathСad при решении нелинейных уравнений

Использование команд MATLAB — от версии к версии

Рассмотрены отличительные особенности команд пакетов MATLAB 6.5 и MATLAB 7.11 при использовании их как серверов OLE автоматизации при решении за-дач автоматического управления. Приведены конкретные рабочие примеры, которые легко можно повторить.

Реализация алгоритма RC4 на CBuilder

Использование методов и основных алгоритмов в технологии Data Mining

Разработка приложения средствами RAD Studio и СУБД PostgreSQL

Сравнительный анализ полностью заказных СБИС, ПЛИС и СБИС с программируемой архитектурой

Похожие статьи

Применение UML-диаграмм для проектирования программных комплексов

Реализация частотной фильтрации рентгеновских изображений в MATLAB

Сравнительный анализ систем отслеживания ошибок Jira и Redmine

Реализация линейного алгоритма «Видеопамять» (среда Delphi)

Сравнительный анализ функциональных возможностей в Microsoft Excel и MathСad при решении нелинейных уравнений

Использование команд MATLAB — от версии к версии

Рассмотрены отличительные особенности команд пакетов MATLAB 6.5 и MATLAB 7.11 при использовании их как серверов OLE автоматизации при решении за-дач автоматического управления. Приведены конкретные рабочие примеры, которые легко можно повторить.

Реализация алгоритма RC4 на CBuilder

Использование методов и основных алгоритмов в технологии Data Mining

Разработка приложения средствами RAD Studio и СУБД PostgreSQL

Сравнительный анализ полностью заказных СБИС, ПЛИС и СБИС с программируемой архитектурой

Задать вопрос