Отслеживайте объекты с помощью назначения 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 свойство трекера.