Joint Probabilistic Data Association Multi Object Tracker

Соедините вероятностное средство отслеживания ассоциации данных

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

  • Joint Probabilistic Data Association Multi Object Tracker block

Описание

Блок Joint Probabilistic Data Association Multi Object Tracker способен к обработке обнаружений нескольких целей от нескольких датчиков. Использование средства отслеживания соединяет вероятностную ассоциацию данных, чтобы присвоить обнаружения каждой дорожке. Средство отслеживания применяет мягкое присвоение, в котором несколько обнаружений могут способствовать каждой дорожке. Средство отслеживания инициализирует, подтверждает, корректирует, предсказывает (выполняет каботажное судоходство), и удаляет дорожки. Средство отслеживания оценивает вектор состояния и оценочную ошибочную ковариационную матрицу состояния для каждой дорожки. Каждое обнаружение присвоено по крайней мере одной дорожке. Если обнаружение не может быть присвоено никакой существующей дорожке, средство отслеживания создает новый трек.

Любой новый трек запускается в предварительном состоянии. Если достаточно обнаружений присвоено предварительной дорожке, ее изменениям состояния в подтвержденном. Если обнаружение уже имеет известную классификацию (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 с действительным знаком t-by-Nd матрица, где N t является количеством существующих дорожек, и N d является количеством текущих обнаружений.

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

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

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

Зависимости

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

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

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

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

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выбирают Enable detectable track 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 из них фактические дорожки.

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

В зависимости от логики дорожки дорожка подтверждена если:

  • История – дорожка получает, по крайней мере, M обнаружения в последнем N обновления. M и N заданы в Confirmation threshold для History логика.

  • Интегрированный – интегрированная вероятность существования дорожки выше, чем порог подтверждения, заданный в Confirmation threshold для Integrated логика.

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

Отследите идентификаторы, когда шаг начался.

CostMatrix

Стойте матрицы за присвоение.

Clusters

Массив ячеек кластерных отчетов. Дополнительную информацию см. в Выполнимых Объединенных Событиях.

InitiatedTrackIDs

Идентификаторы дорожек инициируются во время шага.

DeletedTrackIDs

Идентификаторы дорожек удалены во время шага.

TrackIDsAtStepEnd

Отследите идентификаторы когда законченный шаг.

Clusters поле может включать несколько кластерных отчетов. Каждый кластерный отчет является структурой, содержащей:

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

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

TrackIDs

Отследите идентификаторы кластеризованных дорожек.

ValidationMatrixМатрица валидации кластера. Дополнительную информацию см. в Выполнимых Объединенных Событиях.
SensorIndex

Индекс инициирующего датчика кластеризованных обнаружений.

TimeStampСредняя метка времени кластеризованных обнаружений.
MarginalProbabilitiesМатрица крайних следующих объединенных вероятностей ассоциации.

Зависимости

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

Параметры

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

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

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

Sensor Fusion and Tracking Toolbox™ предоставляет много функций инициализации:

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

Можно также записать собственную функцию инициализации, использующую этот синтаксис:

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

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

type initcvekf

Примечание

trackerJPDA не принимает все функции инициализации фильтра в Sensor Fusion and Tracking Toolbox. Полный список функций инициализации фильтра, доступных в Sensor Fusion and Tracking Toolbox, дан в разделе Initialization Фильтров Оценки.

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

Выполнимое объединенное имя функции генерации событий в виде указателя на функцию или как вектор символов, содержащий имя выполнимой объединенной функции генерации событий. Функция генерации генерирует выполнимые объединенные матрицы события от допустимых событий (обычно даваемый матрицей валидации или матрицей вероятности) сценария. Для получения дополнительной информации смотрите jpadEvents.

Можно также записать собственную функцию генерации.

  • Если параметр Value of k for k-best JPDA устанавливается на inf, функция должна иметь следующий синтаксис:

    FJE = myfunction(ValidationMatrix)
    Вход и из этой функции должен точно следовать за форматами, используемыми в jpdaEvents.

  • Если параметр Value of k for k-best JPDA устанавливается на конечное значение, функция должна иметь следующий синтаксис:

    [FJE,FJEProbs] = myfunction(likelihoodMatrix,k)
    Вход и из этой функции должен точно следовать за форматами, используемыми в jpdaEvents.

Для руководства в записи этой функции используйте type команда, чтобы исследовать детали jpdaEvents:

type jpdaEvents

Пример: @myfunction или 'myfunction'

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

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

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

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

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

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

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

Примечание

Средство отслеживания требует всех входных обнаружений, которые совместно используют тот же SensorIndex имейте их Time различия ограничены параметром Absolute tolerance between time stamps of detections. Поэтому, когда вы устанавливаете параметр Out-of-sequence measurements handling на 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.

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

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

“()” Присвоение

Порог для присвоения обнаружений к дорожкам (или пропускание порога) в виде положительной скалярной величины или вектора 1 на 2 [C 1,C2], где C 1C 2. Если задано как скаляр, заданное значение, val, расширено до [val, Inf].

Первоначально, средство отслеживания выполняет крупную оценку для нормированного расстояния между всеми дорожками и обнаружениями. Средство отслеживания только вычисляет точное нормированное расстояние для комбинаций, крупное нормированное расстояние которых меньше C 2. Кроме того, средство отслеживания может только присвоить обнаружение дорожке, если точное нормированное расстояние между ними меньше C 1. Смотрите distance функция используется с отслеживанием фильтров (таких как trackingCKF и trackingEKF) для объяснения расчета расстояния.

Советы:

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

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

Порог вероятности, чтобы инициализировать новый трек в виде скаляра в области значений [0, 1]. Если вероятности соединения обнаружения с какой-либо из существующих дорожек все меньше, чем InitializationThreshold, обнаружение используется, чтобы инициализировать новый трек. Это позволяет обнаружения, которые являются в логическом элементе валидации дорожки, но имеют вероятность ассоциации ниже, чем порог инициализации, чтобы породить новый трек.

Пример: 0.1

Вероятность обнаружения в виде скаляра в области значений [0, 1]. Это свойство используется в вычислениях крайних апостериорных вероятностей ассоциации и вероятности существования дорожки при инициализации и обновлении дорожки.

Пространственная плотность измерений помехи в виде положительной скалярной величины. Плотность помехи описывает ожидаемое количество ложных положительных обнаружений на единичный объем. Это используется в качестве параметра модели помехи Пуассона. Когда Type of track confirmation and deletion logic установлен в 'Integrated', этот параметр также используется в вычислении начальной вероятности существования дорожки.

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

Подтверждение и тип логики удаления, выбранный как:

  • History – Отследите подтверждение, и удаление основано на числе раз, дорожка была присвоена обнаружению в последних обновлениях средства отслеживания.

  • Integrated – Отследите подтверждение, и удаление основано на вероятности существования дорожки, которое интегрировано в функции присвоения.

Отследите порог подтверждения для логики истории в виде вектора 1 на 2 с действительным знаком положительных целых чисел [M N]. Дорожка подтверждена, если она получает, по крайней мере, M обнаружения в последнем N обновления.

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic на 'History'.

Отследите порог удаления для логики истории в виде вектора 1 на 2 с действительным знаком положительных целых чисел, [P Q]. Если, в P из последнего Q обновления средства отслеживания, подтвержденная дорожка не присвоена никакому обнаружению, которое имеет вероятность, больше, чем параметр Threshold for registering 'hit' or 'miss', затем та дорожка удалена.

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic на 'History'.

Порог для регистрации 'хита' или 'мисс' в виде скаляра в области значений [0, 1]. Логика истории дорожки указывает 'мисс', и дорожка будет курсироваться, если сумма безусловных вероятностей присвоений будет ниже HitMissThreshold. В противном случае логика истории дорожки указывает 'хит'.

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic на 'History'.

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

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic на 'Integrated'.

Отследите порог удаления для интегральной логики в виде положительной скалярной величины. Дорожка удалена, если ее вероятность существования опускается ниже этого порога.

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic на 'Integrated'.

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

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic на 'Integrated'.

Уровень времени истинных целевых смертельных случаев в виде скаляра в области значений [0, 1]. Этот параметр описывает вероятность, с которой исчезают истинные цели. Это связано с распространением вероятности существования дорожки (PTE):

PTE(t+δt)=(1DeathRate)δtPTE(t)

где DeathRate является уровнем времени истинных целевых смертельных случаев, и δt является временным интервалом с предыдущего раза обновления t.

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic на 'Integrated'.

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

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

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

Установите этот флажок, чтобы включить входной порт Detectable track IDs .

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

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

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

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

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

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

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

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

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

Примеры модели

Track Vehicles Using Lidar Data in Simulink

Отследите транспортные средства Используя данные о лидаре в Simulink

Отследите транспортные средства с помощью измерений от датчика лидара, смонтированного сверху автомобиля, оборудованного датчиком. Из-за высоких разрешающих способностей датчика лидара, каждый скан от датчика содержит большое количество точек, обычно известных как облако точек. Пример иллюстрирует рабочий процесс в Simulink для обработки облака точек и отслеживания объектов. Данные о лидаре, используемые в этом примере, зарегистрированы от магистрали ведущий сценарий. Вы используете записанные данные, чтобы отследить транспортные средства со средством отслеживания объединенной вероятностной ассоциации данных (JPDA) и подходом взаимодействующей многоуровневой модели (IMM). Пример сопровождает Транспортные средства Дорожки Используя Лидар: От Облака точек до примера Track List MATLAB®.

Алгоритмы

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

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

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

Введенный в R2019b
Для просмотра документации необходимо авторизоваться на сайте