Отследите установление, обслуживание и метрики удаления
trackAssignmentMetrics
Система object™ сравнивает дорожки от мультисистемы наблюдения за объектами против известной истины автоматическим присвоением дорожек к известным истинам при каждом обновлении дорожки. Метрика расстояния присвоения определяет максимальное расстояние, для которого дорожка может быть присвоена объекту истины. Метрика расстояния расхождения определяет, когда ранее присвоенная дорожка может быть повторно присвоена различному объекту истины, когда расстояние превышает другой установленный порог.
Сгенерировать метрики присвоения дорожки:
Создайте trackAssignmentMetrics
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?
создает assignmentMetics
= trackAssignmentMetricstrackAssignmentMetrics
Системный объект, assignmentMetics
, со значениями свойств по умолчанию.
свойства наборов для assignmentMetics
= trackAssignmentMetrics(Name,Value
)trackAssignmentMetrics
объект с помощью одной или нескольких пар "имя-значение". Например, assignmentMetics = trackAssignmentMetrics('AssignmentThreshold',5)
создает trackAssignmentMetrics
объект с порогом присвоения 5. Заключите имена свойства в кавычки.
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release
функция разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.
AssignmentThreshold
— Максимальное разрешенное расстояние присвоения
(значение по умолчанию) | неотрицательный скалярМаксимальное разрешенное расстояние присвоения между с которой недавно сталкиваются или расходящейся дорожкой и истиной возражает в виде неотрицательного скаляра. Для расстояний вне этого значения не могут произойти присвоения между дорожкой и истиной. Модули находятся в нормированной ошибке расчета придала квадратную форму (NEES).
Типы данных: single
| double
DivergenceThreshold
— Максимальное разрешенное расстояние расхождения
(значение по умолчанию) | неотрицательный скалярМаксимальное разрешенное расстояние расхождения между состоянием дорожки и состоянием присвоенной истины возражает в виде неотрицательного скаляра. Для расстояний вне этого значения дорожки имеют право на переназначение к различному объекту истины. Модули находятся в 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
массив struct или класса с TrackID
поле или свойство.
Чтобы включить это свойство, установите DistanceFunctionFormat
свойство к 'custom'
.
Типы данных: function_handle
TruthIdentifierFcn
— Функция идентификатора истиныИдентификатор истины функционирует для truths
введите в виде указателя на функцию. Идентификаторы истины являются уникальными строками или числовыми значениями.
Функция должна иметь следующий синтаксис
truthids = truthidentifier(truths)
truthids
. truthids
должен иметь тот же размер как truths
входной параметр. Идентификационная функция истины по умолчанию принимает truths
массив struct или класса с 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
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
trackAssignmentMetrics
currentAssignment | Отображение дорожек к истине |
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=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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.