В этом примере показано, как к отслеживаемым объектам, когда ассоциация обнаружений датчика к дорожкам неоднозначна. В этом примере вы используете средство отслеживания одно гипотезы, средство отслеживания нескольких-гипотез и вероятностное средство отслеживания ассоциации данных, чтобы выдержать сравнение, как средства отслеживания обрабатывают эту неоднозначность. Чтобы отследить, маневрирующие цели лучше, вы оцениваете движение целей при помощи различных моделей.
Отслеживание является процессом оценки ситуации на основе данных, собранных одним или несколькими источниками информации. Отслеживание попыток ответить на следующие вопросы:
Сколько объекты там?
Где объекты расположены на пробеле?
Каковы их скорость и направление движения?
Как объекты маневрируют друг относительно друга?
Средства отслеживания используют данные о датчике, такие как радарные обнаружения. Датчики могут сгенерировать два обнаружения для двух целей, если датчики могут разрешить цели пространственно. Если две цели близко расположены, они могут находиться в пределах одной ячейки разрешения датчика, и датчик сообщает о только одном обнаружении их. Чтобы проиллюстрировать проблему, следующий рисунок показывает радар с 1,5 разрешениями азимута степеней. В области значений 20 км радарный интервал датчика имеет ширину вышеупомянутых 540 м, что означает, что любое обнаружение, о котором сообщают из той области значений, расположено в центре интервала с неопределенностью на ±270 м по поводу этого. О любых двух целях в этом интервале сообщают как одно обнаружение.
Чтобы продемонстрировать случай, где отчеты датчика двусмысленно присвоены дорожкам, вы создаете простой сценарий. В этом сценарии, одном monostaticRadarSensor
объект, расположенный в начале координат (не показанный), сканирует небольшую область приблизительно 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.
Обнаружение присвоено отследить 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, если существует меньше областей неоднозначности или низко создает помехи плотности.