Десятилетие назад это была научная фантастика…

Как и большинство научных открытий, все началось с военных. Военно-промышленный комплекс США уже год направляет инвестиции в создание беспилотных грузовиков. В 2004 году было решено провести конкурс на миллион долларов, предложив миру построить робота, который мог бы ездить по пустыне Мохаве в Калифорнии. Результаты были невысокими, лучший результат составил всего семь миль. Но последствием этого стало рождение беспилотного автомобиля.

В 2009 году Google запустил проект беспилотных автомобилей. В течение 18 месяцев они разработали систему, которая могла маневрировать по самым сложным дорогам Калифорнии без вмешательства человека. Затем Tesla присоединилась к гонке, встроив в свои автомобили функции автоматизации, такие как обнаружение слепых зон, автоматическое торможение и предупреждения о выезде с полосы движения. Uber и Lyft также начали вкладывать значительные средства в превращение совместного использования поездок в автономную задачу. Вскоре после этого их примеру последовали все крупные автопроизводители, а также сотни стартапов, которые начали предлагать улучшенные автономные функции, чтобы помочь этим гигантам в их усилиях.

По оценкам Intel и Strategy Analytics, эта развивающаяся отрасль вырастет в мировой экономике на 7 триллионов долларов (2 триллиона долларов только для США) и что к 2045 году эта технология спасет около 600 000 жизней. таксисты и другие водители останутся без работы.

Как заменяется человек?

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

  • Подробные карты уличных объектов (фонари, знаки, бордюры и т. Д.)
  • Датчики, такие как камеры и лидары (похожи на радары, но используют свет для создания импульсов вместо радиоволн), 3D-макет ближнего расстояния в реальном времени.
  • Облачная связь между транспортными средствами
  • Сенсорные входы в алгоритмы машинного обучения автомобиля для прогнозирования результатов на основе огромного объема данных для планирования и действий

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

Тело и мозг

Специалисты по анализу данных - пионеры в совершенствовании мозга зверя (беспилотные автомобили). Мы должны каким-то образом придумать, как разработать алгоритмы, которые овладевают восприятием, локализацией, прогнозированием, планированием и контролем. Как мы можем отличить заблудившуюся корзину покупок от человека в инвалидной коляске? Как узнать, в каком направлении повернет велосипедист? Как мы проводим различие между нормальными и ненормальными ситуациями и когда мы решаем нарушить закон, чтобы спасти жизнь?

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

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

Восприятие и локализация

Чтобы машина увидела, требуется два шага: классификация изображений и локализация изображений. Классификация изображений определяет то, что они видят. Локализация изображения - это знание того, где он видит объект. Для выполнения этих двух шагов нам нужно использовать сверточную нейронную сеть (CNN). Обучение CNN позволит ей выполнять операции свертки с изображениями, чтобы классифицировать их и находить их.

Проблема с такой CNN заключается в том, что она может брать только одну часть изображения за раз для выполнения классификации. Что делать, если на одном изображении несколько вещей? Итак, мы пишем алгоритм «скользящих окон», который позволяет скользить по изображению, чтобы охватить все его части. Затем каждая часть проходит через CNN, чтобы увидеть, соответствует ли она какому-либо возможному объекту. Для чего-либо, кроме человека или обнаруживаемого объекта, CNN вернет «Истина», в противном случае - «Ложь».

Но что, если объект намного больше или меньше самого изображения? Мы можем разбить изображение на сетки и пропустить все изображение через CNN. Используемый для этого алгоритм называется YOLO («Ты смотришь только один раз»). В результате получается карта вероятности класса, которая показывает вероятности того, что каждая ячейка сетки является конкретным объектом. YOLO - это усовершенствование «скользящих окон», поскольку оно возвращает прогнозы небольших частей всего изображения вместо нескольких прогонов.

Учитывая, что мы знаем, присутствует ли объект в каждой сетке, как мы узнаем, где он находится внутри сетки? Мы используем технику, называемую фильтрами Калмана, чтобы найти их положение с максимально возможной точностью. Мы можем использовать алгоритм «подавления без максимума» для обучения CNN. Мы сравниваем результаты CNN для каждой сетки с фактической сеткой. Однако мы также хотим учитывать, находятся ли части одного и того же объекта в нескольких сетках, и мы не хотим подсчитывать один и тот же объект несколько раз. Подавление без максимума - это способ убедиться, что наш алгоритм обнаруживает каждый объект только один раз. Подавление, не являющееся максимальным, устраняет множественные обнаружения одного объекта. Мы определяем функцию стоимости как площадь пересечения / объединения двух сеток. Чем ближе функция к 1, тем лучше наш прогноз. Сначала мы берем сетку с самым высоким IoU (наиболее надежное обнаружение в этой сетке). Затем для оставшихся сеток, которые перекрываются и имеют высокий IoU, мы подавляем их, чтобы они не обнаруживались для одного и того же объекта.

Прогнозирование, планирование и контроль

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

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

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

Наконец, последний шаг делегируется инженерам по контролю. Они используют траекторию, созданную на этапе планирования, для соответствующего изменения рулевого управления, ускорения и остановок автомобиля. Наиболее распространенным методом является ПИД-регулирование, но есть и другие, такие как линейно-квадратичный регулятор (LQR) и прогнозирующее управление модели (MPC) (но это выходит за рамки данной статьи).

Итак, поехали, беспилотные автомобили!

Ссылки:

https://towardsdatascience.com/self-driving-cars-the-guide-f1f427b9656b

https://towardsdatascience.com/how-do-self-driving-cars-see-13054aee2503

https://medium.com/@ODSC/self-driving-cars-generated-news-among-top-october-data-scienceresearch-f6bb04e4e573

https://www.wired.com/2017/06/impact-of-autonomous-vehicles/

https://www.wired.com/story/guide-self-driving-cars/

https://www.fi.edu/science-of-selfdriving-cars

https://www.smartdatacollective.com/data-key-autonomous-vehicle-technology-tesla-says-winning/

https://dataconomy.com/2015/12/how-data-science-is-driving-the-driverless-car/

https://blog.exxactcorp.com/atrous-convolutions-u-net-architectures-for-deep-learning-a-brief-history/

https://towardsdatascience.com/reinforcement-learning-from-grid-world-to-self-driving-cars-52bd3e647bc4

https://sergioskar.github.io/Self_driving_cars/