exponenta event banner

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; vy; z; vz], где x, y и z - координаты положения, а vx, vy, vz - координаты скорости.

  • 'constacc' - модель движения с постоянным ускорением вида [x; vx; ax; y; vy; ay; z; vz; az], где x, y и z - координаты положения, vx, vy, vz - координаты скорости, а ax, ay, az - координаты ускорения.

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

  • 'singer' - модель движения ускорения певца вида [x; vx; ax; y; vy; ay; z; vz; az], где x, y и z - координаты положения, vx, vy, vz - координаты скорости, а ax, ay, az - координаты ускорения.

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

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

trackids = trackIdentifier(tracks)
где

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

  • trackids - числовой массив того же размера, что и tracks.

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

Пример: @myTrackIdetifier

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

truthIDs = truthIdentifier(truths)
где

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

  • truthIDs - числовой массив того же размера, что и truths.

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

Пример: @myTruthIdetifier

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

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

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

Описание

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, возвращенная как неотрицательный действительный скаляр.

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Загрузить предварительно записанные данные.

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] Рахматхуллаш, А. С., А. Ф. Гарсия-Фернандес и Л. Свенссон. 20-я Международная конференция по слиянию информации (Fusion), стр. 1-8, 2017.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2020a