Сократите ответвления дорожки с низкой вероятностью
[toPrune,globalProbability] = pruneTrackBranches(branchHistory,scores,hypotheses)
[toPrune,globalProbability] = pruneTrackBranches(branchHistory,scores,hypotheses,Name,Value)
[toPrune,globalProbability,info] = pruneTrackBranches(___)
[
возвращает логический флаг, toPrune
,globalProbability
] = pruneTrackBranches(branchHistory
,scores
,hypotheses
)toPrune
, который указывает, какие ответвления должны быть сокращены на основе истории ответвления, очков ответвления и гипотез. pruneTrackBranches
также возвращает глобальные вероятности ответвления, globalProbability
.
[
пары "имя-значение" использования, чтобы изменить, как сокращены ответвления.toPrune
,globalProbability
] = pruneTrackBranches(branchHistory
,scores
,hypotheses
,Name,Value
)
[
возвращает дополнительную информацию, toPrune
,globalProbability
,info
] = pruneTrackBranches(___)info
, о сокращенных ответвлениях.
Создайте матрицу истории ответвления для одного датчика с 20 ответвлениями. В данном примере глубина истории равняется 4 поэтому, матрица имеет 7 столбцов.
history = [ 8 14 14 0 0 2 0 1 23 23 0 0 2 1 2 24 24 0 0 1 2 9 25 25 0 1 0 0 10 26 26 0 2 0 0 1 28 28 0 1 0 1 4 33 33 0 1 2 1 1 34 34 0 1 2 1 2 35 35 0 2 1 2 11 0 36 1 0 0 0 12 0 37 2 0 0 0 8 14 38 2 0 2 0 1 23 39 2 0 2 1 2 24 40 1 0 1 2 9 25 41 2 1 0 0 10 26 42 1 2 0 0 1 28 43 2 1 0 1 4 33 44 2 1 2 1 1 34 45 2 1 2 1 2 35 46 1 2 1 2];
Получите список кластеров и список несовместимых ответвлений. Матрица clusters
имеет два столбца, поэтому существует два кластера.
[clusters,incompBranches] = clusterTrackBranches(history);
Задайте 20 1 вектор-столбец, содержащий очки ответвления.
scores = [4.5 44.9 47.4 6.8 6.8 43.5 50.5 61.9 64.7 9.1 9.1 19 61.7 ...
63.5 21.2 20.5 60.7 67.3 79.2 81.5]';
Получите матрицу гипотезы.
hypotheses = compatibleTrackBranches(clusters,incompBranches,scores,10);
Сократите ответвления дорожки, с помощью аргументов пары "имя-значение", чтобы задать один датчик и метод 'Hypothesis'
сокращения N-сканирования. Возвратите флаг сокращения, глобальную вероятность и сокращение информации о каждом ответвлении. Чтобы сделать информацию легче выдержать сравнение, преобразуйте информацию от struct до таблицы.
i-th значением toPrune
является true
, если каким-либо 'PrunedByProbability
', 'PrunedByNScan
' или 'PrunedByNumBranches
' является true
в i-th строке информационной таблицы.
[toPrune,probs,info] = pruneTrackBranches(history,scores,hypotheses, ... 'NumSensors',1,'NScanPruning','Hypothesis'); infoTable = struct2table(info)
infoTable=20×6 table
BranchID PriorProbability GlobalProbability PrunedByProbability PrunedByNScan PrunedByNumBranches
________ ________________ _________________ ___________________ _____________ ___________________
14 0.98901 0.098901 false false false
23 1 0.1 false false true
24 1 0.1 false false true
25 0.99889 0.099889 false false false
26 0.99889 0.099889 false false false
28 1 0 true true false
33 1 0 true false false
34 1 0.2 false false false
35 1 0.2 false false false
36 0.99989 0.19998 false false false
37 0.99989 0.19998 false false false
38 1 0 true false false
39 1 0.1 false false false
40 1 0.1 false false false
41 1 0.1 false false false
42 1 0.1 false false false
⋮
branchHistory
— История ответвленияИстория ответвления, заданная как матрица целых чисел. Каждая строка branchHistory
представляет уникальное ответвление дорожки. branchHistory
должен иметь 3 + (D ×S) столбцы, где D является количеством сохраняемых сканирований (глубина истории), и S является максимальным количеством сохраняемых датчиков. Для получения дополнительной информации смотрите history
вывод системного объекта trackBranchHistory
.
scores
— Очки ответвленияОчки ответвления, заданные как M-by-1 числовой вектор или M-by-2 числовая матрица.
Если вы задаете scores
как M-by-2 числовая матрица, то первый столбец задает текущий счет каждого ответвления, и второй столбец задает максимальный счет. pruneTrackBranches
игнорирует второй столбец.
Типы данных: single | double
hypotheses
— ГипотезыГипотезы, возвращенные как M-by-H логическая матрица, где M является количеством ответвлений и H, являются количеством глобальных гипотез. Можно использовать clusterTrackBranches
, чтобы вычислить кластеры из матрицы истории ответвления, затем использовать compatibleTrackBranches
, чтобы вычислить гипотезы из кластеров.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
[toPrune,probs] = pruneTrackBranches(branchHistory,scores,hypotheses,'MinBranchProbability',2e-3);
'MinBranchProbability'
— Минимальная вероятность ответвления1e-3
(значение по умолчанию) | номер в области значений [0,1)Минимальный порог вероятности ответвления, заданный как пара, разделенная запятой, состоящая из 'MinBranchProbability'
и номера в области значений [0,1). Типичные значения между 1e-3 и 5e-3. Функция pruneTrackBranches
сокращает ответвления с глобальной вероятностью меньше, чем порог.
'MaxNumTrackBranches'
— Максимальное количество ответвлений3
(значение по умолчанию) | положительное целое числоМаксимальное количество ответвлений, чтобы сохранить на дорожку, заданную как пара, разделенная запятой, состоящая из 'MaxNumTrackBranches'
и положительного целого числа. Типичные значения между 2 и 6. Если дорожка имеет больше, чем это количество ответвлений, то ответвления чернослива pruneTrackBrances
с самым низким начальным счетом.
'NScanPruning'
— Метод сокращения N-сканирования'None'
(значение по умолчанию) | 'Hypothesis'
Метод сокращения N-сканирования, заданный как пара, разделенная запятой, состоящая из 'NScanPruning'
и 'None'
или 'Hypothesis'
. Если вы задаете 'Hypothesis'
, то ответвления чернослива pruneTrackBrances
, которые несовместимы с текущим наиболее вероятным ответвлением на новых сканированиях N. По умолчанию pruneTrackBrances
не использует сокращение N-сканирования.
'NumSensors'
— Количество датчиков20
(значение по умолчанию) | положительное целое числоКоличество датчиков в истории, заданной как пара, разделенная запятой, состоящая из 'NumSensors'
и положительного целого числа.
toPrune
— Ответвления, чтобы сократитьОтветвления, чтобы сократить, возвращенный как M-by-1 логический вектор. Значение true
указывает, что ответвление должно быть сокращено.
Типы данных: логический
globalProbability
— Глобальные вероятности ответвленияГлобальные вероятности ответвления, возвращенные как M-by-1 числовой вектор.
информация
Сокращение информацииСокращение информации о каждом ответвлении, возвращенном как struct со следующими полями.
BranchID
— M-by-1 числовой вектор. Каждое значение задает ID ответвления дорожки. Идентификаторы прибывают из третьего столбца branchHistory
.
PriorProbability
— M-by-1 числовой вектор. Каждое значение задает априорную вероятность ответвления от счета ответвления.
GlobalProbability
— M-by-1 числовой вектор. Каждое значение задает глобальную вероятность ответвления, которая рассматривает гипотезы, которые содержат ответвление и их очки.
PrunedByProbability
— M-by-1 логический вектор. Значение true
указывает, что ответвление сокращено MinBranchProbability
.
PrunedByNScan
— M-by-1 логический вектор. Значение true
указывает, что ответвление сокращено NScanPruning
.
PrunedByNumBranches
— M-by-1 логический вектор. Значение true
указывает, что ответвление сокращено MaxNumTrackBranches
.
[1] Вертманн, Джон Р. "Постепенное Описание В вычислительном отношении Эффективной Версии Нескольких Отслеживание Гипотезы". В Продолжениях Издания 1698 SPIE, Сигнала и Обработки Маленьких Целей. 1992, стр 288–300. doi: 10.1117/12.139379.
[2] Блэкмен, Сэмюэль и Роберт Пополи. "Проект и анализ современных систем слежения". Дом Artech, 1999.
clusterTrackBranches
| compatibleTrackBranches
| trackBranchHistory
| trackerTOMHT
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.