1. Предполагая модель постоянной скорости, позиция текущего кадра XTI инициализируется с учетом позиции предыдущего кадра xt-1 и скорости, с которой камера перемещалась в последней итерации.
2. Текущее изображение выравнивается с изображением предыдущего кадра с помощью прямых методов, чтобы получить первое оценочное положение текущего кадра xte.
3. На 3D-карте проецируются доступные точки, и некоторые из этих точек сопоставляются с текущим изображением.
4. Наконец, результат спаривания точек учитывается для настройки конечного положения текущего кадра xt .
Следуя этой процедуре, вы получаете точное смещение камеры и с более высокой временной эффективностью, чем другие алгоритмы состояния искусства.
Ниже
подробно описаны шаги 2, 3 и 4 для оценки положения кадра в потоке отслеживания.
После применения модели движения к текущему кадру информация об интенсивности изображения используется для оценки первой позиции кадра xte, которая впоследствии будет уточнена. Из двух изображений Ft и Ft−1, которые наблюдают одну и ту же точку 3D X, остаток интенсивности δF определяется как фотометрическая разница между пикселями каждого кадра, в котором наблюдается X. позиция 2D в каждом кадре определяется проекцией X в каждом изображении, учитывая предполагаемую глубину 3D-точки. (рис. 4.6)
Рис 4.6
Это нелинейная проблема квадратов, которая может быть эффективно решена с помощью итеративного алгоритма Гаусса-Ньютона.
Остаток интенсивности δF рассчитывается с помощью патча 4x4 точки из изображения, в котором вы проецировали каждую точку 3D, следуя формулировке алгоритма обратного компонента, как это предлагается в. В этом случае патчи не преобразуются перед сравнением, так как предполагается, что смещение между каждым кадром будет небольшим.
Как
следует из вышеизложенного, не пытайтесь выровнять изображения, используя все
их точки, но с целью повышения временной эффективности используются только те
pıxeles предыдущего кадра, которые связаны с 3D-точкой и видны из текущего
кадра.
Вышеуказанный процесс осуществляется на нескольких уровнях пирамиды, чтобы иметь возможность терпеть большие перемещения. Таким образом, сначала делается попытка сходиться с уровнем самой высокой пирамиды (где изображение меньше), а затем выполняется та же процедура с более низкими уровнями пирамиды. В целом, более низкие уровни пирамиды обычно не обеспечивают большей точности, поэтому их можно обойтись без использования для экономии вычислительного времени.
Результат
выравнивания изображения будет предполагаемой позицией xte, которая будет
служить отправной точкой для остальных шагов трекинга.
Эти эксперименты стремятся объективно охарактеризовать качество визуального самопроверки 3D с помощью алгоритма SDVL, анализируя, среди прочего, его прочность, точность и временную эффективность.
Алгоритм SDVL имеет несколько параметров настройки, которые влияют на конечный результат. Значения по умолчанию были экспериментально установлены для работы в большинстве сценариев. Наиболее важными параметрами являются:
1. Начальная прокрутка: смещение, необходимое для вычисления начальной карты. Слишком малое значение может привести к недостаточному параллаксу, а вычисленная карта ошибочна; обычно достаточно установить значения от 10 до 20 пикселей.
2. Число Keyframes: максимальное число Keyframes, что влияет на временную эффективность алгоритма. Если это число велико, сгенерированная карта будет содержать больше точек 3D, а временная эффективность будет меньше как в трекинге, так и в картографировании.
3. Коэффициент потерянных очков: максимальный процент потерянных очков с последнего Keyframe. Если это значение будет превышено, будет создан новый Keyframe, даже если с момента последнего удаления не прошло достаточно итераций.
4. Количество сопряжений: максимальное количество сопряжений, используемых в трекинге. Высокое число улучшит точность, но ухудшит временную эффективность в мгновенной оценке позиции 3D, что может глобально ухудшить качество оценки.
5. Отклонение спуска (RDE): включение или отключение отклонения спуска во время отслеживания.
6. Дескрипторы ORB: использование дескрипторов ORB, а не патчей, для выполнения спаривания точек.
Первые четыре параметра должны быть настроены в соответствии с характеристиками сценария, в то время как последние три изменили общее поведение алгоритма.
Работа алгоритма представлена на рисунке 5.1 карта, преобразованная из видеоролика в 3D
карту. Белые точки находятся на месте опорных точек, полученных по методу ORB.
Именно эти точки представляют собой карту.
Рис 5.1: Выведенная
карта
Для проверки работы этого алгоритма был проведен ряд тестов. Платформа ROS используется для запуска интерфейса этого метода. Информация была получена с монокулярной камеры Kinetic.
Интерфейс этого алгоритма состоит из двух окон. Первый из них -это изображенный на рисунке 5.2, на нем отображается текущий кадр камеры. В нижней части окна отображается информация о состояние алгоритма:
· Режим. На фотографии мы видим, что он находится в режиме SLAM.
· Количество ключевых кадров.
· Количество точек на карте.
· Количество найденных ассоциаций.
· Положение в x и точка, в которой курсор находится над окном.
Рис. 5.2: Окно
алгоритма
Второе окно-это окно, показанное на рис. 19. Оно содержит карту точекиз исследуемой среды. В нем есть несколько окон, которые позволяют нам отслеживать, какая информация должна отображаться на экране, и переключать режим функционирование. Кроме того, в центральной части отображается карта, созданная при навигации робота по окружающей среде. На карте отображаются следующие элементы:
· Зеленый прямоугольник: текущее положение камеры.
· Синие прямоугольники: Keyframes
· Красные точки: точки текущей локальной карты.
· Черные точки: точки карты.
Рис 5.3: Второе окно алгоритма
При тестировании с помощью этого алгоритма было замечено, что он довольно
чувствителен к резким движениям камеры. Однако, если камера движется плавно, то
алгоритм работает быстро и без каких-либо задержек. Для того, чтобы получить
хорошие результаты, камеру необходимо подержать в неподвижно состоянии в
течение нескольких секунд в начале для инициализации карты.
Для этого эксперимента используется последовательность Office Room 3 (OR3)испытательного стенда ICL-NUIM. Эти видео выполнены с помощью свободной камеры, которая выполняет круговое движение вокруг комнаты. Окружающая среда характеризуется небольшим размером и небольшим количеством текстур, поэтому количество точек на карте не будет очень высоким.
Точность алгоритмов была оценена с использованием абсолютной ошибки траектории (ATE), которая измеряет разницу между каждой оцененной позицией и абсолютной истиной с учетом временных меток; для этого сначала выстраиваются траектории, выполняя разложение на единичные значения (SVD), а затем вычисляется расстояние между каждой парой точек.
На рисунке 5.1 показана сгенерированная карта и ошибка, полученная в отношении абсолютной истины при первой настройке.
Рис
5.1: Сгенерированные карты
Разработанный алгоритм работает правильно в большинстве сценариев, в которых он был протестирован. Однако были обнаружены определенные ситуации, когда алгоритм ведет себя неправильно, либо потому, что он теряется, либо потому, что вычисленная траектория заметно отдаляется от абсолютной истины. Ниже приведены эти сценарии:
· Сценарии без текстуры: в сценариях с низкой текстурой развитая технология не способна выполнять достаточное количество спариваний в наблюдениях, поэтому отслеживание не имеет достаточного количества точек, на которые можно опереться, и алгоритм теряется. Кроме того, робот не сможет перестроиться, если он не вернется в достаточно текстурированную область предыдущей карты.
· Очень быстрое перемещение: очень быстрое перемещение приводит к ошибкам в спаривании главным образом по двум причинам: 3D-точки могут выходить из диапазона поиска изображения, а изображения обычно не имеют достаточной резкости из-за этого типа смещения, что приводит к неправильному сопряжению точек и потере алгоритма. Кроме того, это также затрудняет создание новых точек, не будучи замеченным в достаточном количестве кадров, чтобы быть инициализированным с garantıas.
· Вращение без перемещения: вращение без перемещения создает новые 3D-точки с высокой неопределенностью и служит только руководством для оценки ориентации робота. Это приводит к тому, что переносы не рассчитываются правильно, а карта теряет согласованность с реальностью.
· Сценарии с очень удаленными точками: в сценариях, где все обнаруженные точки находятся вдали, происходит что-то похожее на предыдущий случай; точки На карте будут иметь большую неопределенность и перенос не будет рассчитан должным образом, что приведет к ошибочному местоположению.
· Похищения в новые области карты: если робот потерян или происходит похищение, он может быть перенесен только в том случае, если он вернется в ранее известную позицию; если это не произойдет, робот будет потерян на неопределенный срок.
·
Неправильно
рассчитанная начальная карта: генерация начальной карты с помощью
homografıa в значительной степени влияет на точность алгоритма, загрязняя
все последующие оценки позиции. Во-первых, инициализация является частью основы
того, что доминирующая плоскость существует в сцене, где находится часть
обнаруженных точек, которая не должна возникать. Даже в том случае, если это
произойдет, выбор начальной точки может привести к неправильному вычислению
начальной плоскости (рис. 5.2), что приведет к тому, что алгоритм будет
первоначально поддерживаться в 3D-точках, позиция которых ошибочна.
Рис
5.2:
начальная конфигурация с использованием различных пороговых значений FAST
После экспериментальной проверки и объективной характеристики работы нашего алгоритма, предложенного в условиях точности, надежности и временной эффективности, он теперь сравнивается с другими алгоритмами Slam State.
Методы, с которыми он сравнивал: PTAM, SVO, LSD-SLAM и ORBSLAM, которые считаются наиболее иллюстративными и интересными. Они использовали эталонные реализации авторов этих алгоритмов, с некоторыми адаптациями, чтобы предоставить им те же входные данные и гомогенизировать их выходные результаты. Параметры настройки этих алгоритмов были изменены в каждом случае, чтобы получить наилучшие результаты, и отображаемые результаты - это те, которые получили большую точность после 3 прогонов.
Точность, полученная (RMSE в метрах) в каждом из проведенных экспериментов, показана ниже:
Эксперименты с “X” - это те, которые не смогли отслеживать робота в течение как минимум 30% времени, в то время как результаты со звездочкой-это те, которые частично отслеживали (от 30 до 70%). Эксперименты, которые не завершили последовательность, отмечены красным цветом, а синими, которые получили лучший результат в каждом из них.
Алгоритм с более высокой точностью в большинстве экспериментов был ORB-SLAM, особенно в сценариях с широкими траекториями. Со своей стороны, SVO также очень точен в некоторых сценариях, но в конечном итоге теряется в 3 из 6 экспериментов. LSD-SLAM и PTAM были наименее точными в этом сравнении, первый из которых имеет самую большую ошибку локализации в большинстве экспериментов, а второй-потому, что ему удалось закончить последовательность только в одном из них.
Что касается алгоритма, разработанного в этом тезисе, полученная точность была расположена в промежуточной зоне по сравнению с другими алгоритмами, причем почти во всех экспериментах версия алгоритма с дескрипторами ORB более точна. На рисунке 7.9 показаны траектории, оцененные алгоритмом ORB-SDVL, и ошибка в отношении абсолютной истины четырех последних сценариев.
Время
выполнения (в МС) потока отслеживания экспериментов было следующим: