Назад
363

Кто за рулём?! Трансформер

363

Введение

Для разработки систем автономного вождения есть два основных подхода: end-to-end (монолитный) и модульный, как показано на рисунке 1. В первом случае одна большая модель напрямую преобразует сырые сенсорные данные (например, изображения с камер и облако точек с лидара) и маршрутную цель в траекторию движения автомобиля. Наиболее известными сторонниками end-to-end являются Tesla и Wayve.

В модульном подходе архитектура системы разбивается на отдельные компоненты: восприятие (perception), локализация, предсказание поведения участников движения (prediction / forecasting), планирование (planning) и низкоуровневое управление (control). Они последовательно взаимодействуют для построения итоговой траектории. При использовании методов машинного обучения для планирования этапы предсказания и планирования часто объединяются в единую модель. Примеры работы модульного планировщика представлены на Видео 1 и 2.

Рисунок 1. Разница между двумя подходами к автономному вождению: модульный (сверху) и end-to-end (снизу)
Видео 1. Симуляция (закрытого контура, closed loop simulation) ML-планировщика PLUTO на сценах из датасета nuPlan. Поворот на нерегулируемом перекрестке
Видео 2. Симуляция ML-планировщика PLUTO на сценах из датасета nuPlan. Объезд медленной машины

Каждый из подходов имеет свои преимущества и недостатки. Сторонники end-to-end утверждают, что в модульной архитектуре каждый компонент накапливает ошибки и передаёт их далее по цепочке, а отсутствие взаимодействия между модулями может приводить к нестабильности при обучении. Сторонники модульного подхода, в свою очередь, указывают, что end-to-end-системы трудно интерпретировать и отлаживать. Например, в новых версиях автопилота Tesla могут одновременно наблюдаться улучшения и ухудшения в разных аспектах поведения, что затрудняет локализацию источника ошибок. Сейчас наиболее успешная компания в области автономного вождения — Waymo — придерживается модульного подхода.

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

Цель планировщика движения — предсказание будущей траектории автомобиля (то есть последовательности его положений и ориентации на дороге) на заданном временном горизонте, например, 5 секунд, как показано на рисунке 2. Спланированная траектория должна быть реалистичной, то есть соответствовать физическим ограничениям транспортного средства. Например, траектория, предполагающая мгновенный поворот на 45 градусов на месте, является физически невыполнимой.

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

Рисунок 2. Визуализация задачи планирования движения

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

Входные данные и токенизатор

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

  • высокоточная карта;
  • выход perception-модуля, описывающий динамические и статические объекты вокруг;
  • оценка локализации, определяющая текущую позицию и ориентацию автомобиля, которым мы управляем; далее в тексте такой автомобиль будет называться эго-автомобилем (чтобы отличить его от других автомобилей на сцене);
  • выход маршрутизатора (route planner), указывающий долгосрочную цель движения, а также дополнительная информация, например, статус светофоров.

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

Помимо окружающих объектов модель должна иметь представление и о состоянии самой машины. Обычно это включает положение, курсовой угол, скорость, ускорение, угол поворота руля и габариты. В ряде работ также используется история этих значений. Однако это может привести к эффекту «подражателя» (copycat problem), известному как эффект причинной путаницы (causal confusion), когда модель учится не понимать причинно-следственные связи, а просто повторять предыдущие действия (визуальная иллюстрация проблемы представлена на рисунке ниже).

Рисунок 3. Демонстрация эффекта подражателя (copycat problem) при старте с перекрёстка. Модель использует скользящее окно наблюдений и повторяет предыдущее действие. При этом она ошибается лишь тогда, когда ситуация действительно меняется, — при переключении сигнала светофора

Последний, но не менее важный источник информации — это векторизованная высокоточная карта (HD-карта), содержащая:

  • геометрию и топологию полос движения (центральная линия, границы полос, связность),
  • семантику сцены (пешеходные переходы, парковки, бордюры и т.д.),
  • информацию о правилах дорожного движения.
Рисунок 4. Пример векторизованной карты высокой точности (HD-map)

После того, как мы определились с входными данными, возникает вопрос: как представить эти гетерогенные данные трансформеру? В SOTA (state-of-the-art) статье по предсказанию траекторий (prediction) от лидера рынка Waymo, Wayformer, рассматриваются три базовых подхода к токенизации и слиянию входов (см. рисунок 5):

  • позднее объединение (Late Fusion): для каждого типа входа используется отдельный энкодер, а их выходы объединяются позже;
  • ранее объединение (Early Fusion): все входные токены объединяются и подают в единый self-attention энкодер;
  • иерархическое объединение (Hierarchical Fusion): гибридный подход, в котором сначала применяется внутригрупповой self-attention, а затем межгрупповой.
Рисунок 5. Сравнение подходов к слиянию входных данных: Late, Early и Hierarchical Fusion

В Wayformer показано, что по мере роста размеров моделей (числа параметров) их чувствительность к способу токенизации уменьшается. Однако в плане компромисса между качеством планирования и временем инференса иерархическое объединение демонстрирует лучшие результаты. Именно этот подход используется в одной из самых лучших ML-планировщиков на сегодняшний день — PLUTO. В более ранней работе — PlanT — применялось ранее объединение: все входы линейно проецировались в общее латентное пространство и подавались в общий трансформерный энкодер.

Поскольку в архитектуре трансформера мы теряем информацию о порядке элементов последовательности, важно ввести позиционные эмбеддинги, которые кодируют относительное расположение объектов. В PLUTO используются Fourier-эмбеддинги, тогда как Wayformer и PlanT применяют обучаемые позиционные эмбеддинги.

Архитектура модели

Во многих прикладных задачах робототехники и автономного вождения широко используются стандартные (vanilla) архитектуры трансформеров. Наиболее популярны два класса архитектур: только-энкодерные (encoder-only) и энкодер-декодерные (encoder-decoder).

В encoder-only архитектурах, подобных BERT, вся сцена кодируется в набор скрытых представлений. Чаще всего используется специальный [CLS]-токен, который агрегирует глобальную информацию о сцене и затем передаётся в выходную голову или другую модель для предсказания траектории.

Например, в работе PlanT выходной [CLS]-токен, объединённый с информацией о статусе ближайшего светофора, подаётся на вход рекуррентному декодеру (GRU), который итеративно предсказывает координаты будущей траектории эго-автомобиля, как показано на рисунке 6.

Рисунок 6. Пример архитектуры с encoder-only трансформером: [CLS]-токен агрегирует информацию о сцене и используется для генерации предсказаний
Рисунок 7. Архитектура Wayformer: encoder–decoder трансформер с обучаемыми queries на декодере для предсказания будущих траекторий

Более мощным (в плане способности моделировать сложные данные) подходом является архитектура энкодер-декодер (encoder–decoder), в которой энкодер формирует обобщённое представление дорожной сцены, а декодер, используя механизм внимания, предсказывает будущую траекторию, как показано на рисунке 7.

Обычно декодер предсказывает несколько мод поведения — альтернативные траектории движения — и соответствующие скоры (confidence scores) для каждой из них. Такой формат позволяет учитывать мультимодальность ситуации (например, едем прямо или поворачиваем налево).

Характерной особенностью современных моделей является использование обучаемых запросов (latent queries) на входе декодера — подход, вдохновлённый архитектурой DETR. Эти обучаемые запросы не соответствуют конкретным физическим объектам на сцене, а выступают в роли «внутренних вопросов», которые трансформер задаёт сцене для генерации предсказаний. Именно такую архитектуру применяет PLUTO.

Если на вход модели подаётся не только пространственная, но и временная информация (например, история движения объектов), то при использовании раннего объединения (early fusion) необходимо использовать пространственно-временной (spatio-temporal) трансформер. В таких случаях применяется факторизация внимания — раздельная обработка по временной и пространственной оси, чтобы снизить вычислительные затраты. Это особенно важно для работы с длинными историями наблюдений, где квадратичная сложность классического self-attention становится узким местом.

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

Выход модели

Вспомним, что основная задача ML-планировщика — предсказание будущей траектории эго-автомобиля на заданном временном горизонте. Движение в реальных условиях является мультимодальным по своей природе. В этом контексте мультимодальность означает наличие нескольких допустимых вариантов движения (например, объезд слева или справа), система должна уметь учитывать все разумные альтернативы. Без этого она может, условно говоря, выбрать «средний» путь, который на деле приведёт к проезду «насквозь» через препятствие.

Тем не менее, некоторые модели, как PlanT, по-прежнему предсказывают только одну траекторию. Такой подход проще, но может неадекватно моделировать сложные ситуации.

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

  1. Гауссовская смесь траекторий (Gaussian Mixture Model, GMM) Модель предсказывает \(N\) средних траекторий и соответствующие матрицы ковариации для каждой временной точки. Таким образом, формируется условное распределение над возможными будущими траекториями.
  2. Множество детерминированных траекторий с confidence score Модель напрямую предсказывает \(N\) детерминированных траекторий и соответствующую уверенность (score) для каждой из них. Это не совсем вероятностная модель в строгом смысле, но такой способ оказался более устойчивым и широко используется в практических системах.

Один лишь сигнал от предсказания траектории эго-агента часто оказывается недостаточным, особенно в ранней фазе обучения, когда энкодер сцены ещё не умеет извлекать информативные признаки. Чтобы ускорить и стабилизировать обучение, модели часто обучаются на мультизадачных целях (multi-task objectives), включая:

  • предсказание траекторий других участников движения (motion forecasting);
  • классификацию классов других динамический объектов (машины, пешеходы, …);
  • реконструкцию истории движения;
  • оценку риска столкновений или проходимости.

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

Целевая функция

Целевая функция (loss) напрямую зависит от того, одну траекторию предсказывает модель или несколько. Если модель предсказывает одну траекторию, то на практике чаще всего используется \(\ell_1\) — loss между предсказанной траекторией \(\hat{\tau}\) и реальной (эталонной) траекторией \(tau\):

\( \mathcal L_{traj}=|\hat \tau -\tau |_1 \)

В отличие от \(\ell_2\), \(\ell_1\), ошибка более устойчива к выбросам (outliers) и часто приводит к более стабильному обучению в задачах с высокой вариативностью поведения.

Если модель предсказывает несколько траекторий — возникает задача соответствия между предсказанными и реальными вариантами. Один из популярных подходов:

  1. Выбирается предсказанная мода \(\hat{\tau}_k\), которая наиболее близка к истинной траектории.
  2. Вводится классификационный loss, который требует, чтобы модель правильно предсказала индекс этой моды \(k^\star\).
  3. Считается \(\ell_1\)-loss между \(\hat{\tau}_{k^*}\) и реальной траекторией \(\tau\).

Итоговая функция потерь в этом случае имеет вид:

\( \mathcal L=\mathcal L_\text{cls}(p_1,…,p_N;k^\star)+λ \|\hat\tau_{k^\star}−\tau\|_1 \)

где \(p_1, \dots, p_N\) — confidence scores для каждой из \(N\) мод, а \(\lambda\) — весовой коэффициент.

Такой подход позволяет модели не просто подстраиваться под усреднённое поведение, а отражать реальные распределения намерений, особенно в неоднозначных или развилочных ситуациях.

Если модель дополнительно предсказывает поведение других участников дорожного движения (например, в рамках multitask-обучения), то в loss-функцию добавляется ещё один компонент:

\(\mathcal{L}_{\text{agents}} = \sum_{i=1}^M \| \hat{\tau}^{(i)} — \tau^{(i)} \|_1\)

где \(M\) — количество предсказанных агентов. Итоговая функция потерь агрегирует все составляющие:

\(\mathcal{L}_{\text{total}} = \mathcal{L}_{\text{traj}} + \mathcal{L}_{\text{cls}} + \alpha \cdot \mathcal{L}_{\text{agents}}\)

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

Проблемы обучения из демонстраций

В одной из предыдущих статей [https://blog.deepschool.ru/math/imitaczionnoe-obuchenie/] мы подробно рассказали про различия между обучением с учителем (supervised learning) и обучением из демонстраций (imitation learning), а также связанные с ними трудности. Для полноты изложения кратко напомним ключевую проблему — distribution shift.

Во время выполнения (runtime) планировщик на основе нейросети может делать небольшие ошибки, отклоняясь от идеальной траектории. Эти отклонения приводят к новым состояниям, которых не было в обучающем наборе. Поскольку модель не обучалась реагировать на такие «нетипичные» состояния, она начинает генерировать всё менее адекватное поведение — ошибки накапливаются (compounding errors), и траектория может стать полностью невалидной или даже опасной.

Одним из наиболее простых, но эффективных способов борьбы с distribution shift является аугментация входных данных, в частности — аугментация начального состояния эго-машины. Типичные приёмы включают:

  • небольшие смещения вдоль координатных осей \(x\) и \(y\),
  • поворот (rotation) относительно центра машины.

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

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

Постобработка траекторий

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

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

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

  • сглаживание траектории (например, с помощью сплайнов или методов численной оптимизации);
  • ограничение кривизны, ускорения и скорости;
  • проверку на соответствие ПДД, включая соблюдение полос, границ дороги и т.д.;
  • проверку на отсутствие пересечений с предсказанными траекториями других агентов (особенно при использовании совместного предсказания motion forecasting + planning).

Заключение

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

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

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

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

Автор выражает благодарность Антону Наумову (@antnaumov) за полезные комментарии к первой версии текста.

Ресурсы

Cтарт — в октябре 2025
Computer Vision Rocket

Приходите на наш курс CV Rocket, чтобы погрузиться в продвинутый Computer Vision: от сложностей и корнер-кейсов в «обычных» задачах до мультимодальных моделей и дизайна CV-систем!

Телеграм-канал

DeepSchool

Короткие посты по теории ML/DL, полезные
библиотеки и фреймворки, вопросы с собеседований
и советы, которые помогут в работе

Открыть Телеграм

Увидели ошибку?

Напишите нам в Telegram!