exponenta event banner

Глобальный ближайший соседний мультиобъектный трекер

Мультисенсорный, многообъектный трекер с назначением GNN

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

  • Global Nearest Neighbor Multi Object Tracker block

Описание

Блок Global Nearest Neighbor Multi Object Tracker способен обрабатывать обнаружения многих целей от нескольких датчиков, так же, как и trackerGNN object™ системы. Трекер инициализирует, подтверждает, прогнозирует, корректирует и удаляет дорожки на основе глобального алгоритма назначения ближайшего соседа (GNN). Трекер оценивает вектор состояния и матрицу ковариации вектора состояния для каждой дорожки. Каждое обнаружение назначается максимум одной дорожке. Если обнаружение не может быть назначено какой-либо дорожке, трекер инициализирует новую дорожку.

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

Порты

Вход

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

Список обнаружения, указанный как шина 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.

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

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

В зависимости от логики пути, путь подтверждается, если:

  • История - трек получает по крайней мере M обнаружения в последнем N обновления. M и N указаны в пороговом значении подтверждения для History логика.

  • Балл - балл трека, по крайней мере, равен порогу подтверждения, указанному в пороговом значении подтверждения для Score логика.

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

Отслеживать идентификаторы при начале шага

CostMatrix

Матрица стоимости назначения

Assignments

Назначения, возвращенные функцией назначения

UnassignedTracks

Идентификаторы неназначенных дорожек, возвращенных из трекера

UnassignedDetections

Идентификаторы неназначенных обнаружений, возвращенные от трекера

InitiatedTrackIDs

Идентификаторы дорожек, инициированных во время шага

DeletedTrackIDs

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

TrackIDsAtStepEnd

Отслеживать идентификаторы по завершении шага

Зависимости

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

Параметры

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

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

Функция инициализации фильтра, заданная как дескриптор функции или как символьный вектор, содержащий имя допустимой функции инициализации фильтра. Трекер использует функцию инициализации фильтра при создании новых дорожек.

Toolbox™ слияния и отслеживания датчиков предоставляет множество функций инициализации, которые можно использовать:

Функция инициализацииОпределение функции
initcvabfИнициализация фильтра альфа-бета с постоянной скоростью
initcaabfИнициализация альфа-бета-фильтра с постоянным ускорением
initcvekfИнициализируйте расширенный фильтр Калмана с постоянной скоростью.
initcackfИнициализация кубического фильтра с постоянным ускорением.
initctckfИнициализация кубатурного фильтра с постоянной скоростью поворота.
initcvckfИнициализация кубатурного фильтра постоянной скорости.
initcapfИнициализация фильтра частиц с постоянным ускорением.
initctpfИнициализация фильтра частиц с постоянной скоростью поворота.
initcvpfИнициализация фильтра частиц с постоянной скоростью.
initcvkfИнициализируйте линейный фильтр Калмана с постоянной скоростью.
initcvukfИнициализация неописанного фильтра Калмана с постоянной скоростью.
initcaekfИнициализация расширенного фильтра Калмана с постоянным ускорением.
initcakfИнициализация линейного фильтра Калмана с постоянным ускорением.
initcaukf Инициализация неописанного фильтра Калмана с постоянным ускорением.
initctekf Инициализация расширенного фильтра Калмана с постоянной скоростью поворота.
initctukfИнициализация неописанного фильтра Калмана с постоянной скоростью поворота.
initcvmscekfИнициализируйте изменяемые сферические координаты с постоянной скоростью с расширенным фильтром Калмана.
initrpekfИнициализация постоянного диапазона скоростей - параметризованный расширенный фильтр Калмана.
initapekfИнициализируйте постоянный угол скорости-параметризованный расширенный фильтр Калмана.
initekfimmИнициализация фильтра IMM отслеживания.

Также можно создать собственную функцию инициализации. Функция должна иметь следующий синтаксис:

filter = filterInitializationFcn(detection)
Входными данными для этой функции являются отчеты об обнаружении, подобные созданным objectDetection. Вывод этой функции должен быть объектом фильтра: trackingKF, trackingEKF, trackingUKF, trackingCKF, trackingPF, trackingMSCEKF, trackingGSF, trackingIMM, или trackingABF.

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

type initcvekf

Алгоритм назначения, указанный как 'MatchPairs', 'Munkres', 'Jonker-Volgenant', 'Auction', или 'Custom'. Munkres является единственным алгоритмом назначения, который гарантирует оптимальное решение, но он также является самым медленным, особенно для большого количества обнаружений и дорожек. Другие алгоритмы не гарантируют оптимального решения, но могут быть быстрее для проблем с 20 или более дорожками и обнаружениями. Использовать'Custom' чтобы определить собственную функцию назначения и указать ее имя в CustomAssignmentFcn собственность.

Имя пользовательской функции назначения, указанное как символьная строка. Функция назначения должна иметь следующий синтаксис:

 [assignment,unTrs,unDets] = f(cost,costNonAssignment)
Пример функции назначения и описание ее аргументов см. в разделе assignmunkres.

Пример: 'mycustomfcn'

Зависимости

Чтобы включить это свойство, задайте для имени алгоритма назначения значение 'Custom'.

Порог назначения обнаружений дорожкам (или порог стробирования), заданный как положительный скаляр или вектор 1 на 2 [C1, С2], где C1C2. Если указано как скаляр, указанное значение, val, будет расширено до [val ,Inf].

Первоначально трекер выполняет грубую оценку для нормализованного расстояния между всеми дорожками и обнаружениями. Трекер вычисляет только точное нормированное расстояние для комбинаций, грубое нормированное расстояние которых меньше C2. Кроме того, трекер может назначать обнаружение дорожке только в том случае, если их точное нормированное расстояние меньше C1. См. раздел distance функция, используемая с фильтрами слежения (например, trackingCKF и trackingEKF) для пояснения расчета расстояния.

Совет:

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

  • Увеличьте значение C1, если есть обнаружения, которые должны быть назначены дорожкам, но не. Уменьшите его, если есть обнаружения, которые назначены дорожкам, которым они не должны быть назначены (слишком далеко).

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

Максимальное количество датчиков, которые может обработать блок, указанное как положительное целое число. Это значение должно быть больше или равно самому высокому 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.

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

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

Логика отслеживания

Логический тип подтверждения и удаления, выбранный как History или Score.

  • History - Подтверждение и удаление трека основано на количестве назначений трека обнаружению в последних обновлениях трекера.

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

Вероятность обнаружения, используемая для оценки дорожки, заданная как положительный скаляр в (0,1).

Пример: 0.5

Зависимости

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

Вероятность ложного аварийного сигнала, используемого для оценки дорожки, указанная как скаляр в (0,1).

Пример: 1e-5

Зависимости

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

Объем ячейки обнаружения датчика, указанный как положительный скаляр. Например, если радар производит измерение 4-D, которое включает азимут, отметку, дальность и дальность, объем 4-D определяется шириной углового луча радара, шириной ячейки диапазона и шириной ячейки диапазона. Объем используется для вычисления показателя дорожки при инициализации и обновлении дорожки.

Пример: 1.5

Зависимости

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

Частота новых дорожек на единицу объема, указанная как положительный скаляр. Скорость новых дорожек используется при вычислении показателя дорожки во время инициализации дорожки.

Пример: 2.5

Зависимости

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

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

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

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

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

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

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

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

Источник имени шины выходного пути, указанный как:

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

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

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

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

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

Примеры модели

Алгоритмы

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

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

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

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