Track-Oriented Multi-Hypothesis Tracker

Ориентированное на дорожку средство отслеживания мультигипотезы

  • Библиотека:
  • Sensor Fusion and Tracking Toolbox / Алгоритмы Отслеживания Мультиобъекта

  • Track-Oriented Multi-Hypothesis Tracker block

Описание

Обнаружения процессов блока Track-Oriented Multi-Hypothesis Tracker много целей от нескольких датчиков. Блок средства отслеживания инициализирует, подтверждает, предсказывает, корректирует и удаляет дорожки. Входные параметры с блоком средства отслеживания являются отчетами обнаружения, сгенерированными objectDetection, fusionRadarSensor, irSensor, или sonarSensor объекты. Блок средства отслеживания оценивает ковариационную матрицу вектора состояния и вектора состояния для каждой дорожки. Средство отслеживания присваивает обнаружения на основе ориентированного на дорожку, подход мультигипотезы.

Любой новый трек запускается в предварительном состоянии. Если достаточно обнаружений присвоено предварительной дорожке, ее изменениям состояния в подтвержденном. Если обнаружение уже имеет известную классификацию (ObjectClassID поле возвращенной дорожки является ненулевым), та дорожка сразу подтверждена. Когда дорожка подтверждена, мультиобъектное средство отслеживания полагает, что дорожка представляет физический объект. Если обнаружения не присвоены дорожке в specifiable количестве обновлений, дорожка удалена. Для обзора того, как средство отслеживания функционирует, см. Алгоритмы.

Порты

Входной параметр

развернуть все

Список обнаружений в виде шины Simulink, содержащей структуру MATLAB. Структура имеет форму:

Поле ОписаниеВвод
NumDetectionsКоличество обнаруженийЦелое число
DetectionsОбнаружения объектовМассив objectDetection структуры. Первый NumDetections из этих обнаружений фактические обнаружения.

Поля структуры обнаружений:

Поле ОписаниеВвод
TimeВремя измеренияSingle или Double
MeasurementОбъектные измеренияSingle или Double
MeasurementNoiseКовариационная матрица шума измеренияSingle или Double
SensorIndexУникальный идентификатор датчикаSingle или Double
ObjectClassIDID предметной классификацииSingle или Double
MeasurementParametersПараметры используются функциями инициализации отслеживания фильтровШина Simulink
ObjectAttributesДополнительная информация передала средству отслеживанияШина Simulink

Смотрите objectDetection для более подробного объяснения этих полей.

Примечание

Структура обнаружения объектов содержит Time поле . Тег времени каждого обнаружения объектов должен быть меньше чем или равен времени при текущем вызове блока. Тег времени должен также быть больше времени обновления, заданного в предыдущем вызове блока.

Отследите время обновления в виде действительного скаляра в секундах. Средство отслеживания обновляет все дорожки к этому времени. Время обновления должно всегда увеличиваться с каждым вызовом блока. Время обновления должно быть, по крайней мере, столь же большим как самый большой Time заданный во входном порту Detections.

Если порт не включен, часы симуляции, управляемые Simulink, определяют время обновления.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, устанавливают Prediction time source на Input port.

Стойте матрицы в виде N с действительным знаком-by-M матрица, где N является количеством ветвей, и M является количеством текущих обнаружений.

Строки матрицы стоимости должны быть в том же порядке как список ветвей. Ветви упорядочены, когда они появляются в списке ветвей от выходного порта All Branches на предыдущем вызове блока. Столбцы соответствуют обнаружениям.

В первом обновлении средства отслеживания, или если средство отслеживания не имеет никаких предыдущих дорожек, присвоение, стоимость матрицирует размер [0, N]. Стоимость должна быть вычислена так, чтобы более низкие цены указали на более высокую вероятность, что средство отслеживания присваивает обнаружение дорожке. Чтобы препятствовать тому, чтобы определенные обнаружения были присвоены определенным дорожкам, используйте Inf.

Если этот порт не включен, фильтр, инициализированный Filter initialization function, вычисляет матрицу стоимости использование метода расстояния.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выбирают Enable cost matrix input.

Обнаруживаемые идентификаторы ветви в виде M с действительным знаком-by-1 вектор или M-by-2 матрица. Обнаруживаемые ветви являются ветвями, которые датчики ожидают обнаруживать. Первый столбец матрицы содержит список идентификаторов ветви, о которых датчики сообщают как обнаруживаемые. Дополнительный второй столбец позволяет вам добавить вероятность обнаружения для каждой ветви. Ветви перечислены в All Branches выход от предыдущего вызова блока.

Дорожки, идентификаторы которых не включены в Detectable BranchIDs, рассматриваются необнаруживаемыми. Логика удаления дорожки не считает отсутствие обнаружения как "пропущенное обнаружение" в целях удаления дорожки.

Если этот порт не включен, средство отслеживания принимает все дорожки, чтобы быть обнаруживаемым при каждом вызове блока.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выбирают Enable detectable branch IDs input.

Отследите параметры состояния в виде шины Simulink, содержащей структуру MATLAB. Структура имеет форму:

Поле Описание
NumParametersКоличество параметров состояния не по умолчанию в виде неотрицательного целого числа
ParametersМассив структур параметра состояния

Блок использует значение Parameters поле для StateParameters поле сгенерированных дорожек. Можно использовать эти параметры, чтобы задать систему координат, в которой о дорожке сообщают или другие желательные атрибуты сгенерированных дорожек.

Например, можно использовать следующую структуру, чтобы задать прямоугольную систему координат, положение источника которой в [10 10 0] метры и чьей скоростью источника является [2 -2 0] метры в секунду относительно системы координат сценария.

Имя поляЗначение
Frame"Rectangular"
Position[10 10 0]
Velocity[2 -2 0]

Зависимости

Чтобы включить этот порт, во вкладке Tracker Configuration, выбирают параметр Update track state parameters with time.

Вывод

развернуть все

Подтвержденные дорожки, возвращенные как шина Simulink, содержащая структуру MATLAB. Структура имеет форму:

Поле Описание
NumTracksКоличество дорожек
TracksМассив структур дорожки длины установлен параметром Maximum number of tracks. Только первый NumTracks из них фактические дорожки.

Поля структуры дорожки показывают в Структуре Дорожки.

Дорожка подтверждена, если она удовлетворяет порогу, заданному в the Confirmation threshold параметре под вкладкой Track Logic.

Предварительные дорожки, возвращенные как шина Simulink, содержащая структуру MATLAB. Дорожка является предварительной, прежде чем она будет подтверждена.

Поля структуры дорожки показывают в Структуре Дорожки.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выбирают Enable tentative tracks output.

Объединенный список подтвержденных и предварительных дорожек, возвращенных как шина Simulink, содержащая структуру MATLAB.

Поля структуры дорожки показывают в Структуре Дорожки.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выбирают Enable all tracks output.

Дополнительная информация для анализа обновлений дорожки, возвращенных как шина Simulink, содержащая структуру MATLAB.

Эта таблица показывает поля информационной структуры:

Поле Описание
BranchIDsAtStepBeginning

Идентификаторы ветви, когда обновление началось.

CostMatrix

Стоимость матрицы присвоения.

Assignments

Присвоения, возвращенные из assignTOMHT функция.

UnassignedTracks

Идентификаторы неприсвоенных ветвей возвращены в средство отслеживания.

UnassignedDetections

Идентификаторы неприсвоенных обнаружений возвращены в средство отслеживания.

InitialBranchHistory

История ветви после ответвления и перед сокращением.

InitialBranchScores

Баллы ветви перед сокращением.

KeptBranchHistory

История ветви после начального сокращения.

KeptBranchScores

Баллы ветви после начального сокращения.

Clusters

Отображение логического массива переходит к кластерам. Ветви принадлежат того же кластера, если они совместно используют обнаружения в своей истории или принадлежат той же дорожке или непосредственно или посредством других ветвей.

TrackIncompatibility

Матрица несовместимости ветви. (i,j) элемент верен, если i-th и j-th ветви совместно использовали обнаружения в их истории или принадлежат той же дорожке.

GlobalHypotheses

Логическое матричное отображение переходит к глобальным гипотезам. Совместимые ветви могут принадлежать тех же гипотез.

GlobalHypScoresОбщий счет глобальных гипотез.
PrunedBranches

Логический массив ветвей, что pruneTrackBranches функция решает сокращать.

GlobalBranchProbabilities

Глобальная вероятность каждой ветви, существующей в глобальных гипотезах.

BranchesDeletedByPruning

Ветви удалены средством отслеживания.

BranchIDsAtStepEnd

Идентификаторы ветви, когда законченное обновление.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выбирают Enable information output.

Все ветви, возвращенные как шина Simulink, содержащая структуру MATLAB.

Поля структуры ветви совпадают со Структурой Дорожки.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выбирают Enable all branches output.

Параметры

развернуть все

Управление средством отслеживания

Уникальный идентификатор средства отслеживания в виде неотрицательного целого числа. Этот параметр передается как SourceIndex в средстве отслеживания выходные параметры, и отличают дорожки, которые прибывают из различных средств отслеживания в системе нескольких-средств-отслеживания. Необходимо задать это свойство как положительное целое число, чтобы использовать дорожку выходные параметры в качестве входных параметров к trackFuser объект.

Пример 1

Отфильтруйте функцию инициализации в виде указателя на функцию или как вектор символов, содержащий имя функции инициализации фильтра. Средство отслеживания использует функцию инициализации фильтра при создании новых треков.

Sensor Fusion and Tracking Toolbox™ обеспечивает много функций инициализации, которые совместимы с этим блоком.

Функция инициализацииФункциональное определение
initcvabfИнициализируйте фильтр альфы - беты постоянной скорости
initcaabfИнициализируйте фильтр альфы - беты постоянного ускорения
initcvekfИнициализируйте расширенный Фильтр Калмана постоянной скорости.
initcackfИнициализируйте фильтр кубатуры постоянного ускорения.
initctckfИнициализируйте фильтр кубатуры постоянной угловой скорости вращения.
initcvckfИнициализируйте фильтр кубатуры постоянной скорости.
initcapfИнициализируйте фильтр частиц постоянного ускорения.
initctpfИнициализируйте фильтр частиц постоянной угловой скорости вращения.
initcvpfИнициализируйте фильтр частиц постоянной скорости.
initcvkfИнициализируйте постоянную скорость линейный Фильтр Калмана.
initcvukfИнициализируйте сигма-точечный фильтр Калмана постоянной скорости.
initcaekfИнициализируйте расширенный Фильтр Калмана постоянного ускорения.
initcakfИнициализируйте постоянное ускорение линейный Фильтр Калмана.
initcaukf Инициализируйте сигма-точечный фильтр Калмана постоянного ускорения.
initctekf Инициализируйте расширенный Фильтр Калмана постоянной угловой скорости вращения.
initctukfИнициализируйте сигма-точечный фильтр Калмана постоянной угловой скорости вращения.
initcvmscekfИнициализируйте измененные сферические координаты постоянной скорости, расширил Фильтр Калмана.
initrpekfИнициализируйте постоянную скорость параметризованный областью значений расширенный Фильтр Калмана.
initapekfИнициализируйте постоянную скорость параметризованный углом расширенный Фильтр Калмана.
initekfimmИнициализируйте отслеживание фильтр IMM.

Можно также записать собственную функцию инициализации. Функция должна иметь следующий синтаксис:

filter = filterInitializationFcn(detection)
Вход к этой функции является отчетом обнаружения как созданные objectDetection объект. Выход этой функции должен быть объектом фильтра: trackingKF, trackingEKF, trackingUKF, trackingCKF, trackingPF, trackingMSCEKF, trackingGSF, trackingIMM, или trackingABF.

Чтобы вести вас в записи этой функции, можно исследовать детали поддерживаемых функций из MATLAB. Например:

type initcvekf

Типы данных: function_handle | char

Порог для присвоения обнаружений к дорожкам в виде положительной скалярной величины, 1 3 вектор из неуменьшения положительных значений, [C 1, C 2, C 3], или a1-4 вектор из неуменьшения положительных значений, [C 1, C 2, C 3, C 4]. Если задано как скаляр, заданное значение, val, будет расширено до [0.3,0.7,1, Inf] *val. Если задано как [C 1, C 2, C 3], это будет расширено как [C 1, C 2, C 3, Inf].

Пороги управляют (1) присвоением обнаружения к дорожке, (2) созданием новой ветви от обнаружения и (3) созданием новой ветви от неприсвоенной дорожки. Пороговые значения должны удовлетворить: C 1 <= C 2 <= C 3<=C4.

  • C 1 задает расстояние, таким образом, что, если дорожка имеет присвоенное обнаружение с более низким расстоянием, чем C 1, дорожка больше не рассматривается неприсвоенной и не создает неприсвоенную ветвь дорожки.

  • C 2 задает расстояние, таким образом, что, если обнаружение было присвоено дорожке с более низким расстоянием, чем C 2, обнаружение больше не рассматривается неприсвоенным и не создает ветвь нового трека.

  • C 3 задает максимальное расстояние для присвоения обнаружения к дорожке.

  • C 4 задает комбинации дорожки и обнаружения, для которого выполняется точный нормированный расчет стоимости. Первоначально, средство отслеживания выполняет крупную оценку для нормированного расстояния между всеми дорожками и обнаружениями. Средство отслеживания только вычисляет точное нормированное расстояние для комбинаций, крупное нормированное расстояние которых меньше C 4.

Советы:

  • Увеличьте значение C 3, если существуют обнаружения, которые должны быть присвоены дорожкам, но не являются. Уменьшите значение, если существуют обнаружения, которые присвоены дорожкам, которым они не должны быть присвоены (слишком далеко).

  • Увеличение значений, C 1 и C 2 помогает управлять количеством ветвей дорожки, которые создаются. Однако выполнение так сокращает количество ветвей (гипотезы), каждая дорожка имеет.

  • Увеличьте значение C 4, если существуют комбинации дорожки и обнаружения, которое должно быть вычислено для присвоения, но не является. Уменьшите его, если расчет стоимости занимает слишком много времени.

Типы данных: single | double

Максимальное количество дорожек, которые блок может обеспечить в виде положительного целого числа.

Максимальное количество датчиков, которые могут быть соединены со средством отслеживания в виде положительного целого числа. MaxNumSensors должен быть больше или быть равен самому большому значению SensorIndex найденный во всех обнаружениях раньше обновлял средство отслеживания. SensorIndex одно из свойств objectDetection объект. MaxNumSensors блока свойство определяет сколько наборов ObjectAttributes поля каждая выходная дорожка могут иметь.

Обработка измерений из последовательности в виде Terminate или neglect. Каждому обнаружению сопоставили метку времени с ним, t d, и блок средства отслеживания имеет его собственная метка времени, t t, который обновляется в каждом вызове. Блок средства отслеживания рассматривает измерение как OOSM если t d <t t.

Когда параметр задан как:

  • Terminate — Блок прекращает запускаться, когда он сталкивается с любыми измерениями из последовательности.

  • Neglect — Блок пропускает любые измерения из последовательности, и продолжите запускаться.

Параметры дорожки утверждают систему координат в виде структуры или массива структур. Блок передает значение этого параметра к StateParameters поле сгенерированных дорожек. Можно использовать эти параметры, чтобы задать систему координат, в которой о дорожке сообщают или другие желательные атрибуты сгенерированных дорожек.

Например, можно использовать следующую структуру, чтобы задать прямоугольную систему координат, положение источника которой в [10 10 0] метры и чьей скоростью источника является [2 -2 0] метры в секунду относительно системы координат сценария.

Имя поляЗначение
Frame"Rectangular"
Position[10 10 0]
Velocity[2 -2 0]

Можно обновить параметры состояния дорожки через входной порт State Parameters путем выбора параметра Update track state parameters with time.

Типы данных: struct

Выберите этот параметр, чтобы включить входной порт для параметров состояния дорожки через входной порт State Parameters.

Отследите выходной метод в виде 'Tracks', 'Hypothesis', или 'Clusters'.

  • 'Tracks' – Выведите центроид каждой дорожки на основе ее ветвей дорожки.

  • 'Hypothesis' – Выведите ветви, которые находятся в определенных гипотезах. Если вы выбираете эту опцию, перечисляете гипотезы, чтобы вывести использование HypothesesToOutput свойство.

  • 'Clusters' – Выведите центроид каждого кластера. Подобно 'Tracks' выведите, но включает все дорожки в кластере.

Типы данных: char

  • Interpreted execution — Симулируйте модель с помощью интерпретатора MATLAB. Эта опция сокращает время запуска. В Interpreted execution режим, можно отладить исходный код блока.

  • Code generation — Симулируйте модель с помощью сгенерированного кода C. В первый раз, когда вы запускаете симуляцию, Simulink генерирует код С для блока. Код С снова используется для последующих симуляций, пока модель не изменяется. Эта опция требует дополнительного времени запуска.

Управление гипотезами

Максимальное количество гипотез обеспечено дорожками в случаях неоднозначности в виде положительного целого числа. Большие значения увеличивают вычислительную загрузку.

Пример: 10

Типы данных: single | double

Максимальное количество ветвей дорожки (гипотезы) допускало каждую дорожку в виде положительного целого числа. Большие значения увеличивают вычислительную загрузку.

Типы данных: single | double

Максимальное количество сканов обеспечено в истории ветви в виде положительного целого числа. Количество сканов истории дорожки обычно от 2 до 6. Большие значения увеличивают вычислительную загрузку.

Типы данных: single | double

Минимальная вероятность, требуемая отслеживать дорожку, переходит в виде положительной скалярной величины меньше чем один. Любая дорожка с вероятностью ниже, чем заданная вероятность сокращена. Типичные значения 0.001 к 0,005.

Пример: .003

Типы данных: single | double

Метод сокращения N-скана в виде 'None' или 'Hypothesis'. В сокращении N-скана ветви, которые принадлежат той же дорожке, сокращены (удаленные), если в истории N-сканов они противоречат наиболее вероятной ветви для той же дорожки. Наиболее вероятная ветвь задана одним из двух способов:

  • 'None' – Никакое сокращение N-скана не выполняется.

  • 'Hypothesis' – Выбранная ветвь находится в наиболее вероятной гипотезе.

Пример: 'Hypothesis'

Логика дорожки

Минимальный счет, требуемый подтвердить дорожку в виде положительной скалярной величины. Любая дорожка со счетом выше, чем этот порог подтверждена.

Пример: 12

Типы данных: single | double

Максимальное отбрасывание счета перед дорожкой удалено в виде скаляра. Любая дорожка со счетом, который падает больше, чем этим параметром от максимального счета, удалена. Порог удаления затронут вероятностью ложного предупреждения.

Пример 1

Типы данных: single | double

Вероятность обнаружения в виде положительной скалярной величины между 0 и 1. Это свойство используется для расчета счет дорожки.

Пример: 0.5

Типы данных: single | double

Вероятность ложного предупреждения в виде скаляра. Это свойство используется для расчета счет дорожки.

Пример: 1e-5

Типы данных: single | double

Объем интервала измерения датчика в виде положительной скалярной величины. Например, если радар производит 4-D измерение, которое включает азимут, вертикальное изменение, область значений и уровень области значений, 4-D объем задан радаром угловая ширина луча, ширина интервала области значений и ширина интервала уровня области значений. Объем используется в вычислении счета дорожки при инициализации и обновлении дорожки.

Пример: 1.5

Типы данных: single | double

Уровень новых треков на единичный объем в виде положительной скалярной величины. Параметр используется в вычислении счета дорожки во время инициализации дорожки.

Пример: 2.5

Типы данных: single | double

Параметр порта

Источник в течение времени предсказания в виде Input port или Auto. Выберите Input port вводить время обновления при помощи входного порта Prediction Time. В противном случае часы симуляции, управляемые Simulink, определяют время обновления.

Выберите этот параметр, чтобы включить вход матрицы стоимости при помощи входного порта Cost Matrix.

Выберите этот параметр, чтобы включить входной порт Detectable branch IDs.

Выберите этот параметр, чтобы включить выход предварительных дорожек через выходной порт Tentative Tracks.

Выберите этот параметр, чтобы включить выход всех дорожек через выходной порт All Tracks.

Выберите этот параметр, чтобы включить выходной порт для получения информации об анализе через выходной порт Info.

Выберите этот параметр, чтобы включить выход всех ветвей через выходной порт All Branches.

Источник выхода отслеживает имя шины в виде:

  • Auto — Блок автоматически создает выходное имя шины дорожки.

  • Property — Задайте выходное имя шины дорожки при помощи параметра Specify an output bus name.

Источник информации о выходе соединяет шиной имя в виде:

  • Auto — Блок автоматически создает имя шины информации о выходе.

  • Property — Задайте имя шины информации о выходе при помощи параметра Specify an output info bus name.

Зависимости

Чтобы включить этот параметр, на вкладке Port Setting, выбирают Enable information output.

Алгоритмы

развернуть все

Ссылки

[1] Вертманн, J. R. "Постепенное Описание В вычислительном отношении Эффективной Версии Нескольких Отслеживание Гипотезы". В международном обществе Оптики и Фотоники, Издания 1698, стр 228-301, 1992.

[2] Блэкмен, S. и R. Пополи. Проект и анализ современных систем слежения. Радарная библиотека дома Artech, Бостон, 1999.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Введенный в R2020a