Технология LSD-SLAM – подход к локализации и сопоставлению на основе ключевого кадра, который основывается на следующих этапах [1]:
• движение камеры отслеживается в направлении опорного ключевого кадра на карте. Новые ключевые кадры генерируются, если камера слишком далеко отошла от существующих ключевых кадров;
• глубина (расстояние) в текущем эталонном ключевом кадре оценивается из стерео соответствий на основе отслеживаемого движения (временное стерео) [2];
• позиции ключевых кадров выполнены глобально согласованными с помощью взаимного прямого выравнивания изображений и оптимизации алгоритма графического позиционирования.
Для реализации требуется персональный компьютер на базе операционной системы Ubuntu, веб-камера, дополнительные программные пакеты.
В Stereo LSD-SLAM глубина в ключевых кадрах дополнительно оценивается непосредственно из статического стерео. Существует целый ряд преимуществ этого подхода: полагаться исключительно на временные или исключительно на статическую стереосистему. Статическая стереосистема позволяет оценивать абсолютный масштаб мира и не зависит от движения камеры. Тем не менее, статическое стерео ограничено постоянной базой (с во многих случаях фиксированным направлением), что эффективно ограничивает производительность до определенного диапазона [3].
Рис. 1. Работа SLAM
Временная стереосистема не ограничивает производительность до определенного диапазона. Один и тот же датчик может использоваться в очень малых и очень больших средах и легко перемещаться между ними. С другой стороны, он не обеспечивает масштабирование и требует передвижения камеры [4]. Дополнительным преимуществом сочетания временной и статической стереосистемы является то, что доступно несколько базовых направлений: в то время как статическое стерео обычно имеет горизонтальную базовую линию, что не позволяет оценить глубину вдоль горизонтальных кромок, временное стерео позволяет завершить карту глубины, обеспечивая другое движение направления [5].
Основные принципы реализации метода (алгоритма):
• обобщение LSD-SLAM на стереокамере, комбинируя временное и статическое стерео в прямом, режиме SLAM в режиме реального времени;
• моделирование изменения освещения при прямом выравнивании изображений, что повышает надёжность метода;
• систематическая оценка двух базовых наборов данных из полученных изображений.
Рис. 2. Графическая реализация алгоритма SLAM на собственном примере
Простая модель обучения на основе движения
Визуальное моделирование подвижного объекта-наблюдателя производится с помощью свёрточной нейронной сети (CNN) [6]. Объект оптимизирует его визуальные представления, минимизируя ошибку преобразований камеры, полученной при его передвижении на основе предсказания. Выполнение этой задачи эквивалентно обучению нейронной сети с двумя потоками, принимающей два изображения в качестве входных данных и предсказывает перемещение, чему объект подвергался, когда он перемещался между по X и Y, из которых два изображения были получены. Чтобы узнать полезные визуальные представления, агент постоянно выполняет эту задачу (в зависимости от окружающей обстановки) [7].
Рассматриваются разные варианты предварительной оценки для оценки полезности изученных функций. Перфекционирование – процесс оптимизации значений случайно инициализированной нейронной сети для вспомогательной задачи, которая не совпадает с целевым преобразованием камеры из пар изображений.
Движение объекта эквивалентно перемещению камеры. Перемещение ставится, как проблема прогнозирования [8].
Рис. 3. Изучение перемещения для контроля визуальных функций. Мобильный объект, оборудованный визуальными датчиками, получает последовательность изображений в качестве входных данных во время движения
Рис. 4. Программная реализация
Рис. 5. Графический анализ движения с помощью прогаммы «SLAM Tuning»
Микрокомпьютер Raspberry Pi3
Микрокомпьютер Raspberry Pi3 считается хорошим аппаратным устройством для реализации конечного продукта ввиду своих небольших размеров и быстродействия [9].
Что представляет из себя Raspberry Pi 3 Model B в техническом плане:
• SoC: Broadcom BCM2837;
• Процессор: ARM Cortex-A53 (4 ядра);
• Графический процессор: Broadcom VideoCore IV;
• Оперативная память: 1Гб LDDR2;
• Встроенные адаптеры: 10/100Мбит Ethernet;
• Bluetooth 4.1 LE, Wi-Fi 802.11n
Рис. 6. Микрокомпьютер Raspberry Pi3
Для разработки рекомендуется использовать пакеты Keras, Theano. Взаимодействие с ними пользователя происходит через систему Linux (Ubuntu). Персональный компьютер – база для разработки алгоритма, который в будущем предстоит транспортировать в память микрокомпьютера.
Заключение
Исследование показало, что базовая реализация алгоритма SLAM возможна при использовании среднестатистического оборудования. В дальнейшем, считается целесообразным использовать аппаратуру с большей вычислительной способностью.