trackGOSPAMetric

Обобщенное оптимальное присвоение подшаблона (GOSPA) метрика

Описание

trackGOSPAMetric Система object™ вычисляет обобщенную оптимальную метрику присвоения подшаблона между набором дорожек и известными истинами.

Для получения дополнительной информации см. Метрику GOSPA и [1].

Вычислить обобщенную метрику выравнивания подшаблона:

  1. Создайте trackGOSPAMetric объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.

Создание

Описание

GOSPAMetric = trackGOSPAMetric создает trackGOSPAMetric Системный объект со значениями свойств по умолчанию.

GOSPAMetric = trackGOSPAMetric(Name,Value) свойства наборов для trackGOSPAMetric объект с помощью одной или нескольких пар "имя-значение". Например, GOSPAMetric = trackGOSPAMetric('CutoffDistance',5) создает trackGOSPAMetric объект с расстоянием сокращения равняется 5. Заключите имена свойства в кавычки.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Порог для расстояния сокращения между дорожкой и истиной в виде действительной положительной скалярной величины. Истина присвоена дорожке, только если расстояние между дорожкой и известной истиной меньше этого расстояния.

Пример: 40

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

Порядок метрики GOSPA в виде положительного целого числа.

Пример 1

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

Альфа-параметр метрики GOSPA в виде положительной скалярной величины в области значений [0, 2].

Пример 1

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

Штраф за присвоение, переключающееся в виде неотрицательного действительного скаляра.

Пример: 1.2

Тип расстояния в виде 'posnees', 'velnees', 'posabserr', 'velabserr', или 'custom'. Это свойство задает физическое количество, используемое для расчетов расстояния:

  • 'posnees' – Нормированная ошибка расчета придала квадратную форму (NEES) положения дорожки

  • 'velnees' – Ошибка NEES скорости дорожки

  • 'posabserr' – Абсолютная погрешность положения дорожки

  • 'velabserr' – Абсолютная погрешность скорости дорожки

  • 'custom' – Пользовательская ошибка по дальности

Если вы задаете Distance свойство как 'custom', необходимо также задать функцию расстояния в DistanceFcn свойство.

Пользовательская функция расстояния в виде указателя на функцию. Функция должна поддержать этот синтаксис:

d = myCustomFcn(track,truth)
где track структура или объект информации о дорожке, truth структура или объект информации об истине и d расстояние между истиной и дорожкой. Смотрите objectTrack для примера о том, как организовать информацию для предполагаемых дорожек и дорожек истины.

Пример: @myCustomFcn

Зависимости

Чтобы включить это свойство, установите Distance свойство к 'custom'.

Желаемая модель движения платформы в виде 'constvel', 'constacc', 'constturn', или 'singer'. Это свойство выбирает модель движения, используемую tracks входной параметр.

Модели движения ожидают 'State' поле tracks введите, чтобы иметь вектор-столбец, содержащий эти значения:

  • 'constvel' — Постоянная скоростная модель движения формы [x; vx; y;; z;], где x, y, и z являются координатами положения и vx, vy, vz, являются скоростными координатами.

  • 'constacc' — Постоянная ускоряющая модель движения формы [x; vx; ax; y;; да; z;; азимут], где x, y, и z являются координатами положения, vx, vy, vz, является скоростными координатами, и ax, да, азимут ускоряющие координаты.

  • 'constturn' — Постоянная модель движения поворота формы [x; vx; y;; theta; z;], где x, y, и z являются координатами положения, vx, vy, vz, являются скоростными координатами, и theta является уровнем рыскания.

  • 'singer' — Ускоряющая модель движения Зингера формы [x; vx; ax; y;; да; z;; азимут], где x, y, и z являются координатами положения, vx, vy, vz, является скоростными координатами, и ax, да, азимут ускоряющие координаты.

'StateCovariance' поле tracks введите должен иметь положение, скорость и ковариации угловой скорости вращения в строках и столбцах, соответствующих положению, скорости и угловой скорости вращения 'State' поле tracks входной параметр. 'StateCovariance' требуется только если 'posnees' или 'velnees' выбран в Distance свойство.

Отследите функцию идентификатора в виде указателя на функцию. Функция извлекает ID дорожки из tracks входной параметр. Функция должна поддержать следующий синтаксис:

trackids = trackIdentifier(tracks)
где

  • tracks массив структур или объектов, содержащих информацию дорожек.

  • trackids числовой массив одного размера с tracks.

Для примера отслеживаемого объекта смотрите objectTrack. Если вы используете функцию идентификатора по умолчанию, defaultTrackIdentifier, необходимо включать ID дорожки в tracks как значение TrackID поле или свойство.

Пример: @myTrackIdetifier

Идентификатор истины функционирует в виде указателя на функцию. Функция извлекает ID истины из truths входной параметр. Функция должна поддержать следующий синтаксис:

truthIDs = truthIdentifier(truths)
где

  • truths массив структур или объектов, содержащих информацию истин.

  • truthIDs числовой массив одного размера с truths.

Если вы использование функции идентификатора по умолчанию, defaultTruthIdentifier, необходимо включать ID истины в truths как значение PlatformID поле или свойство.

Пример: @myTruthIdetifier

Включите вход присвоения в виде true или false. Это свойство позволяет обеспечить assignment введите на каждом временном шаге. Вычисленная метрика GOSPA использует входное присвоение, чтобы вычислить компонент локализации.

Типы данных: логический

Использование

Описание

sGOSPA = GOSPAMetric(tracks,truths) возвращает метрику GOSPA между набором дорожек и истинами, включая переключающийся штраф. Значение переключающегося штрафа, включенного в метрику, зависит от SwitchingPenalty свойство. По умолчанию метрика использует присвоения глобального самого близкого соседа (GNN) в токе и предыдущем шаге, чтобы решить, переключаются ли дорожки.

[sGOSPA,GOSPA,switching] = OSPAMetric(tracks,truths) также возвращает компонент GOSPA и переключающийся компонент.

[___] = GOSPAMetric(tracks,truths,assignment) позволяет вам задавание текущих присвоений между дорожками и истинами, используемыми в метрической оценке. Можно возвратить выходные параметры как любой из предыдущих синтаксисов.

Чтобы использовать этот синтаксис, установите HasAssignmentInput свойство к true.

пример

[sGOSPA,GOSPA,switching,localization,missTarget,falseTrack] = GOSPAMetric(___) также возвращает локализацию пропущенный целевой компонент компонента и ложный компонент дорожки. Можно использовать любую из входных комбинаций в предыдущих синтаксисах.

Чтобы использовать этот синтаксис, установите значение Alpha свойство к 2.

Входные параметры

развернуть все

Отследите информацию в виде массива структур или объектов для встроенных функций расстояния. Каждая структура или объект должна содержать State как поле или свойство. Кроме того, если основанное на NEES расстояние (posnees или velnees) задан в Distance свойство, каждая структура или объект должна также содержать StateCovariance как поле или свойство. Кроме того, если функция идентификатора дорожки по умолчанию используется в TrackIdentifierFcn свойство, затем каждая структура или объект должна также содержать TrackID как поле или свойство. Смотрите objectTrack для примера отслеживаемого объекта.

Типы данных: struct | object

Информация об истине в виде массива структур или объектов для встроенных функций расстояния. Каждая структура или объект должна содержать Position и Velocity как поля или свойства. Если функция идентификатора истины по умолчанию используется в TruthIdentifierFcn свойство, затем каждая структура или объект должна также содержать PlatformID как поле или свойство.

Типы данных: struct | object

Известное текущее присвоение в виде N-by-2 матрица неотрицательных целых чисел. Первыми элементами столбца являются идентификаторы дорожки, и вторыми элементами столбца являются идентификаторы истины. Идентификаторы в той же строке являются дорожками и истинами, присвоенными друг другу. Если дорожка (или истина) не присвоена, задайте 0 как тот же элемент строки для истины (или дорожка).

Обратите внимание на то, что присвоение должно быть уникальным присвоением между дорожками и истинами. Избыточные или ложные дорожки должны быть обработаны как неприсвоенные дорожки путем присвоения их "0" TruthID.

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

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

развернуть все

Метрика GOSPA включая переключение компонента, возвращенного как неотрицательный действительный скаляр.

Метрика GOSPA, возвращенная как неотрицательный действительный скаляр.

Переключение компонента, возвращенного как неотрицательный действительный скаляр.

Компонент локализации, возвращенный как неотрицательный действительный скаляр.

Пропущенный целевой компонент, возвращенный как неотрицательный действительный скаляр.

Ложный компонент дорожки, возвращенный как неотрицательный действительный скаляр.

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта
cloneСоздайте объект дублированной системы
isLockedОпределите, используется ли Системный объект

Примеры

свернуть все

Загрузите записанные заранее данные.

load trackmetricex tracklog truthlog;

Создайте trackGOSPAMetric объект и набор SwitchingPenalty к 5.

tgm = trackGOSPAMetric('SwitchingPenalty',5);

Создайте выходные переменные.

lgospa = zeros(numel(tracklog),1);
gospa = zeros(numel(tracklog),1);
switching = zeros(numel(tracklog),1);
localization = zeros(numel(tracklog),1);
missTarget = zeros(numel(tracklog),1);
falseTracks = zeros(numel(tracklog),1);

После извлечения дорожек и основных истин, запустите метрику GOSPA.

for i = 1:numel(tracklog)
    tracks = tracklog{i};
    truths = truthlog{i};
    [lgospa(i),gospa(i),switching(i),localization(i),missTarget(i),falseTracks(i)] = tgm(tracks,truths);
end

Визуализируйте результаты.

plot([lgospa gospa switching localization missTarget falseTracks])
legend('Labeled GOSPA','GOSPA','Switching Component',...
    'Localization Component','Missed Target Component','False Tracks Component')

Figure contains an axes. The axes contains 6 objects of type line. These objects represent Labeled GOSPA, GOSPA, Switching Component, Localization Component, Missed Target Component, False Tracks Component.

Алгоритмы

развернуть все

Ссылки

[1] Rahmathullash, A. S. А. Ф. Гарсия-Фернандес и Л. Свенсон. "Обобщенная Оптимальная Метрика Присвоения Подшаблона". 20-я Международная конференция по вопросам информационного Fusion (Fusion), стр 1–8, 2017.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2020a