exponenta event banner

scanContextDescriptor

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

Описание

пример

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

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

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

Примеры

свернуть все

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

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' и вектор вида [numRadityBins numAzimuthalBins], где numRadityBins является положительным целым числом, которое указывает количество концентрических радиальных ячеек, а 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