В этом сообщении в блоге мы рассмотрим статью «Прогнозы мультимодальных траекторий для автономного вождения с использованием глубоких сверточных сетей», написанную Хенганг Цуй и др. Но прежде чем мы начнем наблюдать за самой бумагой, давайте в первую очередь проверим, что такое предсказание траектории?

В реальном мире существует множество различных ситуаций, когда нужно предсказать, где актер (это может быть что угодно - человек, машина, самолет, неважно что) перейдет на следующий шаг (шаг также может быть другим. - это может быть миллисекунда, секунда или даже минута). Но как уточнить, что такое «предсказание»? Какая информация нам нужна?

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

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

И здесь вступает в действие «мультимодальность»: что это такое в случае предсказания траектории? Мультимодальность означает, что у нас есть несколько прогнозов для каждого таймфрейма. Более того, у нас будет вероятность каждого прогноза - упрощая, 60%, что машина будет двигаться вперед, и 40%, что она пойдет правильно.

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

Хотя автомобиль находится довольно далеко от поворота, и мультимодальный (слева), и одномодальный (справа) подходы предсказывают ожидаемый путь поворота вправо. Для мультимодальных перевозок мы, видимо, проверим вариант, имеющий максимальную вероятность.

Но когда машина движется немного вперед, все меняется - унимодальный алгоритм начинает думать: «Я думал, что он пойдет вправо, но сейчас он движется вперед. Так что я думаю, что ИСТИНА ИНАЧЕ - где-то посередине между движением и прогнозируемым поведением ». При этом мультимодальный не меняет своего ответа - он просто пересчитывает вероятности, и теперь наиболее вероятный вариант продвигается вперед, а менее вероятный - поворот вправо.

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

Другая идея заключалась в использовании анализа карты - это метод, который на первом этапе связывает каждое обнаруженное транспортное средство с одной или несколькими полосами движения на карте, а затем генерирует все возможные пути для каждой пары «транспортное средство - полоса» на основе топологии карты. , связность полос и оценка текущего состояния автомобиля. Этот метод, в отличие от предыдущего, довольно хорош для долгосрочных прогнозов и имеет тенденцию делать разумные прогнозы в общих случаях, но действительно чувствителен к ошибкам в ассоциации транспортных средств и полос движения. Более того, он не может предсказать «странное» поведение актера.

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

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

RNN, включая LSTM и GRU, также достаточно хорошо работают для предсказания путей и траекторий. Хотя авторы данной статьи предполагали, что использовать этот подход для построения потенциальной мультимодальности траекторий невозможно. Авторы также рассматривали сети плотности смеси как потенциальный рабочий подход, но их было трудно обучить из-за числовой нестабильности при работе в многомерном пространстве.

Авторы приняли решение использовать для этой работы CNN, учитывая свои данные (подробнее об этом позже). Архитектуру мы проверим чуть позже, а теперь перейдем к возможной «мультимодальности» обработки. Подходов вроде ансамбля сетей немного, но авторы проверяли и другие варианты. Сначала было обучение модели, которая присваивает вероятности N классам маневров. К сожалению, этот подход требует заранее определенного дискретного набора возможных маневров, который может быть трудно определить для сложного городского вождения. Другая идея заключалась в том, чтобы генерировать мультимодальные прогнозы с помощью выборки, но для генерации нескольких траекторий требовались повторяющиеся прямые проходы. В итоге авторы статьи решили воспользоваться методом «ближайшего прогноза». Это означает, что они будут использовать одну сеть, производя M различных результатов, каждый из которых представляет разные гипотезы. В конце концов, они использовали бы потерю, которая учитывала только самый близкий прогноз к наземным меткам истинности.

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

Сначала эта карта проходит через базовую сеть CNN. MobileNet-v2 использовался для этого подхода, в то время как для одномодальной задачи из предыдущей статьи авторов были лучшие варианты. Я не могу сказать, почему был выбран именно этот, но это только один из следующих вопросов к этой статье. Затем результат был сглажен и объединен с вводом состояния, которое включало скорость, ускорение и скорость изменения курса актера. В конце концов, он прошел через полностью связанный слой и получил результат, который включал M режимов, для каждого режима была вероятность этого и H временных меток с 2 координатами в каждой. Это дает нам выход M * (2 * H + 1) для одной сети.

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

Здесь i - номер актера, m - номер режима, t - время. Итак, здесь у нас есть ошибка смещения (или 2 нормы) между наземной истинной траекторией для актера i в момент времени t в режиме m, усредненный по горизонту (размаху - ближайшим моментам времени) этой траектории. Мы определили эту потерю, чтобы попытаться использовать ее в более сложных потерях, которые мы попробуем позже.

Начнем с простой потери из-за смеси экспертов.

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

Другая идея - это потеря прогноза по нескольким траекториям. Давайте определим его шаг за шагом:

Сначала мы запускаем прямой проход нейронной сети, чтобы получить M выходных траекторий. Затем мы идентифицируем режим m ∗, который является наиболее близким к наземной траектории в соответствии с произвольной функцией расстояния траектории. Эта функция расстояния не является обязательной (смещение - с использованием координат или угловое - с использованием угла), но основная идея состоит в том, чтобы найти лучший режим из предложенных.

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

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

Этот алгоритм также можно использовать для прогнозирования следования за полосой движения. Чтобы это произошло, авторы добавили 4-е измерение к растровому изображению, а все остальные оставили прежними. На этой картинке вы видите полосы, отмеченные розовым цветом:

А теперь давайте воспользуемся сетью и новой функцией потерь и получим результаты. Для этого авторы проехали 240 часов и собрали данные с датчиков, лидара и радара. Затем они использовали эти данные для создания растрового изображения BEV для конкретного актера и использовали его для обучения своей модели. Они использовали Tensorflow для его создания и 16 Nvidia Titan X для 24-часового обучения с размером пакета из 64 изображений.

Они использовали разные метрики, такие как ошибка смещения (две координаты) и ошибки вдоль маршрута / поперечного пути (одна координата) с разной областью действия - 1-секундная область, 6-секундная область и среднее значение между областями. В качестве основы авторы использовали фильтр Калмана без запаха, который продвигает оцененное состояние во времени, предсказатель одиночной траектории из их предыдущей статьи, сеть плотности смеси (гауссова смесь по пространству траекторий) и мультимодальную модель с двумя потерями - Mixture-of- Эксперты и прогнозирование нескольких траекторий.

Очень интересно, что за короткий промежуток времени (1 секунда) все модели показали примерно одинаковые результаты. Но когда дело дошло до 6-секундного просмотра, лучшим вариантом был определенно мультимодальный подход с потерей прогноза по нескольким траекториям.

Более того, авторы решили проверить ряд режимов, которые показывают лучший результат, и его оказалось 3.

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

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

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

В-третьих, почему авторы строят свою модель на основе MobileNet-v2? В своей предыдущей статье другая сеть показала лучшие результаты. Если они проводят эксперименты, выясняя, какой из них лучше для мультимодальных перевозок - почему бы не включить его в статью?

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