exponenta event banner

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 каждый вектор, соответствующие элементы которого соответствуют идентификаторам track и true, найденным в tracks и truthsсоответственно.

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

posRMSE = 1M ∑i=1M‖Δpi‖2

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

Δpi = ptrack, i ptruth, i

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

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

posANEES=1M∑i=1MΔpiTCp,i−1Δpi

где Cp, 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'.

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

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

release(obj)

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

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