trackOSPAMetric

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

Описание

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

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

  • Ошибочный компонент кардинальности — Счета на количество неприсвоенных дорожек и истин

  • Маркировка ошибочного компонента — Счета на ошибку неправильного присвоения

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

Использовать trackOSPAMetric:

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

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

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

Создание

Описание

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

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

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (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'. Это свойство выбирает модель движения, используемую 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.

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

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

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

Пример: @myTrackIdetifier

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

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

Пример: @myTruthIdetifier

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

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

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

Описание

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 как тот же элемент строки.

Типы данных: 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');

Больше о

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

Ссылки

[1] Schuhmacher, D., Б. Т. Во и Б. Н. Во. "Сопоставимая Метрика для Оценки результатов деятельности Мультиобъектных Фильтров". Транзакции IEEE на Обработке сигналов, Издании 56, № 8, стр 3447–3457, 2008.

[2] Ristic, B., Б. Н. Во, Д. Кларк и Б. Т. Во. "Метрика для Оценки результатов деятельности Мультицелевых Алгоритмов Отслеживания". Транзакции IEEE на Обработке сигналов, Издании 57, № 7, стр 3452–3457, 2011.

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

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

Смотрите также

|

Введенный в R2019b

Для просмотра документации необходимо авторизоваться на сайте