exponenta event banner

Мультиобъектный трекер совместной вероятностной ассоциации данных

Совместный вероятностный трекер ассоциации данных

  • Библиотека:
  • Панель инструментов для слияния и отслеживания датчиков/алгоритмы отслеживания нескольких объектов

  • Joint Probabilistic Data Association Multi Object Tracker block

Описание

Блок мультиобъектного трекера Объединенной вероятностной ассоциации данных способен обрабатывать обнаружения множества целей от множества датчиков. Трекер использует совместную вероятностную ассоциацию данных для назначения обнаружений каждой дорожке. Трекер применяет мягкое назначение, в котором множественные обнаружения могут вносить вклад в каждую дорожку. Трекер инициализирует, подтверждает, корректирует, прогнозирует (выполняет накрутку) и удаляет дорожки. Трекер оценивает вектор состояния и ковариационную матрицу ошибки оценки состояния для каждой дорожки. Каждое обнаружение назначается, по меньшей мере, одной дорожке. Если обнаружение не может быть назначено какой-либо существующей дорожке, трекер создает новую дорожку.

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

Порты

Вход

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

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

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

Поля обнаружений:

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

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

Примечание

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

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

Если порт не активизирован, время обновления определяется синхросигналом моделирования, управляемым Simulink.

Зависимости

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

Матрица затрат, заданная как действительная матрица Nt-by-Nd, где Nt - количество существующих дорожек, а Nd - количество текущих обнаружений.

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

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

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

Зависимости

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

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

Треки, идентификаторы которых не включены в обнаруживаемые идентификаторы TrackID, считаются необнаруживаемыми. Логика удаления дорожки не засчитывает отсутствие обнаружения как «пропущенное обнаружение» для целей удаления дорожки.

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

Зависимости

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

Поля структуры дорожки отображаются в структуре дорожки.

В зависимости от логики пути, путь подтверждается, если:

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

  • Integrated - интегрированная вероятность существования пути выше порога подтверждения, указанного в пороговом значении подтверждения для 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.

Параметры

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

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

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

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 и Tracking. Полный список функций инициализации фильтра, доступных в Sensor Fusion и Tracking Toolbox, приведен в разделе Initialization (Инициализация) окна Estimation Filters (Фильтры оценки).

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

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

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

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

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

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

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

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

type jpdaEvents

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

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

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

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

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

Если параметр указан как:

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

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

Примечание

Для трекера требуются все обнаруженные входные данные, которые являются общими SensorIndex имеют свои Time различия, ограниченные параметром Absolute tolerance между метками времени обнаружений. Поэтому при установке для параметра обработки измерений вне последовательности значения 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 генерирует код C для блока. Код C используется повторно для последующего моделирования до тех пор, пока модель не изменится. Для этого параметра требуется дополнительное время запуска.

Назначение

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

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

Совет:

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

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

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

Пример: 0.1

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

Пространственная плотность измерений загромождения, заданная как положительный скаляр. Плотность беспорядка описывает ожидаемое количество ложноположительных обнаружений на единицу объема. Используется в качестве параметра модели захламления Пуассона. Если для параметра Тип логики подтверждения и удаления трека установлено значение 'Integrated', этот параметр также используется при вычислении начальной вероятности существования дорожки.

Логика отслеживания

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

  • History - Подтверждение и удаление трека основано на количестве назначений трека обнаружению в последних обновлениях трекера.

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

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

Зависимости

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

Порог удаления отслеживания для логики истории, заданный как действительный вектор 1 на 2 положительных целых чисел, [P Q]. Если, в P последнего Q трекер обновляет, подтвержденная дорожка не назначается никакому обнаружению, вероятность которого превышает порог регистрации параметра «попадание» или «промах», затем эта дорожка удаляется.

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

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

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

Зависимости

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

Настройка порта

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

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

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

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

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

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

Источник имени шины выходного пути, указанный как:

  • Auto - Блок автоматически создает имя шины выходного пути.

  • Property - укажите имя шины выходной дорожки с помощью параметра Specify an output bus name.

Источник имени шины выходной информации, указанный как одна из следующих опций:

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

  • Property - укажите имя шины выходной информации с помощью параметра Specify an output bus name.

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

Track Vehicles Using Lidar Data in Simulink

Отслеживание транспортных средств с использованием данных Lidar в Simulink

Отслеживание транспортных средств с помощью измерений с помощью лидарного датчика, установленного на верхней части эго-транспортного средства. Благодаря высокой разрешающей способности лидарного датчика каждое сканирование датчика содержит большое количество точек, обычно известных как облако точек. Пример иллюстрирует рабочий процесс в Simulink для обработки облака точек и отслеживания объектов. Данные лидара, используемые в этом примере, записываются из сценария движения по шоссе. Записанные данные используются для отслеживания транспортных средств с помощью совместного трекера вероятностных данных (JPDA) и подхода, основанного на взаимодействии нескольких моделей (IMM). Пример полностью соответствует примеру Track Vehicles Using Lidar: From Point Cloud to Track List MATLAB ®.

Алгоритмы

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2019b