trackingArchitecture

Отслеживание системы архитектуры системы

Описание

trackingArchitecture Система object™ включает, вы к систематически моделируете архитектуру системы слежения, состоящей из средств отслеживания, и отслеживаете термофиксаторы.

Создавать и запускать архитектуру отслеживания:

  1. Создайте trackingArchitecture объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Синтаксис

Описание

пример

ta = trackingArchitecture создает trackingArchitecture Системный объект, который позволяет вам спроектировать систему системы отслеживания, состоявшую из датчиков, средств отслеживания и термофиксаторов дорожки.

  • Используйте addTracker функция, чтобы добавить средства отслеживания в архитектуру и соединить добавленное средство отслеживания с входными параметрами архитектуры.

  • Используйте addTrackFuser функция, чтобы добавить термофиксаторы дорожки в архитектуру и соединить добавленный термофиксатор дорожки со средствами отслеживания и входными параметрами архитектуры.

  • Используйте summary функционируйте, чтобы перечислить все средства отслеживания и термофиксаторы в архитектуре и показать, как они соединяются с вводами и выводами архитектуры.

  • Используйте show функция, чтобы визуализировать архитектуру.

Свойства

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

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Список средств отслеживания в виде массива ячеек средств отслеживания. Каждый элемент ячеек является одним из этих объектов средства отслеживания:

Можно также использовать индивидуально настраиваемое средство отслеживания, наследовавшееся fusion.trackingArchitecture.Tracker класс.

Список термофиксаторов дорожки в виде массива ячеек trackFuser объекты.

Можно также использовать индивидуально настраиваемый термофиксатор дорожки, наследовавшийся fusion.trackingArchitecture.TrackFuser класс.

Использование

Описание

пример

[tracks1,...,tracksN] = ta(detections,sourceTracks,time) запускает trackingArchitecture объект, ta, и возвращает подтвержденные дорожки.

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

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

Список обнаружений в виде массива objectDetection объекты, массив ячеек objectDetection объекты или массив структур. Если задано как структуры, имена полей каждой структуры должны совпасть с именами свойства objectDetection объект. Архитектура направляет обнаружение к средству отслеживания чей соответствующий ArchitectureInputs значения в архитектуре содержат SensorIndex значение обнаружения.

Источник отслеживает в виде массива objectTrack объекты или массив структур. Если задано как структуры, имена полей каждой структуры должны совпасть с именами свойства objectTrack объект. Архитектура направляет исходную дорожку к термофиксатору чей соответствующий FuserInputs значения в архитектуре содержат SourceIndex значение дорожки.

Используйте SourceConfigurations свойство trackFuser задавать входные источники термофиксатора.

Время обновления в виде скаляра. Архитектура обновляет все средства отслеживания и термофиксаторы к этому времени. Величина в секундах.

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

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

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

Дорожки от Энной архитектуры выходной параметр, возвращенный как массив objectTrack объекты в MATLAB®, и возвратился как массив структур в генерации кода. В генерации кода имена полей возвращенной структуры совпадают с именами свойства objectTrack. tracksN сгенерирован от средства отслеживания или термофиксатора дорожки чей соответствующий ArchitectureOutput значение в архитектуре равно N.

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

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

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

addTrackerДобавьте средство отслеживания в отслеживание архитектуры
addTrackFuserДобавьте термофиксатор дорожки в отслеживание архитектуры
summaryОтобразите табличные сводные данные отслеживания архитектуры
showПокажите архитектуру отслеживания на рисунке
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
isLockedОпределите, используется ли Системный объект
cloneСоздайте объект дублированной системы
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Создайте архитектуру отслеживания.

ta = trackingArchitecture;

Создайте trackerGNN объект. Средство отслеживания берет входные параметры обнаружения из датчиков 1 и 2. Добавьте средство отслеживания в архитектуру отслеживания.

tracker1 = trackerGNN('TrackerIndex',1);
addTracker(ta,tracker1,'SensorIndices',[1,2]);

Создайте trackerPHD объект. Средство отслеживания берет входные параметры обнаружения из датчиков 3 и 4. Добавьте средство отслеживания в архитектуру отслеживания и отключите ее прямой выход.

tracker2 = trackerPHD('TrackerIndex',2,'SensorConfigurations',...
    {trackingSensorConfiguration(3),trackingSensorConfiguration(4)});
addTracker(ta,tracker2,'ToOutput',false); % Disable ouput

Создайте trackFuser объект. Термофиксатор дорожки берет входные параметры дорожки из этих двух средств отслеживания.

fuser = trackFuser('FuserIndex',3,'SourceConfigurations',...
    {fuserSourceConfiguration(1),fuserSourceConfiguration(2)});
addTrackFuser(ta,fuser);

Отобразите сводные данные архитектуры отслеживания.

sum = summary(ta)
sum=3×4 table
         System          ArchitectureInputs       FuserInputs        ArchitectureOutput
    _________________    __________________    __________________    __________________

    {'T1:trackerGNN'}        {'1  2'  }        {'Not applicable'}       {[       1]}   
    {'T2:trackerPHD'}        {'3  4'  }        {'Not applicable'}       {0x0 double}   
    {'F3:trackFuser'}        {0x0 char}        {'1  2'          }       {[       2]}   

Покажите архитектуру отслеживания.

show(ta)

Figure contains an axes object. The axes object with title Tracking Architecture: ta contains 38 objects of type rectangle, text, line, patch.

Эта архитектура имеет два средства отслеживания:

  • Средство отслеживания 1: trackerGNN это получает обнаружения от датчиков 1 и 2.

  • Средство отслеживания 2: trackerJPDA это получает обнаружения от датчика 3.

Оба средства отслеживания передают дорожки trackFuser это также получает дорожки непосредственно от датчика отслеживания 4.

Создайте trackingArchitecure объект. Добавьте два средства отслеживания с заданными индексами датчика.

ta = trackingArchitecture; 
addTracker(ta,trackerGNN('TrackerIndex',1),'SensorIndices',[1 2]);
addTracker(ta,trackerJPDA('TrackerIndex',2),'SensorIndices',3);

Создайте trackFuser. Задайте его источники с помощью SourceConfigurations свойство. Добавьте термофиксатор в архитектуру отслеживания.

fuser = trackFuser('FuserIndex',3,'MaxNumSources',3, ...
     'SourceConfigurations',{fuserSourceConfiguration(1); ...
     fuserSourceConfiguration(2); fuserSourceConfiguration(4)});
addTrackFuser(ta,fuser);

Рассмотрите сводные данные архитектуры.

disp(summary(ta))
          System          ArchitectureInputs       FuserInputs        ArchitectureOutput
    __________________    __________________    __________________    __________________

    {'T1:trackerGNN' }         {'1  2'}         {'Not applicable'}            1         
    {'T2:trackerJPDA'}         {'3'   }         {'Not applicable'}            2         
    {'F3:trackFuser' }         {'4'   }         {'1  2'          }            3         

Покажите архитектуру на рисунке.

figure
show(ta)

Figure contains an axes object. The axes object with title Tracking Architecture: ta contains 42 objects of type rectangle, text, line, patch.

Создайте отображение с помощью theaterPlot визуализировать дорожки, сгенерированные trackingArchitecture позже.

figure
ax1 = subplot(3,1,1);
p1 = theaterPlot('Parent',ax1,'XLimits',[-100 150],'YLimits',[-5 15]);
view(2) 
title('GNN tracks')
t1 = trackPlotter(p1,'ConnectHistory','on','ColorizeHistory','on','DisplayName','Tracks');

ax2 =subplot(3,1,2);
p2 = theaterPlot('Parent',ax2,'XLimits',[-100 150],'YLimits',[-5 15]);
t2 = trackPlotter(p2,'ConnectHistory','on','ColorizeHistory','on','DisplayName','Tracks');
view(2)
title('JPDA tracks')

ax3 =subplot(3,1,3);
p3 = theaterPlot('Parent',ax3,'XLimits',[-100 150],'YLimits',[-5 15]);
t3 = trackPlotter(p3,'ConnectHistory','on','ColorizeHistory','on','DisplayName','Tracks');
view(2)
title('Fused tracks')

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

load('archInputs','detections','tracks');
positionSelector = [1 0 0 0 0 0; 0 0 1 0 0 0;0 0 0 0 1 0];
for i = 1:numel(detections)
    [gnnTrks,jpdaTrks,fusedTrks] = ta(detections{i},tracks{i},i);
    plotTrack(t1, getTrackPositions(gnnTrks,positionSelector),string([gnnTrks.TrackID]));
    plotTrack(t2, getTrackPositions(jpdaTrks,positionSelector),string([jpdaTrks.TrackID]));
    plotTrack(t3, getTrackPositions(fusedTrks,positionSelector),string([fusedTrks.TrackID]));
end

Figure contains 3 axes objects. Axes object 1 with title GNN tracks contains 5 objects of type line, text. These objects represent Tracks, (history). Axes object 2 with title JPDA tracks contains 5 objects of type line, text. These objects represent Tracks, (history). Axes object 3 with title Fused tracks contains 5 objects of type line, text. These objects represent Tracks, (history).

Введенный в R2021a