Grid-Based Multi Object Tracker

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

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

  • Grid-Based Multi Object Tracker block

Описание

Grid-Based Multi Object Tracker является средством отслеживания, способным к обработке обнаружений нескольких целей от нескольких датчиков в 2D среде. Средство отслеживания отслеживает динамические объекты вокруг автономной системы с помощью данных о датчике высокого разрешения, такие как радарные обнаружения и облака точек. Средство отслеживания использует основанный на случайном конечном множестве (RFS) подход, объединенный приближениями Демпстера-Шейфра [1], чтобы оценить динамические характеристики ячеек сетки. Чтобы извлечь объекты из сетки, средство отслеживания использует схему [2] ассоциации ячейки к дорожке. Для получения дополнительной информации см. Алгоритмы.

Порты

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

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

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

Поле Описание
NumSensorsКоличество датчиков в виде неотрицательного целого числа.
SensorDataДанные о датчике в виде массива структур данных датчика. Первый NumSensors элементами массива являются фактические обнаружения.

Каждый SensorData структура содержит эти поля::

Поле Описание
TimeВремя измерения в виде неотрицательного скаляра.
SensorIndexУникальный идентификатор датчика в виде положительного целого числа.
MeasurementОбъектные измерения, заданные K-by-M матрица. K является размерностью каждого измерения, и M является количеством измерений. Каждое измерение задает позиционные аспекты обнаружения в прямоугольной или сферической системе координат.
MeasurementParameters

Параметры измерения в виде структуры, описывающей преобразование от частицы, утверждают к измерению. Смотрите MeasurementParameter свойство objectDetection объект для получения дополнительной информации о подготовке этого поля.

NumMeasurementsКоличество измерений или числа точек в обнаружениях датчика облака точек в виде положительного целого числа.

Примечание

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

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

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

Зависимости

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

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

Поле Описание
NumConfigurationsКоличество настроек датчика в виде положительного целого числа.
ConfigurationsНастройки датчика в виде массива конфигурационных структур датчика. Первый NumConfigurations элементами массива являются фактические настройки. Позволенные имена полей и определения соответствуют свойствам trackingSensorConfiguration объект. Средство отслеживания игнорирует FilterInitializationFcn, SensorTransformFcn, и MaxNumDetsPerObject поля, даже когда вы задаете их в структуре.

Зависимости

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

Отследите параметры состояния в виде шины Simulink, содержащей структуру MATLAB. Блок использует эту структуру в качестве значения 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 элементом массива являются фактические дорожки.

Поля структуры дорожки показывают в Структуре Дорожки. Форма состояния каждой дорожки следует за формой, заданной в параметре Motion model for tracking.

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

Структура содержит эти поля:

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

Поля структуры дорожки показывают в Структуре Дорожки. Форма состояния каждой дорожки следует за формой, заданной в параметре Motion model for tracking.

Зависимости

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

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

Структура содержит эти поля:

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

Поля структуры дорожки показывают в Структуре Дорожки. Форма состояния каждой дорожки следует за формой, заданной в параметре Motion model for tracking.

Зависимости

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

Параметры

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

Настройка средства отслеживания

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

Пример 1

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

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

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

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

Имя поляФормат
SensorIndex

Уникальный идентификатор датчика в виде положительного целого числа.

IsValidTime

Укажите, должны ли данные о датчике использоваться, чтобы обновить дорожки в виде true или false.

SensorTransformParameters

Параметры датчика преобразовывают функцию в виде p - массив элемента структур параметра измерения. p является количеством датчиков. Каждая структура должна содержать поля с теми же именами как параметры измерения, используемые в функции измерения, такой как cvmeas функция.

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

SensorLimits

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

Другие позволенные имена полей каждой структуры соответствуют именам свойства trackingSensorConfiguration объект. Средство отслеживания игнорирует FilterInitializationFcn, SensorTransformFcn, и MaxNumDetsPerObject поля, даже когда вы задаете их в структуре.

Можно обновить настройки при помощи входного порта Sensor configurations после выбора параметра Update sensor configurations with time.

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

Задайте параметры системы координат состояния дорожки как структура. Блок передает значение этого параметра к 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.

Выберите этот параметр, чтобы позволить использовать графический процессор для оценки динамической карты сетки. Включение расчета графического процессора требует Parallel Computing Toolbox™.

Задайте x-размерность сетки в локальных координатах как положительная скалярная величина в метрах.

Задайте y-размерность сетки в локальных координатах как положительная скалярная величина в метрах.

Задайте разрешение сетки как положительная скалярная величина. Разрешение представляет количество ячеек на метр сетки и для x-и для направлений Y сетки.

Задайте источник сетки в системе координат локальной координаты как двухэлементный вектор из скаляров в метрах.

Выберите тип симуляции, чтобы запуститься из этих опций:

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

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

Фильтрация частицы

Выберите модель движения для отслеживания как constant-velocity, constant-acceleration, или constant-turnrate.

Частица и объектное состояние состояния для каждой модели движения:

Модель движенияСостояние частицыОбъектное состояние
constant-velocity[x; vx; y; vy] [x; vx; y; vy; yaw; L; W]
constant-acceleration[x; vx; ax; y; vy; ay][x; vx; ax; y; vy; ay; yaw; L; W]
constant-turn-rate[x; vx; y; vy; w][x; vx; y; vy; w; yaw; L; W]

где:

  • x — Положение объекта в направлении X локальной системы координат отслеживания (m)

  • y — Положение объекта в направлении Y локальной системы координат отслеживания (m)

  • vx — Скорость объекта в направлении X локальной системы координат отслеживания (m/s)

  • vy — Скорость объекта в направлении Y локальной системы координат отслеживания (m/s)

  • ax — Ускорение объекта в направлении X локальной системы координат отслеживания (m/s2)

  • ay — Ускорение объекта в направлении Y локальной системы координат отслеживания (m/s2)

  • w — Уровень рыскания объекта в локальной системе координат отслеживания (градус/с)

  • yaw — Угол рыскания объекта в локальной системе координат отслеживания (градус)

  • L — Длина объекта (m)

  • W — Ширина объекта (m)

Задайте минимальные и максимальные скорости объектов как матрица 2 на 2 скаляров в m/s. Первая строка задает более низкие и верхние скоростные пределы в направлении X, и вторая строка задает более низкие и верхние скоростные пределы в направлении Y. Средство отслеживания использует эти пределы, чтобы произвести новые частицы в сетке с помощью равномерного распределения.

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

Задайте ковариацию шума процесса как N-by-N матрица. Этот параметр задает шум процесса для положений частиц и геометрических центров целей.

  • Если вы выбираете параметр Enable additive process noise, шум процесса добавляет непосредственно к модели предсказания. В этом случае N равен размерности состояния частицы в параметре Motion model for tracking.

  • Если вы не выбираете параметр Enable additive process noise, задайте шум процесса согласно выбранной модели движения. Модель добавляет шум процесса в термины высшего порядка, такие как ускорение для constant-velocity модель.

    MotionModelКоличество условий для ускоренияЗначение условий
    constant-velocity2Ускорение в x-и y-направлениях
    constant-acceleration2Дергайтесь в x-и y-направлениях
    constant-turn-rate3Ускорение в x-и y-направлениях, а также угловое ускорение

Пример: [1.0 0.05; 0.05 2]

Задайте количество персистентных частиц на сетку как положительное целое число. Более высокое количество частиц может улучшить качество оценки, но может увеличить вычислительную стоимость.

Укажите, что количество новорожденного (инициализировало) частицы на временной шаг как положительное целое число. Средство отслеживания определяет местоположения этих новорожденных частиц при помощи несоответствия между предсказанным и обновленными массами веры заполнения и параметром Probability of birth in a cell per step. Рыночная стоимость этого параметра составляет приблизительно 10 процентов количества частиц, заданных параметром Number of persistent particles.

Задайте вероятность целевого рождения в ячейке на шаг как скаляр в области значений [0, 1). Вероятность рождения управляет вероятностью, что новые частицы сгенерированы в ячейке.

Пример: 1e-4

Задайте уровень смертности целей в единицу времени как положительная скалярная величина. Уровень смертности указывает на возможность, что частица или цель исчезают после каждого временного шага. Уровень смертности (P d) влияет на вероятность выживания (P s) компонента через последовательные временные шаги как:

Ps=(1Pd)ΔT

где Δ T является количеством временных шагов.

Пример: 1e-4

Задайте доверие к предсказанию свободного пространства как скаляр. На этапе предсказания средства отслеживания этот параметр уменьшает массу веры ячейки, чтобы быть в "свободном" (незанятом) состоянии как:

mk|k1(F)=αΔTmk1(F)

где k является индексом временного шага, m является массой веры, α является фактором, представляющим доверие к предсказанию свободного пространства и Δ, T является временным шагом.

Выберите метод генерации seed случайных чисел как Repeatable, Not repeatable, или Specify seed.

  • Repeatable — Блок использует тот же случайный seed каждый раз.

  • Not repeatable — Блок использует различный случайный seed каждый раз.

  • Specify seed — Задайте случайный seed для блока с помощью параметра Initial Seed.

Задайте начальный seed для рандомизации в блоке как неотрицательное целое число.

Зависимости

Чтобы включить этот параметр, выберите параметр Random number generation как Specify seed.

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

Задайте метод кластеризации, используемый для новой объектной экстракции как DBSCAN или Custom.

  • DBSCAN — Кластер отменил присвоение динамических ячеек сетки с помощью основанной на плотности пространственной кластеризации приложений с шумом (DBSCAN) алгоритм. Можно сконфигурировать алгоритм DBSCAN путем определения параметров Minimum number of cells per cluster for DBSCAN и Threshold for DBSCAN clustering.

  • Custom — Кластер отменил присвоение динамических ячеек сетки с помощью пользовательской функции кластеризации, заданной в параметре Name of 'Custom' clustering function.

Задайте порог для DBSCAN, кластеризирующегося как положительная скалярная величина.

Зависимости

Чтобы включить этот параметр, выберите параметр Clustering method for new object extraction как DBSCAN.

Задайте минимальное количество ячеек на кластер для DBSCAN как положительное целое число. Этот параметр влияет, является ли точка базовой точкой в алгоритме DBSCAN.

Зависимости

Чтобы включить этот параметр, выберите параметр Clustering method for new object extraction как DBSCAN.

Задайте имя пользовательской функции для кластеризации неприсвоенных ячеек сетки как имя функции. Функция должна поддержать эту подпись:

function indices = myFunction(dynamicGridCells)
где dynamicGridCells структура, которая задает набор ячеек сетки, инициализирующих дорожку. Это должно иметь эти поля:

Поле Описание
WidthШирина ячейки в виде положительной скалярной величины.
GridIndicesИндексы ячеек сетки в виде N-by-2 массив, где N является количеством неназначенных ячеек. Первый элемент задает индекс сетки в направлении X, и второй элемент задает индекс сетки в направлении Y.
StateСостояния ячеек сетки в виде P-by-N массив скаляров, где P является размерностью состояния и N, являются количеством неназначенных ячеек.
StateCovarianceКовариации состояния ячеек сетки в виде P-by-P-by-N массив скаляров, где P является размерностью состояния и N, являются количеством неназначенных ячеек.
OccupancyMassМасса веры заполнения ячеек в виде N - вектор элемента, где N является количеством неназначенных ячеек.
FreeMassСвободная масса веры ячеек в виде N - вектор элемента, где N является количеством неназначенных ячеек.

Пользовательская функция должна возвратить indices как N - вектор элемента из индексов, который задает кластерный индекс для каждой динамической ячейки сетки.

Зависимости

Чтобы включить этот параметр, выберите параметр Clustering method for new object extraction как Custom.

Укажите, что функция раньше инициализировала новые треки как имя функции. Функция инициализации инициирует дорожку от набора динамических ячеек сетки.

Функция инициализации по умолчанию объединяет Гауссовы оценки от ячеек, чтобы описать состояние объекта. Ориентация объекта выравнивается с направлением его средней скорости. С заданной ориентацией длина и ширина объекта извлечены с помощью геометрических свойств ячеек. Блок вычисляет неопределенность в длине, ширине и оценках ориентации с помощью линейных аппроксимаций.

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

function track = myFunction(dynamicGridCells)
где dynamicGridCells структура, которая задает набор ячеек сетки, инициализирующих дорожку. Это имеет эти поля:

Поле Описание
WidthШирина ячейки в виде положительной скалярной величины.
GridIndicesИндексы ячеек сетки в виде N-by-2 массив, где N является количеством неназначенных ячеек. Первый элемент задает индекс сетки в направлении X, и второй элемент задает индекс сетки в направлении Y.
StateСостояния ячеек сетки в виде P-by-N массив скаляров, где P является размерностью состояния и N, являются количеством неназначенных ячеек.
StateCovarianceКовариации состояния ячеек сетки в виде P-by-P-by-N массив скаляров, где P является размерностью состояния и N, являются количеством неназначенных ячеек.
OccupancyMassМасса веры заполнения ячеек в виде N - вектор элемента, где N является количеством неназначенных ячеек.
FreeMassСвободная масса веры ячеек в виде N - вектор элемента, где N является количеством неназначенных ячеек.

Пользовательская функция должна возвратить track как objectTrack возразите или структура с именами полей, которые соответствуют именам свойства objectTrack объект. Размерность состояния должна совпасть с размерностью состояния, заданной в параметре Motion model for tracking.

Пример: myFunction

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

Функция обновления по умолчанию обновляет State и StateCovariance поля дорожки с помощью новой оценки от динамических ячеек сетки сопоставлены с дорожкой. Процесс обновления похож на процесс инициализации для параметра Function to initialize tracks from grid cell sets. Средство отслеживания не применяет фильтрацию к ковариации состояния и состояния.

Если вы принимаете решение настроить свою собственную функцию обновления, функция должна поддержать эту подпись:

function updatedTrack = TrackUpdateFcn(predictedTrack,dynamicGridCells)
где:

  • predictedTrack предсказанная дорожка объекта в виде objectTrack объект.

  • dynamicGridCells структура, которая задает набор динамических ячеек сетки, сопоставленных с дорожкой. Структура имеет эти поля:

    Поле Описание
    WidthШирина ячейки в виде положительной скалярной величины.
    GridIndicesИндексы ячеек сетки в виде N-by-2 массив, где N является количеством неназначенных ячеек. Первый элемент задает индекс сетки в направлении X, и второй элемент задает индекс сетки в направлении Y.
    StateСостояния ячеек сетки в виде P-by-N массив скаляров, где P является размерностью состояния и N, являются количеством неназначенных ячеек.
    StateCovarianceКовариации состояния ячеек сетки в виде P-by-P-by-N массив скаляров, где P является размерностью состояния и N, являются количеством неназначенных ячеек.
    OccupancyMassМасса веры заполнения ячеек в виде N - вектор элемента, где N является количеством неназначенных ячеек.
    FreeMassСвободная масса веры ячеек в виде N - вектор элемента, где N является количеством неназначенных ячеек.

  • updatedTrack обновленная дорожка, возвращенная как objectTrack возразите или структура, которая имеет имена полей, которые соответствуют именам свойства objectTrack объект.

Пример: TrackUpdateFcn

Задайте порог для присвоения динамических ячеек сетки к дорожкам как положительная скалярная величина. Динамическая ячейка сетки может только быть сопоставлена к дорожке, если ее расстояние (представленный отрицательной логарифмической правдоподобностью) к дорожке меньше значения этого параметра.

  • Увеличьте порог, если динамическая ячейка не присваивается дорожке, которой это должно быть присвоено.

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

Пример: 18.1

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

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

Пример: 0.01

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

Визуализация

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

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

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

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

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

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

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

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

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

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

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

Алгоритмы

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

Ссылки

[1] Nuss, D., Агентство Рейтер, S., Том, M., Юань, T., Krehl, G., Maile, M., Gern, A. и Dietmayer, K., 2018. Случайное конечное множество приближается для динамических карт сетки заполнения с приложением реального времени. Международный журнал Исследования Робототехники, 37 (8), pp.841-866.

[2] Steyer, Саша, Георг Танцмайстер и Дирк Уоллэрр. "Отслеживание объекта на основе очевидных динамических сеток заполнения в городских средах". В 2 017 IEEE Интеллектуальный Симпозиум Транспортных средств (IV), стр 1064-1070. IEEE, 2017.

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

Введенный в R2021b