Отслеживайте объекты с помощью назначения GNN
The multiObjectTracker
Системная object™ инициализирует, подтверждает, предсказывает, исправляет и удаляет дорожки движущихся объектов. Входами к трекеру мультиобъекта являются отчеты об обнаружении, сгенерированные objectDetection
объект, drivingRadarDataGenerator
объект, или visionDetectionGenerator
объект. Мультиобъектный трекер принимает обнаружения от нескольких датчиков и присваивает их трекам с помощью глобального критерия ближайшего соседа (GNN). Каждое обнаружение присваивается отдельной дорожке. Если обнаружение не может быть назначено какой-либо дорожке, на основе AssignmentThreshold
свойство, трекер создает новый трек. Дорожки возвращаются в массиве структур.
Новый трек запускается в предварительном состоянии. Если предварительному дорожке назначено достаточное количество обнаружений, его статус меняется на подтвержденный. Если обнаружение является известной классификацией (ObjectClassID
поле возвращенной дорожки ненулевое), эта дорожка может быть немедленно подтверждена. Для получения дополнительной информации о свойствах многообъектного трекера, используемых для подтверждения треков, смотрите Алгоритмы.
Когда дорожка подтверждена, мультиобъект считает, что дорожка представляет физический объект. Если обнаружение не добавляется к дорожке в пределах заданного количества обновлений, дорожка удаляется.
Трекер также оценивает вектор состояния и векторную ковариационную матрицу состояния для каждой дорожки, используя фильтр Калмана. Эти векторы состояния используются, чтобы предсказать местоположение дорожки в каждой системе координат и определить вероятность того, что каждое обнаружение будет назначено каждой дорожке.
Чтобы отслеживать объекты с помощью трекера мультиобъекта:
Создайте multiObjectTracker
Объекту и установите его свойства.
Вызывайте объект с аргументами, как будто это функция.
Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».
создает tracker
= multiObjectTrackermultiObjectTracker
Системный объект со значениями свойств по умолчанию.
устанавливает свойства для мультиобъекта, используя одну или несколько пары "имя-значение". Для примера, tracker
= multiObjectTracker(Name,Value
)multiObjectTracker('FilterInitializationFcn',@initcvukf,'MaxNumTracks',100)
создает мультиобъект трекер, который использует постоянную скорость, сигма-точечный фильтр Калмана и поддерживает максимум 100 треков. Заключайте каждое имя свойства в кавычки.
Для обновления треков вызывайте созданный многообъектный трекер с аргументами, как если бы это была функция (описанная здесь). Кроме того, обновляйте треки при помощи updateTracks
функция, задающая трекер мультиобъекта как входной параметр.
создает, обновляет и удаляет треки в трекере мультиобъекта и возвращает сведения о подтвержденных треках. Обновления основаны на указанном списке confirmedTracks
= tracker(detections
,time
)detections
, и все дорожки обновляются до заданного time
. Каждый элемент в возвращенном confirmedTracks
соответствует одной дорожке.
[
также возвращается confirmedTracks
,tentativeTracks
] = tracker(detections
,time
)tentativeTracks
содержащие подробную информацию о предварительных треках.
[
также возвращается confirmedTracks
,tentativeTracks
,allTracks
] = tracker(detections
,time
)allTracks
содержащий подробности обо всех подтвержденных и ориентировочных треках. Дорожки возвращаются в том порядке, в котором трекер их внутренне поддерживает. Можно использовать этот выход, чтобы помочь вам вычислить матрицу затрат, необязательный входной параметр.
[___] = tracker(
задает матрицу затрат, возвращая любой из выходов из предыдущих синтаксисов.detections
,time
,costMatrix
)
Чтобы задать матрицу затрат, установите HasCostMatrixInput
свойство multiObjectTracker
Системный объект для true
.
[___] = tracker(___,
также задает список ожидаемых обнаруживаемых треков, заданных detectableTrackIDs
)detectableTrackIDs
. Этот аргумент может использоваться с любым из предыдущих входных синтаксисов.
Чтобы включить этот синтаксис, установите HasDetectableTrackIDsInput
свойство к true
.
Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj
, используйте следующий синтаксис:
release(obj)
Когда вы передаете обнаружения в мультиобъект трекер, Системный объект:
Попытка назначить входные обнаружения существующим трекам, основанная на AssignmentThreshold
свойство многообъектного трекера.
Создает новые дорожки из неназначенных обнаружений.
Обновления уже назначенных треков и, возможно, их подтверждение, на основе ConfirmationThreshold
свойство трекера.
Удаляет треки, которым не назначены обнаружения, на основе DeletionThreshold
свойство трекера.