exponenta event banner

Отслеживание плотности гипотезы вероятности (PHD)

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

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

  • Probability Hypothesis Density Tracker block

Описание

Блок отслеживания плотности гипотезы вероятности (PHD) создает и управляет дорожками стационарных и движущихся объектов в среде с несколькими датчиками. Трекер использует фильтр плотности гипотез множественных целей для оценки состояний точечных целей и расширенных объектов. 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 configuration 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Массив структур дорожек длиной, заданной параметром Максимальное количество дорожек. Только первый NumTracks из них фактические треки.

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

Предварительные трассы, возвращенные в виде шины 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

Массив данных анализа датчиков.

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

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

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

DetectionCells

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

DetectionLikelihoods

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

IsBirthCells

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

NumPartitions

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

DetectionProbability

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

LabelsBeforeCorrection

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

LabelsAfterCorrection

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

WeightsBeforeCorrection

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

WeightsAfterCorrection

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

Зависимости

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

Параметры

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

Конфигурация трекера

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

Пример: 1

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

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

type partitionDetections

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

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

Пример: 18.1

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

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

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

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

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

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

Можно обновить конфигурацию через входной порт Sensor configuration, выбрав параметр Update sensor configuration with time.

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

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

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

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

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

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

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

Пример: 0.01

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

Коэффициент смертности компонентов в плотности, определяемый как положительный действительный скаляр. Коэффициент смертности указывает скорость, с которой компонент исчезает в плотности после одного временного шага. Это уравнение иллюстрирует, как уровень смертности (Pd) связан с вероятностью выживания (Ps) компонента между последовательными временными шагами:

Ps = (1 Pd) Δ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 для управления метками, объединенный вес усекается до первого порога. Обратите внимание, что компоненты с TrackID из 0 также могут быть объединены друг с другом.

Пример: 30

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

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

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

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

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

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

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

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

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

Выберите этот параметр, чтобы включить вывод всех дорожек через выходной порт 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., К. Ландкуист и О. Оргунер. «Расширенное отслеживание цели с помощью PHD-фильтра гауссовой смеси». Сделки IEEE по аэрокосмическим и электронным системам. Том 48, номер 4, 2012, стр. 3268-3286.

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

[3] Грансторм, К. и А. Натале, П. Брака, Г. Людено и Ф. Серафино. «Гамма-гауссова гипотеза обратной вероятности Вишарта для расширенного сопровождения цели с использованием данных морской РЛС X-диапазона». Сделки IEEE по геологии и дистанционному зондированию. Том 53, номер 12, 2015, стр. 6617-6631.

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

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

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