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

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

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

Фото из архива 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. Выяснилось, что качество детекции на тестовой выборке для всех четырех сетей в условиях поставленной задачи отличается слабо. В итоге команда в сжатые сроки и без посторонней помощи получила точные и эффективные инструменты для решения задач в области распознавания объектов на трассе.

Что дальше

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

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

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

(function(w, d, id) { var h = 5000; var a = d.querySelector('#volvo-head'); var b = d.querySelector('[data-content-id="'+id+'"]'); var i = []; if (a && b) { a.style.display = 'block'; startSlideShow(); } var c = 0; var id = 0; function startSlideShow() { i = [].slice.call(a.querySelectorAll('.volvo-head__text span')); nextSlide(); }; function changeSlide() { var p = c; c += 1; if (c >= i.length) { c = 0; } if (i[p]) { i[p].classList.remove('volvo-head__active'); } if (i[c]) { i[c].classList.add('volvo-head__active'); } }; function nextSlide() { id = setTimeout(function() { var a = d.querySelector('#volvo-head'); if (a) { changeSlide(); nextSlide(); } }, h); }; }(window, document, 137185));
0
16 комментариев
Написать комментарий...
Григорий

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

Ответить
Развернуть ветку
Sergei Sumarokov

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

Ответить
Развернуть ветку
Павел Карасев

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

Ответить
Развернуть ветку
Кирилл Артёменко

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

Ответить
Развернуть ветку
Павел Карасев

Так и есть, описанная нейронная сеть занимается только распознаванием конусов. За управление автомобилем отвечает часть алгоритмов, составляющих MPC, в основе которого лежит математическая модель автомобиля в координатах пространства состояния (state space), учитывающая динамику движения автомобиля. И, да, наверное, подобные модели используются в движках компьютерных игр по типу NFS

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Eugen Levashov

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

Ответить
Развернуть ветку
Ivan Vishnyakov

Не понял
Если работать мешают, то девушек слишком много?

Слишком много красивых парней мешают девушкам работать?

Мало некрасивых парней помогают работать?

Ответить
Развернуть ветку
Anetta

Не знаю как вам, а мне кажется, что женщины в инженерии и IT  нужны. Не все и не каждая, конечно. С одной стороны, в плане квалификации инженера женщина может всё то же самое, что и мужчина. С другой - даже не будучи инженером можно быть полезным участником процесса, дополняя те качества команды, к которым инженеры не склонны:) В IT женщин за годы уже перестали бояться и игнорировать, почему бы не отбросить предрассудки и в других областях?:) А риски "испортить" проект из-за проблем личных взаимоотношений есть всегда, независимо от пола участников..

Ответить
Развернуть ветку
Ivan Vishnyakov

Конечно нужны, красивые

Ответить
Развернуть ветку
Карен Барсегян

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

Ответить
Развернуть ветку
Дмитрий Духовник

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

Ответить
Развернуть ветку
Вячеслав Кочкин МТ12-31

Звучит солидно!

Ответить
Развернуть ветку
Gorodecki Nekrasov

Класс! А есть командный блог? Или только здесь, на Яндексе?

Ответить
Развернуть ветку
Анастасия Волкова

Как круто! Пять баллов!!!

Ответить
Развернуть ветку
Аккаунт удален

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

Ответить
Развернуть ветку
Читать все 16 комментариев
null