Joint Probabilistic Data Association Multi Object Tracker

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

  • Библиотека:
  • Sensor Fusion and Tracking Toolbox

Описание

Блок 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. Структура имеет форму:

Поле Описание
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 Фильтров Оценки.

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

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

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

type jpdaEvents

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

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

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

  • 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]. Дорожка удалена если в последнем Q обновления, это было присвоено меньше, чем P обнаружения.

Зависимости

Чтобы включить этот параметр, установите 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