exponenta event banner

partitionDetections

Обнаружение перегородок на основе расстояния Махаланобиса

Описание

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

пример

partitions = partitionDetections(detections) возможен возврат partitions от detections, используя алгоритм разбиения на расстояния. По умолчанию функция учитывает все действительные пороговые значения расстояния Махаланобиса между 0,5 и 6,25.

partitions = partitionDetections(detections,tLower,tUpper) позволяет задать нижнюю и верхнюю границы пороговых значений расстояния, tLower и tUpper.

partitions = partitionDetections(detections,tLower,tUpper,'MaxNumPartitions',maxNumber) позволяет указать максимальное количество разрешенных разделов, maxNumber, в дополнение к нижней и верхней границам пороговых значений расстояния, tLower и tUpper.

partitions = partitionDetections(detections,allThresholds) позволяет указать точные пороговые значения для секционирования.

Примеры

свернуть все

Создание обнаружений 2-D с помощью objectDetection.

rng(2018); % For reproducible results
detections = cell(10,1);
for i = 1:numel(detections)
    id = randi([1 5]);
    detections{i} = objectDetection(0,[id;id] + 0.1*randn(2,1));
    detections{i}.MeasurementNoise = 0.01*eye(2);
end

Извлеките и просмотрите сгенерированные измерения положения.

d = [detections{:}];
measurements = [d.Measurement];

figure()
plot(measurements(1,:),measurements(2,:),'x','MarkerSize',10,'MarkerEdgeColor','b')
title('Measurements')
xlabel('x')
ylabel('y')

Figure contains an axes. The axes with title Measurements contains an object of type line.

Создайте разделы из обнаруженных и подсчитайте количество разделов.

partitions = partitionDetections(detections);
numPartitions = size(partitions,2);

Визуализируйте разделы. Каждый цвет представляет ячейку обнаружения.

figure()
for i = 1:numPartitions
    numCells = max(partitions(:,i));
    subplot(3,ceil(numPartitions/3),i);
    for k = 1:numCells
        ids = partitions(:,i) == k;
        plot(measurements(1,ids),measurements(2,ids),'.','MarkerSize',15);
        hold on;
    end
    title(['Partition ',num2str(i),' (',num2str(k),' Detection cells)']);
end

Figure contains 7 axes. Axes 1 with title Partition 1 (4 Detection cells) contains 4 objects of type line. Axes 2 with title Partition 2 (5 Detection cells) contains 5 objects of type line. Axes 3 with title Partition 3 (6 Detection cells) contains 6 objects of type line. Axes 4 with title Partition 4 (7 Detection cells) contains 7 objects of type line. Axes 5 with title Partition 5 (8 Detection cells) contains 8 objects of type line. Axes 6 with title Partition 6 (9 Detection cells) contains 9 objects of type line. Axes 7 with title Partition 7 (10 Detection cells) contains 10 objects of type line.

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

свернуть все

Обнаружения объектов, указанные как массив ячеек N-элементов objectDetection , где N - количество обнаружений. Можно создавать detections непосредственно, или вы можете получить detections с выходов объектов датчиков, таких как fusionRadarSensor, irSensor, и sonarSensor.

Типы данных: cell

Нижняя граница пороговых значений расстояния, заданная как скаляр. Этот аргумент задает нижнюю границу пороговых значений расстояния Махаланобиса, рассматриваемых для секционирования.

Пример: 0.05

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

Верхняя граница пороговых значений расстояния, заданная как скаляр. Этот аргумент задает верхнюю границу пороговых значений расстояния Махаланобиса, рассматриваемых для секционирования.

Пример: 0.98

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

Максимальное число разрешенных разделов, указанное как положительное целое число.

Пример: 20

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

Все пороги для секций, заданные как вектор M-элемента. Функция вычисляет секции на основе каждого порогового значения, предоставленного в allThresholds. Обратите внимание, что несколько пороговых значений могут привести к одной и той же секции и выводу функции. partitions, заданная как матрица N-на-Q с QM, содержит только уникальные разделы.

Пример: [0.1;0.2;0.35;0.4]

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

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

свернуть все

Разделы обнаружений, указанные как матрица N-by-Q. N - количество обнаружений, а Q - количество разделов. Каждый столбец матрицы представляет допустимую секцию. В каждом столбце значение i-го элемента представляет идентификационный номер ячейки обнаружения, которой принадлежит i-й элемент обнаружения. Например, учитывая матрицу P разбиения, если P (i, j) = k, то в разбиении j обнаружение i принадлежит ячейке k обнаружения.

Ссылки

[1] Granstorm, K., К. Ландкуист и О. Оргунер. «Расширенное отслеживание цели с помощью PHD-фильтра гауссовой смеси». Сделки IEEE по аэрокосмическим и электронным системам. Том 48, номер 4, 2012, стр. 3268-3286.

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

.

См. также

|

Представлен в R2019a