Отслеживание близко расположенных целей под неоднозначностью

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

Введение

Отслеживание является процессом оценки ситуации на основе данных, собранных одним или несколькими источниками информации. Отслеживание попыток ответить на следующие вопросы:

  1. Сколько объекты там?

  2. Где объекты расположены на пробеле?

  3. Каковы их скорость и направление движения?

  4. Как объекты маневрируют друг относительно друга?

Средства отслеживания используют данные о датчике, такие как радарные обнаружения. Датчики могут сгенерировать два обнаружения для двух целей, если датчики могут разрешить цели пространственно. Если две цели близко расположены, они могут находиться в пределах одной ячейки разрешения датчика, и датчик сообщает о только одном обнаружении их. Чтобы проиллюстрировать проблему, следующий рисунок показывает радар с 1,5 разрешениями азимута степеней. В области значений 20 км радарный интервал датчика имеет ширину вышеупомянутых 540 м, что означает, что любое обнаружение, о котором сообщают из той области значений, расположено в центре интервала с неопределенностью на ±270 м по поводу этого. О любых двух целях в этом интервале сообщают как одно обнаружение.

Сценарий

Чтобы продемонстрировать случай, где отчеты датчика двусмысленно присвоены дорожкам, вы создаете простой сценарий. В этом сценарии один радарный объект, расположенный в начале координат (не показанный), сканирует небольшую область приблизительно 20 км от радара. Первоначально, показания радара приблизительно два обнаружения на скан. Когда обнаружения прибывают из области вокруг X = 0, Y =-20километровое положение, показания радара одно обнаружение на скан некоторое время, сопровождаемый двумя радарными обнаружениями, о которых сообщают со всего Y =-19.5km и к датчику.

Журнал сценария и обнаружений уже сохранен в matfile. Можно не прокомментировать линии ниже, чтобы регенерировать сценарий и синтетические обнаружения.

load ATCdata.mat
% scenario = helperCreateScenario;
% dataLog = helperRunDetections(scenario);
plotScenarioAndDetections(dataLog);

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

Средство отслеживания одно гипотезы с постоянной скоростной моделью

Самым простым выбором мультицелевого средства отслеживания является средство отслеживания одно гипотезы как trackerGNN. Вы устанавливаете его использовать логику счета, позволять более легкое сравнение с trackerTOMHT позже в этом примере.

Этот пример мал и не требует больше чем 20 дорожек. Логический элемент должен быть выбран, чтобы позволить дорожкам быть установленными без побочных дорожек и был увеличен со значения по умолчанию.

Объем интервала датчика может быть примерно оценен с помощью определителя шума измерения обнаружения. В этом случае значение о 1e9, таким образом, вы регулируете громкость к 1e9. Значение беты должно задать, сколько новых объектов ожидается в единичном объеме. Когда количество объектов в этом сценарии является постоянным, бета набора, чтобы очень быть малым. Значения для вероятности обнаружения и ложного сигнального уровня приняты от соответствующих значений радара.

numTracks = 20; % Maximum number of tracks
gate = 45;      % Association gate
vol = 1e9;      % Sensor bin volume
beta = 1e-14;   % Rate of new targets in a unit volume
pd = 0.8;       % Probability of detection
far = 1e-6;     % False alarm rate

Вы используете расширенный Фильтр Калмана постоянной скорости. initCVFilter функция изменяет фильтр что initcvekf возвращается, чтобы допускать более высокую неопределенность в скоростных терминах и более высокое горизонтальное ускорение в шуме процесса. Эти модификации необходимы, чтобы отследить цели в этом сценарии, которые перемещаются в высокую скорость и маневр путем превращения в горизонтальной плоскости.

tracker = trackerGNN( ...
    'FilterInitializationFcn',@initCVFilter,...
    'MaxNumTracks', numTracks, ...
    'MaxNumSensors', 1, ...
    'AssignmentThreshold',gate, ...
    'TrackLogic', 'Score', ...
    'DetectionProbability', pd, 'FalseAlarmRate', far, ...
    'Volume', vol, 'Beta', beta);

Следующая линия запускает сценарий и производит визуализацию.

[trackSummary, truthSummary, trackMetrics, truthMetrics,timeGNNCV] = helperRunTracker(dataLog,tracker,false);

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

В конце сценария истина возражает 2, был сопоставлен с дорожкой 8, который был создан на полпути через сценарий после того, как дорожка 2 была пропущена. Объект Truth 3 был присвоен, отслеживают 1 в конце сценария, но имеет два пропуска.

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

disp(trackSummary)
disp(truthSummary)
    TrackID    AssignedTruthID    Surviving    TotalLength    DivergenceStatus
    _______    _______________    _________    ___________    ________________

       1               3            true           190             false      
       2             NaN            false           77             true       
       8               2            true           111             false      

    TruthID    AssociatedTrackID    TotalLength    BreakCount    EstablishmentLength
    _______    _________________    ___________    __________    ___________________

       2               8                192            1                  4         
       3               1                192            2                  2         

Используйте trackErrorMetrics анализировать качество отслеживания в терминах ошибок положения и скорости между истиной возражает и дорожки, сопоставленные с ними. Результаты показывают, что ошибки положения составляют приблизительно 50-60 м, и ошибки скорости являются RMS на приблизительно 30 м/с.

disp(trackMetrics)
disp(truthMetrics)
    TrackID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       1       59.461    26.119     7.9331       3.495 
       2       51.803    39.433     5.7494      3.0362 
       8       62.914    28.877     7.2004      3.0465 

    TruthID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       2       62.147    27.546     8.3597      3.9608 
       3       56.218    32.109     6.3234      2.6642 

Средство отслеживания одно гипотезы со взаимодействующими многоуровневыми моделями

Комбинация средства отслеживания одно гипотезы и постоянного скоростного фильтра не могла отследить маневрирующие цели. Этот результат очевиден тем, что одна из остановок дорожек и затем новый трек начинается, в то время как существует только две цели в сценарии. Это также очевидно из неспособности следовать за целевыми поворотами.

Одна опция, чтобы улучшить средство отслеживания должна изменить фильтр, чтобы быть фильтром взаимодействующей многоуровневой модели (IMM), который позволяет вам рассматривать две или больше модели движения для целей. Фильтр переключается на правильное основанное на модели на вероятности одной модели по другому, учитывая измерения. В этом примере цели перемещаются в постоянную скорость, пока они не поворачиваются на постоянном уровне, таким образом, вы задаете фильтр IMM с этими двумя моделями с помощью initIMMFilter функция.

tracker = trackerGNN( ...
    'FilterInitializationFcn',@initIMMFilter,...
    'MaxNumTracks', numTracks, ...
    'MaxNumSensors', 1, ...
    'AssignmentThreshold',gate, ...
    'TrackLogic', 'Score', ...
    'DetectionProbability', pd, 'FalseAlarmRate', far, ...
    'Volume', vol, 'Beta', beta);
[trackSummary, truthSummary, trackMetrics, truthMetrics, timeGNNIMM] = helperRunTracker(dataLog,tracker,false);

Сложение фильтра IMM позволяет средству отслеживания идентифицировать целевой маневр правильно. Можно наблюдать это заключение путем рассмотрения дорожек, сгенерированных во время целевых поворотов, и заметить, как хорошо оба поворота прослежены. В результате истина возражает 2, имеет нулевые пропуски, которые вы видите в графике непрерывной истории его связанной дорожки.

Однако даже со взаимодействующими моделями, одна из дорожек прерывает область неоднозначности. Средство отслеживания одно гипотезы получает только одно обнаружение с той областью и может обновить только одну из дорожек с ним, курсируя другая дорожка. После нескольких обновлений счет курсировавшей дорожки падает ниже порога удаления, и средство отслеживания пропускает дорожку.

disp(trackSummary)
disp(truthSummary)
    TrackID    AssignedTruthID    Surviving    TotalLength    DivergenceStatus
    _______    _______________    _________    ___________    ________________

       1               2            true           190             false      
       2             NaN            false           77             true       
       8               3            true           111             false      

    TruthID    AssociatedTrackID    TotalLength    BreakCount    EstablishmentLength
    _______    _________________    ___________    __________    ___________________

       2               1                192            0                  4         
       3               8                192            1                  2         

Использование IMM также улучшило точность отслеживания, когда ошибки положения уменьшали до 40-60 метров, в то время как ошибки скорости уменьшали до 25-30 м/с. Это улучшение может быть приписано более низким значениям шума процесса, используемым в IMM для каждой модели, которые позволяют лучшее сглаживание шумных измерений.

disp(trackMetrics)
disp(truthMetrics)
    TrackID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       1       52.445      22.4     7.6006      6.0031 
       2       48.149    35.239     6.5401      3.4887 
       8       34.787    20.279     5.2549      4.2032 

    TruthID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       2       52.445      22.4     7.6006      6.0031 
       3        40.75    27.364     5.7772      3.9128 

Средство отслеживания нескольких-гипотез с постоянной скоростной моделью

Чтобы разрешить проблему поврежденной дорожки, используйте средство отслеживания нескольких-гипотез (MHT), trackerTOMHT. В области неоднозначности средство отслеживания генерирует несколько гипотез об ассоциации обнаружения с дорожками. В частности, это обеспечивает одну гипотезу, что первая дорожка присвоена это обнаружение и другая гипотеза, что вторая дорожка присвоена обнаружение. Путем выполнения так, поддерживаются обе дорожки, так, чтобы средство отслеживания заставило достаточно обнаружений разрешать неоднозначность в следующих обновлениях.

trackerTOMHT использует те же параметры в качестве trackerGNN, кроме:

  • AssignmentThreshold позволяет дорожке быть рассмотренной неприсвоенной, даже когда существует присвоенное обнаружение. Эта установка позволяет несколько ветвей на дорожку. Однако второй элемент логического элемента запрещает новые треки от присвоенных обнаружений, чтобы сократить общее количество дорожек и улучшать производительность.

  • MaxNumHistoryScans увеличен до 10, чтобы задержать NScanPruning.

  • MaxNumTrackBranches увеличен до 5, чтобы позволить больше ветвей (гипотезы) на дорожку.

tracker = trackerTOMHT( ...
    'FilterInitializationFcn',@initCVFilter, ...
    'MaxNumTracks', numTracks, ...
    'MaxNumSensors', 1, ...
    'AssignmentThreshold', [0.2, 1, 1]*gate,...
    'DetectionProbability', pd, 'FalseAlarmRate', far, ...
    'Volume', vol, 'Beta', beta, ...
    'MaxNumHistoryScans', 10,...
    'MaxNumTrackBranches', 5,...
    'NScanPruning', 'Hypothesis', ...
    'OutputRepresentation', 'Tracks');

[trackSummary, truthSummary, trackMetrics, truthMetrics, timeTOMHTCV] = helperRunTracker(dataLog,tracker,false);

Результаты показывают, что средство отслеживания нескольких-гипотез способно к отслеживанию двух объектов истины в сценарии. Для области неоднозначности средство отслеживания MHT формулирует две гипотезы о присвоении:

  1. Обнаружение присвоено отследить 1.

  2. Обнаружение присвоено отследить 2.

С этими гипотезами обе дорожки генерируют ветви (гипотезы дорожки), которые обновляют их использующий то же обнаружение. Очевидно, использование того же обнаружения, чтобы обновить обе дорожки заставляет дорожки становиться ближе в своей оценке, и в конечном счете две дорожки могут объединить. Однако, если длительность неоднозначного присвоения коротка, средство отслеживания может смочь разрешить две дорожки, когда существует два обнаружения. В этом случае вы видите, что две дорожки пересекают друг друга, но метрики показывают, что счет пропуска для каждой истины равняется 1, означая, что истинные цели, вероятно, не пересекли друг друга.

disp(trackSummary)
disp(truthSummary)
    TrackID    AssignedTruthID    Surviving    TotalLength    DivergenceStatus
    _______    _______________    _________    ___________    ________________

       1              3             true           190             false      
       2              2             true           191             false      

    TruthID    AssociatedTrackID    TotalLength    BreakCount    EstablishmentLength
    _______    _________________    ___________    __________    ___________________

       2               2                192            1                  2         
       3               1                192            1                  2         

В терминах точности отслеживания ошибки положения и скорости этого средства отслеживания похожи на тех от комбинации средства отслеживания одно гипотезы с постоянным скоростным фильтром.

disp(trackMetrics)
disp(truthMetrics)
    TrackID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       1       45.532    28.802     4.5909      3.2827 
       2       61.968    29.851     6.7191      2.7338 

    TruthID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       2       48.877     28.57     5.0144      3.2761 
       3       58.203    29.895     6.1414      2.8049 

Средство отслеживания нескольких-гипотез со взаимодействующими многоуровневыми моделями

При построении на успехе использования средства отслеживания нескольких-гипотез с постоянной скоростью, чтобы обеспечить непрерывное отслеживание, объедините средство отслеживания с преимуществами фильтра IMM. Фильтр IMM может быть более успешным в предотвращении дорожки, пересекающейся, когда это улучшает отслеживание, когда цели поворачиваются. Следующий код конфигурирует trackerTOMHT с trackingIMM фильтр.

tracker = trackerTOMHT( ...
    'FilterInitializationFcn',@initIMMFilter, ...
    'MaxNumTracks', numTracks, ...
    'MaxNumSensors', 1, ...
    'AssignmentThreshold', [0.2, 1, 1]*gate,...
    'DetectionProbability', pd, 'FalseAlarmRate', far, ...
    'Volume', vol, 'Beta', beta, ...
    'MaxNumHistoryScans', 10,...
    'MaxNumTrackBranches', 5,...
    'NScanPruning', 'Hypothesis', ...
    'OutputRepresentation', 'Tracks');
[trackSummary, truthSummary, trackMetrics, truthMetrics, timeTOMHTIMM] = helperRunTracker(dataLog,tracker,false);

График показывает, что две дорожки не пересекались. Этот результат также очевиден в количестве пропуска истинных целей ниже, которое показывает нулевые пропуски.

Можно также видеть истинный путь целей, показанных в сплошной линии.

disp(trackSummary)
disp(truthSummary)
    TrackID    AssignedTruthID    Surviving    TotalLength    DivergenceStatus
    _______    _______________    _________    ___________    ________________

       1              2             true           190             false      
       2              3             true           191             false      

    TruthID    AssociatedTrackID    TotalLength    BreakCount    EstablishmentLength
    _______    _________________    ___________    __________    ___________________

       2               1                192            0                  2         
       3               2                192            0                  2         

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

disp(trackMetrics)
disp(truthMetrics)
    TrackID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       1       55.947    24.442     6.9595      5.5471 
       2       37.797    25.949     5.2605      4.0935 

    TruthID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       2       55.947    24.442     6.9595      5.5471 
       3       37.797    25.949     5.2605      4.0935 

Соедините вероятностное средство отслеживания ассоциации данных с постоянной скоростной моделью

Несмотря на то, что метрики отслеживания значительно улучшены при помощи trackerTOMHT по trackerGNN, компьютерное время вычислений также значительно увеличено. Средство отслеживания Объединенной вероятностной ассоциации данных (JPDA), trackerJPDA, позволит вам исследовать дальнейшие факторы компромисса. В отличие от GNN, JPDA позволяет одному обнаружению использоваться для обновления нескольких дорожек в его близости. Кроме того, несколько обнаружений могут кластеризироваться вместе с несколькими дорожками и обновить каждую из тех дорожек. Это решает вопрос о поврежденной дорожке. Однако JPDA не обеспечивает несколько гипотеза по нескольким сканам, которая делает его субоптимальным подходом в противоположность MHT.

trackerJPDA использует те же параметры в качестве trackerGNN кроме:

  • ClutterDensity отношение FalseAlarmRate и Volume.

  • NewTargetDensity замены Beta.

  • TimeTolerance допускает обработку нескольких обнаружений от радара сканирования в одном кластере.

Кроме того, установите TrackLogic к Integrated который концептуально ближе к логике счета, используемой с предыдущими двумя средствами отслеживания.

tracker = trackerJPDA(...
    'FilterInitializationFcn',@initCVFilter,...
    'MaxNumTracks', numTracks, ...
    'MaxNumSensors', 1, ...
    'AssignmentThreshold',gate, ...
    'TrackLogic','Integrated',...
    'DetectionProbability', pd, ...
    'ClutterDensity', far/vol, ...
    'NewTargetDensity', beta,...
    'TimeTolerance',0.05);

[trackSummary, truthSummary, trackMetrics, truthMetrics, timeJPDACV] = helperRunTracker(dataLog,tracker,false);

Несмотря на то, что, trackerJPDA не обеспечивает несколько гипотеза, он позволяет обеим дорожкам оставаться подтвержденными в области неоднозначности, где о только одном обнаружении сообщают на обновление. Обе дорожки могут быть присвоены обнаружению с различными вероятностями. Однако дорожки пересекают друг друга, как наблюдается прежде с другими средствами отслеживания. Метрики повреждаются, количество каждой истины равняется также 1.

disp(trackSummary)
disp(truthSummary)
    TrackID    AssignedTruthID    Surviving    TotalLength    DivergenceStatus
    _______    _______________    _________    ___________    ________________

       1              3             true           191             false      
       2              2             true           191             false      

    TruthID    AssociatedTrackID    TotalLength    BreakCount    EstablishmentLength
    _______    _________________    ___________    __________    ___________________

       2               2                192            1                  1         
       3               1                192            1                  2         

Точность отслеживания на одном уровне с тем, что получено с trackerGNN и trackerTOMHT.

disp(trackMetrics)
disp(truthMetrics)
    TrackID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       1       44.918    29.911     5.1894      3.5599 
       2       58.904    31.484     7.0023      3.0944 

    TruthID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       2       47.304    29.606     5.4677      3.5093 
       3       56.106    31.564     6.5976      3.1815 

Соедините вероятностное средство отслеживания ассоциации данных со взаимодействующими многоуровневыми моделями

Как замечено с другими двумя средствами отслеживания, поворот, прежде чем область неоднозначности лучше обращена со взаимодействующими многоуровневыми моделями. trackerJPDA может также использоваться с trackingIMM, использование того же FilterInitializationFcn как прежде.

tracker = trackerJPDA( ...
    'FilterInitializationFcn',@initIMMFilter,...
    'MaxNumTracks', numTracks, ...
    'MaxNumSensors', 1, ...
    'AssignmentThreshold',gate, ...
    'TrackLogic','Integrated',...
    'DetectionProbability', pd, ...
    'ClutterDensity', far/vol, ...
    'NewTargetDensity', beta,...
    'TimeTolerance',0.05);

[trackSummary, truthSummary, trackMetrics, truthMetrics,timeJPDAIMM] = helperRunTracker(dataLog,tracker,true);

Результаты сопоставимы с trackerTOMHT, благодаря Взаимодействующим Многоуровневым моделям цели более точно прослежены во время поворота и достаточно разделяются прежде, чем ввести область неоднозначности. Обе дорожки 1 и 2 присвоены цели с нулевыми количествами пропуска.

disp(trackSummary)
disp(truthSummary)
    TrackID    AssignedTruthID    Surviving    TotalLength    DivergenceStatus
    _______    _______________    _________    ___________    ________________

       1              2             true           191             false      
       2              3             true           191             false      

    TruthID    AssociatedTrackID    TotalLength    BreakCount    EstablishmentLength
    _______    _________________    ___________    __________    ___________________

       2               1                192            0                  1         
       3               2                192            0                  2         

Снова, результаты точности отслеживания похожи на то, что получено ранее с помощью trackerGNN и trackerTOMHT.

disp(trackMetrics)
disp(truthMetrics)
    TrackID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       1       57.172    27.523     7.6831      6.2685 
       2        39.21    29.184     6.1317       4.769 

    TruthID    posRMS    velRMS    posANEES    velANEES
    _______    ______    ______    ________    ________

       2       57.172    27.523     7.6831      6.2685 
       3        39.21    29.184     6.1317       4.769 

Сравнение производительности времени

Другая точка сравнения для каждой комбинации средства отслеживания и фильтра является временем выполнения. График ниже записей показов длительности контура отслеживания. Результаты нормированы на основе значения во время выполнения средства отслеживания GNN с моделью CV.

figure
c1 = categorical({'CV','IMM'});
timeData = [timeGNNCV timeJPDACV timeTOMHTCV ; timeGNNIMM timeJPDAIMM timeTOMHTIMM]/timeGNNCV;
bar(c1,timeData)
legend('GNN','JPDA','TOMHT','Location','northwest')
ylabel('Normalized Time (x timeGNN-CV)')
title('Time Performance Comparison')
ax = gca;
ax.YGrid = 'on';

Результаты показывают, что GNN и JPDA могут отследить цели в 5 - 6 раз быстрее, чем MHT в зависимости от модели движения. Модель движения IMM делает все три средства отслеживания запущенными в 3 - 4 раза медленнее. Обратите внимание на то, что каждое время вычислений средства отслеживания варьируется по-другому в зависимости от количества сценария цели, плотности ложных предупреждений, плотности целей, и т.д. Этот пример не гарантирует подобное сравнение производительности в различных вариантах использования.

Сводные данные

В этом примере вы создали сценарий, в котором две маневрирующих цели обнаруживаются одним датчиком, где часть их движения в области неоднозначности. Вы использовали шесть комбинаций средств отслеживания и фильтров, чтобы показать вклад каждого к полному отслеживанию. Вы заметили, что постоянный скоростной фильтр был менее точным в отслеживании целей во время их маневра, который потребовал взаимодействующего фильтра многоуровневой модели. Вы также наблюдали, что способность MHT и JPDA обработала случай неоднозначной ассоциации обнаружений к дорожкам, и как это может использоваться, чтобы обеспечить непрерывное отслеживание, в то время как средство отслеживания одно гипотезы не может сделать этого. Наконец, вы заметили компромиссы между отслеживанием результатов и время вычислений при выборе средства отслеживания. В этом случае JPDA оказывается наилучшим вариантом. В различных сценариях можно потребовать более комплексного MHT, когда ни GNN, ни JPDA не дают приемлемые результаты отслеживания. Можно также предпочесть GNN, если существует меньше областей неоднозначности или низко создает помехи плотности.