Совместный вероятностный трекер ассоциации данных
Sensor Fusion and Tracking Toolbox/Мультиобъектные алгоритмы отслеживания
Блок Joint Probabilistic Data Association Multi Object Tracker способен обрабатывать обнаружения нескольких целей с нескольких датчиков. Трекер использует совместную вероятностную ассоциацию данных, чтобы назначить обнаружения каждой дорожке. Трекер применяет мягкое назначение, в котором несколько обнаружений могут внести свой вклад в каждую дорожку. Трекер инициализирует, подтверждает, исправляет, предсказывает (выполняет покатывание) и удаляет треки. Трекер оценивает вектор состояния и оценивает состояние ковариационной матрицы ошибки для каждой дорожки. Каждое обнаружение назначается, по меньшей мере, одной дорожке. Если обнаружение не может быть назначено какому-либо существующему треку, трекер создает новый трек.
Любой новый трек запускается в предварительном состоянии. Если предварительному дорожке назначено достаточное количество обнаружений, его статус меняется на подтвержденный. Если обнаружение уже имеет известную классификацию (ObjectClassID
поле возвращаемой дорожки ненулевое), что соответствующая дорожка немедленно подтверждается. Когда дорожка подтверждена, трекер рассматривает дорожку как представление физического объекта. Если обнаружение не назначено дорожке в пределах заданного количества обновлений, дорожка удаляется.
Detections
- Список обнаруженийСписок обнаружений, заданный как шина Simulink, содержащая структуру MATLAB. Структура имеет форму:
Область | Описание | Напечатать |
---|---|---|
NumDetections | Количество обнаружений | Целое число |
Detections | Обнаружения объектов | Массив objectDetection структуры. Первый NumDetections из этих обнаружений являются фактическими обнаружениями. |
Области обнаружения:
Область | Описание | Напечатать |
---|---|---|
Time | Время измерения | Single или Double |
Measurement | Измерения объекта | Single или Double |
MeasurementNoise | Матрица ковариации шума измерения | Single или Double |
SensorIndex | Уникальный идентификатор датчика | Single или Double |
ObjectClassID | Идентификатор классификации объектов | Single или Double |
MeasurementParameters | Параметры, используемые функциями инициализации фильтров отслеживания | Шина Simulink |
ObjectAttributes | Трекеру передана дополнительная информация | Шина Simulink |
См. objectDetection
для более подробного объяснения этих полей.
Примечание
Структура обнаружения объектов содержит Time
поле. Временной тег каждого обнаружения объектов должен быть меньше или равен времени текущего вызова блока. Временной тег также должен быть больше времени обновления, заданного в предыдущем вызове блока.
Prediction Time
- Отследите время обновленияОтследите время обновления, заданное как действительный скаляр в секундах. Трекер обновляет все треки к этому времени. Время обновления должно всегда увеличиваться с каждым вызовом блока. Время обновления должно быть как минимум таким же большим, как и самое большое Time
задается в Detections входном порте.
Если порт не включен, время обновления определяется временем симуляции, управляемым Simulink.
Чтобы включить этот порт, на вкладке Port Setting задайте Prediction time source Input port
.
Cost Matrix
- Матрица затратМатрица стоимости, заданная как вещественная N t-by- N d-матрица, где N t - количество существующих треков, а N d - количество текущих обнаружений.
Строки матрицы затрат соответствуют существующим трекам. Столбцы соответствуют обнаружениям. Дорожки упорядочиваются так, как они появляются в списке дорожек из All Tracks выходного порта при предыдущем вызове блока.
В первом обновлении трекера или если у трекера нет предыдущих треков, присвойте матрице затрат размер [0, N d]. Стоимость должна быть рассчитана так, чтобы более низкие затраты указывали на более высокую вероятность того, что трекер присваивает обнаружение дорожке. Чтобы предотвратить назначение определенных обнаружений определенным трекам, используйте Inf
.
Если этот порт не включен, фильтр, инициализированный Filter initialization function, вычисляет матрицу затрат с помощью метода расстояния.
Чтобы включить этот порт, на вкладке Port Setting, выберите Enable cost matrix input.
Detectable TrackIDs
- Обнаруживаемые идентификаторы дорожекОбнаруживаемые идентификаторы дорожек, заданные как действительный вектор M -by-1 или M -by-2 матрица. Обнаруживаемые дорожки являются треками, которые датчики ожидают обнаружить. Первый столбец матрицы содержит список идентификаторов дорожек, которые датчики сообщают как обнаруживаемые. Дополнительный второй столбец позволяет добавить вероятность обнаружения для каждой дорожки.
Дорожки, идентификаторы которых не включены в Detectable TrackIDs, считаются неопределяемыми. Логика удаления дорожки не рассчитывает отсутствие обнаружения как «пропущенное обнаружение» в целях удаления дорожки.
Если этот порт не включен, трекер принимает, что все дорожки обнаруживаются при каждом вызове блока.
Чтобы включить этот порт, на вкладке Port Setting, выберите Enable detectable track IDs Input.
State Parameters
- Отследите параметры состоянияОтслеживайте параметры состояния, заданные как шина 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.
Confirmed Tracks
- Подтвержденные дорожкиПодтвержденные дорожки, возвращенные как шина Simulink, содержащая структуру MATLAB. Структура имеет форму:
Область | Описание |
---|---|
NumTracks | Количество дорожек |
Tracks | Массив структур дорожки длиной, заданной параметром Maximum number of tracks. Только первый NumTracks из них являются фактическими треками. |
Поля структуры дорожки показаны в Track Structure.
В зависимости от логики дорожки, дорожка подтверждается, если:
История - трек получает как минимум M
обнаружений в последней N
обновления. M
и N
указаны в Confirmation threshold для History
логика.
Интегрированный - Интегрированная вероятность существования дорожки выше порога подтверждения, заданного в Confirmation threshold для Integrated
логика.
Tentative Tracks
- Ориентировочные дорожкиОриентировочные дорожки, возвращенные как шина Simulink, содержащая структуру MATLAB. Дорожка является ориентировочной, прежде чем она будет подтверждена.
Поля структуры дорожки показаны в Track Structure.
Чтобы включить этот порт, на вкладке Port Setting, выберите Enable tentative tracks output.
All Tracks
- Подтвержденные и ориентировочные трекиОбъединенный список подтвержденных и ориентировочных дорожек, возвращенных как шина Simulink, содержащая структуру MATLAB.
Поля структуры дорожки показаны в Track Structure.
Чтобы включить этот порт, на вкладке Port Setting, выберите Enable all tracks output.
Info
- Дополнительная информация для анализа обновлений трековДополнительная информация для анализа обновлений трека, возвращенная как шина Simulink, содержащая структуру MATLAB.
В этой таблице показаны поля информационной структуры:
Область | Описание |
TrackIDsAtStepBeginning | Отслеживайте идентификаторы, когда шаг начался. |
CostMatrix | Матрица затрат для присвоения. |
Clusters | Массив ячеек из отчетов кластера. Для получения дополнительной информации см. раздел «Допустимые совместные события». |
InitiatedTrackIDs | Идентификаторы дорожек, инициируемых во время шага. |
DeletedTrackIDs | Идентификаторы треков, удаленных во время шага. |
TrackIDsAtStepEnd | Отслеживайте идентификаторы, когда шаг закончен. |
The Clusters
поле может включать несколько отчетов кластеров. Каждый отчет кластера представляет собой структуру, содержащую:
Область | Описание |
DetectionIndices | Индексы кластеризованных обнаружений. |
TrackIDs | Отслеживайте идентификаторы кластеризованных дорожек. |
ValidationMatrix | Матрица валидации кластера. Для получения дополнительной информации см. раздел «Допустимые совместные события». |
SensorIndex | Индекс исходного датчика кластеризованных обнаружений. |
TimeStamp | Средняя метка времени кластеризованных обнаружений. |
MarginalProbabilities | Матрица краевых вероятностей ассоциации апостериорных соединений. |
Чтобы включить этот порт, на вкладке Port Setting, выберите Enable information output.
Filter initialization function
- Функция инициализации фильтра@initcvekf
(по умолчанию) | указатель на функцию | вектор символовФункция инициализации фильтра, заданная как указатель на функцию или как вектор символов, содержащий имя действительной функции инициализации фильтра. Трекер использует функцию инициализации фильтра при создании новых треков.
Sensor Fusion and Tracking Toolbox™ обеспечивает многие функции инициализации:
Функция инициализации | Определение функции |
---|---|
initcvkf | Инициализируйте линейный фильтр Калмана с постоянной скоростью. |
initcakf | Инициализируйте линейный фильтр Калмана с постоянным ускорением. |
initcvabf | Инициализируйте альфа-бета фильтр с постоянной скоростью |
initcaabf | Инициализируйте альфа-бета фильтр с постоянным ускорением |
initcvekf | Инициализируйте расширенный фильтр Калмана с постоянной скоростью. |
initcaekf | Инициализируйте расширенный фильтр Калмана с постоянным ускорением. |
initrpekf | Инициализируйте параметризованный расширенный фильтр Калмана с постоянной скоростью. |
initapekf | Инициализируйте расширенный фильтр Калмана с параметризацией угла постоянной скорости. |
initctekf | Инициализируйте расширенный фильтр Калмана с постоянной скоростью поворота. |
initcackf | Инициализируйте кубический фильтр с постоянным ускорением. |
initctckf | Инициализируйте кубический фильтр постоянной скорости поворота. |
initcvckf | Инициализируйте кубический фильтр постоянной скорости. |
initcvukf | Инициализируйте сигма-точечный фильтр Калмана с постоянной скоростью. |
initcaukf | Инициализируйте сигма-точечный фильтр Калмана постоянного ускорения. |
initctukf | Инициализируйте неароматизированный сигма-точечный фильтр Калмана с постоянной скоростью поворота. |
initcvmscekf | Инициализируйте расширенный фильтр Калмана с постоянной скоростью в измененных сферических координатах. |
initekfimm | Инициализируйте отслеживающий фильтр IMM. |
Вы также можете написать свою собственную функцию инициализации с помощью этого синтаксиса:
filter = filterInitializationFcn(detection)
objectDetection
. Выходные выходы этой функции должны быть объектом фильтра: trackingKF
, trackingEKF
, trackingUKF
, trackingCKF
, trackingGSF
, trackingIMM
, trackingMSCEKF
, или trackingABF
.
Для руководства при написании этой функции используйте type
команда для исследования деталей встроенных функций MATLAB. Для примера:
type
initcvekf
Примечание
trackerJPDA
не принимает все функции инициализации фильтра в Sensor Fusion and Tracking Toolbox. Полный список функций инициализации фильтра, доступных в Sensor Fusion and Tracking Toolbox, приведен в Initialization разделе Оценочных фильтров.
Value of k for k-best JPDA
- Значение k для k-best JPDAinf
(по умолчанию) | положительное целое числоЗначение k для k-лучшего JPDA, заданное в виде положительного целого числа. Этот параметр определяет максимальное количество допустимых совместных событий для ассоциации дорожки и обнаружения каждого кластера. Установка этого свойства на конечное значение позволяет вам запустить k-лучший JPDA-трекер, который генерирует максимум k событий на кластер.
Feasible joint events generation function name
- Допустимое имя функции генерации совместных событий@jpdaEvents
(по умолчанию) | указатель на функцию | вектор символовДопустимое имя функции генерации событий в соединениях, заданное как указатель на функцию или как вектор символов, содержащий имя допустимой функции генерации событий в соединениях. Функция генерации генерирует допустимые совместные матрицы событий из допустимых событий (обычно заданных матрицей валидации или матрицей правдоподобия) сценария. Для получения дополнительной информации см. jpadEvents
.
Вы также можете написать свою собственную функцию генерации.
Если для параметра Value of k for k-best JPDA задано значение inf
функция должна иметь следующий синтаксис:
FJE = myfunction(ValidationMatrix)
jpdaEvents
. Если параметр Value of k for k-best JPDA установлен в конечное значение, функция должна иметь следующий синтаксис:
[FJE,FJEProbs] = myfunction(likelihoodMatrix,k)
jpdaEvents
.
Для руководства при написании этой функции используйте type
команда, чтобы изучить детали jpdaEvents
:
type jpdaEvents
Пример:
@myfunction или
'myfunction'
Maximum number of tracks
- Максимальное количество дорожек100
(по умолчанию) | положительное целое числоМаксимальное количество дорожек, которые может поддерживать блок, заданное как положительное целое число.
Maximum number of sensors
- Максимальное количество датчиков20
(по умолчанию) | положительное целое числоМаксимальное количество датчиков, которые может обработать блок, заданное как положительное целое число. Это значение должно быть больше или равно самому высокому SensorIndex
значение входного параметра в Detections входном порте.
Absolute tolerance between time stamps of detections
- Абсолютная погрешность между метками времени обнаружений20
(по умолчанию) | положительное целое числоАбсолютный временной допуск между обнаружениями для того же датчика, заданный как положительная скалярная величина. Блок ожидает, что обнаружения от датчика будут иметь идентичные метки времени. Однако, если различия меток времени между обнаружениями датчика находятся в пределах запаса, заданного этим параметром, эти обнаружения будут использоваться для обновления оценки дорожки на основе среднего времени этих обнаружений.
Out-of-sequence measurements handling
- Обработка измерений вне последовательностиTerminate
(по умолчанию) | Neglect
Обработка измерений вне последовательности, заданная как Terminate
или Neglect
. Каждое обнаружение имеет сопоставленную с ним временную метку, t d, и блок трекера имеет свою собственную временную метку, t t, которая обновляется в каждом вызове. Блок трекера рассматривает измерение как OOSM, если t d < t t.
Когда параметр задан как:
Terminate
- Блок перестает запускаться, когда сталкивается с любыми несогласованными измерениями.
Neglect
- Блок пренебрегает любыми несовпадающими измерениями и продолжает выполняться.
Примечание
Трекер требует всех входных обнаружений, которые имеют одинаковые SensorIndex
иметь свои Time
различия, ограниченные параметром Absolute tolerance between time stamps of detections. Поэтому, когда вы устанавливаете параметр Out-of-sequence measurements handling равным Neglect
при запуске трекера необходимо убедиться, что обнаружение вне последовательности имеет временные метки строго меньше, чем предыдущая временная метка.
Track state parameters
- Параметры системы координат состояния путиПараметры опорной системы координат состояния дорожки, заданные как структура или массив структур. Блок передает значение этого параметра 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
Update track state parameters with time
- Обновление параметров состояния отслеживания по времениoff
(по умолчанию) | on
Выберите этот параметр, чтобы включить входной порт для параметров состояния дорожки через State Parameters входной порт.
Simulate using
- Тип выполняемой симуляцииInterpreted Execution
(по умолчанию) | Code Generation
Interpreted execution
- Симулируйте модель с помощью интерпретатора MATLAB. Эта опция сокращает время запуска. В Interpreted execution
mode, можно отлаживать исходный код блока.
Code generation
- Симулируйте модель с помощью сгенерированного кода C. При первом запуске симуляции Simulink генерирует код С для блока. Код С повторно используется для последующих симуляций, пока модель не меняется. Эта опция требует дополнительного времени запуска.
Threshold for assigning detections to tracks
- Порог для назначения обнаружений трекам30*[1 Inf]
(по умолчанию) | положительная скалярная величина | вектор 1 на 2 положительных значенийПорог для назначения обнаружений трекам (или порогу стробирования), заданный как положительный скаляр или вектор 1 на 2 [C 1 ,C 2], где C 1 ≤ C 2. Если задано в виде скаляра, заданное значение, val, расширяется до [val, Inf
].
Первоначально трекер выполняет грубую оценку нормированного расстояния между всеми треками и обнаружениями. Трекер вычисляет только точное нормированное расстояние для комбинаций, грубое нормированное расстояние которых меньше C 2. Кроме того, трекер может только назначить обнаружение дорожке, если точное нормированное расстояние между ними меньше C 1. См. distance
функция, используемая с отслеживающими фильтрами (такими как trackingCKF
и trackingEKF
) для пояснения расчета расстояния.
Совет:
Увеличьте значение C 2, если существуют комбинации дорожки и обнаружения, которые должны быть рассчитаны для назначения, но не являются. Уменьшите это значение, если вычисление стоимости занимает слишком много времени.
Увеличьте значение C 1, если есть обнаружения, которые должны быть назначены трекам, но не имеют. Уменьшите это значение, если есть обнаружения, которые назначены трекам, которым они не должны быть назначены (слишком далеко ).
Threshold to initialize a track
- Порог для инициализации дорожки0
(по умолчанию) | скаляром в области значений [0, 1]Порог вероятности для инициализации новой дорожки, заданный как скаляр в области значений [0, 1]. Если вероятность связи обнаружения с любым из существующих треков меньше InitializationThreshold
обнаружение используется для инициализации новой дорожки. Это позволяет обнаружениям, которые находятся в пределах логики валидации дорожки, но имеют вероятность ассоциации ниже, чем порог инициализации, чтобы породить новую дорожку.
Пример: 0.1
Probability of detection
- Вероятность обнаружения0.9
(по умолчанию) | скаляром в области значений [0, 1]Вероятность обнаружения, заданная как скаляр в области значений [0, 1]. Это свойство используется в вычислениях маргинальных апостериорных вероятностей ассоциации и вероятности существования дорожки при инициализации и обновлении дорожки.
Spatial density of clutter measurements
- Пространственная плотность измерений загромождения1e-5
(по умолчанию) | положительная скалярная величинаПространственная плотность измерений загромождения, заданная в виде положительной скалярной величины. Плотность загромождения описывает ожидаемое количество ложных положительных обнаружений на модуль объема. Он используется как параметр модели загромождения Пуассона. Когда Type of track confirmation and deletion logic установлено на 'Integrated'
, этот параметр также используется при вычислении начальной вероятности существования дорожки.
Type of track confirmation and deletion logic
- Тип логики подтверждения и удаленияHistory
(по умолчанию) | Integrated
Тип логики подтверждения и удаления, выбранный как:
History
- Подтверждение и удаление отслеживания основаны на количестве раз, когда трек был назначен обнаружению в последних обновлениях трекера.
Integrated
- Подтверждение и удаление трека основано на вероятности существования трека, которая интегрирована в функцию назначения.
Confirmation threshold [M N]
- Отследите порог подтверждения для логики истории[2, 3]
(по умолчанию) | реальный вектор 1 на 2 положительных целых чиселОтследите порог подтверждения для логики истории, заданный как действительный вектор 1 на 2 положительных целых чисел [M N]
. Дорожка подтверждается, если она получает хотя бы M
обнаружений в последней N
обновления.
Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным 'History'
.
Deletion threshold [P Q]
- Отслеживайте порог удаления для логики истории[5, 5]
(по умолчанию) | реальный вектор 1 на 2 положительных целых чиселОтследите порог удаления для логики истории, заданный как действительный вектор 1 на 2 положительных целых чисел, [P Q]
. Если, в P
последнего Q
tracker updates, подтвержденная дорожка не назначается никакому обнаружению, которое имеет вероятность больше, чем параметр Threshold for registering 'hit' or 'miss', затем эта дорожка удаляется.
Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным 'History'
.
Threshold for registering 'hit' or 'miss'
- Порог для регистрации 'Hit' или 'Miss'0.2
(по умолчанию) | скаляром в области значений [0, 1]Порог для регистрации 'hit' или 'miss', заданное как скаляр в области значений [0, 1]. Логика истории треков регистрирует 'miss', и трек будет покрыт, если сумма предельных вероятностей назначений ниже HitMissThreshold
. В противном случае логика истории треков регистрирует 'hit'.
Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным 'History'
.
Confirmation threshold [Probability]
- Отследите порог подтверждения для интегрированной логики0.95
(по умолчанию) | положительная скалярная величинаОтследите порог подтверждения для интегрированной логики, заданный как реальная положительная скалярная величина. Дорожка подтверждается, если ее вероятность существования больше или равна порогу подтверждения.
Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным 'Integrated'
.
Deletion threshold [Probability]
- Отслеживайте порог удаления для интегрированной логики0.1
(по умолчанию) | положительная скалярная величинаОтследите порог удаления для интегрированной логики, заданный как положительная скалярная величина. Дорожка удаляется, если ее вероятность существования падает ниже этого порога.
Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным 'Integrated'
.
Spatial density of new targets
- Пространственная плотность новых целей1e-5
(по умолчанию) | положительная скалярная величинаПространственная плотность новых целей, заданная как положительная скалярная величина. Новая целевая плотность описывает ожидаемое количество новых треков на модуль объема в пространстве измерений. Используется при вычислении вероятности существования дорожки во время инициализации дорожки.
Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным 'Integrated'
.
Time rate of true target deaths
- Частота времени истинных целевых смертей0.01
(по умолчанию) | скаляром в области значений [0, 1]Частота времени истинных целевых смертей, заданная как скаляр в области значений [0, 1]. Этот параметр описывает вероятность, с которой исчезают истинные цели. Оно связано с распространением вероятности существования дорожки (PTE):
где DeathRate - частота времени истинных целевых смертей, а δt - временной интервал с момента предыдущего t времени обновления.
Чтобы включить этот параметр, установите Type of track confirmation and deletion logic равным 'Integrated'
.
Prediction time source
- Источник времени предсказанияAuto
(по умолчанию) | Input port
Источник для времени предсказания, заданный как Input port
или Auto
. Выберите Input port
для ввода времени обновления с помощью Prediction Time входного порта. В противном случае часы симуляции, управляемые Simulink, определяют время обновления.
Enable cost matrix input
- Включите входной порт для матрицы затратУстановите этот флажок, чтобы включить вход матрицы затрат с помощью Cost Matrix входного порта.
Enable detectable track IDs input
- Включите обнаруживаемые идентификаторы дорожекУстановите этот флажок, чтобы включить Detectable track IDs входной порт.
Enable tentative tracks output
- Включите выходной порт для ориентировочных дорожекУстановите этот флажок, чтобы включить выход предварительных дорожек через Tentative Tracks выходной порт.
Enable all tracks output
- Включите выходной порт для всех трековУстановите этот флажок, чтобы включить выход всех дорожек через All Tracks выходной порт.
Enable information output
- Включите выходной порт для информации анализаУстановите этот флажок, чтобы включить порт выхода для анализа информации через порт Info выхода.
Source of output bus name
- Источник имени выходной магистральной шиныAuto
(по умолчанию) | Property
Источник выхода магистральной шины, заданный как:
Auto
- Блок автоматически создает выход шины трека.
Property
- Задайте имя выходной шины дорожки с помощью параметра Specify an output bus name.
Source of output info bus name
- Источник имени выходной информационной шиныAuto
(по умолчанию) | Property
Источник имени информационной шины выхода, заданный как один из следующих опций:
Auto
- Блок автоматически создает имя выходной информационной шины.
Property
- Задайте имя выходной информационной шины с помощью параметра Specify an output bus name.
Когда совместный вероятностный трекер ассоциации данных (JPDA) обрабатывает обнаружения, создание треков и управление ими следуют следующим шагам:
Трекер делит обнаружения на несколько групп с помощью инициирующего датчика.
Для каждого датчика:
Трекер вычисляет расстояния от обнаружений до существующих треков и формирует costMatrix
.
Трекер создает матрицу валидации на основе порога назначения (или порога управления ключами) существующих дорожек. Матрица валидации является двоичной матрицей, в которой перечислены все возможные связи обнаружения и отслеживания. Для получения дополнительной информации смотрите Допустимые совместные события.
Треки и обнаружения затем разделяются на кластеры. Кластер может содержать одну дорожку или несколько дорожек, если эти дорожки используют общие обнаружения в своих воротах валидации. Затвор валидации является пространственным контуром, в которой предсказанное обнаружение дорожки имеет высокую вероятность падения. Для получения дополнительной информации смотрите Допустимые совместные события.
Обновляйте все кластеры в соответствии с порядком средней отметки времени обнаружения в кластере. Для каждого кластера трекер:
Генерирует все допустимые совместные события. Для получения дополнительной информации см. jpdaEvents
.
Вычисляет апостериорную вероятность каждого события в соединении.
Вычисляет предельную вероятность каждой отдельной пары обнаружение-трек в кластере.
Сообщает о слабых обнаружениях. Слабые обнаружения являются обнаружениями, которые находятся в пределах логики валидации по крайней мере одной дорожки, но имеют вероятностную связь со всеми дорожками меньше, чем IntitializationThreshold
.
Обновляет треки в кластере используя correctjpda
.
Неназначенные обнаружения (обнаружения не в каком-либо кластере) и слабые обнаружения порождают новые дорожки.
Трекер проверяет все треки на удаление. Треки удаляются на основе количества сканов без ассоциации, использующих 'History'
логика или основанная на их вероятности существования с помощью 'Integrated'
отслеживать логику.
Всем трекам прогнозируется последнее значение времени (либо время входа если оно предусмотрено, либо последняя средняя метка времени кластера).
В типичном рабочем процессе для системы отслеживания трекер должен определить, может ли обнаружение быть связано с любым из существующих треков. Если трекер поддерживает только одну дорожку, назначение может быть выполнено путем оценки логического элемента валидации вокруг предсказанного измерения и принятия решения о том, попадает ли измерение в ворота валидации. В пространстве измерений затвор валидации является пространственным контуром, такой как 2-D эллипс или 3-D эллипсоид, с центром в предсказанном измерении. Логический элемент валидации определяется с помощью информации вероятности (оценка состояния и ковариация, для примера) существующей дорожки, так что правильные или идеальные обнаружения имеют высокую вероятность (97% вероятность, для примера) попадания в эту логическую матрицу валидации.
Однако, если трекер поддерживает несколько треков, процесс ассоциации данных становится более сложным, потому что одно обнаружение может попадать в ворота валидации нескольких треков. Например, на следующем рисунке треки T 1 и T 2 активно поддерживаются в трекере, и у каждого из них есть свои ворота валидации. Поскольку D 2 обнаружения находится в пересечении ворот валидации обоих T 1 и T 2, две дорожки (T 1 и T 2) соединяются и образуют кластер. Кластер является набором связанных дорожек и связанных с ними обнаружений.
Для представления связи связи в кластере обычно используется матрица валидации. Каждая строка матрицы валидации соответствует обнаружению, в то время как каждый столбец соответствует дорожке. Для расчета вероятности того, что каждое обнаружение является загроможденным, добавляется первый столбец, который обычно упоминается как «Track 0» или T 0. Если D обнаружения i находится внутри врата валидации дорожки D j, то запись (j, i + 1) матрицы валидации 1. В противном случае он равен нулю. Для кластера, показанного на рисунке, матрица валидации
Обратите внимание на то, что все элементы в первом столбце И равны 1, потому что любое обнаружение может быть загромождением или ложным предупреждением. Одним из важных шагов в логике совместной вероятностной ассоциации данных (JPDA) является получение всех допустимых независимых совместных событий в кластере. Два предположения для допустимых совместных событий:
Обнаружение не может быть вызвано несколькими дорожками.
Дорожка не может быть обнаружена более одного раза датчиком во время одного скана.
На основе этих двух предположений могут быть сформулированы возможные совместные события (FJE). Каждый FJE сопоставлен с матрицей A p FJE из исходной матрицы А валидации. Для примера с матрицей валидации
Как прямое следствие этих двух предположений, у Ωp матриц есть точно одно «1» значение за строку. Кроме того, за исключением первого столбца, который сопоставляется с загромождением, может быть не более одного «1» на столбец. Когда количество подключенных дорожек растет в кластере, количество FJE быстро увеличивается. jpdaEvents
функция использует эффективный алгоритм поиска глубины первый, чтобы сгенерировать все допустимые совместные матрицы событий.
Полями структуры дорожки являются:
Область | Определение |
---|---|
SourceIndex | Уникальный исходный индекс, используемый для различения источников отслеживания в среде нескольких трекеров. |
TrackID | Уникальный идентификатор дорожки, используемый для различения нескольких дорожек. |
BranchID | Уникальный идентификатор ветви дорожки, используемый для различения нескольких ветвей дорожки. |
UpdateTime | Время обновления дорожки. Модули указаны в секундах. |
Age | Количество раз, когда трек выживал. |
State | Значение вектора состояния во время обновления. |
StateCovariance | Ковариационная матрица неопределенности. |
TrackLogic | Тип логики подтверждения и удаления, возвращенный следующим 'History' или 'Integrated' . |
TrackLogicState | Текущее состояние типа логики дорожки. На основе типа логики
|
IsConfirmed | Статус подтверждения. Это поле true если дорожка подтверждена как действительная цель. |
IsCoasted | Состояние скручивания. Это поле true если дорожка обновляется без нового обнаружения. |
IsSelfReported | Укажите, сообщает ли трек трекер. Это поле используется в среде слияния треков. Возвращается следующим |
ObjectClassID | Целое значение, представляющее классификацию объектов. Значение 0 представляет неизвестную классификацию. Ненулевые классификации применяются только к подтвержденным трекам. |
ObjectAttributes | Дополнительная информация о дорожке. |
objectDetection
| objectTrack
| staticDetectionFuser
| trackerGNN
| trackerTOMHT
| trackHistoryLogic
| trackingABF
| trackingCKF
| trackingEKF
| trackingIMM
| trackingKF
| trackingUKF
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.