trackErrorMetrics

Отследите ошибку и NEES

Описание

The trackErrorMetrics Системная object™ обеспечивает количественные сравнения между треками и известными траекториями истинности.

Чтобы сгенерировать метрики назначения дорожек:

  1. Создайте trackErrorMetrics Объекту и установите его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

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

пример

errorMetrics = trackErrorMetrics(Name,Value) устанавливает свойства для trackErrorMetrics объект с использованием одной или нескольких пар "имя-значение". Для примера, metrics = trackErrorMetrics('MotionModel','constvel') создает trackErrorMetrics объект с моделью движения с постоянной скоростью. Заключайте имена свойства в кавычки.

Свойства

расширить все

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

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

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

Формат функции ошибки задается как 'built-in' или 'custom'.

  • 'built-in' - Включите MotionModel свойство.

    Это свойство является удобным интерфейсом при использовании треков, сообщаемых любым встроенным многообъектным трекером, и истин, сообщаемых platformPoses функция объекта trackingScenario объект. Функция ошибки расчета по умолчанию принимает tracks и truths являются массивами структур или массивами объектов.

  • 'custom' - Включить пользовательские свойства: EstimationErrorLabels, EstimationErrorFcn, 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].

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

Метки для выходов функции оценки ошибки, заданные как массив строк или массив ячеек из векторов символов. Количество меток должно соответствовать количеству выходов функции оценки ошибки. Задайте функции оценки ошибки, используя EstimationErrorFcn свойство.

Пример: {'posMSE','velMSE'}

Зависимости

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

Типы данных: char | string

Функция оценки ошибки, заданная как указатель на функцию. Функция определяет ошибки расчета истин, чтобы отследить.

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

 [out1,out2, ...,outN] = estimationerror(onetrack,onetruth)
Количество выходов должно совпадать с количеством записей в массиве меток, заданном в EstimationErrorLabels свойство.

onetrack является элементом tracks массив передавался как входной trackErrorMetric при обновлениях объектов. onetruth является элементом truths массив передан при обновлении объекта. The trackErrorMetrics объект усредняет каждый выход арифметически при создании отчетов по трекам или истинам.

Пример: @errorFunction

Зависимости

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

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

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

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

 trackID = trackIDentifier(tracks)

tracks является тем же самым, что и tracks массив передан как вход для trackErrorMetric при обновлении объекта. trackID - тот же размер, что и tracks. Указатель на функцию идентификации по умолчанию, @defaultTrackIdentifier, принимает tracks - массив структур или объектов с 'TrackID' имя поля или свойство.

Зависимости

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

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

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

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

 truthID = truthIDentifier(truths)

truths является тем же самым, что и truths массив передан как вход для trackErrorMetric обновления. truthID должен иметь тот же размер, что и truths. Указатель на функцию идентификации по умолчанию, @defaultTruthIdentifier, принимает truths - массив, структуры или объекты с 'PlatformID' имя поля или свойство.

Зависимости

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

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

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

Чтобы оценить ошибки, вызовите объект track error metrics с аргументами, как если бы это была функция (описанная здесь).

Описание

пример

[posRMSE,velRMSE,posANEES,velANEES] = errorMetrics(tracks,trackIDs,truths,truthIDs) возвращает метрики

  • posRMSE - Положение корня средней квадратичной невязки

  • velRMSE - Средняя квадратичная невязка корня скорости

  • posANEES - Средняя нормированная ошибка оценки положения в квадрате

  • velANEES - Средняя скорость нормирована-оценка ошибки квадрат

для движения постоянной скорости в текущем временном шаге. trackIDs - набор идентификаторов дорожек для всех дорожек. truthIDs - набор идентификаторов истинности. tracks - это набор дорожек, и truths являются набором истин. trackIDs и truthIDs каждый вектор, соответствующие элементы которого соответствуют идентификаторам дорожки и правды, найденным в tracks и truths, соответственно.

Значения RMSE и ANEES для различных состояний вычисляются путем усреднения ошибок всех дорожек на текущем временном шаге. Для примера - позиционное значение RMSE, posRMSE, определяется как:

posRMSE=1M i=1MΔpi2

где M - общее количество треков со связанными траекториями истинности в текущем временном шаге, и

Δpi=ptrack,iptruth,i

различие положения между положением следа i, <reservedrangesplaceholder6> <reservedrangesplaceholder5>, i, и положением соответствующей правды, <reservedrangesplaceholder3> <reservedrangesplaceholder2>, i, в шаге текущего времени. Значения RMSE для других состояний (vel, pos, acc, и yawRate) заданы аналогично.

Положение значения ANEES, posANEES, определяется как:

posANEES=1Mi=1MΔpiTCp,i1Δpi

где C p, i является матрицей ковариации, соответствующей положению i дорожки на текущем временном шаге. Значения ANEES для других состояний (vel, pos, acc, и yawRate) заданы аналогично.

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

[posRMSE,velRMSE,accRMSE,posANEES,velANEES,accANEES] = errorMetrics(tracks,trackIDs,truths,truthIDs) также возвращает метрики

  • accRMS - Средняя квадратичная невязка корня ускорения

  • accANEES - средняя нормированно-оценочная ошибка ускорения в квадрате

для постоянного движения ускорения в текущем временном шаге.

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

[posRMSE,velRMSE,yawRateRMSE,posANEES,velANEES,yawRateANEES] = errorMetrics(tracks,trackIDs,truths,truthIDs) также возвращает метрики

  • yawRateRMSE - корень скорости рыскания средняя квадратичная невязка

  • yawRateANEES - средняя нормированная скорость рыскания - квадратная ошибка оценки

для постоянного поворотного движения в текущем временном шаге.

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

[out1,out2, ... ,outN] = errorMetrics(tracks,trackIDs,truths,truthIDs) возвращает пользовательские метрики out1, out2..., outN.

Чтобы включить этот синтаксис, установите ErrorFunctionFormat свойство к 'custom'. Количество выходов соответствует количеству элементов, перечисленных в EstimationErrorLabels свойство, и должно совпадать с количеством выходов в EstimationErrorFcn. Результаты ошибок расчета усредняются арифметически по всем присвоениям track-to-truth.

Совет

Эти синтаксисы использования вычисляют только значения RMSE и ANEES всех треков со связанными истинами на текущем временном шаге. Чтобы получить совокупные значения RMSE и ANEES для каждой дорожки и истинности, используйте cumulativeTrackMetrics и cumulativeTruthMetrics функции объекта, соответственно. Чтобы получить текущие значения RMSE и ANEES для каждой дорожки и истинности, используйте currentTrackMetrics и currentTruthMetrics функции объекта, соответственно.

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

расширить все

Отследите информацию, заданную как массив структур или объектов. Для встроенных трекеров, таких как trackerGNN или trackerTOMHT, а objectTrack выход содержит 'State', 'StateCovariance', и 'TrackID' информацию.

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

Проследите идентификаторы, заданные как действительный вектор. trackIDs элементы соответствуют трекам, найденным в tracks.

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

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

Идентификаторы истинности, заданные как действительный вектор. truthIDs элементы соответствуют истинам, найденным в truths.

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

расширить все

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

Зависимости

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

Корневая средняя квадратичная невязка скорости для всех треков, связанных с истинами, возвращенная как скаляр.

Зависимости

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

Корневая средняя квадратичная невязка ускорения для всех треков, связанных с истинами, возвращенная как скаляр.

Зависимости

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

Среднее значение скорости Yaw квадратичной невязки для всех треков, связанных с истинами, возвращаемое как скаляр.

Зависимости

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

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

Зависимости

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

Средняя по скорости нормированная ошибка расчета, квадратная для всех треков, связанных с истинами, возвращенная как скаляр.

Зависимости

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

Средняя нормированная ошибка расчета ускорения, квадратная для всех треков, связанных с истинами, возвращенная как скаляр.

Зависимости

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

Рыскание нормированная скорость ошибки расчета квадратная для всех треков, связанных с истинами, возвращенная как скаляр.

Зависимости

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

Пользовательская метрика ошибки выводится в виде скаляров. Эти ошибки являются выходом функции оценки ошибки, заданной в EstimationErrorFcn свойство.

Зависимости

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

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

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

release(obj)

расширить все

cumulativeTrackMetricsКумулятивные метрики для последних треков
cumulativeTruthMetricsКумулятивные метрики для последних истин
currentTrackMetricsМетрики для последних треков
currentTruthMetricsМетрики для последних истин
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-м обновлении трекера.

  • Анализируйте и извлеките текущее назначение track-to-truth.

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

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