Расширенное целевое отслеживание с многопутевыми радарными отражениями в Simulink

В этом примере показано, как смоделировать и смягчить многопутевые радарные отражения в магистрали ведущий сценарий в Simulink®. Это сопровождает Отслеживание Дорожного транспортного средства с Многопутевыми Радарными Отражениями (Radar Toolbox) пример MATLAB®.

Введение

В то время как автомобильные радары обеспечивают устойчивую эффективность обнаружения через разнообразный массив условий окружающей среды, с которыми сталкиваются в сценариях автономного управления автомобилем, интерпретирование обнаружений, о которых сообщает радар, может оказаться сложным. Алгоритмы cочетания датчиков, обрабатывающие радарные обнаружения, должны будут смочь идентифицировать желаемые целевые обнаружения, возвращенные наряду с обнаружениями, являющимися результатом дороги (часто называемый помехой) и многопутевой между различными объектами в ведущем сценарии как поручни и другие транспортные средства на дороге. Обнаружения, сгенерированные несколькими отражениями между радаром и конкретной целью, часто упоминаются как фантомные обнаружения, потому что они, кажется, происходят в областях, где никакие цели не существуют. Этот пример показывает вам удар этих многопутевых отражений о разработке и конфигурировании объекта, отслеживающего стратегию с помощью радарных обнаружений. Для получения дополнительной информации относительно многопутевого явления и симуляции фантомных обнаружений, отошлите к Симулировать Радарным Фантомам из-за Многопутевого Возврата (Radar Toolbox) пример.

Загрузите сценарий и радары

Этот пример использует тот же сценарий и радары, заданные helperCreateMultipathDrivingScenario функция использовала в Отслеживании Дорожного транспортного средства с Многопутевыми Радарными Отражениями (Radar Toolbox) пример. Открытие модели загружает этот сценарий в рабочую область для использования блоком Scenario Reader (Automated Driving Toolbox).

open_system('MultipathRadarDetectionsTrackingModel')

Используйте "Радарный блок помощника" эго, чтобы воспроизвести обнаружения, зарегистрированные от четырех радаров, обеспечивающих полные 360 покрытий степени вокруг автомобиля, оборудованного датчиком. Чтобы записать новый набор обнаружений, снимите флажок "С радарной записью воспроизведения".

open_system('MultipathRadarDetectionsTrackingModel/Ego radars')

close_system('MultipathRadarDetectionsTrackingModel/Ego radars')

Четыре модели датчика сконфигурированы в блоке "Record radars".

open_system('MultipathRadarDetectionsTrackingModel/Ego radars/Record radars')

Используйте Bird ' s-Eye Scope (Automated Driving Toolbox), чтобы визуализировать сценарий и покрытие датчика в этой модели.

"Классифицируют обнаружения" блок помощника, классифицирует обнаружения, сгенерированные этими четырьмя радарами путем сравнения их измерений с подтвержденными дорожками от блока Probability Hypothesis Density (PHD) Tracker. Классификация обнаружений использует измеренную радиальную скорость от целей, чтобы определить, была ли цель, генерирующая обнаружение, статической или динамическая [1]. Обнаружения классифицируются в четыре категории:

  1. Динамические цели - Эти (красные) обнаружения классифицируются, чтобы произойти из действительных динамических целей в сцене.

  2. Статические фантомы - Эти (зеленые) обнаружения классифицируются, чтобы произойти из динамических целей, но отражаются через статическую среду.

  3. Динамические фантомы - Эти (синие) обнаружения классифицируются, чтобы произойти из динамических целей, но отражаются через другие динамические объекты.

  4. Статические цели - Эти (черные) обнаружения классифицируются, чтобы произойти из статической среды.

Сконфигурируйте GGIW-PHD расширенное объектное средство отслеживания

Сконфигурируйте блок Probability Hypothesis Density (PHD) Tracker теми же параметрами, как используется Отслеживанием Дорожного транспортного средства с Многопутевыми Радарными Отражениями (Radar Toolbox) пример. Снова используйте helperMultipathExamplePartitionFcn функция, чтобы задать разделы обнаружения, используемые в средстве отслеживания.

open_system('MultipathRadarDetectionsTrackingModel/Probability Hypothesis Density Tracker')

close_system('MultipathRadarDetectionsTrackingModel/Probability Hypothesis Density Tracker',0)

Запустите симуляцию

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

simout = sim('MultipathRadarDetectionsTrackingModel')

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

helperSaveSimulationLogs('MultipathRadarDetectionsTrackingModel',simout);

Анализируйте эффективность

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

[confirmedTracks,confusionMatrix] = helperLoadSimulationLogs('MultipathRadarDetectionsTrackingModel');

Используйте trackGOSPAMetric вычислить метрики GOSPA от регистрируемых дорожек.

gospaMetric = trackGOSPAMetric('Distance','custom', ...
    'DistanceFcn',@helperGOSPADistance, ...
    'CutoffDistance',35);

% Number of simulated track updates
numSteps = numel(confirmedTracks.Time);

% GOSPA metric
gospa = NaN(4,numSteps);

restart(scenario);
groundTruth = scenario.Actors(2:end);
iStep = 1;
tol = seconds(scenario.SampleTime/4);
while scenario.SimulationTime<=seconds(confirmedTracks.Time(end))
    % Select data from time table for current simulation time
    tsim = scenario.SimulationTime;
    wt = withtol(seconds(tsim),tol);

    % Select tracks from time table and compute GOSPA metrics
    theseTracks = confirmedTracks{wt,'Tracks'}{1};
    [gospa(1,iStep),~,~,gospa(2,iStep),gospa(3,iStep),gospa(4,iStep)] = gospaMetric(theseTracks,groundTruth);

    if scenario.IsRunning
        advance(scenario);
    else
        break
    end
    iStep = iStep+1;
end

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

% Plot GOSPA metrics
plot(seconds(confirmedTracks.Time),gospa','LineWidth',2);
xlabel('Time (s)');
title('GOSPA Metrics');
grid on;
legend('GOSPA','Localization GOSPA','Missed-target GOSPA','False-tracks GOSPA');

Figure contains an axes object. The axes object with title GOSPA Metrics contains 4 objects of type line. These objects represent GOSPA, Localization GOSPA, Missed-target GOSPA, False-tracks GOSPA.

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

91% целевых обнаружений классифицируется правильно. Однако небольшой процент целевых обнаружений неправильно классифицируется как фантомы от динамических отражений. Кроме того, приблизительно 3% фантомов от отражений статического объекта и 23% фантомов от отражений динамического объекта неправильно классифицируются как цели и отправляются в средство отслеживания для обработки. Общая ситуация, когда это происходит в этом примере, состоит в том, когда обнаружения от отражений 2D возврата лежат в предполагаемой степени транспортного средства. Далее, алгоритм классификации, используемый в этом примере, не спроектирован, чтобы найти ложные предупреждения или помеху в сцене. Поэтому пятая колонна матрицы беспорядка является нулем. Из-за пространственного распределения ложных предупреждений в поле зрения, большинство ложных сигнальных обнаружений или классифицируется как отражения от статических объектов или динамических объектов.

% Accumulate confusion matrix over all steps
confMat = shiftdim(reshape([confusionMatrix{:,'Confusion Matrix'}],numSteps,5,5),1);
confMat = sum(confMat,3);

% Number of detections for each target type
numDetections = sum(confMat,2);

numDetsTable = array2table(numDetections,'RowNames',{'Targets','Ghost (S)','Ghost (D)','Environment','Clutter'},...
    'VariableNames',{'Number of Detections'});

disp('True Information');disp(numDetsTable);
True Information
                   Number of Detections
                   ____________________

    Targets                1986        
    Ghost (S)              3244        
    Ghost (D)               836        
    Environment           27441        
    Clutter                 139        
% Calculate classification percentages
percentMatrix = confMat./numDetections*100;

percentMatrixTable = array2table(round(percentMatrix,2),'RowNames',{'Targets','Ghost (S)','Ghost (D)','Environment','Clutter'},...
    "VariableNames",{'Targets','Ghost (S)','Ghost (D)', 'Environment','Clutter'});

disp('True vs Predicted Confusion Matrix (%)');disp(percentMatrixTable);
True vs Predicted Confusion Matrix (%)
                   Targets    Ghost (S)    Ghost (D)    Environment    Clutter
                   _______    _________    _________    ___________    _______

    Targets         90.99        0.76         7.85          0.4           0   
    Ghost (S)        3.18       85.39        11.13         0.31           0   
    Ghost (D)       22.97        0.36        76.67            0           0   
    Environment      1.56        2.92         3.41         92.1           0   
    Clutter         19.42       65.47        14.39         0.72           0   

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

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

Ссылки

[1] Пророк, Роберт, и др. "Мгновенная Фантомная Идентификация Обнаружения в Автомобильных Сценариях". 2 019 Радарных Конференций по IEEE (RadarConf). IEEE, 2019.

[2] Kraus, Флориэн, и др. "Используя машинное обучение, чтобы обнаружить фантомные изображения в автомобильном радаре". 2 020 IEEE 23-я Международная конференция по вопросам Интеллектуальных Систем Транспортировки (ITSC). IEEE, 2020.