Беспилотный автомобиль считается одним из следующих больших достижений в сфере высоких технологий. Благодаря тому, что многие крупные технологические гиганты инвестируют в него, это превратилось в соревнование, где каждая компания создает свой собственный набор алгоритмов, чтобы автомобиль ездил плавно, эффективно и БЕЗОПАСНО в использовании.

Машинное обучение играет очень важную роль в их управлении и является основой многих автономных алгоритмов.

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

Проект охватывает все задачи по проблеме машинного обучения. Задачи разделены на: -
1. Сбор данных
2. Обучение нашей модели
3. Тестирование модели

1. Сбор данных
Udacity предоставила открытый исходный код своего симулятора беспилотного автомобиля, основанного на Unity, который является частью их наностепени Self Driving Car. С симулятором легко работать. Есть два режима обучения и автономный (для тестирования). В режиме обучения мы можем управлять автомобилем и бегать по трассе, одновременно камеры на передней части автомобиля будут собирать изображения и записывать угол поворота рулевого колеса, дроссельную заслонку, скорость заднего хода и скорость автомобиля. Он будет сохранен как файл CSV и будет использоваться в качестве данных для нашей модели. Вы можете бежать по любой из двух дорожек.
Тип данных, которые мы собираем, также играет решающую роль, ваши данные должны состоять из множества ситуаций, иначе ваша машина не сможет научиться справляться с такими ситуациями, как изгиб или восстановление когда едет по бездорожью. Данным можно придать большее разнообразие, применив различные методы увеличения данных, такие как переворачивание, перевод, нормализация и т. Д., В зависимости от необходимости.

2. Обучение
Мы стремимся создать модель, которая может предсказывать угол поворота. Скорость и дроссельная заслонка будут определяться углом. Здесь мы имеем дело с данными изображения и проблемой типа регрессии. Поэтому мы будем использовать сверточную нейронную сеть (CNN), поскольку она лучше всего работает с данными изображений. CNN пытается узнать информацию об изображении, наблюдая за каждым пикселем. Когда мы накладываем CNN разных размеров на изображение, он изучает свойства изображения, такие как края, резкие повороты и другие специфические детали. Здесь я использовал три модели: первая - это настраиваемая модель, обучающаяся с нуля, а другая - с использованием VGG16 в качестве базовой модели CNN. Третья модель использует архитектуру модели, разработанную Nvidia. Во время обучения мы должны наблюдать потери как при обучении, так и при проверке, так как мы не хотим переобучения или неполной подгонки.
После обучения мы сохраняем его как файл h5.

3. Тестирование
Это самое интересное. Репо от Udacity поставляется с файлом drive.py. Когда мы отправляем наш сохраненный файл модели h5 в drive.py в качестве аргумента, он используется для прогнозирования новых изображений. Поэтому, когда мы открываем автономный режим в симуляторе, автомобиль будет двигаться сам, показывая вам, чему он научился.

Заключение и некоторые наблюдения
Результаты первых двух моделей были не такими уж хорошими. Но модель на базе Nvidea неплохая. Думаю, мне следовало обучить сеть
большему количеству итераций, а также поработать в части сбора данных. Поскольку у меня нет графического процессора :(, а процессор работает медленно, я не смог ускорить обучение.
Может быть, с большей мощностью обучения и лучшими данными вы даже сможете превзойти предварительно обученную модель Nvidia.

Модель Nvidia

Ссылка на мою страницу Github (мы найдем там необходимые файлы для запуска)

Https://github.com/mrinath123/Behavioural-cloning

Скачать Симулятор (для windows)

Https://d17h27t6h515a5.cloudfront.net/topher/2017/Feb February/58ae4419_windows-sim/windows-sim.zip

Видео Сираджа было моим источником вдохновения. Рекомендую посмотреть видео.

В конце концов, спасибо Udacity за создание этого замечательного симулятора с открытым кодом и спасибо Nvidia и Siraj за идеи.

И спасибо, что прочитали.