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
ObjectClassIDID предметной классификации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 из них фактические дорожки.

Поля структуры дорожки показывают в Структуре Дорожки.

Предварительные дорожки, возвращенные как шина 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 th элемент равняется 1, то i th обнаружение принадлежит ячейке обнаружения, обозначенной тем столбцом.

DetectionLikelihoods

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

IsBirthCells

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

NumPartitions

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

DetectionProbability

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

LabelsBeforeCorrection

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

LabelsAfterCorrection

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

WeightsBeforeCorrection

Веса компонентов в функции плотности перед коррекцией, возвращенной как 1 Mb вектором-строкой. M b является количеством компонентов, обеспеченных в средстве отслеживания перед коррекцией. Каждым элементом вектора является вес соответствующего компонента в LabelsBeforeCorrection. Например, [0.1 0.5 0.7 0.3 0.2].

WeightsAfterCorrection

Веса компонентов в функции плотности после коррекции, возвращенной как 1 Ma вектором-строкой. M количества компонентов, обеспеченных в средстве отслеживания после коррекции. Каждым элементом вектора является вес соответствующего компонента в 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 режим, можно отладить исходный код блока.

  • 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., К. Ландкуист и О. Оргунер. "Расширенное целевое отслеживание с помощью фильтра Gaussian-mixture PHD". Транзакции IEEE на Космических и Электронных системах. Издание 48, Номер 4, 2012, стр 3268-3286.

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

[3] Granstorm, K., и А. Натале, П. Брэка, Г. Лудено и Ф. Серафино. "Гамма Гауссова инверсия плотность гипотезы вероятности Уишарта для расширенной целевой X-полосы использования отслеживания морские радарные данные". Транзакции IEEE на Геонауке и Дистанционном зондировании. Издание 53, Номер 12, 2015, стр 6617-6631.

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

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

Введенный в R2021a
Для просмотра документации необходимо авторизоваться на сайте