Отслеживание метрик установления, обслуживания и удаления
trackAssignmentMetrics Система object™ сравнивает дорожки из многообъектной системы слежения с известной истинностью путем автоматического назначения дорожек известным истинам при каждом обновлении дорожки. Метрика расстояния назначения определяет максимальное расстояние, для которого дорожка может быть назначена объекту истинности. Метрика расстояния расхождения определяет, когда ранее назначенная дорожка может быть переназначена другому объекту истинности, когда расстояние превышает другой установленный порог.
Чтобы создать метрики назначения дорожек:
Создать trackAssignmentMetrics и задайте его свойства.
Вызовите объект с аргументами, как если бы это была функция.
Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.
создает assignmentMetics = trackAssignmentMetricstrackAssignmentMetrics Системный объект, assignmentMetics, со значениями свойств по умолчанию.
задает свойства для assignmentMetics = trackAssignmentMetrics(Name,Value)trackAssignmentMetrics с использованием одной или нескольких пар имя-значение. Например, assignmentMetics = trackAssignmentMetrics('AssignmentThreshold',5) создает trackAssignmentMetrics объект с порогом назначения 5. Заключите имена свойств в кавычки.
Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.
Если свойство настраивается, его значение можно изменить в любое время.
Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.
AssignmentThreshold - Максимально допустимое расстояние назначения1 (по умолчанию) | неотрицательный скалярМаксимально допустимое расстояние назначения между вновь обнаруженной или расходящейся дорожкой и объектом истинности, указанное как неотрицательный скаляр. Для расстояний за пределами этого значения назначения между дорожкой и правдой не могут иметь место. Единицы находятся в нормированном квадрате ошибки оценки (NEES).
Типы данных: single | double
DivergenceThreshold - Максимально допустимое расстояние расхождения2 (по умолчанию) | неотрицательный скалярМаксимально допустимое расстояние расхождения между состоянием дорожки и состоянием назначенного объекта истинности, указанное как неотрицательный скаляр. Для расстояний, превышающих это значение, трассы могут быть переназначены другому объекту истинности. Блоки находятся в NEES.
Типы данных: single | double
DistanceFunctionFormat - Формат функции расстояния'built-in' (по умолчанию) | 'custom'Формат функции расстояния указан как 'built-in' или 'custom'.
'built-in' - Включить MotionModel, AssignmentDistance, и DivergenceDistance свойства. Эти свойства являются удобными интерфейсами, когда треки сообщаются любым встроенным многообъектным трекером (например, trackerGNN) и истины, сообщенные platformPoses объектная функция trackingScenario объект.
'custom' - Включить пользовательские свойства: AssignmentDistanceFcn, DivergenceDistanceFcn, IsInsideCoverageAreaFcn, TruthIdentifierFcn, и TrackIdentifierFcns. Эти свойства можно использовать для построения допустимых или расходящихся расстояний, зон покрытия и идентификаторов для произвольных «дорожек» и «истин» входных массивов.
MotionModel - Требуемая модель движения платформы'constvel' (по умолчанию) | 'constacc' | 'constturn' | 'singer'Требуемая модель движения платформы, указанная как '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' поле ввода дорожек.
AssignmentDistance - Тип расстояния назначения'posnees' (по умолчанию) | 'velnees' | 'posabserr' | 'velabserr'Тип расстояния назначения, указанный как 'posnees', 'velnees', 'posabserr', или 'velabserr'. Тип определяет физическое количество, используемое для присвоения. Когда обнаруживается новая дорожка или дорожка становится расходящейся, дорожка сравнивается с истинной, используя эту величину. Назначение ищет ближайшую истинность в пределах порога, определенного AssignmentThreshold собственность.
'posnees' - ошибка NEES положения пути
'velnees' - ошибка NEES в скорости пути
'posabserr' - Абсолютная погрешность положения пути
'velabserr' - Абсолютная погрешность путевой скорости
Чтобы включить это свойство, установите значение DistanceFunctionFormat свойство для 'built-in'.
DivergenceDistance - Тип расстояния назначения'posnees' (по умолчанию) | 'velnees' | 'posabserr' | 'velabserr'Тип расстояния расхождения, указанный как 'posnees', 'velnees', 'posabserr', или 'velabserr'. Тип определяет физическую величину, используемую для оценки расхождения. Когда дорожка ранее была назначена истинной, расстояние между ними сравнивается с этой величиной на последующих шагах обновления. Любая дорожка, расстояние расхождения которой до ее истинного назначения превышает значение DivergenceThreshold считается расходящимся и может быть переназначен на новую истину.
'posnees' - ошибка NEES положения пути
'velnees' - ошибка NEES в скорости пути
'posabserr' - Абсолютная погрешность положения пути
'velabserr' - Абсолютная погрешность путевой скорости
Чтобы включить это свойство, установите значение DistanceFunctionFormat свойство для 'built-in'.
AssignmentDistanceFcn - Функция расстояния назначенияФункция расстояния назначения, заданная как дескриптор функции. Эта функция определяет расстояние назначения между истинами и дорожками. Всякий раз, когда обнаруживается новая дорожка или существующая дорожка становится расходящейся, дорожку необходимо сравнивать со всеми истинами на текущем этапе. Эта функция помогает найти ближайшую истинность относительно дорожки в пределах порога, определенного AssignmentThreshold собственность.
Функция должна иметь следующий синтаксис:
dist = assignmentdistance(onetrack,onetruth)
dist, обычно выраженные в единицах NEES. onetrack является элементом tracks входной аргумент массива. onetruth является элементом truths входной аргумент массива.
Чтобы включить это свойство, установите значение DistanceFunctionFormat свойство для 'custom'.
Типы данных: function_handle
DivergenceDistanceFcn - Функция расстояния расхожденияФункция расстояния расхождения, заданная как дескриптор функции. Эта функция определяет расстояние расхождения между истинами и дорожками. Если расстояние расхождения от дорожки до ее назначения истинности превышает DivergenceThreshold, дорожка считается расходящейся и может быть переназначена на новую истину.
Функция должна иметь следующий синтаксис:
dist = divergencedistance(onetrack,onetruth)
dist, обычно выраженные в единицах NEES. onetrack является элементом tracks входной аргумент массива. onetruth является элементом truths входной аргумент массива.
Чтобы включить это свойство, установите значение DistanceFunctionFormat свойство для 'custom'.
Типы данных: function_handle
IsInsideCoverageAreaFcn - Определить время обнаружения объекта истинностиФункция для определения времени обнаружения объекта истинности, заданная как дескриптор функции. Эта функция определяет время нахождения объекта истинности внутри зоны покрытия датчиков и, следовательно, может быть обнаружена.
Функция должна иметь следующий синтаксис:
status = isinsidecoveragearea(truths)
status. truths - массив объектов истинности, которые должны передаваться на каждом шаге. status является логическим массивом с тем же размером, что и truths вход. Запись status является true когда соответствующий объект истинности указан truths находится в зоне действия датчиков.
Чтобы включить это свойство, установите значение DistanceFunctionFormat свойство для 'custom'.
Типы данных: function_handle
TrackIdentifierFcn - Функция идентификатора путиФункция идентификатора отслеживания для tracks ввод, указанный как дескриптор функции. Идентификаторы дорожек являются уникальными строками или числовыми значениями.
Функция должна иметь следующий синтаксис
trackids = trackidentifier(tracks)
trackids. trackids должен иметь тот же размер, что и tracks входной аргумент. Функция идентификации дорожек по умолчанию предполагает Tracks - массив структуры или класса с TrackID поле или свойство.
Чтобы включить это свойство, установите значение DistanceFunctionFormat свойство для 'custom'.
Типы данных: function_handle
TruthIdentifierFcn - Функция идентификатора истинностиФункция идентификатора истинности для truths ввод, указанный как дескриптор функции. Идентификаторами истинности являются уникальные строки или числовые значения.
Функция должна иметь следующий синтаксис
truthids = truthidentifier(truths)
truthids. truthids должен иметь тот же размер, что и truths входной аргумент. Функция идентификации истинности по умолчанию предполагает truths - массив структуры или класса с PlatformID поле или свойство.
Чтобы включить это свойство, установите значение DistanceFunctionFormat свойство для 'custom'.
Типы данных: function_handle
InvalidTrackIdentifier - Идентификатор пути для недопустимого назначенияNaN (по умолчанию) | скаляр | строкаИдентификатор пути для недопустимого назначения, указанный как скаляр или строка. Это значение возвращается, если назначение дорожки недопустимо. Значение должно быть того же класса, что и возвращаемое дескриптором функции, указанным в TrackIdentifierFcn.
Пример: -1
Типы данных: single | double | string
InvalidTruthIdentifier - Идентификатор истинности для недопустимого назначенияNaN (по умолчанию) | скаляр | строкаИдентификатор истинности для недопустимого назначения, указанный как скаляр или строка. Это значение возвращается, если назначение истинности недопустимо. Значение должно быть того же класса, что и возвращаемое дескриптором функции, указанным в TruthIdentifierFcn.
Пример: -1
Типы данных: single | double | string
Для вычисления метрик вызовите метрики назначения дорожек с аргументами, как если бы это была функция (описана здесь).
[ возвращает структуры, tracksummary,truthsummary] = assignmentMetics(tracks,truths)tracksummary и truthsummary, содержащий кумулятивные метрики по всем tracks и truths, полученный из предыдущего обновления объекта.
tracks - Отслеживание информацииОтслеживание информации, указанной как массив объектов или массив структур. Если DistanceFunctionFormat свойство указано как 'built-in', то tracks должен содержать State, StateCovariance, и TrackID в виде имен свойств или имен полей. Выходные данные дорожки от встроенных трекеров, например trackerGNN, совместимы с tracks вход.
Типы данных: struct
truths - Информация об истинеИнформация о правде, указанная как структура или массив структур. При использовании trackingScenario, достоверную информацию можно получить из platformPoses объектная функция.
Типы данных: struct
tracksummary - Кумулятивные метрики назначения путейКумулятивные метрики по всем дорожкам, возвращенные в виде структуры. Метрики вычисляются по всем дорожкам с момента последнего вызова reset объектная функция. Структура имеет следующие поля:
| Область | Описание |
TotalNumTracks | Общее число обнаруженных уникальных идентификаторов путей |
NumFalseTracks | Количество дорожек, никогда не приписанных к истине |
MaxSwapCount | Максимальное количество свопов треков для каждого трека. Замена дорожки происходит всякий раз, когда дорожке назначается другая истина. |
TotalSwapCount | Общее количество свопов треков каждого трека. Замена дорожки происходит всякий раз, когда дорожке назначается другая истина. |
MaxDivergenceCount | Максимальное количество расхождений. Дорожка расходится, когда результат |
TotalDivergenceCount | Общее количество расхождений. Дорожка расходится, когда результат функции расстояния расхождения больше порога расхождения. |
MaxDivergenceLength | Максимальное количество обновлений, в течение которых каждая дорожка находилась в разном состоянии |
TotalDivergenceLength | Общее количество обновлений, в течение которых каждая дорожка находилась в разном состоянии |
MaxRedundancyCount | Максимальное количество дополнительных дорожек, назначенных одной и той же истинности |
TotalRedundancyCount | Общее количество дополнительных дорожек, назначенных одной и той же истине |
MaxRedundancyLength | Максимальное количество обновлений, в течение которых каждая дорожка находилась в избыточном состоянии |
TotalRedundancyLength | Общее число обновлений, в течение которых каждая дорожка находилась в избыточном состоянии |
Типы данных: struct
truthsummary - Кумулятивные метрики назначения истинностиКумулятивные метрики назначения по всем истинам, возвращаемые в виде структуры. Метрики вычисляются по всем истинам с момента последнего вызова reset объектная функция. Структура имеет следующие поля:
| Область | Описание |
TotalNumTruths | Общее число обнаруженных уникальных идентификаторов истинности |
NumMissingTruths | Количество истин, никогда не установленных ни с одним треком |
MaxEstablishmentLength | Максимальное количество обновлений до того, как истина была связана с любой дорожкой в пределах зоны покрытия. Длины отсутствующих истин не учитываются для этой суммарной метрики. |
TotalEstablishmentLength | Общее количество обновлений до того, как истина была связана с любой дорожкой, находясь внутри зоны покрытия. Длины отсутствующих истин не учитываются для этой суммарной метрики. |
MaxBreakCount | Максимальное количество случаев, когда каждая истина не ассоциировалась с какой-либо дорожкой после установления. |
TotalBreakCount | Общее количество случаев, когда каждая истина не ассоциировалась с каким-либо треком после установления. |
MaxBreakLength | Максимальное количество обновлений, в течение которых каждая истина находилась в состоянии нарушения |
TotalBreakLength | Общее количество обновлений, в течение которых каждая истина находилась в состоянии нарушения |
Типы данных: struct
Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:
release(obj)
trackAssignmentMetricscurrentAssignment | Сопоставление треков с правдой |
trackMetricsTable | Сравнить треки с правдой |
truthMetricsTable | Сравнить истину с треками |
Проверьте назначения и ошибки для системы, отслеживающей две цели.
Сначала загрузите сохраненные данные дорожки.
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')

Отображение текущих метрик ошибок для каждой отдельной записанной дорожки.
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
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.