trackOSPAMetric

Оптимальная метрика назначения подшаблона (OSPA)

Описание

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

  • Компонент ошибки локализации - Счета ошибок расчета состояния между назначенными треками и истинами

  • Компонент ошибки кардинальности - Учитывает количество неназначенных треков и истин

  • Компонент ошибки маркировки - Учитывает ошибку неправильного назначения

Для получения дополнительной информации см. OSPA Metric и [2].

Как использовать trackOSPAMetric:

  1. Создайте trackOSPAMetric Объекту и установите его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

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

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

Свойства

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

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

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

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

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

Пример: 40

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

Порядок метрики OSPA, заданный как положительное целое число.

Пример: 10

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

Штраф за неправильное присвоение дорожки истинности, заданный как реальная положительная скалярная величина. Функция решает, является ли назначение правильным, на основе предоставленного известного assignment вход. Если назначение не предусмотрено как вход, последнее известное «оптимальное» назначение принято правильным.

Пример: 5

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

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

  • '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' - Положение находится в элементах [1 3 5], а скорость - в элементах [2 4 6].

  • 'constacc' - Положение находится в элементах [1 4 7], скорость - в элементах [2 5 8], а ускорение - в элементах [3 6 9].

  • 'constturn' - Положение находится в элементах [1 3 6], скорость - в элементах [2 4 7], а скорость рыскания - в элементе 5.

  • 'singer' - Положение находится в элементах [1 4 7], скорость - в элементах [2 5 8], а ускорение - в элементах [3 6 9].

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

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

Trackids = trackIdentifier(Tracks)
где Tracks - массив структур или объектов, содержащий информацию о треках, и Trackids - числовой массив того же размера, что и Tracks. Пример объекта track см. в разделе objectTrack. Для функции идентификатора по умолчанию defaultTrackIdentifierидентификатор дорожки должен содержаться в Tracks как значение TrackID поле или свойство.

Пример: @myTrackIdetifier

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

TruthIDs = truthIdentifier(Truths)
где Truths - массив структур или объектов, содержащий информацию истин, и TruthIDs - числовой массив того же размера, что и Truths. Для использования функции идентификатора по умолчанию defaultTruthIdentifier, идентификатор истинности должен содержаться в Truth как значение PlatformID поле или свойство.

Пример: @myTruthIdetifier

Включите вход назначения, заданный как true или false.

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

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

Описание

OSPA = OSPAMetric(tracks,truths) возвращает метрику OSPA между набором треков и истинами.

OSPA = OSPAMetric(tracks,truths,assignment) позволяет вам задать известное присвоение между треками и истинами на текущем временном шаге. Чтобы использовать этот синтаксис, задайте HasAssignmentInput свойство как true.

[OSPA,localOSPA] = OSPAMetric(___) также возвращает компонент ошибки локализации метрики OSPA. В качестве входных параметров можно использовать любую из входных комбинаций в предыдущих синтаксисах.

пример

[OSPA,localOSPA,cardOSPA] = OSPAMetric(___) также возвращает компонент ошибки кардинальности метрики OSPA.

[OSPA,localOSPA,cardOSPA,labelOSPA] = OSPAMetric(___) также возвращает компонент ошибки маркировки метрики OSPA.

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

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

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

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

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

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

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

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

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

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

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

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

Пример: 10.1

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

Пример: 8.5

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

Пример: 6

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

Пример: 7.5

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

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

release(obj)

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

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

Примеры

свернуть все

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

load trackmetricex tracklog truthlog

Создайте trackOSPAMetric объект.

tom = trackOSPAMetric;

Инициализируйте выходные переменные.

ospa = zeros(numel(tracklog),1);
cardOspa = zeros(numel(tracklog),1);
locOspa = zeros(numel(tracklog),1);

Вычислите три компонента OSPA в цикле.

for i = 1:numel(tracklog)
    tracks = tracklog{i};
    truths = truthlog{i};
    [ospa(i), locOspa(i), cardOspa(i)] = tom(tracks, truths);
end

Визуализация результатов.

figure()
plot(ospa,'g');
hold on;
plot(locOspa,'r:');
plot(cardOspa,'b--');
legend('OSPA','Localization OSPA','Cardinality OSPA');

Figure contains an axes. The axes contains 3 objects of type line. These objects represent OSPA, Localization OSPA, Cardinality OSPA.

Подробнее о

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

Ссылки

[1] Шухмахер, Б., Б. -Т. Во, и Б. -Н. Во. «Согласованная метрика для Эффективности фильтров Мультиобъекта». Транзакции IEEE по обработке сигналов, том, 56, №, 8, стр. 3447-3457, 2008.

[2] Ристик, Б., Б. -Н. Во, Д. Кларк и Б. -Т. Во. «Метрика для оценки эффективности многоцелевых алгоритмов отслеживания». Транзакции IEEE по обработке сигналов, том, 59, №, 7, стр. 3452-3457, 2011.

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

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

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