Получите историю ответвления сохраняемых дорожек
history = getHistory(branchHistoryMgr)
history = getHistory(branchHistoryMgr,format)
возвращает таблицу, содержащую историю ответвления дорожки, сохраняемую входом history
= getHistory(branchHistoryMgr
)trackBranchHistory
System 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 = 3x5 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 = 9x5 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
.
формат
Формат выходной истории ответвления'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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.