trackAssignmentMetrics

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

Описание

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

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

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

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

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

Создание

Синтаксис

assignmentMetics = trackAssignmentMetrics
assignmentMetics = trackAssignmentMetrics(Name,Value)

Описание

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

пример

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

Свойства

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

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

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

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

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

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

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

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

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

  • встроенный Включите MotionModel, AssignmentDistance и свойства DivergenceDistance. Эти свойства являются удобными интерфейсами при использовании дорожек, о которых сообщает любое встроенное мультиобъектное средство отслеживания и истины, о которых сообщает функция объекта platformPoses объекта trackingScenario.

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

Желаемая модель движения платформы, заданная как 'constvel', 'constacc' или 'constturn'. Это свойство выбирает модель движения, используемую входом tracks. Модель движения управляет выходными параметрами, когда объект выполняется.

Модели движения ожидают, что поле 'State' будет иметь вектор-столбец можно следующим образом:

  • '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.

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

Зависимости

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

Тип расстояния присвоения, заданного как '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 массивов при обновлении объекта. onetruthtruth является элементом входного параметра truths массивов.

Зависимости

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

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

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

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

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

Зависимости

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

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

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

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

trackids = trackidentifier(tracks)
и возвратите числовой массив, trackids. trackids должен иметь тот же размер как входной параметр tracks. tracks является тем же входным параметром дорожек массивов при обновлении объекта.

Зависимости

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

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

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

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

truthids = truthidentifier(truths)
и возвратите числовой массив, truthids. truthids должен иметь тот же размер как входной параметр truths. truths является тем же входным параметром истины массивов при обновлении объекта.

Зависимости

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

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

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

Пример 1

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

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

Пример 1

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

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

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

Синтаксис

[tracksummary,truthsummary] = assignmentMetics(tracks,truths)

Описание

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

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

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

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

Типы данных: 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 =

  4x15 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                 0                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                 0                0    

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

truthMetricsTable(tam)
ans =

  2x10 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')

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

currentTrackMetrics(tem)
ans =

  2x5 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 =

  2x5 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 =

  4x5 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 =

  2x5 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