trackAssignmentMetrics

Отследите установление, обслуживание и метрики удаления

Описание

trackAssignmentMetrics Система object™ сравнивает дорожки от мультисистемы наблюдения за объектами против известной истины автоматическим присвоением дорожек к известным истинам при каждом обновлении дорожки. Метрика расстояния присвоения определяет максимальное расстояние, для которого дорожка может быть присвоена объекту истины. Метрика расстояния расхождения определяет, когда ранее присвоенная дорожка может быть повторно присвоена различному объекту истины, когда расстояние превышает другой установленный порог.

Сгенерировать метрики присвоения дорожки:

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

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

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

Создание

Описание

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

пример

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

Свойства

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

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

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

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

Максимальное разрешенное расстояние присвоения между с которой недавно сталкиваются или расходящейся дорожкой и истиной возражает в виде неотрицательного скаляра. Для расстояний вне этого значения не могут произойти присвоения между дорожкой и истиной. Модули находятся в нормированной ошибке расчета придала квадратную форму (NEES).

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

Максимальное разрешенное расстояние расхождения между состоянием дорожки и состоянием присвоенной истины возражает в виде неотрицательного скаляра. Для расстояний вне этого значения дорожки имеют право на переназначение к различному объекту истины. Модули находятся в NEES.

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

Формат функции расстояния, заданный как 'built-in' или 'custom'.

  • 'built-in' – Включите MotionModel, AssignmentDistance, и DivergenceDistance свойства. Эти свойства являются удобными интерфейсами, когда о дорожках сообщает любое встроенное мультиобъектное средство отслеживания (такое как trackerGNN), и истины, о которых сообщают platformPoses объектная функция trackingScenario объект.

  • 'custom' – Включите пользовательские свойства: AssignmentDistanceFcn, DivergenceDistanceFcn, IsInsideCoverageAreaFcn, TruthIdentifierFcn, и TrackIdentifierFcns. Можно использовать эти свойства создать принятие или расстояния расхождения, зоны охвата и идентификаторы для произвольных 'дорожек' и входных массивов 'истин'.

Желаемая модель движения платформы в виде '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' поле дорожек вводится.

Тип расстояния присвоения в виде 'posnees', 'velnees', 'posabserr', или 'velabserr'. Тип задает физическое количество, используемое для присвоения. Когда новый трек обнаруживается, или дорожка становится расходящейся, дорожка сравнена с истиной с помощью этого количества. Присвоение ищет самую близкую истину в пороге, заданном AssignmentThreshold свойство.

  • 'posnees' – Ошибка NEES положения дорожки

  • 'velnees' – Ошибка NEES в скорости дорожки

  • 'posabserr' – Абсолютная погрешность положения дорожки

  • 'velabserr' – Абсолютная погрешность скорости дорожки

Зависимости

Чтобы включить это свойство, установите DistanceFunctionFormat свойство к 'built-in'.

Тип расстояния расхождения в виде 'posnees', 'velnees', 'posabserr', или 'velabserr'. Тип задает физическое количество, используемое для оценки расхождения. Когда дорожка была ранее присвоена истине, расстояние между ними сравнивается с этим количеством на последующих шагах обновления. Любая дорожка, расстояние расхождения которой до его присвоения истины превышает значение DivergenceThreshold рассматривается расходящимся и может быть повторно присвоен новой истине.

  • 'posnees' – Ошибка NEES положения дорожки

  • 'velnees' – Ошибка NEES в скорости дорожки

  • 'posabserr' – Абсолютная погрешность положения дорожки

  • 'velabserr' – Абсолютная погрешность скорости дорожки

Зависимости

Чтобы включить это свойство, установите DistanceFunctionFormat свойство к 'built-in'.

Расстояние присвоения функционирует в виде указателя на функцию. Эта функция определяет расстояние присвоения между истинами и дорожками. Каждый раз, когда новый трек обнаруживается, или существующая дорожка становится расходящейся, дорожка должна быть сравнена со всеми истинами на текущем шаге. Эта функциональная справка, чтобы найти самую близкую истину относительно дорожки в пороге заданной AssignmentThreshold свойство.

Функция должна иметь следующий синтаксис:

dist = assignmentdistance(onetrack,onetruth)
Функция должна возвратить неотрицательное расстояние присвоения, dist, обычно описанный в модулях NEES. onetrack элемент tracks входной параметр массивов. onetruth элемент truths входной параметр массивов.

Зависимости

Чтобы включить это свойство, установите DistanceFunctionFormat свойство к 'custom'.

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

Расстояние расхождения функционирует в виде указателя на функцию. Эта функция определяет расстояние расхождения между истинами и дорожками. Если расстояние расхождения от дорожки до ее присвоения истины превышает DivergenceThreshold, дорожка рассматривается расходящейся и может быть повторно присвоена новой истине.

Функция должна иметь следующий синтаксис:

dist = divergencedistance(onetrack,onetruth)
Функция должна возвратить неотрицательное расстояние расхождения, dist, обычно описанный в модулях NEES. onetrack элемент tracks входной параметр массивов. onetruth элемент truths входной параметр массивов.

Зависимости

Чтобы включить это свойство, установите DistanceFunctionFormat свойство к 'custom'.

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

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

Функция должна иметь следующий синтаксис:

status = isinsidecoveragearea(truths)
и возвратите логический массив, status. truths массив объектов истины, которые, как ожидают, будут переданы в на каждом шаге. status логический массив с тем же размером как truths входной параметр. Запись status true когда соответствующий объект истины задан truths в зоне охвата датчиков.

Зависимости

Чтобы включить это свойство, установите DistanceFunctionFormat свойство к 'custom'.

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

Отследите функцию идентификатора для tracks введите в виде указателя на функцию. Идентификаторы дорожки являются уникальными строками или числовыми значениями.

Функция должна иметь следующий синтаксис

trackids = trackidentifier(tracks)
и возвратите числовой массив, trackids. trackids должен иметь тот же размер как tracks входной параметр. Идентификационная функция дорожки по умолчанию принимает Tracks массив struct или класса с TrackID поле или свойство.

Зависимости

Чтобы включить это свойство, установите DistanceFunctionFormat свойство к 'custom'.

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

Идентификатор истины функционирует для truths введите в виде указателя на функцию. Идентификаторы истины являются уникальными строками или числовыми значениями.

Функция должна иметь следующий синтаксис

truthids = truthidentifier(truths)
и возвратите числовой массив, truthids. truthids должен иметь тот же размер как truths входной параметр. Идентификационная функция истины по умолчанию принимает truths массив struct или класса с PlatformID поле или свойство.

Зависимости

Чтобы включить это свойство, установите DistanceFunctionFormat свойство к 'custom'.

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

Отследите идентификатор для недопустимого присвоения в виде скаляра или строки. Это значение возвращено, когда присвоение дорожки недопустимо. Значение должно иметь тот же класс, как возвращено указателем на функцию, заданным в TrackIdentifierFcn.

Пример 1

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

Идентификатор истины для недопустимого присвоения в виде скаляра или строки. Это значение возвращено, когда присвоение истины недопустимо. Значение должно иметь тот же класс, как возвращено указателем на функцию, заданным в TruthIdentifierFcn.

Пример 1

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

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

Чтобы вычислить метрики, вызовите метрики присвоения дорожки с аргументами, как будто это была функция (описанный здесь).

Описание

[tracksummary,truthsummary] = assignmentMetics(tracks,truths) возвращает структуры, tracksummary и truthsummary, содержа совокупные метрики через весь tracks и truths, полученный из предыдущего обновления объекта.

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

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

Отследите информацию в виде массива объектов или массива структур. Если DistanceFunctionFormat свойство задано как 'built-in', затем tracks должен содержать State, StateCovariance, и TrackID как имена свойства или имена полей. Дорожка выходные параметры от встроенных средств отслеживания, таких как trackerGNN, совместимы с tracks входной параметр.

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

Информация об истине в виде структуры или массива структур. При использовании trackingScenario, информация об истине может быть получена из platformPoses объектная функция.

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

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

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

Совокупные метрики по всем дорожкам, возвращенным как структура. Метрики вычисляются по всем дорожкам начиная с последней возможности к reset объектная функция. Структура имеет эти поля:

Поле Описание
TotalNumTracks

С общим количеством уникальных идентификаторов дорожки сталкиваются

NumFalseTracks

Номер дорожек никогда не присвоен никакой истине

MaxSwapCount

Максимальное количество подкачек дорожки каждой дорожки. Подкачка дорожки происходит каждый раз, когда дорожка присвоена различной истине.

TotalSwapCount

Общее количество подкачек дорожки каждой дорожки. Подкачка дорожки происходит каждый раз, когда дорожка присвоена различной истине.

MaxDivergenceCount

Максимальное количество расхождений. Дорожка является расходящейся когда результат DivergenceDistanceFcn больше порога расхождения.

TotalDivergenceCount

Общее количество расхождений. Дорожка является расходящейся, когда результат функции расстояния расхождения больше порога расхождения.

MaxDivergenceLength

Максимальное количество обновлений, во время которых каждая дорожка была в расходящемся состоянии

TotalDivergenceLength

Общее количество обновлений, во время которых каждая дорожка была в расходящемся состоянии

MaxRedundancyCount

Максимальный номер дополнительных дорожек присвоен той же истине

TotalRedundancyCount

Общий номер дополнительных дорожек присвоен той же истине

MaxRedundancyLength

Максимальное количество обновлений, во время которых каждая дорожка была в избыточном состоянии

TotalRedundancyLength

Общее количество обновлений, во время которых каждая дорожка была в избыточном состоянии

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

Совокупные метрики присвоения по всем истинам, возвращенным как структура. Метрики вычисляются по всем истинам начиная с последней возможности к reset объектная функция. Структура имеет эти поля:

Поле Описание
TotalNumTruths

С общим количеством уникальных идентификаторов истины сталкиваются

NumMissingTruths

Количество истин никогда не устанавливается ни с какой дорожкой

MaxEstablishmentLength

Максимальное количество обновлений перед истиной было сопоставлено с любой дорожкой в то время как в зоне охвата. Длины недостающих истин не рассчитывают к этой итоговой метрике.

TotalEstablishmentLength

Общее количество обновлений перед истиной было сопоставлено с любой дорожкой в то время как в зоне охвата. Длины недостающих истин не рассчитывают к этой итоговой метрике.

MaxBreakCount

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

TotalBreakCount

Общее количество времен каждая истина было несвязанным любой дорожкой, будучи установленным.

MaxBreakLength

Максимальное количество обновлений, во время которых каждая истина была в нарушенном состоянии

TotalBreakLength

Общее количество обновлений, во время которых каждая истина была в нарушенном состоянии

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

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

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

release(obj)

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

currentAssignmentОтображение дорожек к истине
trackMetricsTableСравните дорожки с истиной
truthMetricsTableСравните истину с дорожками
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта
isLockedОпределите, используется ли Системный объект
cloneСоздайте объект дублированной системы

Примеры

свернуть все

Исследуйте присвоения и ошибки для системы, отслеживающей две цели.

Во-первых, загрузите хранимые данные о дорожке.

load trackmetricex tracklog truthlog

Создайте объекты анализировать ошибочные метрики и присвоение.

tam = trackAssignmentMetrics;
tem = trackErrorMetrics;

Создайте выходные переменные.

posRMSE = zeros(numel(tracklog),1);
velRMSE = zeros(numel(tracklog),1);
posANEES = zeros(numel(tracklog),1);
velANEES = zeros(numel(tracklog),1);

Цикл по всем дорожкам к:

  • Извлеките дорожки и основную истину в i th обновление средства отслеживания.

  • Анализируйте и получите текущее присвоение дорожки к истине.

  • Анализируйте метрики мгновенной погрешности по всем дорожкам и истинам.

for i=1:numel(tracklog)
    tracks = tracklog{i};
    truths = truthlog{i};
    [trackAM,truthAM] = tam(tracks, truths);
    [trackIDs,truthIDs] = currentAssignment(tam);
    [posRMSE(i),velRMSE(i),posANEES(i),velANEES(i)] = ...
        tem(tracks,trackIDs,truths,truthIDs);
end

Покажите метрическую таблицу дорожки.

trackMetricsTable(tam)
ans=4×15 table
    TrackID    AssignedTruthID    Surviving    TotalLength    DeletionStatus    DeletionLength    DivergenceStatus    DivergenceCount    DivergenceLength    RedundancyStatus    RedundancyCount    RedundancyLength    FalseTrackStatus    FalseTrackLength    SwapCount
    _______    _______________    _________    ___________    ______________    ______________    ________________    _______________    ________________    ________________    _______________    ________________    ________________    ________________    _________

       1             NaN            false         1120            false               0                false                 3                   3                false                 0                   0                false                  0               0    
       2             NaN            false         1736            false               0                false                 8                  88                false                 0                   0                false                 28               3    
       6               3            true          1138            false               0                false                 4                 314                false                 1                  28                false                  0               2    
       8               2            true           662            false               0                false                 2                  29                false                 1                 169                false                 28               0    

Покажите метрическую таблицу истины.

truthMetricsTable(tam)
ans=2×10 table
    TruthID    AssociatedTrackID    DeletionStatus    TotalLength    BreakStatus    BreakCount    BreakLength    InCoverageArea    EstablishmentStatus    EstablishmentLength
    _______    _________________    ______________    ___________    ___________    __________    ___________    ______________    ___________________    ___________________

       2               8                false            2678           false           4             168            true                 true                    56         
       3               6                false            2678           false           3             645            true                 true                    84         

Постройте RMSE и ошибочные метрики ANEES.

subplot(2,2,1)
plot(posRMSE)
title('Position Error')
xlabel('tracker update')
ylabel('RMSE (m)')

subplot(2,2,2)
plot(velRMSE)
title('Velocity Error')
xlabel('tracker update')
ylabel('RMSE (m/s)')

subplot(2,2,3)
plot(posANEES)
title('Position Error')
xlabel('tracker update')
ylabel('ANEES')

subplot(2,2,4)
plot(velANEES)
title('Velocity Error')
xlabel('tracker update')
ylabel('ANEES')

Figure contains 4 axes objects. Axes object 1 with title Position Error contains an object of type line. Axes object 2 with title Velocity Error contains an object of type line. Axes object 3 with title Position Error contains an object of type line. Axes object 4 with title Velocity Error contains an object of type line.

Покажите текущие ошибочные метрики для каждого индивидуума зарегистрированная дорожка.

currentTrackMetrics(tem)
ans=2×5 table
    TrackID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       6       44.712    20.988    0.05974     0.31325 
       8       129.26    12.739     1.6745      0.2453 

Покажите, что текущие ошибочные метрики для каждого индивидуума записали объект истины.

currentTruthMetrics(tem)
ans=2×5 table
    TruthID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       2       129.26    12.739     1.6745      0.2453 
       3       44.712    20.988    0.05974     0.31325 

Покажите совокупные ошибочные метрики для каждого индивидуума зарегистрированная дорожка.

cumulativeTrackMetrics(tem)
ans=4×5 table
    TrackID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       1       117.69    43.951    0.58338     0.44127 
       2        129.7      42.8    0.81094     0.42509 
       6       371.35    87.083     4.5208      1.6952 
       8       130.45    53.914     1.0448     0.44813 

Покажите, что совокупные ошибочные метрики для каждого индивидуума записали объект истины.

cumulativeTruthMetrics(tem)
ans=2×5 table
    TruthID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       2       258.21    65.078     2.2514     0.93359 
       3       134.41    48.253    0.96314     0.49183 

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

Объекты

Введенный в R2018b