exponenta event banner

Многообъектный трекер

Создание дорожек для нескольких объектов и управление ими

  • Библиотека:
  • Автоматизированная панель инструментов вождения

  • Multi-Object Tracker block

Описание

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

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

Многообъектный трекер также оценивает ковариационную матрицу вектора состояния и вектора состояния для каждой дорожки с использованием фильтра Калмана. Эти векторы состояния используются для прогнозирования местоположения дорожки в каждом кадре и определения вероятности назначения каждого обнаружения каждой дорожке.

Порты

Вход

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

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

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

Определения структур обнаружения объектов содержатся в описаниях портов вывода обнаружений блоков «Генератор данных радара» и «Генератор обнаружения зрения».

Примечание

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

Отслеживать время обновления, указанное как действительный скаляр. Многообъектный трекер обновляет все дорожки до этого времени. Время обновления всегда должно увеличиваться с каждым вызовом блока. Единицы измерения в секундах.

Примечание

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

Зависимости

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

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

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

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

Зависимости

Чтобы включить этот порт, выберите Включить ввод матрицы затрат.

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

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

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

Зависимости

Чтобы включить этот порт, на вкладке 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. См. раздел Создание невиртуальных шин (Simulink).

В этой таблице представлены поля структуры.

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

В этой таблице представлены поля каждой структуры дорожки.

ОбластьОпределение
TrackIDУникальный идентификатор дорожки, используемый для различения нескольких дорожек.
BranchIDУникальный идентификатор ветви дорожки, используемый для различения нескольких ветвей дорожки.
SourceIndexУникальный индекс источника, используемый для различения источников отслеживания в среде нескольких трекеров.
UpdateTimeВремя обновления дорожки. Единицы измерения в секундах.
AgeЧисло обновлений дорожки.
State

Значение вектора состояния во время обновления.

StateCovariance

Ковариационная матрица неопределенности.

ObjectClassIDЦелое значение, представляющее классификацию объектов. Стоимость 0 представляет неизвестную классификацию. Ненулевые классификации применяются только к подтвержденным трекам.
TrackLogicЛогический тип подтверждения и удаления. Это значение всегда 'History' для радиолокационных датчиков - для индикации логики, основанной на истории.
TrackLogicState

Текущее состояние типа логики дорожки, возвращаемое как 1-by-K логический массив. K - количество записанных последних логических состояний дорожки. В массиве, 1 обозначает попадание и 0 обозначает промах.

IsConfirmedСтатус подтверждения. Это поле true если дорожка подтверждена как реальная цель.
IsCoastedСостояние движения по побережью. Это поле true если дорожка обновляется без нового обнаружения.
IsSelfReported

Укажите, сообщается ли трекер о дорожке. Это поле используется в среде слияния дорожек. Возвращается как true по умолчанию.

ObjectAttributesДополнительная информация о дорожке.

Дополнительные сведения об этих полях см. в разделе objectTrack.

Дорожка подтверждается, если:

  • По меньшей мере М обнаружений назначаются дорожке во время первых N обновлений после инициализации дорожки. Для определения значений M и N используйте M и N для параметра подтверждения M-out-of-N.

  • Обнаружение, инициирующее дорожку, имеет ObjectClassID больше нуля.

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

В этой таблице представлены поля структуры.

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

В этой таблице представлены поля каждой структуры дорожки.

ОбластьОпределение
TrackIDУникальный идентификатор дорожки, используемый для различения нескольких дорожек.
BranchIDУникальный идентификатор ветви дорожки, используемый для различения нескольких ветвей дорожки.
SourceIndexУникальный индекс источника, используемый для различения источников отслеживания в среде нескольких трекеров.
UpdateTimeВремя обновления дорожки. Единицы измерения в секундах.
AgeЧисло обновлений дорожки.
State

Значение вектора состояния во время обновления.

StateCovariance

Ковариационная матрица неопределенности.

ObjectClassIDЦелое значение, представляющее классификацию объектов. Стоимость 0 представляет неизвестную классификацию. Ненулевые классификации применяются только к подтвержденным трекам.
TrackLogicЛогический тип подтверждения и удаления. Это значение всегда 'History' для радиолокационных датчиков - для индикации логики, основанной на истории.
TrackLogicState

Текущее состояние типа логики дорожки, возвращаемое как 1-by-K логический массив. K - количество записанных последних логических состояний дорожки. В массиве, 1 обозначает попадание и 0 обозначает промах.

IsConfirmedСтатус подтверждения. Это поле true если дорожка подтверждена как реальная цель.
IsCoastedСостояние движения по побережью. Это поле true если дорожка обновляется без нового обнаружения.
IsSelfReported

Укажите, сообщается ли трекер о дорожке. Это поле используется в среде слияния дорожек. Возвращается как true по умолчанию.

ObjectAttributesДополнительная информация о дорожке.

Дополнительные сведения об этих полях см. в разделе objectTrack.

Зависимости

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

Сводный список подтвержденных и предварительных дорожек, возвращенных в виде шины Simulink, содержащей структуру MATLAB. См. раздел Создание невиртуальных шин (Simulink).

В этой таблице представлены поля структуры.

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

В этой таблице представлены поля каждой структуры дорожки.

ОбластьОпределение
TrackIDУникальный идентификатор дорожки, используемый для различения нескольких дорожек.
BranchIDУникальный идентификатор ветви дорожки, используемый для различения нескольких ветвей дорожки.
SourceIndexУникальный индекс источника, используемый для различения источников отслеживания в среде нескольких трекеров.
UpdateTimeВремя обновления дорожки. Единицы измерения в секундах.
AgeЧисло обновлений дорожки.
State

Значение вектора состояния во время обновления.

StateCovariance

Ковариационная матрица неопределенности.

ObjectClassIDЦелое значение, представляющее классификацию объектов. Стоимость 0 представляет неизвестную классификацию. Ненулевые классификации применяются только к подтвержденным трекам.
TrackLogicЛогический тип подтверждения и удаления. Это значение всегда 'History' для радиолокационных датчиков - для индикации логики, основанной на истории.
TrackLogicState

Текущее состояние типа логики дорожки, возвращаемое как 1-by-K логический массив. K - количество записанных последних логических состояний дорожки. В массиве, 1 обозначает попадание и 0 обозначает промах.

IsConfirmedСтатус подтверждения. Это поле true если дорожка подтверждена как реальная цель.
IsCoastedСостояние движения по побережью. Это поле true если дорожка обновляется без нового обнаружения.
IsSelfReported

Укажите, сообщается ли трекер о дорожке. Это поле используется в среде слияния дорожек. Возвращается как true по умолчанию.

ObjectAttributesДополнительная информация о дорожке.

Дополнительные сведения об этих полях см. в разделе objectTrack.

Зависимости

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

Параметры

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

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

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

Пример: 1

Функция инициализации фильтра Калмана, указанная как имя функции. Панель инструментов предоставляет несколько функций инициализации. Пример функции инициализации см. в разделе initcvekf.

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

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

  • При настройке Nрассмотрите количество обновлений трекера, прежде чем он подтвердит дорожку. Например, если трекер обновляется каждые 0,05 секунды, а для принятия решения о подтверждении требуется 0,5 секунды, установите N = 10.

  • При настройке M, учитывать вероятность обнаружения объекта для датчиков. Вероятность обнаружения зависит от таких факторов, как окклюзия или загромождение. Вы можете сократить M когда трассы не могут быть подтверждены или увеличены M если для дорожек назначено слишком много ложных обнаружений.

Пример: [3,5]

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

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

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

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

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

  • 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.

Входы и выходы

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

Пример: Auto

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

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

Источник имени выходной шины, указанный как Auto или Property.

  • При выборе Autoблок автоматически создает имя шины.

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

Зависимости

Чтобы включить этот параметр, установите для параметра Source of output bus name значение Property.

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

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

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

  • Code generation - Моделирование модели с использованием сгенерированного кода C/C + +. При первом запуске моделирования Simulink генерирует код C/C + + для блока. Код C используется повторно для последующего моделирования до тех пор, пока модель не изменится. Для этого параметра требуется дополнительное время запуска.

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

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

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