updateTracks

Обновите мультиобъектное средство отслеживания с новыми обнаружениями

Описание

confirmedTracks = updateTracks(tracker,detections,time) создает, обновляет и удаляет дорожки в multiObjectTracker Система object™, tracker. Обновления основаны на заданном списке detections, и все дорожки обновляются к заданному time. Каждый элемент в возвращенном confirmedTracks соответствует одноколейному пути.

[confirmedTracks,tentativeTracks] = updateTracks(tracker,detections,time) также возвращает tentativeTracks содержа детали о предварительных дорожках.

пример

[confirmedTracks,tentativeTracks,allTracks] = updateTracks(tracker,detections,time) также возвращает allTracks содержа детали обо всех подтвержденных и предварительных дорожках. Дорожки возвращены в порядке, согласно которому средство отслеживания внутренне обеспечивает их. Можно использовать этот выход, чтобы помочь вам вычислить матрицу стоимости, дополнительный входной параметр.

[___] = updateTracks(tracker,detections,time,costMatrix) задает матрицу стоимости, возвращая любой из выходных параметров от предыдущих синтаксисов.

Чтобы задать матрицу стоимости, установите HasCostMatrixInput свойство tracker к true.

[___] = updateTracks(___,detectableTrackIDs) также задает список ожидаемых обнаруживаемых дорожек, данных detectableTrackIDs. Этот аргумент может использоваться с любым из предыдущих входных синтаксисов.

Чтобы включить этот синтаксис, установите HasDetectableTrackIDsInput свойство к true.

Примеры

свернуть все

Создайте multiObjectTracker Система object™ использование инициализации фильтра по умолчанию функционирует для 2D модели постоянной скорости. Для этой модели движения вектор состояния [x; vx; y;].

tracker = multiObjectTracker('ConfirmationThreshold',[4 5], ...
    'DeletionThreshold',10);

Создайте обнаружение путем определения objectDetection объект. Чтобы использовать это обнаружение с мультиобъектным средством отслеживания, заключите обнаружение в массив ячеек.

dettime = 1.0;
det = { ...
    objectDetection(dettime,[10; -1], ...
    'SensorIndex',1, ...
    'ObjectAttributes',{'ExampleObject',1}) ...
    };

Обновите мультиобъектное средство отслеживания с этим обнаружением при помощи updateTracks функция. Время, в которое вы обновляете мультиобъектное средство отслеживания, должно быть больше или быть равно времени, в которое был обнаружен объект.

updatetime = 1.25;
[confirmedTracks,tentativeTracks,allTracks] = updateTracks(tracker,det,updatetime);

Создайте другое обнаружение того же объекта и обновите мультиобъектное средство отслеживания, на этот раз путем вызова самого средства отслеживания вместо того, чтобы использовать updateTracks. Средство отслеживания обеспечивает только одну дорожку.

dettime = 1.5;
det = { ...
    objectDetection(dettime,[10.1; -1.1], ...
    'SensorIndex',1, ...
    'ObjectAttributes',{'ExampleObject',1}) ...
    };
updatetime = 1.75;
[confirmedTracks,tentativeTracks,allTracks] = tracker(det,updatetime);

Определите, была ли дорожка проверена путем проверки количества подтвержденных дорожек.

numConfirmed = tracker.NumConfirmedTracks
numConfirmed = 0

Исследуйте положение и скорость отслеживаемого объекта. Поскольку дорожка не была подтверждена, получите положение и скорость от tentativeTracks структура.

positionSelector = [1 0 0 0; 0 0 1 0];
velocitySelector = [0 1 0 0; 0 0 0 1];
position = getTrackPositions(tentativeTracks,positionSelector)
position = 1×2

   10.1426   -1.1426

velocity = getTrackVelocities(tentativeTracks,velocitySelector)
velocity = 1×2

    0.1852   -0.1852

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

свернуть все

Мультиобъектное средство отслеживания в виде multiObjectTracker Системный объект.

Список обнаружений в виде массива ячеек objectDetection объекты. Time значение свойства каждого objectDetection объект должен быть меньше чем или равен текущему времени обновления, time, и больше, чем предыдущая временная стоимость раньше обновлял мультиобъектное средство отслеживания.

Время обновления в виде действительного скаляра. Средство отслеживания обновляет все дорожки к этому времени. Величина в секундах.

time должен быть больше или быть равен самому большому Time значение свойства objectDetection объекты во входе detections список. time должен увеличиться в значении с каждым обновлением мультиобъектного средства отслеживания.

Типы данных: double

Стойте матрицы в виде N с действительным знаком матрица T-by-ND, где N T является количеством существующих дорожек, и N D является количеством текущих обнаружений. Строки матрицы стоимости соответствуют существующим дорожкам. Столбцы соответствуют обнаружениям. Дорожки упорядочены, когда они появляются в списке дорожек в allTracks выходной аргумент предыдущего обновления мультиобъектного средства отслеживания.

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

Зависимости

Чтобы включить спецификацию матрицы стоимости при обновлении дорожек, установите HasCostMatrixInput свойство средства отслеживания к true

Типы данных: double

Обнаруживаемые идентификаторы дорожки в виде M с действительным знаком-by-1 вектор или M-by-2 матрица. Обнаруживаемые дорожки являются дорожками, которые датчики ожидают обнаруживать. Первый столбец матрицы содержит список идентификаторов дорожки, о которых датчики сообщают как обнаруживаемые. Дополнительный второй столбец содержит вероятность обнаружения для дорожки. О вероятности обнаружения или сообщает датчик или, если не сообщаемый, полученный из DetectionProbability свойство.

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

Зависимости

Чтобы включить этот входной параметр, установите detectableTrackIDs свойство к true.

Типы данных: single | double

Выходные аргументы

свернуть все

Подтвержденные дорожки, возвращенные как массив objectTrack объекты в MATLAB®, и возвратился как массив структур в генерации кода. В генерации кода имена полей возвращенной структуры - то же самое с именами свойства objectTrack.

Дорожка подтверждена, если она удовлетворяет порогу подтверждения, заданному в ConfirmationThreshold свойство. В этом случае, IsConfirmed свойством объекта или полем структуры является true.

Типы данных: struct | object

Предварительные дорожки, возвращенные как массив objectTrack объекты в MATLAB, и возвратились как массив структур в генерации кода. В генерации кода имена полей возвращенной структуры - то же самое с именами свойства objectTrack.

Дорожка является предварительной, если она не удовлетворяет порогу подтверждения, заданному в ConfirmationThreshold свойство. В этом случае, IsConfirmed свойством объекта или полем структуры является false.

Типы данных: struct | object

Все дорожки, возвращенные как массив objectTrack объекты в MATLAB, и возвратились как массив структур в генерации кода. В генерации кода имена полей возвращенной структуры - то же самое с именами свойства objectTrack. Все дорожки состоят из подтвержденных и предварительных дорожек.

Типы данных: struct | object

Алгоритмы

Когда вы передаете обнаружения в updateTracks, функция:

  • Попытки присвоить входные обнаружения существующим дорожкам, на основе AssignmentThreshold свойство мультиобъектного средства отслеживания.

  • Создает новые треки из неприсвоенных обнаружений.

  • Обновления уже присвоили дорожки и возможно подтверждают их, на основе ConfirmationThreshold свойство средства отслеживания.

  • Удаляет дорожки, которые не имеют никаких присвоенных обнаружений, на основе DeletionThreshold свойство средства отслеживания.

Смотрите также

Объекты

Функции

Введенный в R2017a