exponenta event banner

trackOSPAMetric

Метрика оптимального назначения податтерна (OSPA)

Описание

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

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

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

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

Дополнительные сведения см. в разделах Метрика OSPA и [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].

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

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

Trackids = trackIdentifier(Tracks)
где Tracks представляет собой массив структур или объектов, содержащих информацию о дорожках, и Trackids - числовой массив того же размера, что и Tracks. Пример объекта-дорожки см. в разделе 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 как один и тот же элемент строки.

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

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

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

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

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

Пример: 10.1

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

Пример: 8.5

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

Пример: 6

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

Пример: 7.5

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

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

release(obj)

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

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

Примеры

свернуть все

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

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] Ристик, Б., Б. -N. Во, Д. Кларк и Б. -Т. Во. «Показатель для оценки производительности алгоритмов отслеживания нескольких целей». Транзакции IEEE по обработке сигналов, том 59, № 7, стр. 3452-3457, 2011.

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

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

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