trackGOSPAMetric

Обобщённый оптимальный подшаблон субпаттерна (GOSPA)

Описание

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

Для получения дополнительной информации смотрите GOSPA Metric и [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 являются координатами ускорения.

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

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

trackids = trackIdentifier(tracks)
где

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

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

Пример объекта track см. в разделе 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 для примера объекта track.

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

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

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

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

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

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

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

расширить все

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

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

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

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

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

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

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

Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем 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] Рахматуллаш, А. С., А. Ф. Гарсия-Фернандес и Л. Свенссон. «Обобщенная Оптимальная Метрика Назначения Подшаблона». 20-я Международная конференция по вопросам информационного Сплава (Сплав), стр 1-8, 2017.

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

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

.
Введенный в R2020a