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' поле дорожек вводится.

Отследите функцию идентификатора в виде указателя на функцию. Функция извлекает 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 как тот же элемент строки.

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

Типы данных: 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 object. The axes object contains 3 objects of type line. These objects represent OSPA, Localization OSPA, Cardinality OSPA.

Больше о

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

Ссылки

[1] Schuhmacher, B., B.-T. Vo и B.-N. Vo. "Сопоставимая Метрика для Оценки результатов деятельности Мультиобъектных Фильтров". Транзакции IEEE на Обработке сигналов, Vol, 56, нет, 8, стр 3447–3457, 2008.

[2] Ristic, B., B.-N. Vo, Д. Кларк и B.-T. Vo. "Метрика для Оценки результатов деятельности Мультицелевых Алгоритмов Отслеживания". Транзакции IEEE на Обработке сигналов, Vol, 59, нет, 7, стр 3452–3457, 2011.

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

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

Введенный в R2019b