Probability Hypothesis Density (PHD) Tracker

Мультисенсорный, многообъектный PHD-трекер

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

  • Probability Hypothesis Density Tracker block

Описание

Блок Probability Hypothesis Density (PHD) Tracker создает и управляет треками стационарных и движущихся объектов в мультисенсорном окружении. Трекер использует фильтр плотности гипотезы множественных целевых вероятностей, чтобы оценить состояния точечных целей и расширенных объектов. PHD представлен взвешенным суммированием функций плотности вероятностей, и пики в PHD извлечены, чтобы представлять возможные цели. Смотрите Алгоритмы для получения дополнительной информации.

Порты

Вход

расширить все

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

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

Поля Detections являются:

ОбластьОписаниеНапечатать
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.

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

ОбластьОписаниеНапечатать
NumConfigurationsКоличество строений датчикаЦелое число.
ConfigurationsСтроения датчикаМассив структур строения датчика. Первый NumConfigurations из этих строений являются фактическими строениями. Допустимые имена и определения полей совпадают с соответствующими свойствами trackingSensorConfiguration объект.

Зависимости

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

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

Поля структуры дорожки показаны в Track Structure.

Ориентировочные дорожки, возвращенные как шина Simulink, содержащая структуру MATLAB. Дорожка является ориентировочной, прежде чем она будет подтверждена. Выходы этого порта имеют ту же форму, что и выходы порта Confirmed Tracks.

Зависимости

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

Объединенный список подтвержденных и ориентировочных дорожек, возвращенных как шина Simulink, содержащая структуру MATLAB. Выходы этого порта имеют ту же форму, что и выходы порта Confirmed Tracks.

Зависимости

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

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

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

ОбластьОписание
CorrectionOrder

Порядок, в котором датчики используются для коррекции оценки состояния, возвращается как вектор-строка SensorIndex значения. Для примера [1 3 2 4].

TrackIDsAtStepBeginning

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

DeletedTrackIDs

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

TrackIDsAtStepEnd

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

SensorAnalysisInfo

Массив ячеек информации анализа датчика.

The SensorAnalysisInfo поле может включать в себя несколько информационных отчетов о датчике. Каждый отчет представляет собой структуру, содержащую следующие поля:

ОбластьОписание
SensorIndex

Индекс датчика.

DetectionCells

Обнаружение камер, возвращенное как логическая матрица. Каждый столбец матрицы обозначает камеру обнаружения. В каждом столбце, если i элемент равен 1, то i-й обнаружение принадлежит камере обнаружения, обозначенной этим столбцом.

DetectionLikelihoods

Правдоподобия ассоциации между компонентами в функции плотности и камерах обнаружения, возвращенная как матрица N -by P. N - количество компонентов в функции плотности, а P - количество камер обнаружения.

IsBirthCells

Указывает, указаны ли камеры обнаружения в DetectionCells родить новые дорожки, возвращенные как 1-бай- P логический вектор, где P - количество камер обнаружения.

NumPartitions

Количество разделов.

DetectionProbability

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

LabelsBeforeCorrection

Метки компонентов в функции плотности перед коррекцией возвращаются как вектор-строка 1-by- M b. M b - количество компонентов, поддерживаемых в трекере перед коррекцией. Каждый элемент вектора является TrackID. Для примера [1 1 2 0 0]. Обратите внимание, что несколько компонентов могут совместно использовать одну и ту же TrackID.

LabelsAfterCorrection

Метки компонентов в функции плотности после коррекции, возвращенные как 1-байт- M вектор-строка. M a - количество компонентов, поддерживаемых в трекере после коррекции. Каждый элемент вектора является TrackID. Для примера [1 1 2 2 0 0]. Обратите внимание, что несколько компонентов могут совместно использовать одну и ту же TrackID.

WeightsBeforeCorrection

Веса компонентов в функции плотности перед коррекцией, возвращенные как вектор-строка 1-by M b. M b - количество компонентов, поддерживаемых в трекере перед коррекцией. Каждый элемент вектора является весом соответствующего компонента в LabelsBeforeCorrection. Для примера [0,1 0,5 0,7 0,3 0,2].

WeightsAfterCorrection

Веса компонентов в функции плотности после коррекции, возвращенные как 1-by- M вектор-строка. M a - количество компонентов, поддерживаемых в трекере после коррекции. Каждый элемент вектора является весом соответствующего компонента в LabelsAfterCorrection. Для примера [0,1 0,4 0,2 0,6 0,3 0,2 0,2].

Зависимости

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

Параметры

расширить все

Строение трекера

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

Пример: 1

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

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

type partitionDetections

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

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

Пример: 18.1

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

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

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

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

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

Строение датчиков слежения, заданная как структура или массив структур. Этот параметр предоставляет информацию о строении датчика слежения, такие как пределы обнаружения датчика и разрешение датчика, трекеру. Допустимые имена полей каждой структуры совпадают с именами свойства trackingSensorConfiguration объект. Если вы задаете MaxDetsPerObject поле структуры для 1, трекер создает только один раздел, так что самое большее одно обнаружение может быть назначено каждому целевому объекту.

Вы можете обновить строение через 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 входной порт.

Выберите тип симуляции для выполнения из следующих опций:

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

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

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

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

  1. Прогнозирующая плотность рождения - эта плотность инициализируется FilterInitializationFcn функция при вызове без входов.

  2. Адаптивная плотность рождения - Эта плотность инициализируется FilterInitializationFcn функция при вызове с входами обнаружения. Трекер выбирает обнаружения на основе их логарифмической правдоподобности связи с текущими оценками целей.

Значение для параметра Birth rate of new targets представляет суммирование как прогнозирующей плотности рождения, так и адаптивной плотности рождения для каждого временного шага.

Пример: 0.01

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

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

Ps=(1Pd)ΔT

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

Пример: 1e-4

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

Порог для инициализации ориентировочной дорожки, заданное как положительный действительный скаляр. Если вес компонента выше порога, компонент помечается как 'Tentative' отследить и задать TrackID.

Пример: 0.45

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

Порог для подтверждения дорожки, заданное как положительный действительный скаляр. В PHD-трекере трек может иметь несколько компонентов, разделяющих одну и ту же TrackID. Если суммирование веса компонентов предварительной дорожки выше порога подтверждения, статус дорожки помечается как 'Confirmed'.

Пример: 0.85

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

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

Пример: 0.01

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

Порог для объединения компонентов, заданное как положительный действительный скаляр. В трекере PHD, если расстояние Kullback-Leibler между компонентами с той же TrackID меньше порога слияния, затем эти компоненты объединяются в один компонент. Объединенный вес нового компонента равен суммированию весов предварительно объединенных компонентов. Более того, если объединенный вес выше первого порога, заданного в параметре Thresholds for label management, объединенный вес обрезается до первого порога. Обратите внимание, что компоненты с TrackID от 0 могут также быть объединены друг с другом.

Пример: 30

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

Пороги маркировки, заданные как вектор 1 на 3 уменьшения положительных значений, [C 1, C 2, C 3]. Исходя из этого параметра, трекер управляет компонентами плотности, используя следующие правила:

  1. Вес любого компонента, который выше первого порога C 1, уменьшается до C 1.

  2. Для всех компонентов с одинаковыми TrackID, если наибольший вес среди этих компонентов больше C 2, то компонент с наибольшим весом сохраняется, чтобы сохранить TrackID, в то время как все другие компоненты удаляются.

  3. Для всех компонентов с одинаковыми TrackID, если отношение наибольшего веса к массовому суммированию всех этих компонентов больше C 3, то компонент с наибольшим весом сохраняется, чтобы сохранить TrackID, в то время как все другие компоненты удаляются.

  4. Если ни условие 2, ни условие 3 не удовлетворены, то компонент с наибольшим весом сохраняет TrackID, в то время как для меток всех других компонентов задано значение 0. Когда это происходит, это означает, что некоторые компоненты могут представлять другие объекты. Этот процесс сохраняет возможность повторного извлечения этих незарезервированных компонентов в будущем.

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

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

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

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

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

Источник выхода магистральной шины, заданный как:

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

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

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

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

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

Зависимости

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

Алгоритмы

расширить все

Ссылки

[1] Granstorm, K., C. Lundquiest, and O. Orguner. Расширенное отслеживание цели с использованием PHD-фильтра Гауссовой смеси. Транзакции IEEE по аэрокосмическим и электронным системам. Том 48, № 4, 2012, стр. 3268-3286.

[2] Granstorm, K., and O. Orguner ". PHD-фильтр для слежения за несколькими расширенными целями с помощью случайных матриц ". Транзакции IEEE по обработке сигналов. Том 60, № 11, 2012, стр. 5657-5671.

[3] Granstorm, K., and A. Natale, P. Braca, G. Ludeno, and F. Serafino. «Гамма Гауссов обратный Wishart гипотезы вероятности плотности для расширенного отслеживания цели с использованием морских радиолокационных данных X-диапазона». Транзакции IEEE по геологии и дистанционному зондированию. Том 53, № 12, 2015, стр. 6617-6631.

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

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

.
Введенный в R2021a