scanContextDescriptor

Извлеките дескриптор контекста скана из облака точек

Описание

пример

descriptor = scanContextDescriptor(ptCloud) извлекает дескриптор контекста скана из облака точек, ptCloud.

Контекстный дескриптор скана является 2-D глобальным дескриптором функций облака точек, которое может использоваться для обнаружения замыканий цикла. Функция вычисляет дескриптор путем вначале раскладывания точек из 3-D сканы облака точек на концентрические радиальные и азимутальные интервалы, а затем выбора максимальной z - высоты точек в каждом интервале.

descriptor = scanContextDescriptor(ptCloud,Name,Value) задает опции, используя один или несколько аргументы пары "имя-значение".

Примеры

свернуть все

Создайте средство чтения файлов для захвата пакетов Velodyne ® (PCAP).

veloReader = velodyneFileReader('lidarData_ConstructionRoad.pcap','HDL32E');

Прочтите 1-е, 2-е и 100-е сканы в рабочую область.

ptCloud1   = readFrame(veloReader,1);
ptCloud2   = readFrame(veloReader,2);
ptCloud100 = readFrame(veloReader,100);

Извлеките контекстные дескрипторы скана из каждого облака точек.

descriptor1   = scanContextDescriptor(ptCloud1);
descriptor2   = scanContextDescriptor(ptCloud2);
descriptor100 = scanContextDescriptor(ptCloud100);

Вычислите расстояние дескриптора между 1-м и 2-м контекстными дескрипторами скана и между 1-м и 100-м контекстными дескрипторами скана.

dist1to2   = scanContextDistance(descriptor1,descriptor2);
dist1to100 = scanContextDistance(descriptor1,descriptor100);

Отображение расстояний дескриптора контекста скана.

disp("Descriptor distance from frame 1 to 2   : " + num2str(dist1to2))
Descriptor distance from frame 1 to 2   : 0.087646
disp("Descriptor distance from frame 1 to 100 : " + num2str(dist1to100))
Descriptor distance from frame 1 to 100 : 0.32427

Входные параметры

свернуть все

Объект облака точек, заданный как pointCloud объект.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'NumBins',[20 60] устанавливает количество радиальных интервалов на 20и количество азимутальных интервалов для 60.

Количество концентрических радиальных и угловых интервалов, заданное как разделенная разделенными запятой парами, состоящая из 'NumBins' и вектор вида [numRadialBins numAzimuthalBins], где numRadialBins является положительным целым числом, которое задает количество концентрических радиальных интервалов и numAzimuthalBins задает количество концентрических угловых интервалов. Чтобы извлечь более компактные дескрипторы, можно уменьшить количество интервалов, но это уменьшает дискриминационную степень.

Минимальное число точек для ячейки, которая будет включена в дескриптор, задаётся как разделенная запятой пара, состоящая из 'MinPointsPerBin' и положительное целое число. Интервалы, не содержащие минимальных чисел точек, не включены в дескриптор. Для этих интервалов функция возвращает NaN. Чтобы уменьшить шансы на включение шума в качестве интервала, увеличьте это значение.

Источник датчика, заданный как разделенная разделенными запятой парами, состоящая из 'SensorOrigin' и двухэлементный вектор. Элементы устанавливают x - и y - координатные точки оси, соответственно, источника датчика в мировых единицах измерения. Функция центрирует интервалы вокруг источника скана.

Радиальные границы дескриптора, используемого при раскладывании точек, заданные как разделенная разделенными запятой парами, состоящая из 'RadialRange' и двухэлементный вектор в форме [rmin, rmax]. Используйте этот аргумент имя-значение, чтобы ограничить пространственные границы, покрытые дескриптором.

Выходные аргументы

свернуть все

Контекстный дескриптор скана, возвращенный как M-by- N матрица, где M и N являются количеством концентрических радиальных и угловых интервалов, соответственно, в дескрипторе. Они определяются NumBins свойство.

Функция, возвращенная, наследует тип данных Location свойство входного облака точек.

Типы данных: single | double

Совет

  • Функция скана контекстного дескриптора принимает, что датчик установлен примерно горизонтально и что вход облако точек находится в системе координат датчика.

  • Чтобы определить кандидатов на закрытие цикла, сравните расстояние между двумя контекстными дескрипторами скана, используя scanContextDistance функция.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

Объекты

Функции

Введенный в R2020b