Сократите ответвления дорожки с низкой вероятностью
[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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.