Получите историю ветви обеспеченных дорожек
возвращает таблицу, содержащую историю ветви дорожки, обеспеченную входом history
= getHistory(branchHistoryMgr
)trackBranchHistory
Система object™, branchHistoryMgr
.
возвращает историю ветви в заданном формате: history
= getHistory(branchHistoryMgr
,format
)'table'
или 'matrix'
.
Примените результаты алгоритма присвоения к ориентированному на дорожку, менеджеру по истории ветви отслеживания мультигипотезы (MHT). Просмотрите получившиеся ветви дорожки (гипотезы).
Создайте менеджера по истории ветви MHT, который является trackBranchHistory
Система object™. Установите объект обеспечить историю четырех датчиков и двух сканирований.
branchHistoryMgr = trackBranchHistory('MaxNumSensors',4,'MaxNumHistoryScans',2)
branchHistoryMgr = trackBranchHistory with properties: MaxNumSensors: 4 MaxNumHistoryScans: 2 MaxNumTracks: 200 MaxNumTrackBranches: 3
Обновите историю ветви. Поскольку первое обновление не имеет никаких предыдущих ветвей, менеджер по истории ветви содержит только неприсвоенные обнаружения.
emptyAssignment = zeros(0,2,'uint32'); emptyUnassignment = zeros(0,1,'uint32'); unassignedDetections = uint32([1;2;3]); originatingSensor = [1 1 2]; history = branchHistoryMgr(emptyAssignment,emptyUnassignment, ... unassignedDetections,originatingSensor);
Просмотрите текущую историю ветви при помощи getHistory
функция. Каждое обнаружение присвоено отдельной дорожке.
getHistory(branchHistoryMgr)
ans=3×5 table
TrackID ParentID BranchID Scan2 Scan1
Sensor1 Sensor2 Sensor3 Sensor4 Sensor1 Sensor2 Sensor3 Sensor4
_______ ________ ________ ________________________________________ ________________________________________
1 0 1 1 0 0 0 0 0 0 0
2 0 2 2 0 0 0 0 0 0 0
3 0 3 0 3 0 0 0 0 0 0
Задайте несколько присвоений ветви и несколько неприсвоенных ветвей дорожки и обнаружений.
Присвойте ветвь 1 обнаружениям 1 и 2.
Присвойте ветвь 2 обнаружениям 1 и 2.
Рассмотрите ветви дорожки 1 и 3 неприсвоенных.
Рассмотрите обнаружения 1, 2, и 3 неприсвоенных.
assignments = uint32([1 1; 1 2; 2 1; 2 2]); unassignedTracks = uint32([1;3]); unassignedDetections = uint32([1;2;3]);
Обновите менеджера по истории ветви с присвоениями и неприсвоенными дорожками и обнаружениями.
history = branchHistoryMgr(assignments,unassignedTracks, ...
unassignedDetections,originatingSensor);
Просмотрите обновленную историю ветви.
getHistory(branchHistoryMgr)
ans=9×5 table
TrackID ParentID BranchID Scan2 Scan1
Sensor1 Sensor2 Sensor3 Sensor4 Sensor1 Sensor2 Sensor3 Sensor4
_______ ________ ________ ________________________________________ ________________________________________
1 1 1 0 0 0 0 1 0 0 0
3 3 3 0 0 0 0 0 3 0 0
4 0 4 1 0 0 0 0 0 0 0
5 0 5 2 0 0 0 0 0 0 0
6 0 6 0 3 0 0 0 0 0 0
1 1 7 1 0 0 0 1 0 0 0
1 1 8 2 0 0 0 1 0 0 0
2 2 9 1 0 0 0 2 0 0 0
2 2 10 2 0 0 0 2 0 0 0
Смотрите историю ветви.
Новое сканирование является Сканированием 2. Предыдущее сканирование является Сканированием 1, который был Сканированием 2 в предыдущем обновлении присвоения. История переключила одно сканирование направо.
Ветви 1 и 3 являются ветвями для неприсвоенных дорожек.
Ветвь 2 больше не находится в истории, потому что это не считалось неприсвоенным. Его присвоение на обнаружения 1 и 2 созданных ветви 9 и 10.
Ветви 4–6 являются ветвями, созданными для неприсвоенных обнаружений.
Ветви 7–10 являются ветвями, созданными для присвоений дорожки.
branchHistoryMgr
— Введите менеджера по истории ветвиtrackBranchHistory
Системный объектВведите менеджера по истории ветви в виде trackBranchHistory
Системный объект.
format
— Формат выходной истории ветви'table'
(значение по умолчанию) | 'matrix'
Формат выходной истории ветви в виде одного из следующего:
'table'
(значение по умолчанию) — Возвращает историю ветви в таблице.
'matrix'
— Возвратите историю ветви в матрице. Этот выход эквивалентен выходному параметру, возвращенному при вызове trackBranchHistory
Системный объект.
history
— История ветвиИстория ветви, возвращенная как таблица целых чисел или как матрица целых чисел.
Каждая строка history
представляет уникальную ветвь дорожки. history
имеет 3 + (D ×S) столбцы, где D является количеством обеспеченных сканирований (глубина истории), и S является максимальным количеством обеспеченных датчиков. Первые три столбца представляют следующую информацию о каждой ветви дорожки:
TrackID
— ID дорожки, которая сопоставлена с ветвью. Отследите ветви, которые приняты, чтобы произойти из той же цели, имеют тот же ID дорожки. Если ветвь происходит из неприсвоенного обнаружения, та ветвь получает ID нового трека.
ParentID
— ID родительской ветви, то есть, ветви, от который текущая порожденная ветвь. Ветви, которые были созданы из того же родительского элемента, имеют тот же ParentID
. ParentID
из 0 указывает на новый трек. Эти дорожки создаются из гипотез, соответствующих неприсвоенным обнаружениям.
BranchID
— Уникальный идентификатор ветви дорожки. Каждая ветвь, созданная из неприсвоенного обнаружения или присвоения, получает новый ID ветви.
Остающийся D ×S столбцы содержит идентификаторы обнаружений, присвоенных каждой ветви. Ветвь может быть присвоена самое большее одному обнаружению на сканирование и на датчик. Таблица показывает организацию этих столбцов с демонстрационными обнаружениями. N является количеством сканирований. Значение 0
средние значения, что датчику на том сканировании не присвоили обнаружение ему.
Отсканируйте N | Отсканируйте N – 1 | . . . | Отсканируйте N – D | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Датчик – 1 | Датчик – 2 | . . . | Датчик – S | Датчик – 1 | Датчик – 2 | . . . | Датчик – S | . . . | Датчик – 1 | Датчик – 2 | . . . | Датчик – S |
1 | 0 | ... | 0 | 1 | 2 | ... | 0 | ... | 0 | 0 | ... | 0 |
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.