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 матрицей с <reservedrangesplaceholder1> ≤ <reservedrangesplaceholder0>, только содержит уникальное разделение.

Пример: [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., C. Lundquiest, and O. Orguner. Расширенное отслеживание цели с использованием PHD-фильтра Гауссовой смеси. Транзакции IEEE по аэрокосмическим и электронным системам. Том 48, № 4, 2012, стр. 3268-3286.

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

.

См. также

|

Введенный в R2019a