trackErrorMetrics

Дефект записи и NEES

Описание

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].

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

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

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

Зависимости

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

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

Функция оценки погрешности в виде указателя на функцию. Функция определяет ошибки расчета истин к дорожкам.

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

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

onetrack элемент tracks массив передал в как вход trackErrorMetric при обновлениях объекта. onetruth элемент truths массив передал в при обновлениях объекта. 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

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

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

Описание

пример

[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, p track, i, и положением соответствующей истины, p truth, 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. Результаты ошибок расчета усреднены арифметически по всем присвоениям дорожки к истине.

Совет

Эти синтаксисы использования только вычисляют 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'.

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

Зависимости

Чтобы включить этот аргумент, установите 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 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