Driverless по-студенчески: как команда из Бауманки разрабатывает беспилотный гоночный болид

Рассказываем, как студенческая команда МГТУ им. Н.Э. Баумана одной из первых в России проектирует беспилотный гоночный электроболид для международных соревнований, а нейросети и облачные технологии помогают на поворотах.

Фото из архива Bauman Racing Team
Фото из архива Bauman Racing Team

Как организованы driverless-гонки

Formula Student — это международные студенческие инженерные соревнования, для участия в которых необходимо за один год спроектировать и построить болид. Ежегодно в них принимает участие около 1000 команд со всего мира. Кстати, в Германии, где проводится состязание, практически у каждого немецкого вуза, связанного с автомобильной промышленностью, есть своя команда. По результатам Formula Student талантливый студент может попасть в автомобильную индустрию.

Гонки автомобилей класса FSD (Formula Student Driverless) были заявлены как отдельное направление лишь в 2016 году. В отличие от того же сезона Roborace (первых в мире гонок с участием беспилотных гоночных болидов), в Formula Student беспилотные автомобили не соревнуются друг с другом непосредственно на трассе, а оцениваются отдельно по скорости, маневренности и эффективности.

Соревнование делится на статические и динамические дисциплины. В статических испытаниях оценивается проектирование автомобиля, его стоимость, бизнес-план. После них обязательно проходит техническая инспекция. Среди динамических испытаний самое зрелищное – Track Drive.

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

Фото из архива Bauman Racing Team
Фото из архива Bauman Racing Team

Одни из первых в России

Команда Bauman Racing Team существует с 2012 года. Студенты регулярно занимаются постройкой автомобилей для участия в Formula Student. За всё время существования команды были построены семь гоночных автомобилей (BRT1 - BRT7), которые состязались в классе FSC (Formula Student Combustion). Все болиды принимали участие в международных соревнованиях в Германии, Австрии, Чехии, Венгрии, Италии, Испании и России. При этом команда дважды становилась победителем российского этапа и призером гонки в Андорре.

Фото из архива Bauman Racing Team
Фото из архива Bauman Racing Team

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

Что помогло создать алгоритм

Сверточные нейронные сети

В систему автономного вождения заложен алгоритм, который позволяет распознавать объекты на трассе (например, конусы) в реальном времени, за счет чего автомобиль движется в правильном направлении. Для распознавания студенты Bauman Racing Team использовали сверточные нейронные сети, которые лучше всего справляются с этой задачей.

Видео с детекцией конусов

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

Архитектура YOLO

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

Виртуальные машины в Облаке

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

Для тестирования набора нейросетей команда выбрала сервис облачных вычислений — Compute Cloud облачной платформы Yandex.Cloud. С помощью подробных инструкций от архитекторов Облака команде Bauman Racing Team удалось развернуть виртуальную машину с необходимыми GPU (графическими процессорами) всего за полчаса.

Как обучали нейросети

Нужно было обучить 4 различных сети архитектуры YOLOv5 (s, m, l, x) и выгрузить результаты в виде графиков, отчетов о работе, весах нейросетей. Для решения этой задачи в Compute Cloud было создано несколько виртуальных машин с высокопроизводительными графическими процессорами NVIDIA Tesla V100, внутри которых были развернуты docker-контейнеры с различными архитектурами нейронной сети. Эта конфигурация позволила проводить быстрые вычисления, сократить время тестирования и ускорить разработку.

Каждая из нейросетей обучалась на исходном наборе данных из двадцати тысяч изображений. Всего потребовалось 66 часов: обучение YOLOv5 s заняло 5,23 часа, YOLOv5 m – 9,3 часа, YOLOv5 l – 15 часов, а YOLOv5 x – 36 часов.

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

Driverless по-студенчески: как команда из Бауманки разрабатывает беспилотный гоночный болид

Что дальше

Команда Bauman Racing Team заканчивает проектировать автомобиль и отлаживать алгоритмы в симуляторе. Кстати, студенты планируют увеличивать датасет для обучения нейросети в Yandex.Cloud и использовать облачную платформу в других областях, например, для решения задачи семантический сегментации. Сейчас команда только начинает собирать свой болид, а закончить планирует к лету – разгару сезона Formula Student, когда должны пройти этапы в Чехии, Венгрии и Германии.

Подписывайтесь на блог Yandex.Cloud, чтобы узнавать еще больше новостей и историй об IT и бизнесе.

Другие истории, которые активно читают наши подписчики:

2727
16 комментариев

Кайф! Молодцы большие 😊

4
Ответить

Интересно, а характеристики автомобиля учитываются при обучении сети? Если например "пересадить" сеть в другой болид, у которого тормозной путь со 100км\ч короче, то придется переобучать? Или тут иначе работает?

2
Ответить

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

4
Ответить

Комментарий недоступен

1
Ответить

Так наоборот же

4
Ответить

Большие молодцы!

2
Ответить

Супер, так держать ребята 👍👍👍

1
Ответить