Отследите установление, обслуживание и метрики удаления
Система trackAssignmentMetrics
object™ сравнивает дорожки от мультисистемы наблюдения за объектами против известной истины автоматическим присвоением дорожек к известным истинам при каждом обновлении дорожки. Метрика расстояния присвоения определяет максимальное расстояние, для которого дорожка может быть присвоена объекту истины. Метрика расстояния расхождения определяет, когда ранее присвоенная дорожка может быть повторно присвоена различному объекту истины, когда расстояние превышает другой установленный порог.
Сгенерировать метрики присвоения дорожки:
Создайте объект trackAssignmentMetrics
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
assignmentMetics = trackAssignmentMetrics
assignmentMetics = 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)
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 = 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.