Global Nearest Neighbor Multi Object Tracker

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

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

  • 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.

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

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

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

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

Зависимости

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

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

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

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

Зависимости

Чтобы включить этот порт, на вкладке Port Setting, выберите Enable detectable track IDs 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Массив структур дорожки длиной, заданной параметром Maximum number of tracks. Только первый NumTracks из них являются фактическими треками.

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

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

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

  • Счет - оценка дорожки, по крайней мере, так же высоко, как и порог подтверждения, указанный в Confirmation threshold для Score логика.

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

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

CostMatrix

Матрица стоимости присвоения

Assignments

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

UnassignedTracks

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

UnassignedDetections

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

InitiatedTrackIDs

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

DeletedTrackIDs

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

TrackIDsAtStepEnd

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

Зависимости

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

Параметры

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

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

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

Sensor Fusion and Tracking 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'

Зависимости

Чтобы включить это свойство, установите имя Assignment algorithm name равным 'Custom'.

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

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

Совет:

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

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

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

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

Обработка измерений вне последовательности, заданная как Terminate или neglect. Каждое обнаружение имеет сопоставленную с ним временную метку, t d, и блок трекера имеет свою собственную временную метку, t t, которая обновляется в каждом вызове. Блок трекера рассматривает измерение как OOSM, если t d < t t.

Когда параметр задан как:

  • 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 mode, можно отлаживать исходный код блока.

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

Отслеживайте логику

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

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

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

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

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным History.

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

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным History.

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

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным Score.

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

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным Score.

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

Пример: 0.5

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным Score.

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

Пример: 1e-5

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным Score.

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

Пример: 1.5

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным Score.

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

Пример: 2.5

Зависимости

Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным Score.

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

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

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

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

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

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

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

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

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

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

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

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

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

Алгоритмы

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

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

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

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