Сократите ветви дорожки с низкой вероятностью
[
возвращает логический флаг, 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
имя аргумента и 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'
— Максимальное количество ветвей
(значение по умолчанию) | положительное целое числоМаксимальное количество ветвей, чтобы сохранить на дорожку, заданную как разделенная запятой пара, состоящая из 'MaxNumTrackBranches'
и положительное целое число. Типичные значения между 2 и 6. Если дорожка имеет больше, чем это количество ветвей, то pruneTrackBrances
чернослив переходит с самым низким начальным счетом.
'NScanPruning'
— Метод сокращения N-сканирования'None'
(значение по умолчанию) | 'Hypothesis'
Метод сокращения N-сканирования, заданный как разделенная запятой пара, состоящая из 'NScanPruning'
и 'None'
или 'Hypothesis'
. Если вы задаете 'Hypothesis'
, затем pruneTrackBrances
ветви чернослива, которые несовместимы с текущей наиболее вероятной ветвью на новых сканированиях N. По умолчанию, pruneTrackBrances
не использует сокращение N-сканирования.
'NumSensors'
— Количество датчиков
(значение по умолчанию) | положительное целое числоКоличество датчиков в истории, заданной как разделенная запятой пара, состоящая из 'NumSensors'
и положительное целое число.
toPrune
— Ветви, чтобы сократитьВетви, чтобы сократить, возвращенный как M-by-1 логический вектор. Значение true
указывает, что ветвь должна быть сокращена.
Типы данных: логический
globalProbability
— Глобальные вероятности ветвиГлобальные вероятности ветви, возвращенные как M-by-1 числовой вектор.
info
— Сокращение информацииСокращение информации о каждой ветви, возвращенной как 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.