Отследите установление, обслуживание и метрики удаления
Система trackAssignmentMetrics object™ сравнивает дорожки от мультисистемы наблюдения за объектами против известной истины автоматическим присвоением дорожек к известным истинам при каждом обновлении дорожки. Метрика расстояния присвоения определяет максимальное расстояние, для которого дорожка может быть присвоена объекту истины. Метрика расстояния расхождения определяет, когда ранее присвоенная дорожка может быть повторно присвоена различному объекту истины, когда расстояние превышает другой установленный порог.
Сгенерировать метрики присвоения дорожки:
Создайте объект trackAssignmentMetrics и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
assignmentMetics = trackAssignmentMetricsassignmentMetics = trackAssignmentMetrics(Name,Value) создает Системный объект assignmentMetics = trackAssignmentMetricstrackAssignmentMetrics, assignmentMetics, со значениями свойств по умолчанию.
свойства наборов для объекта assignmentMetics = trackAssignmentMetrics(Name,Value)trackAssignmentMetrics с помощью одной или нескольких пар "имя-значение". Например, assignmentMetics = trackAssignmentMetrics('AssignmentThreshold',5) создает объект trackAssignmentMetrics с порогом присвоения 5. Заключите имена свойства в кавычки.
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и функция release разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).
AssignmentThreshold — Максимальное разрешенное расстояние присвоения1 (значение по умолчанию) | неотрицательный скалярМаксимальное разрешенное расстояние присвоения между с которой недавно сталкиваются или расходящейся дорожкой и объектом истины, заданным как неотрицательный скаляр. Для расстояний вне этого значения не могут произойти присвоения между дорожкой и истиной. Модули находятся в нормированной ошибке оценки придала квадратную форму (NEES).
Типы данных: single | double
DivergenceThreshold — Максимальное разрешенное расстояние расхождения2 (значение по умолчанию) | неотрицательный скалярМаксимальное разрешенное расстояние расхождения между состоянием дорожки и состоянием присвоенного объекта истины, заданного как неотрицательный скаляр. Для расстояний вне этого значения дорожки имеют право на переназначение к различному объекту истины. Модули находятся в NEES.
Типы данных: single | double
DistanceFunctionFormat — Формат функции расстояния'built-in' (значение по умолчанию) | 'custom'Формат функции расстояния, заданный как 'built-in' или 'custom'.
встроенный Включите MotionModel, AssignmentDistance и свойства DivergenceDistance. Эти свойства являются удобными интерфейсами при использовании дорожек, о которых сообщает любое встроенное мультиобъектное средство отслеживания и истины, о которых сообщает функция объекта platformPoses объекта trackingScenario.
'custom' – Включите пользовательские свойства: AssignmentDistanceFcn, DivergenceDistanceFcn, IsInsideCoverageAreaFcn, TruthIdentifierFcn, TrackIdentifierFcns. Можно использовать эти свойства создать принятие или расстояния расхождения, зоны охвата и идентификаторы для произвольных 'дорожек' и входных массивов 'истин'.
MotionModel — Желаемая модель движения платформы'constvel' (значение по умолчанию) | 'constacc' | 'constturn'Желаемая модель движения платформы, заданная как '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'.
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 массивов при обновлении объекта. onetruthtruth является элементом входного параметра truths массивов.
Чтобы включить это свойство, установите свойство DistanceFunctionFormat на 'custom'.
Типы данных: function_handle
IsInsideCoverageAreaFcn — Обнаруживаемый объект истиныОбнаруживаемый объект 'истины', заданный как указатель на функцию. Эта функция определяет, когда объект 'истины' в зоне охвата датчиков и поэтому обнаруживаем.
Функция должна иметь следующий синтаксис:
status = isinsidecoveragearea(truths)
status. status верен, когда истина объекты, truths, в зоне охвата. truths является тем же входным параметром истин массивов при обновлении объекта. status должен иметь тот же размер как truths.
Чтобы включить это свойство, установите свойство DistanceFunctionFormat на 'custom'.
Типы данных: function_handle
TrackIdentifierFcn — Отследите функцию идентификатораОтследите функцию идентификатора для входа дорожки при обновлении объекта, заданном как указатель на функцию. Идентификаторы дорожки являются уникальной строкой или числовыми значениями.
Функция должна иметь следующий синтаксис
trackids = trackidentifier(tracks)
trackids. trackids должен иметь тот же размер как входной параметр tracks. tracks является тем же входным параметром дорожек массивов при обновлении объекта.
Чтобы включить это свойство, установите свойство DistanceFunctionFormat на 'custom'.
Типы данных: function_handle
TruthIdentifierFcn — Функция идентификатора истиныИдентификатор истины функционирует для входа истины при обновлении объекта, заданном как указатель на функцию. Идентификаторы истины являются уникальной строкой или числовыми значениями.
Функция должна иметь следующий синтаксис
truthids = truthidentifier(truths)
truthids. truthids должен иметь тот же размер как входной параметр truths. truths является тем же входным параметром истины массивов при обновлении объекта.
Чтобы включить это свойство, установите свойство 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] = assignmentMetics(tracks,truths)tracksummary и truthsummary, содержа совокупные метрики через весь tracks и truths, полученный из предыдущего обновления объекта.
tracks — Отследите информациюОтследите информацию, указанную как структура или массив структур. Для встроенных средств отслеживания, таких как trackerGNN или trackerTOMHT, структура содержит 'State', 'StateCovariance' и информацию о 'TrackID'.
Типы данных: 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
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием 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 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
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.