Обнаружьте закрытия цикла
обнаруживает закрытия цикла для последнего добавленного дескриптора и возвращает идентификаторы представления loopViewIds
= detectLoop(loopDetector
)loopViewIds
это соответствует закрытиям цикла. Если функция не обнаруживает закрытий цикла, loopViewIds
isempty. Детектор закрытия цикла игнорирует количество последний раз добавленных дескрипторов, установленных NumExcludedDescriptors
аргумент значения имени, чтобы не обнаруживать закрытия цикла против недавних дескрипторов.
обнаруживает закрытия цикла с помощью дескриптора контекста скана loopViewIds
= detectLoop(loopDetector
,descriptor
)descriptor
.
[
возвращает расстояния контекста скана loopViewIds
,dists
] = detectLoop(___)dists
между дескриптором цикла и дескрипторами запроса, с помощью любой комбинации входных параметров от предыдущих синтаксисов. Функция вычисляет расстояние между дескрипторами контекста скана, нормированными к области значений [0,1], с помощью модифицированного расстояния косинуса.
[___] = detectLoop(___,
задает опции с помощью одних или нескольких аргументов name-value в дополнение к любой комбинации аргументов от предыдущих синтаксисов. Например, Name=Value
)detectLoop(loopDetector,NumExcludedDescriptors=15)
обнаруживает закрытия цикла для последнего добавленного дескриптора при игнорировании только 15 последний раз добавленных дескрипторов цикла.
ring key descriptor является поддескриптором, извлеченным из дескриптора контекста скана. Это - отношение заполнения каждого азимутального интервала, который делает его инвариантом вращения.
scan context loop closure detector является двухфазным алгоритмом. Это сначала использует кольцевой ключевой дескриптор для самого близкого соседнего поиска, чтобы найти закрытия цикла кандидата. Затем это вычисляет расстояние контекста скана с помощью дескрипторов контекста скана и порогов это, чтобы идентифицировать лучшие обнаружения закрытия цикла.