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 поле возвращенной дорожки является ненулевым), та дорожка сразу подтверждена. Когда дорожка подтверждена, средство отслеживания полагает, что дорожка представляет физический объект. Если обнаружения не присвоены дорожке в specifiable количестве обновлений, дорожка удалена.

Порты

Входной параметр

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

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

Стойте матрицы в виде N с действительным знаком t-by-Nd матрица, где 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 из них фактические дорожки.

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

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

Поле Описание
OOSMDetectionIndices

Индексы измерений из последовательности

TrackIDsAtStepBeginning

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

CostMatrix

Стоимость матрицы присвоения

Assignments

Присвоения возвращены в функцию присвоения

UnassignedTracks

Идентификаторы неприсвоенных дорожек возвращены в средство отслеживания

UnassignedDetections

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

InitiatedTrackIDs

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

DeletedTrackIDs

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

TrackIDsAtStepEnd

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

OOSMHandling

Информация об анализе для обработки измерений из последовательности, возвращенной как структура. Это поле доступно, когда параметр Out-of-sequence measurements handling средства отслеживания задан как Retordiction.

OOSMHandling структура содержит эти поля:

Поле Описание
DiscardedDetectionИндексы отброшенных обнаружений из последовательности. OOSM отбрасывается, если он не охвачен сохраненной историей состояния, заданной MaxNumOOSMSteps свойство.
CostMatrix

Стоимость матрицы присвоения для измерений из последовательности

Assignments

Присвоения между обнаружениями из последовательности и обеспеченными дорожками

UnassignedDetectionsИндексы неприсвоенных обнаружений из последовательности. Средство отслеживания создает новые треки для неприсвоенных обнаружений из последовательности.

Зависимости

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

Параметры

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

Управление средством отслеживания

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

Пример 1

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

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 или больше дорожками и обнаружениями. Use'Custom' чтобы задать ваше собственное присвоение функционируют и задают его имя в CustomAssignmentFcn свойство.

Пользовательское имя функции присвоения в виде символьной строки. Функция присвоения должна иметь этот синтаксис:

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

Пример: 'mycustomfcn'

Зависимости

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

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

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

Советы:

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

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

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

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

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

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

  • Terminate — Блок прекращает запускаться, когда он сталкивается с измерением из последовательности.

  • Neglect — Блок пропускает любые измерения из последовательности и продолжает запускаться.

  • Retrodiction — Блок использует retrodiction алгоритм, чтобы обновить средство отслеживания или пренебрежением OOSM, обновлением существующих дорожек или созданием новых треков с помощью OOSM. Необходимо задать функцию инициализации фильтра, которая возвращает a trackingKF или trackingEKF объект в параметре Filter initialization function.

Если вы задаете этот параметр как Retrodiction, средство отслеживания выполняет эти шаги, чтобы обработать OOSM:

  • Если метка времени OOSM вне истории дорожки (задана параметром Maximum number of OOSM steps) обеспеченный в средстве отслеживания, средство отслеживания пропускает OOSM.

  • Если метка времени OOSM в рамках истории дорожки, обеспеченной средством отслеживания, средством отслеживания первый retrodicts все существующие дорожки ко времени OOSM. Затем средство отслеживания применяет глобальный самый близкий соседний алгоритм, чтобы попытаться сопоставить OOSM к любой из дорожек retrodicted.

    • Если средство отслеживания успешно сопоставляет OOSM к дорожке retrodicted, то средство отслеживания обновляет дорожку retrodicted с помощью OOSM путем применения алгоритма ретро коррекции, чтобы получить текущую, откорректированную дорожку.

    • Если средство отслеживания не может сопоставить OOSM к дорожке retrodicted, то средство отслеживания создает новый трек на основе OOSM и предсказывает дорожку к текущему времени.

Для получения дополнительной информации о retrodiction и алгоритмах ретро коррекции, смотрите Retrodiction и Retro-Correction.

Максимальное количество измерения из последовательности (OOSMs) продвигается в виде положительного целого числа.

Увеличение значения этого параметра требует большей памяти, но позволяет вам вызывать блок средства отслеживания с OOSMs, которые имеют большую задержку относительно последней метки времени, когда блок был обновлен. Кроме того, когда задержка увеличивается, удар OOSM на текущем состоянии дорожки уменьшается. Рекомендуемым значением этого параметра является 3.

Зависимости

Чтобы включить этот параметр, установите параметр Out-of-sequence measurements handling на Retrodiction.

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

Логика дорожки

Подтверждение и тип логики удаления, выбранный как 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.

Алгоритмы

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

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

Введенный в R2019b