В этом посте я хочу поговорить о различных подходах к прогнозированию движения и принятию решений с использованием машинного обучения и глубокого обучения (DL) в беспилотных автомобилях (SDC). Я постарался отобрать работы и статьи от интересных компаний и стартапов, чтобы осветить разные подходы в этой области. Это резюме моего выступления на серии семинаров по робототехнике в Университете Аалто.

В целом можно рассмотреть следующий программный стек для беспилотных автомобилей:

Как вы можете видеть на приведенном выше рисунке, у нас есть модуль Perception, который получает данные датчиков и выполняет некоторые задачи, такие как обнаружение объектов, обнаружение светофора, обнаружение состояния светофора, локализация,…. Затем модуль Прогнозирование поведения получит эту информацию и попытается предсказать будущую траекторию движения других агентов в сцене. После этого модуль Planner получит эти будущие траектории, чтобы использовать их в своей процедуре принятия решений. Также можно использовать некоторую информацию из модуля Восприятие. Затем Контроллер получит траекторию, созданную Планировщиком, и сгенерирует команды управления, такие как дроссельная заслонка и рулевое управление. У нас также есть некоторая другая информация, такая как информация HDMap, которую могут использовать разные модули в зависимости от используемых ими методов.

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

Прогнозирование поведения

Первый подход - использовать ML и DL в модуле Behavior Prediction.

Краткосрочное прогнозирование движения участников дорожного движения с учетом неопределенности для автономного вождения

Эта работа является формой Uber для прогнозирования движения для других агентов в сцене. Этот метод можно использовать только для модуля Прогнозирование поведения. Они получают информацию из модуля Perception и HDMap и визуализируют их на одном единственном изображении RGB, чтобы создать птицу. -просмотр изображения. Они также отображают историю движения агентов на изображении, чтобы включать временную информацию и иметь возможность извлекать информацию о движении для прогнозирования движения. Этот тип входного представления будет популярен, потому что легко комбинировать несколько источников информации и использовать CNN для извлечения функций. Есть и другие способы вместо рендеринга истории одного изображения для извлечения временной информации. Мы можем складывать несколько кадров для последовательных временных шагов или использовать CNN для извлечения функций из каждого кадра, а затем использовать LSTM для извлечения временной информации. Таким образом, входные и выходные данные их модели выглядят следующим образом:

  • Ввод: изображение BEV + (скорость, ускорение, скорость изменения курса)
  • Выходные данные: (x, y, std) для каждой точки траектории.

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

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

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

Планировщик

Следующий подход - использовать ML и DL в модуле Planner.

Планирование пути с использованием обучения с подкреплением и объективных данных

Это магистерская диссертация Университета Чалмерса, в которой для модуля Planner используется архитектура Option-Critic. Его можно отнести к категории «Иерархическое обучение с подкреплением». Идея состоит в том, чтобы иметь два уровня в модуле Планировщик. Более высокий уровень отвечает за выбор некоторых высокоуровневых действий, таких как движение по полосе, остановка, поворот налево / направо,…. Затем планировщик нижнего уровня должен получить эти команды и выполнить их. Они использовали Q-Learning для изучения политики высокого уровня и DDPG для планировщика более низкого уровня. Также можно использовать контроллеры PID для политики низкого уровня и просто использовать ML и RL для политики высокого уровня. Вариант-критическая архитектура выглядит следующим образом:

Архитектура, использованная в этой диссертации, выглядит следующим образом:

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

Считайте, что политика высокого уровня отвечает за выбор одного из двух вариантов: yield или drive. Политика нижнего уровня может быть основана на ML или PID. Черная машина автономна, а белая - нет. В состоянии A автономный автомобиль видит, что белый автомобиль находится немного далеко от перекрестка. Поэтому он решает проехать. Затем в состоянии B он видит, что белая машина выезжает на перекресток. Так что ему нужно решить, что безопаснее: уступить или ехать? Он решает уступить и позволить белой машине проехать в состоянии C. И после того, как белая машина будет пройдена, он едет к своему конечному пункту назначения.

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

Прогнозирование поведения + Планировщик или вождение автомобиля среднего и среднего класса

Следующий подход - объединить модули Behavior Prediction и Planner.

ChauffeurNet

Следующая работа от Waymo. Они пытались делать прогнозы и планирование вместе, используя единую нейронную сеть, используя имитационное обучение (IL).

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

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

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

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

  • легко синтезировать данные → добавить возмущения к вождению эксперта → создать столкновения и / или съезд с дороги.
  • Увеличьте потерю имитации потерями, которые препятствуют плохому поведению и способствуют прогрессу.

Их модельная архитектура выглядит следующим образом:

Сеть Road Mask Net отвечает за прогнозирование Road Mask и заставляет Feature Net узнавать об этой концепции дорожной маски. Они также использовали Perception RNN, чтобы предсказать будущее движение других агентов и снова заставить Feature Net изучить эту концепцию. Их модель представляет собой многозадачную сеть, которая пытается лучше представить сцену, используя несколько задач. Вы можете увидеть различные термины потерь, которые они использовали на рисунке.

Вот еще несколько гифок с их модельным исполнением отсюда:

Восприятие + прогноз поведения

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

Форсаж

Это работа от Uber ATG и Университета Торонто. Они пытаются выполнять обнаружение, отслеживание и краткосрочное прогнозирование движения траекторий объектов, используя необработанные данные облака точек. Сеть выполняет эти три задачи одновременно всего за 30 мс. Модель может предсказывать траекторию всего на 1 секунду в будущем. Используя эти три задачи вместе, так или иначе, многозадачное обучение, каждая задача может использовать знания других задач, чтобы лучше выполнять свою задачу.

Входными данными для этой модели является BEV, созданный из таких данных облака точек:

  • Квантовать трехмерный мир, чтобы сформировать трехмерную сетку вокселей
  • Назначьте двоичный индикатор для каждого кодирования вокселя, занят ли воксель.
  • Считайте высоту третьим измерением, как канал в изображениях RGB.
  • Считайте время четвертым измерением

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

Они предлагают две версии слияния для использования временного измерения:

1- Раннее слияние

  • Накапливает временную информацию на самом первом уровне.
  • Быстро, как при использовании однокадрового детектора.
  • Отсутствует возможность захвата сложных временных характеристик, поскольку это эквивалентно созданию единого облака точек из всех кадров, но по-разному взвешивает вклад различных временных меток.
  • Использует одномерную свертку с размером ядра n во временном измерении, чтобы уменьшить временное измерение с n до 1.

2- Позднее слияние

  • Постепенно сливается временная информация. Это позволяет модели захватывать высокоуровневые функции движения.

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

  • Один для двоичной классификации, чтобы предсказать вероятность быть транспортным средством для каждого заранее выделенного ящика.
  • Один для прогнозирования (регресса) ограничивающей рамки в текущем кадре, а также n - 1 кадра в будущее → размер и заголовок

Вот несколько примеров их результатов:

IntentNet: обучение прогнозированию намерений на основе необработанных данных датчиков

Следующая работа снова от Uber ATG и Университета Торонто. Фактически это продолжение предыдущей работы. Здесь, в дополнение к BEV, сгенерированному из облака точек, они используют информацию HDMap и объединяют извлеченную информацию как из облака точек, так и из HDMap, чтобы выполнять обнаружение, прогнозирование намерений и прогнозирование траектории.

Входы и выходы сети следующие:

  • входы:

1- Вокселизированный LiDAR в BEV → высота и время складываются в размер канала → использовать 2D-конв.

2- Растеризованная карта (как статическая, так и динамическая информация) → 17 бинарных масок, используемых в качестве объектов карты

  • Выходы:

1- Обнаруженные объекты

2- Траектория

3- Дискретное намерение высокого уровня: мультиклассовая классификация с 8 классами: удерживать полосу движения, повернуть налево, повернуть направо, сменить полосу налево, сменить полосу направо, остановка / остановка, припарковано и т. Д.

Сетевая архитектура выглядит следующим образом:

Как вы видите на изображении, есть две ветви для обработки данных из BEV и HDMap, а затем их объединения и, наконец, три головы для задач.

Вот пример их результатов:

Сквозной

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

Обучение вождению за день

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

В этой работе они использовали RL для обучения политике вождения, позволяющей следовать полосе движения с нуля менее чем за 20 минут !! Без всяких HDMap и рукописных правил !!! Это первый пример того, как беспилотный автомобиль учился онлайн, становясь лучше с каждым испытанием. Они использовали алгоритм DDPG и использовали изображение с одной монокулярной камеры в качестве входа в сеть для генерации управляющих команд, таких как рулевое управление и скорость.

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

Вот видео с процедурой тренировки, которое они опубликовали на своем сайте:

Учимся водить машину как человек

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

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

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

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

И напоследок краткое объяснение их работы:

Резюме

Мы рассмотрели несколько разных интересных работ, в которых для решения проблемы с самоуправляемым автомобилем использовалось глубокое обучение. Мы разделили разные подходы на основе использования ML и DL, в которых модули, от одного модуля до нескольких модулей, и, наконец, использовать ML для полного стека и сквозного подхода. Надеюсь, в будущем мы увидим больше интересных работ. Давайте посмотрим.

использованная литература

  • Цуй, Х., Радосавлевич, В., Чжоу, Ф. К., Лин, Т. Х., Нгуен, Т., Хуанг, Т. К.,… и Джурич, Н. (2019, май). Прогнозирование мультимодальных траекторий для автономного вождения с использованием глубоких сверточных сетей. В Международной конференции по робототехнике и автоматизации (ICRA) 2019 (стр. 2090–2096). IEEE.
  • Джурич, Н., Радосавлевич, В., Цуй, Х., Нгуен, Т., Чжоу, Ф. К., Лин, Т. Х.,… и Шнайдер, Дж. (2020). Кратковременное прогнозирование движения участников дорожного движения для автономного вождения с учетом неопределенности. В статье Зимняя конференция IEEE по приложениям компьютерного зрения (стр. 2095–2104).
  • Ся, Т., и Хан, З. (2018). Планирование пути с использованием обучения с подкреплением и объективных данных (магистерская диссертация).
  • Http://oas.voyage.auto/scenarios/intersections.html
  • Бансал М., Крижевский А. и Огале А. (2018). Chauffeurnet: научиться водить машину, подражая лучшему и синтезируя худшее. Препринт arXiv arXiv: 1812.03079.
  • Луо В., Ян Б. и Уртасун Р. (2018). Быстро и яростно: сквозное трехмерное обнаружение, отслеживание и прогнозирование движения в реальном времени с помощью единой сверточной сети. В Протоколах конференции IEEE по компьютерному зрению и распознаванию образов (стр. 3569–3577).
  • Касас, С., Луо, В., и Уртасун, Р. (2018, октябрь). Intentnet: обучение прогнозированию намерений на основе необработанных данных датчиков. В Конференции по обучению роботов (стр. 947–956).
  • Кендалл, А., Хоук, Дж., Янц, Д., Мазур, П., Реда, Д., Аллен, Дж. М.,… и Шах, А. (2019, май). Обучение вождению за день. В Международной конференции по робототехнике и автоматизации (ICRA), 2019 г. (стр. 8248–8254). IEEE.
  • Https://wayve.ai/blog/driving-like-human#:~:text=It%20learns%20end%2Dto%2Dend,to%20improve%20our%20driving%20policy.