scanContextDescriptor

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

Описание

пример

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

Дескриптор контекста скана является 2D глобальным дескриптором функции облака точек, которое может использоваться, чтобы обнаружить закрытия цикла. Функция вычисляет дескриптор первыми точками раскладывания от 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 имя аргумента и 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++ с помощью MATLAB® Coder™.

Смотрите также

Объекты

Функции

Введенный в R2020b