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