partitionDetections

Обнаружения раздела на основе расстояния Mahalanobis

Описание

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

пример

partitions = partitionDetections(detections) возвращает возможный partitions от detections, использование алгоритма разделения расстояния. По умолчанию функция считает все действительное значение порогами расстояния Mahalanobis между 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) позволяет вам задавать точные пороги, рассмотренные для раздела.

Примеры

свернуть все

Сгенерируйте 2D обнаружения с помощью 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

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

Пример: 0.05

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

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

Пример: 0.98

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

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

Пример: 20

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

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

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

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

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

свернуть все

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

Ссылки

[1] Granstorm, K., К. Ландкуист и О. Оргунер. "Расширенное целевое отслеживание с помощью фильтра Gaussian-mixture PHD". Транзакции IEEE на Космических и Электронных системах. Издание 48, Номер 4, 2012, стр 3268–3286.

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

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

|

Введенный в R2019a