Расширенное объектное отслеживание дорожных транспортных средств с радаром и камерой в Simulink

Этот пример показывает вам, как отследить дорожные транспортные средства вокруг автомобиля, оборудованного датчиком в Simulink. В этом примере вы используете несколько расширенных методов отслеживания объекта, чтобы отследить дорожные транспортные средства и оценить их эффективность отслеживания. Этот пример сопровождает Расширенное Объектное Отслеживание Дорожных транспортных средств с примером Camera MATLAB® и Радаром.

Расширенные объекты и расширенное объектное отслеживание

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

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

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

Вы оцените результаты с помощью Оптимальной Метрики Присвоения Подшаблона, которая обеспечивает один объединенный счет, составляющий ошибки и в присвоении и в расстоянии. Более низкий счет означает лучшее отслеживание.

Обзор модели

load_system('ExtendedObjectTrackingInSimulink');
set_param('ExtendedObjectTrackingInSimulink','SimulationCommand','update');
open_system('ExtendedObjectTrackingInSimulink');

Модель имеет три подсистемы, каждый реализующий часть рабочего процесса:

  • Сценарий и симуляция датчика

  • Отслеживание алгоритмов

  • Отслеживание эффективности и визуализации

Сценарий и симуляция датчика

Блок Scenario Reader (Automated Driving Toolbox) читает drivingScenario Объект (Automated Driving Toolbox) из рабочей области и генерирует Агентов и данные о положении Автомобиля, оборудованного датчиком, как Исследуют Возможности Шины Simulink (Simulink) Объекты. Блок Vehicle To World преобразует положение агента от координат транспортного средства до мировых координат. Блок Driving Radar Data Generator (Automated Driving Toolbox) симулирует радарные обнаружения, и Генератор Обнаружения Видения (Automated Driving Toolbox) симулирует обнаружения камеры. Обнаружения от всех датчиков группируются с помощью блока Detection Concatenation (Automated Driving Toolbox).

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

В этом примере вы симулируете автомобиль, оборудованный датчиком, который имеет шесть радарных датчиков и два датчика видения, покрывающие полное поле зрения. Датчики имеют некоторые перекрытия покрытия и разрывы. Автомобиль, оборудованный датчиком оборудован радарным датчиком дальним и датчиком видения на передней и задней части транспортного средства. На каждой стороне транспортного средства два ближних радарных датчика покрывают 90 градусов соответственно. Один из этих двух датчиков покрывает с середины транспортного средства к спине и других покрытий датчика с середины транспортного средства к передней стороне.

Отслеживание алгоритмов

Вы реализуете три различных расширенных объекта, отслеживающие алгоритмы с помощью различной подсистемы. Смотрите Различные Подсистемы (Simulink) для получения дополнительной информации. Различная подсистема имеет одну Подсистему, Атомарную подсистему, Подсистему CodeReuse (Simulink) для каждого алгоритма отслеживания. Можно выбрать алгоритм отслеживания путем изменения значения переменной TRACKER рабочей области. Значение по умолчанию TRACKER 1.

Средство отслеживания точечного объекта

В этом разделе вы используете блок Multi-Object Tracker (Automated Driving Toolbox), чтобы реализовать алгоритм отслеживания на основе целевой модели точки. Обнаружения от радара предварительно обрабатываются, чтобы включать информацию о INS автомобиля, оборудованного датчиком с помощью блока Helper Preprocess Detection. Блок реализован с помощью блока MATLAB System (Simulink). Код для этого блока задан в классе помощника helperPreProcessDetections. Мультиобъектное Средство отслеживания принимает одно обнаружение на объект на датчик и использует глобальный самый близкий соседний подход, чтобы сопоставить обнаружения к дорожкам. Это принимает, что каждый объект может быть обнаружен самое большее однажды датчиком в скане. Однако симулированные радарные датчики имеют достаточно высокое разрешение и генерируют несколько обнаружений на объект. Если эти обнаружения не кластеризируются, средство отслеживания генерирует несколько дорожек на объект. Кластеризация возвращает одно обнаружение на кластер, за счет наличия большей ковариации неопределенности и потери информации об истинных объектных размерностях. Из-за кластеризации также сложно различать два объекта, когда они друг близко к другу, например, когда одно транспортное средство передает другое транспортное средство.

Чтобы кластеризировать радарные обнаружения, вы конфигурируете блок Driving Radar Data Generator к выходу Clustered Detections вместо обнаружений. Для этого вы устанавливаете TargetReportFormat параметр на блоке как Clustered detections. В модели это достигается путем определения параметров блоков в InitFcn коллбэк подсистемы Средства отслеживания Точечного объекта. Смотрите Коллбэки Модели (Simulink) для получения дополнительной информации о функциях обратного вызова.

Анимация ниже показов, что, с кластеризацией, средство отслеживания может отслеживать объекты в сцене. Дорожка сопоставила с транспортным средством перехвата (желтые) перемещения от передней стороны транспортного средства в начале сценария к задней части транспортного средства в конце. В начале сценария транспортное средство перехвата находится позади (синего) автомобиля, оборудованного датчиком, таким образом, радар и обнаружения видения сделаны из своей передней стороны. Когда транспортное средство перехвата передает автомобиль, оборудованный датчиком, радарные обнаружения сделаны из стороны транспортного средства перехвата и затем от его спины. Можно также заметить, что кластеризация не совершенна. Когда проходящее мимо транспортное средство передает транспортное средство, которое находится позади (фиолетового) автомобиля, оборудованного датчиком, обе дорожки немного смещены налево из-за несовершенной кластеризации.

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

В этом разделе вы используете блок средства отслеживания Средства отслеживания Плотности гипотезы вероятности (PHD), чтобы реализовать расширенный алгоритм отслеживания объекта с ggiwphd отфильтруйте к отслеживаемым объектам. Обнаружения от радара предварительно обрабатываются, чтобы включать информацию о INS автомобиля, оборудованного датчиком с помощью блока Helper Preprocess Detection. Блок реализован с помощью блока MATLAB System (Simulink). Код для этого блока задан в классе помощника helperPreProcessDetections. Это также выводит настройки датчика, требуемые средством отслеживания для вычисления обнаружительной способности каждого компонента в плотности.

Вы задаете Sensor configurations параметр средства отслеживания PHD блокируется как структура с полями то же самое как trackingSensorConfiguration и набор FilterInitializationFcn поле как helperInitGGIWFilter и SensorTransformFcn поле как ctmeas. В модели это достигается путем определения InitFcn коллбэк подсистемы Средства отслеживания GGIW PHD. Смотрите Коллбэки Модели (Simulink) для получения дополнительной информации о функциях обратного вызова.

В отличие от Мультиобъектного Средства отслеживания, которое обеспечивает одну гипотезу на дорожку, GGIW-PHD является мультицелевым фильтром, который описывает плотность гипотезы вероятности (PHD) сценария. Фильтр GGIW-PHD использует эти распределения, чтобы смоделировать расширенные цели:

\Gamma: Представляет ожидаемое количество обнаружений на датчике от расширенного объекта.

Гауссов: Представляет кинематическое состояние расширенного объекта.

Обратный Уишарт: Представляет пространственную степень цели. На 2D пробеле степень представлена случайной положительной определенной матрицей 2 на 2, которая соответствует 2D описанию эллипса. В трехмерном пространстве степень представлена 3х3 случайной матрицей, которая соответствует 3-D описанию эллипсоида. Плотность вероятности этих случайных матриц дана как распределение Обратного Уишарта.

В модели принимается, что каждое распределение независимо друг от друга. Таким образом плотность гипотезы вероятности (PHD) в фильтре GGIW-PHD описана взвешенной суммой функций плотности вероятности нескольких компонентов GGIW. В отличие от средства отслеживания точечного объекта, которое принимает один раздел обнаружений, средство отслеживания PHD создает несколько возможных разделов набора обнаружений и оценивает его против текущих компонентов в фильтре PHD. Вы задаете PartitioningFcn создать разделы обнаружения, который предоставляет несколько гипотез о кластеризации.

Анимация ниже показов, что GGIW-PHD может обработать несколько обнаружений на объект на датчик без потребности кластеризировать эти обнаружения сначала. Кроме того, при помощи нескольких обнаружений, средство отслеживания оценивает положение, скорость, размерность и ориентацию каждого объекта. Пунктирная эллиптическая форма на рисунке демонстрирует ожидаемую степень цели.

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

Средство отслеживания прямоугольного объекта GM-PHD

В этом разделе вы используете блок средства отслеживания Средства отслеживания Плотности гипотезы вероятности (PHD) с gmphd отфильтруйте к отслеживаемым объектам с помощью прямоугольной целевой модели. В отличие от ggiwphd, который использует эллиптическую форму, чтобы оценить объектную степень, gmphd позволяет вам использовать Распределение Гаусса, чтобы задать форму по вашему выбору. Вы задаете прямоугольную целевую модель при помощи моделей движения, ctrect и ctrectjac и модели измерения, ctrectmeas и ctrectmeasjac.

Настройки датчика, заданные для Средства отслеживания PHD, остаются то же самое за исключением определения SensorTransformFcn и FilterInitializationFcn поля . Вы устанавливаете FilterInitializationFcn поле как helperInitRectangularFilter и SensorTransformFcn поле как ctrectcorners. В модели это достигается путем определения InitFcn коллбэк подсистемы Средства отслеживания GM PHD. Смотрите Коллбэки Модели (Simulink) для получения дополнительной информации о функциях обратного вызова.

Анимация ниже показов, что GM-PHD может также обработать несколько обнаружений на объект на датчик. Подобно GGIW-PHD это также оценивает размер и ориентацию объекта. Функция инициализации фильтра использует аналогичный подход в качестве средства отслеживания GGIW-PHD и инициализирует несколько компонентов различных размеров.

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

Отслеживание эффективности и визуализации

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

$$\textrm{OSPA}={\left(d_{\textrm{loc}}^p +d_{\textrm{card}}^p
+d_{\textrm{lab}}^p \right)}^{\frac{1}{p}}$$

где$d_{\textrm{loc}}$$d_{\textrm{card}}$, и$d_{\textrm{lab}}$ локализация, кардинальность и ошибочные компоненты маркировки, и p является порядком метрики OSPA. Смотрите trackOSPAMetric для получения дополнительной информации.

Вы устанавливаете Distance type параметр к custom и задайте функцию расстояния между дорожкой и ее связанной основной истиной как helperExtendedTargetDistance функция помощника. Этот помощник расстояния функционирует положение получений, скорость, размерность и ошибка рыскания между дорожкой и связанной истиной. Метрику OSPA показывают в блоке scope. Каждый модуль на оси X представляет 10 временных шагов в сценарии. Заметьте, что метрика OSPA уменьшается и таким образом показывает повышение производительности, когда вы переключаетесь со средства отслеживания точечного объекта на средство отслеживания GGIW-PHD и со средства отслеживания GGIW-PHD на средство отслеживания GM-PHD. Сценарий визуализируется с помощью блока Helper Scenario Visualization, реализовал использование блока MATLAB System (Simulink). Код для этого блока задан в классе помощника helperExtendedTargetTrackingDisplayBlk.

bdclose('ExtendedObjectTrackingInSimulink');

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

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