exponenta event banner

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 - массив структуры или класса с TrackID поле или свойство.

Зависимости

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

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

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

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

truthids = truthidentifier(truths)
и возвращает числовой массив, truthids. truthids должен иметь тот же размер, что и truths входной аргумент. Функция идентификации истинности по умолчанию предполагает truths - массив структуры или класса с 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

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

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

release(obj)

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

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

Примеры

свернуть все

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

Сначала загрузите сохраненные данные дорожки.

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-ом обновлении трекера.

  • Проанализируйте и извлеките текущее назначение «путь к истине».

  • Анализ метрик мгновенных ошибок по всем путям и истинам.

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. Axes 1 with title Position Error contains an object of type line. Axes 2 with title Velocity Error contains an object of type line. Axes 3 with title Position Error contains an object of type line. Axes 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