Нейросеть для управления автомобилем
Нейронные сети на страже правил дорожного движения
Нарушения правил дорожного движения (ПДД) водителями несут для организаций операционные, репутационные и правовые риски.
Ранее для выявления нарушений анализировали видеозаписи из служебных автомобилей. Это рутинный и трудоёмкий процесс, так как очень большие объёмы видео обрабатывались вручную. Было принято решение автоматизировать данный процесс и создать модель выявления нарушений ПДД для формирования риск-ориентированной подборки видео.
В первую очередь, было решено искать такие грубые нарушения ПДД как пересечение двойной сплошной линии и проезд на красный сигнал светофора.
Для сегментации изображения и обнаружения дорожной разметки была использована свёрточная нейронная сеть архитектуры U-Net. Данная архитектура представляет собой последовательность слоёв свёртки и пулинга, которые сперва уменьшают пространственное разрешение картинки, а затем увеличивают его, предварительно объединив с данными картинки и пропустив через другие слои свёртки.
Для обучения модели был нужен обучающий датасет. К сожалению, все найденные датасеты из открытого доступа состояли из фотографий дорог не из России. Результаты обучения модели на зарубежных дорогах были неутешительными: модель зачастую просто отказывалась воспринимать нашу отечественную дорожную разметку как разметку. Поэтому было принято решение заняться созданием обучающей выборки самостоятельно. Из видео с регистраторов было нарезано около 1500 скриншотов и с помощью сервиса Supervise.ly на них разметили дорожное полотно (рис.1).
Обученная на таком датасете модель стала способна распознавать дорожную разметку на наших видео с регистраторов. Нейросеть находит на видео сплошные линии и, если они содержат не менее заранее обозначенного количества пикселей (чтобы случайные линии, разрывные или не сплошные не учитывались), аппроксимирует их в прямую линию, которую наш автомобиль пересекать уже не должен.
На рисунке 2 показано как работает U-Net: сверху — оригинальная запись с лобового стекла, снизу – пример работы нейронной сети, где зеленые области — это маска дорожной разметки, а тонкие красные линии — аппроксимация разметки в прямую.
Модель очень хорошо себя показала при обработке большинства видео с регистраторов, однако нельзя не отметить, что возникли сложности при анализе заснеженной дороги или видео снятого в темное время суток – в некоторых случаях разметку просто не видно.
Для определения наличия светофоров и автомобилей использовали предобученную нейросеть Darknet + Yolo v3. Эта нейронная сеть является улучшенной версией архитектуры YOLO, что расшифровывается как You Only Look Once. Главная особенность YOLO v3 заключается в том, что у нее на выходе присутствует три слоя, каждый из которых рассчитан на детектирование объектов различного размера.
Основная особенность данной архитектуры по сравнению с другими заключается в том, что большая часть систем применяют нейронную сеть несколько раз к разным частям изображения, а в YOLO нейронная сеть применяется ко всему изображению сразу и один раз. Сеть делит изображение на своеобразную сетку и предсказывает bounding boxes (параллелепипеды, ограничивающие найденные объекты) и вероятности того, что там есть эти искомые объекты для каждого участка.
Достоинства данного подхода состоят в том, что просматривая изображение целиком, YOLO при детектировании и распознавании объекта учитывает контекст изображения. Также YOLO обладает явными преимуществами в быстродействии: она в тысячу раз быстрее чем R-CNN и в несколько сотен раз быстрее чем Fast R-CNN.
Пример работы YOLO представлен на рисунке 3. Анализ изображения происходит покадрово, все найденные красные светофоры корректно детектируются нейронной сетью.
Обучение целых двух нейросетей требует наличия достаточно мощного компьютера, особенно в части видеокарты, т.к. используются вычисления именно на GPU. Мы использовали процессор Core i7 восьмого поколения, видеокарту nvidia gtx1080 и 32 ГБ оперативной памяти. Таких системных характеристик было вполне достаточно для реализации проекта.
По результатам использования моделей выявления нарушений ПДД, можно сказать, что это был успешный проект. На вход скрипту было подано видео с авторегистратора за один месяц общей длительностью 7 часов 11 минут, время инференса модели (обработки входящих видео) составило 25 минут. По окончанию обработки всех видеофайлов было нарезано 112 фрагментов по 8 секунд (15 минут суммарно), из которых сэкономили почти 7 часов, без труда определили нарушения.
Свои вопросы можете направить на электронный адрес.
Научить автомобиль ездить самостоятельно при помощи машинного обучения Статьи редакции
Перевод выступления технического директора Overleaf Джона Лиса-Миллера.
Этот проект был личным, но в некоторой степени он связан с моей работой. Я занимаю должность технического директора в Overleaf, онлайн-редакторе LaTeX. Сегодня платформа насчитывает 3 млн пользователей.
Я и мой коллега-сооснователь прежде занимались беспилотными автомобилями.
Overleaf мы запустили, одновременно проектируя Heathrow Pods, первую в мире систему беспилотных такси. Она открылась в 2011 году и до сих пор перевозит пассажиров.
Ещё в 2011 году нам удалось создать сеть беспилотников благодаря отдельной сети дорог. Heathrow Pods — закрытая система, поэтому мы полагались на традиционные методы разработки и проверки безопасности.
Вместе с тем большинство современных исследований автономных машин нацелены на то, чтобы вывести их на общественные дороги, где нужно иметь в виду водителей, пешеходов, велосипедистов, светофоры, знаки и много чего ещё.
Один из пионеров этой области — Себастьян Трун, профессор Стэнфорда и победитель гонки DARPA Grand Challenge в 2005 году, во многом ознаменовавшей современную эпоху беспилотников. Позже Трун основал платформу онлайн-обучения Udacity. В 2016 году на сайте появился курс по беспилотным машинам. Я записался.
В основе моего выступления — одна из лабораторных работ курса, которая, в свою очередь, опирается на доклад Nvidia «Сквозное обучение в беспилотных автомобилях».
Команда производителя показала: снимки, сделанные камерой на переднем бампере, можно поместить в свёрточную нейронную сеть (о ней мы ещё поговорим), а она выведет команды для управления машиной. Короче говоря, как вы смотрите на дорогу впереди, решая, дать ли рулём вправо или влево, так и нейросеть.
Подобный подход в корне отличается от привычного метода разработки автономных систем: прежде мы разбивали основную задачу на множество подзадач вроде распознавания объектов, классификации, картирования, планирования и так далее.
Каждую подзадачу обслуживала своя подсистема, затем их объединяли в одну. Здесь же мы обучаем монолитную нейронную сеть, которая каким-то образом управляет автомобилем. Слегка напоминает магию.
Наша задача на той лабораторной — воспроизвести эту магию. Пойдём по тому же пути:
Сперва соберём данные, самостоятельно управляя машиной в симуляторе. Нейросеть будет подражать моей манере езды: в основном я еду посередине дороги.
В правом верхнем углу видна иконка «Запись»: мы записываем изображение с камеры и углы поворота в каждом кадре десять раз в секунду.
Вы, наверное, заметили, что едет машина неровно. Причина: управлять ей можно лишь стрелками влево-вправо. Поэтому для начала возьмём необработанные рулёжные данные и сгладим их.
Следующее препятствие. Если ехать только по центру, система не поймёт, что делать в случае смещения машины к краю. Дело решается записью возврата на курс: я останавливаю запись, подъезжаю к краю, возобновляю запись и возвращаюсь на середину.
Таким образом машина учится возвращаться в центр трассы (надеюсь, это не научит её съезжать).
Проехавшись по дороге несколько раз и записав возврат на курс, я получил 11 тысяч кадров:
В каком-то смысле данных у нас много, но в мире машинного обучения этого мало. Думаю, с нуля обучить сеть на таком количестве данных будет сложно. Чтобы обойти проблему, задействуем технику переноса обучения.
Вкратце: мы возьмём сеть, обученную кем-то для другой задачи, и извлечём небольшую часть, приспособив её для себя.
В нашем проекте мы задействуем сеть Inception v3, обученную Google для состязания по распознаванию изображений. На входе — картинка, на выходе — класс изображения, вещь на нём. Если в систему загрузить фото слева, она скажет, что на нём сибирская хаски, если справа — эскимосская собака (не уверен, что сам бы их различил).
Сеть Inception огромна — более 25 млн параметров; на её обучение Google потратила немало сил и денег. Как же нам её адаптировать? Ответ прост: мы проведём «лоботомию» и вытащим лишь первые 44 слоя (отмечены красной рамкой).
Почему это работает? Дело в том, что вырезанные слои типичны для обработки изображений (например, детекторы границ). Разница между породами собак определяется позже, как и другие классы изображений нам не нужные. Мы дополним группу Inception тремя собственными слоями:
Нам придётся обучить лишь собственные доработки, не трогая секцию Inception. Будем думать, что в таком случае мы обойдёмся меньшим количеством данных, чем если бы начали с нуля.
Добавлю, что архитектура последних трёх слоёв выбрана методом проб и ошибок. Были варианты попроще, но этот оказался самым простым работающим.
Как же работает такая сеть? Ненадолго погрузимся в теорию. Чтобы создать свёрточную нейронную сеть, нам понадобится три строительных блока:
Рассмотрим каждый по очереди. В качестве образца возьмём кадр ниже:
Посмотрим на него следующим образом: наша цель для этой сети — от кадра размером 320х160 пикселей прийти к одному числу, равному углу поворота, который машина должна применить, увидев изображение.
Первой идёт свёртка — простая, но универсальная операция. Для её выполнения нам потребуется ядро — небольшая числовая матрица. Мы задействуем ядро 3×3 пикселя.
Начнём с того, что совместим ядро такого же размера с частью изображения (левый верхний угол). Затем перемножим каждый пиксель этой области на соответствующее значение в матрице ядра и сложим произведения — первый пиксель выходного изображения готов. Так мы движемся от пикселя к пикселю, каждый раз прибавляя к изображению на выходе одну точку.
Операция свёртки очень проста, эффективна и полезна. В Photoshop, скажем, большая часть инструментов в меню фильтров так или иначе опирается на свёртку, только ядро у каждой своё. Ядро тождественности нас не особо интересует, поскольку оно просто копирует изображение, но есть, например, ядра для определения границ, размытия и резкости.
Чтобы задействовать свёртку в нейросети, нужно не высчитывать ядра самостоятельно, а позволить системе самой проанализировать данные и вывести множество ядер. Используемые слои Inception располагают около 700 тысячами параметров, немало из которых — параметры ядер, обученные Google на 1,2 млн изображений.
Запуская свёртку с таким большим количеством ядер, мы из одного изображения на входе получаем сразу несколько — по одному на каждое ядро. Но продолжай мы добавлять картинки, память бы закончилась. Поэтому-то нам нужен второй блок — изменение размера.
Тут всё очевидно — время от времени мы уменьшаем размер изображения. Есть много способов это сделать, например, с помощью максимальной подвыборки.
Меняя размер, мы теряем в пространственном разрешении, но приобретаем в глубине. Это позволяет взять плоское изображение на входе и, несколько раз повторив операции свёртки и изменения размера, получить вытянутое «изображение» низкого разрешения и большей глубины.
С глубиной в системе в каком-то смысле развивается понимание — фрагмент изображения из пикселей она превратила в совокупность черт, значимых для решения поставленной задачи.
Перейдём к функциям активации — в словосочетании «нейронная сеть» появляется слово «нейронный».
Биологический нейрон — штука невероятно сложная, с удивительными динамическими свойствами и занимательными типами поведения. Мы смоделируем его в общих чертах.
Так, у нейрона есть дендриты, «входы», соединённые с восходящими нейронами. Если «входы» в сумме преодолевают определённый порог, этот нейрон активируется и отсылает сигнал через аксон в нисходящие нейроны.
Математически это можно представить как простую функцию сдавливания. Если сумма входов отрицательная, на выходе мы получим значение, близкое к нулю, — нейрон не активирован. Если же сумма положительная, на выходе получается значение, близкое к единице, — нейрон активирован.
Вот и всё. Эти три операции мы повторяем снова и снова. Отмечу, однако, что свёртка (по крайней мере, тип используемый здесь) — линейная операция. Не будь изменение размера и функции активации нелинейными, композиция свёрток попросту схлопнулась бы в одну большую линейную функцию.
Но стоит нам добавить чуть-чуть нелинейности, мы от представления исключительно линейных функций переходим к аппроксимации любых.
С теорией покончено. Теперь посмотрим, на что способна наша сеть, используя картинку-образец. Пропустив её через 44 слоя сети Inception, мы получим 256 изображений в серых тонах; их стороны примерно в десять раз меньше сторон изображения на входе, но они гораздо глубже.
Вот выборка из девяти случайных изображений, начиная с 42-го. Каждая представляет собой один из откликов, который нейронная сеть даёт на тестовое изображение. Светлый пиксель означает, что в этой точке изображения нейрон активирован, то есть он отвечает на какую-то черту соответствующей части входного изображения. Тёмный пиксель — нейрон не активирован.
Истолковать ответ нейронов будет проще, если наложить его на входное изображение:
На изображении 42 в верхнем левом углу, например, можно увидеть, что нейроны активно реагируют на границы дороги. Во время езды важно знать, где они, стало быть, это изображение будет полезным.
На 43-ем (сверху в середине), похоже, видна поверхность дороги — тоже может пригодиться. Кое-где, правда, проступает фон, но 48 изображение (справа в средней строке) почти полностью берёт его на себя. Комбинация этих изображений, судя по всему, даст нам полезную информацию.
Замечу: для этой части сети мы не указывали черты, необходимые в решении нашей задачи. На самом деле она обучена Google для классификации изображений.
Это переносит нас к фрагменту сети, который мы обучаем сами, — те три слоя, добавленные в конце.
Первый слой — очередная свёртка, только с ядром 1х1. Эта свёртка подбирает заданное число линейных комбинаций изображений, получившихся после обработки Inception; нередко её используют для понижения размерности.
Такой выбор архитектуры обусловлен выше — вместо изображения 42, 43 и 48 могут хорошо работать на распознавание дороги. Мы же хотим, чтобы сеть отбирала самые полезные комбинации, верно?
В этом примере мы выберем 64 линейные комбинации из 256 изображений. Ниже — изображения до и после свёртки с ядром 1х1. Они похожи, но вторая группа в целом ярче и сглаженнее.
И вновь на некоторых изображениях отчётливо проявляются края дороги, например на 45-м (на этот раз из 64 картинок).
Наконец, у нас есть два полносвязных слоя. С этого момента мы не сможем визуализировать результаты так же легко, потому что все значения после свёртки мы поместим в один большой список чисел. Один из слоёв затем вычислит заданное количество линейных комбинаций для всех этих чисел.
Схема справа описывает одну из таких комбинаций — один нейрон — в одном полносвязном слое. Такой слой состоит из множества нейронов, соединнёных со всеми выходами предыдущего слоя. Здесь мы обучаем веса wi и выходы xi. И снова мы применяем функцию активации f к каждому нейрону — вносим нелинейность.
Выходные данные первого полносвязного слоя переходят во второй, а выходные данные второго и есть угол поворота. Архитектура отлажена, мы готовы приступить к обучению.
Ну, почти готовы. Даже для последних трёх слоёв требуется выставить немало гиперпараметров, перед тем как полностью определить сеть и сценарии обучения. Сколько ядер необходимо в свёртке 1х1? Насколько велик должен быть каждый полносвязный слой? Какое сглаживание применить к углу поворота?
Чтобы отыскать гиперпараметры, есть способы и получше, но в нашем случае я просто перепробовал все возможные комбинации по большой сетке параметров. На полную обработку сетки уходит много времени, однако это просто вычисление — запустив процесс перед сном, вы получите свежие данные вечером, по возвращению с работы.
Каждая точка в сетке представляет собой одну сеть для обучения и оценки. Мы можем измерить работу каждой и выбрать лучшие настройки гиперпараметров.
К счастью, реальное обучение происходит очень легко благодаря библиотекам вроде Keras. Вот пример результатов обучения для одной из сетей:
Тут много всего интересного, но я прокомментирую следующее. В начале — краткое описание обучаемой модели, включающее несколько параметров, которым нужно соответствовать. Помните: слои Inception остаются неизменными, мы занимаемся обучением лишь блока на конце объединённой сети.
Во второй секции — процесс обучения, который Keras описывает по мере развития. Я разбил собранные данные для обучения на две части: обучающую (80%) и контрольную (20%). Каждую эпоху Keras записывает значение средней абсолютной ошибки в прогнозах сети по обучающей ( loss ) и контрольной ( val_loss ) группам.
Для каждого из трёх слоёв обучение начинается со случайно определённых весов. Начальные потери при случайных весах очень велики и начинаются с 79 пунктов. Keras, однако, использует потери для уточнения весов: вновь обрабатывая обучающую группу, система снижает потери с каждой успешной эпохой.
Спустя 17 эпох потери в десятки раз ниже, около 0,08 пункта. Обучение заканчивается тогда, когда начинают расти потери в контрольной выборке ( val_loss ), — большее число эпох весьма вероятно приведёт к переобучению.
Повторив процесс обучения на сотнях сетей для всех гиперпараметров, подключим модель с самыми низкими потерями к машине и посмотрим, как она едет.
Переводим симулятор на автономный режим, и машина начинает движение. Я не упоминал о регулировке газа, но в этом случае автомобиль разгоняется до 15 километров в час.
Можно заметить, как машина виляет и возвращается на курс. В конечном счёте она переусердствует и съезжает с дороги. Что ж, старт неплохой: видно, как машина пыталась удержаться на пути.
Ищем баги. Множество произвольных решений не были указаны в начальной сетке гиперпараметров, поэтому я начал с того, что добавил несколько. Например:
Тем не менее ничего из перечисленного не помогло. После нескольких дней биений я добавил оператор печати в петлю регулирования. Это быстро вскрыло проблему:
Контроллер тратил слишком много времени на обработку каждого кадра, поэтому подруливать он мог лишь три раза в секунду.
Кроме того, дальнейшее расследование показало: система проводила большую часть времени на слоях Inception. С одной стороны, проблему можно было решить покупкой более быстрого ноутбука. С другой — количество слоёв Inception можно сократить с 44-х до 12-ти (на картинке семь: остальные невидимы).
Посмотрим, как система ведёт себя при низкой задержке (около 0,1 секунды вместо 0,35 секунды):
Намного лучше. Я ускорил видео, ведь автомобиль теперь едет гораздо дальше. Виляние уменьшилось, машина держится курса, правда, едва ли выдерживает апекс, но, возможно, потому, что я не особо за ним следил. В конце концов машина добирается до поворота с деревьями за отбойником и уезжает в сторону.
Решение — добавить данных. Я несколько раз проехал этот поворот сам, и система освоилась. Примерно в то же время на Udacity появились данные, где автомобилем управляли с помощью руля, их я тоже добавил. Я также нарастил количество данных, отзеркалив каждый кадр в обучающей группе и заменив угол поворота на отрицательный.
Со всеми дополнениями сеть смогла проехать полный круг:
Я поменял настройки газа, чтобы машина разгонялась до 50 километров в час — максимальной скорости в этой версии симулятора. Кое-где она по-прежнему виляет, но уже не разбивается. Успех.
Итак, мы обучили систему езде на данной трассе. Но что если поместить её на совершенно другую дорогу? К счастью, недавно на Udacity появился второй трек, поэтому давайте проверим. Сеть остаётся прежней, в обучающих данных нет информации о новой дороге.
Едет. И вновь автомобиль сбивают с толку деревья — на 24 секунде он чуть не врезался в ограждение, но дальше всё равно поехал не туда. Учитывая простоту нашей сети по меркам нейросетей и короткое обучение, факт того, что машина так хорошо едет по неизвестному пути, пусть и в том же симуляторе, — довольно неплохой результат.
Искусственный интеллект вашего автомобиля
Технологии сегодня меняют мир быстрее, чем когда-либо. В 70-х годах искусственный интеллект существовал только в фантастических романах. 20 лет назад разработки ИИ уже велись, но успехи не были впечатляющими. Но в середине нулевых случился качественный прорыв в машинном обучении, ставший Большим взрывом для искусственного интеллекта. И сегодня множество нейросетей помогают нам фильтровать и искать информацию в интернете, обрабатывать фотографии, переводить тексты. Одна из областей, где ИИ открывает потрясающие новые возможности, — это автотранспорт.
Как искусственные нейросети изменят будущее вашего автомобиля?
Искусственный разум рулит!
Тема беспилотных автомобилей на слуху, и вокруг них поднялась не меньшая шумиха, чем в XIX — начале XX века по поводу «безлошадных повозок». На появление машины, которая сможет самостоятельно перемещаться в транспортном потоке, надеются многие. Но есть и опасения, что возрастет количество ДТП, в том числе смертельных.
Беспилотные авто активно разрабатываются на протяжении последнего десятилетия, а кое-где даже используются в тестовом режиме. К их созданию подключились гиганты автомобильной промышленности: BMW, Nissan, Honda, General Motors, Volkswagen, Audi, BMW и Volvo — и новые игроки на авторынке: Google, Tesla и множество менее крупных компаний. До массовых продаж беспилотных автомобилей дело пока не дошло. Автопилоты делают успехи, но до совершенства им далеко. Так что по меньшей мере в ближайшие пять-десять лет искусственный интеллект едва ли сумеет заменить — или хотя бы серьезно потеснить — опытного водителя.
Техническая реализация «искусственного водителя» — не единственная задача. Нейросети в автомобиле предстоит заботиться не только о том, чтобы соблюдать скоростной режим, сворачивать на нужных перекрестках и удачно парковаться. Ей придется еще и решать этические вопросы — например, когда ДТП неизбежно и приходится выбирать между двумя плохими вариантами. Что, если ИИ автомобиля внезапно обнаружит на дороге пешехода, но затормозить не будет успевать — и можно либо сбить человека, либо свернуть с дороги и врезаться в дерево, причинив вред пассажиру? Эта моральная дилемма известна как проблема вагонетки. И как искусственному разуму сделать выбор в ситуации, с которой не справиться и человеку.
Однозначных ответов на подобные вопросы нет и не будет. Тем не менее, Массачусетский технологический институт (MIT) создал сайт, на котором предлагает всем желающим пройти тестирование и выбрать, как они решили бы предложенные моральные дилеммы. В будущем данные этих исследований могут помочь разработчикам научить искусственный интеллект делать этический выбор, руководствуясь «среднечеловеческими» показателями.
Моральный тест MIT. У автомобиля отказали тормоза. Какой выбор должен сделать автопилот: врезаться в препятствие, убив находящихся в салоне пассажиров — девочку, женщину-спортсменку, бездомного и кошку, или выполнить маневр и сбить пешеходов — женщину, полного мужчину, мужчину-спортсмена, беременную женщину и ребенка (принимая во внимание, что они переходят дорогу на красный свет)?
Впрочем, мы уверены, что с повсеместным внедрением беспилотных автомобилей улицы городов и автострады станут значительно менее опасными, чем сейчас, а количество ДТП снизится (хотя и вряд ли до нуля). Ведь ИИ не заснет за рулем, не отвлечется на разговор по телефону, не нарушит скоростной режим, не предпримет заведомо опасный маневр. И точно не сядет за руль пьяным.
Менее очевидное, чем автопилоты, применение искусственных нейросетей в автомобиле — это помощники человека, делающие вождение более безопасным.
Безопасность вождения
Уже сегодня умная электроника способна проложить маршрут с учетом пробок и погодных условий, а также предложить альтернативные способы добраться из пункта А в пункт Б. Навигатор покажет на дисплее дорогу и подскажет голосом, где сделать поворот или снизить скорость. Благодаря навигационным программам бумажные атласы автомобильных дорог и огромные карты городов становятся раритетом. Навигатор удобно использовать, а еще он помогает сделать поездку безопасной. Ведь водителю не нужно отвлекаться, чтобы свериться с картой незнакомого города, или высматривать таблички с названиями улиц на перекрестках, чтобы убедиться, что он не пропустил нужный поворот.
По статистике, свыше 50 % аварий на дорогах случается из-за того, что водитель был невнимателен или отвлекся. Нейросети автомобиля избавят человека от необходимости выполнять действия, которые отрывают его от управления машиной. Например, смогут по голосовой команде переключить радио, увеличить громкость или изменить маршрут поездки.
Но происшествия случаются, даже когда водитель внимателен и соблюдает правила, — на дорогах слишком много факторов, провоцирующих аварийную ситуацию. В таких условиях не помешает лишняя пара глаз — или видеокамер. Нейросеть, обрабатывающая информацию с автомобильных камер, сможет предупредить водителя о пешеходах или других автомобилях в опасной близости. Мы можем даже помечтать о том, что в будущем нейросети множества автомобилей и дорожных камер смогут обмениваться данными через интернет, и тогда мы получим предупреждение о неадекватном водителе задолго до того, как он появится в поле зрения.
Некоторые производители уже пытаются разрабатывать ИИ, работающий с изображением камеры, направленной на водителя. Такая нейросеть будет знать хозяина в лицо и не позволит чужаку сесть за руль. Кроме того, по мимике нейросеть сможет определить, что человек устал или вот-вот задремлет, — и вовремя подаст сигнал. А если аварии не удается избежать, то по положению головы вычислит, какие подушки безопасности необходимо включить, — это поможет избежать травм.
Что это стучит в двигателе?
Еще одна сфера применения нейросетей в автомобиле — контроль за внутренними системами.
Большинству автовладельцев знакома ситуация, когда в самый неподходящий момент автомобиль приходится отвозить в автосервис. Конечно, по закону Мерфи, именно в этот день нужно куда-то срочно ехать!
Подобная система отслеживания телеметрии уже существует у суперкара Bugatti Chiron. В режиме онлайн он передает данные о функционировании всех систем в сервисный центр производителя. Если обнаружена неисправность, ремонтная бригада оперативно отправляется в любую точку мира, чтобы устранить дефект, — во всяком случае, так утверждают в компании. Если же проблема не требует вмешательства квалифицированного специалиста, сервисный центр может просто позвонить владельцу авто — к примеру, если давление в шинах снизилось до критического уровня. Система телеметрии Bugatti контролирует около 10000 сигналов, поступающих от различных узлов автомобиля: двигателя, трансмиссии, освещения, климат-контроля, информационно-развлекательного центра и других. Пока такими системами оборудуют только избранные автомобили класса люкс, но начало уже положено.
Разумное автострахование
Искусственные нейросети уже находят применение в автостраховании. В первую очередь они используются для оценки рисков, а помогают им в этом большие данные о водителях.
Большие данные — это наборы информации, которые слишком велики и сложно структурированы, чтобы их можно было обрабатывать с помощью обычных систем управления БД или тем более вручную. В страховании используются десятки источников информации о клиентах — базы номеров VIN, сведения о покупках и продажах, данные о нарушениях ПДД и законодательства и многое другое.
Для страховых компаний значение при принятии решения имеет буквально все, что касается водителя, — состояние его здоровья, стиль вождения, участие в инцидентах на дороге и даже семейные отношения. Но проанализировать огромные массивы собранных данных, дать им качественную оценку и вынести заключение человек может далеко не всегда. Неточности в прогнозах страховых компаний могут необоснованно поднять стоимость страхования для хороших водителей и снизить для плохих.
При этом с развитием технологий список информационных источников может увеличиться. Страховые компании захотят учитывать сведения о манере вождения, соблюдении скоростного режима и поведении водителя в сложных ситуациях. Сейчас эти данные фактически невозможно получить и использовать при продаже страховки, но в будущем подобную информацию сможет собирать и пересылать страховой компании встроенный ИИ автомобиля.
Будем надеяться, что скоро наступит день, когда любители обгонять по обочине или подрезать на повороте станут платить за страховку больше — потому что эти факты станут известны страховой компании и искусственный интеллект, выносящий решение, примет их во внимание.
ИИ управляет производством
Роботы и другие автоматы давно и широко используются в автомобилестроении, да и во многих других производствах. Но пока большая их часть управляется обычными компьютерными программами. В случае любого сбоя конвейер останавливается, и для продолжения работы требуется вмешательство человека.
Эксперты прогнозируют, что искусственный интеллект поможет ускорить производство, сокращая время простоя. Опираясь на данные с датчиков, нейросети смогут отслеживать работу оборудования, выявлять назревающие проблемы и принимать меры, а также контролировать своевременность профилактического обслуживания. На ИИ можно возложить и контроль за качеством продукции.
В итоге уменьшатся расходы на ремонт и замену оборудования, потери из-за простоев. А значит, будет снижаться и себестоимость продукции.
Будущее не за горами. Уже никого не удивить умным навигатором, прокладывающим самый удобный маршрут. Через несколько лет привычным явлением будут автомобили под управлением ИИ, беспилотные грузовики, автобусы и такси, а наши путешествия станут как никогда прежде безопасными, легкими и комфортными.
Освоить востребованную профессию в Data Science можно всего за полтора года на курсах GeekBrains. После учёбы вы сможете работать по специальностям Data Scientist, Data Analyst, Machine Learning, Engineer Computer Vision-специалист или NLP-специалист.
Технологии сегодня меняют мир быстрее, чем когда-либо. В 70-х годах искусственный интеллект существовал только в фантастических романах. 20 лет назад разработки ИИ уже велись, но успехи не были впечатляющими. Но в середине нулевых случился качественный прорыв в машинном обучении, ставший Большим взрывом для искусственного интеллекта. И сегодня множество нейросетей помогают нам фильтровать и искать информацию в интернете, обрабатывать фотографии, переводить тексты. Одна из областей, где ИИ открывает потрясающие новые возможности, — это автотранспорт.
Как искусственные нейросети изменят будущее вашего автомобиля?
Искусственный разум рулит!
Тема беспилотных автомобилей на слуху, и вокруг них поднялась не меньшая шумиха, чем в XIX — начале XX века по поводу «безлошадных повозок». На появление машины, которая сможет самостоятельно перемещаться в транспортном потоке, надеются многие. Но есть и опасения, что возрастет количество ДТП, в том числе смертельных.
Беспилотные авто активно разрабатываются на протяжении последнего десятилетия, а кое-где даже используются в тестовом режиме. К их созданию подключились гиганты автомобильной промышленности: BMW, Nissan, Honda, General Motors, Volkswagen, Audi, BMW и Volvo — и новые игроки на авторынке: Google, Tesla и множество менее крупных компаний. До массовых продаж беспилотных автомобилей дело пока не дошло. Автопилоты делают успехи, но до совершенства им далеко. Так что по меньшей мере в ближайшие пять-десять лет искусственный интеллект едва ли сумеет заменить — или хотя бы серьезно потеснить — опытного водителя.
Техническая реализация «искусственного водителя» — не единственная задача. Нейросети в автомобиле предстоит заботиться не только о том, чтобы соблюдать скоростной режим, сворачивать на нужных перекрестках и удачно парковаться. Ей придется еще и решать этические вопросы — например, когда ДТП неизбежно и приходится выбирать между двумя плохими вариантами. Что, если ИИ автомобиля внезапно обнаружит на дороге пешехода, но затормозить не будет успевать — и можно либо сбить человека, либо свернуть с дороги и врезаться в дерево, причинив вред пассажиру? Эта моральная дилемма известна как проблема вагонетки. И как искусственному разуму сделать выбор в ситуации, с которой не справиться и человеку.
Однозначных ответов на подобные вопросы нет и не будет. Тем не менее, Массачусетский технологический институт (MIT) создал сайт, на котором предлагает всем желающим пройти тестирование и выбрать, как они решили бы предложенные моральные дилеммы. В будущем данные этих исследований могут помочь разработчикам научить искусственный интеллект делать этический выбор, руководствуясь «среднечеловеческими» показателями.
Моральный тест MIT. У автомобиля отказали тормоза. Какой выбор должен сделать автопилот: врезаться в препятствие, убив находящихся в салоне пассажиров — девочку, женщину-спортсменку, бездомного и кошку, или выполнить маневр и сбить пешеходов — женщину, полного мужчину, мужчину-спортсмена, беременную женщину и ребенка (принимая во внимание, что они переходят дорогу на красный свет)?
Впрочем, мы уверены, что с повсеместным внедрением беспилотных автомобилей улицы городов и автострады станут значительно менее опасными, чем сейчас, а количество ДТП снизится (хотя и вряд ли до нуля). Ведь ИИ не заснет за рулем, не отвлечется на разговор по телефону, не нарушит скоростной режим, не предпримет заведомо опасный маневр. И точно не сядет за руль пьяным.
Менее очевидное, чем автопилоты, применение искусственных нейросетей в автомобиле — это помощники человека, делающие вождение более безопасным.
Безопасность вождения
Уже сегодня умная электроника способна проложить маршрут с учетом пробок и погодных условий, а также предложить альтернативные способы добраться из пункта А в пункт Б. Навигатор покажет на дисплее дорогу и подскажет голосом, где сделать поворот или снизить скорость. Благодаря навигационным программам бумажные атласы автомобильных дорог и огромные карты городов становятся раритетом. Навигатор удобно использовать, а еще он помогает сделать поездку безопасной. Ведь водителю не нужно отвлекаться, чтобы свериться с картой незнакомого города, или высматривать таблички с названиями улиц на перекрестках, чтобы убедиться, что он не пропустил нужный поворот.
По статистике, свыше 50 % аварий на дорогах случается из-за того, что водитель был невнимателен или отвлекся. Нейросети автомобиля избавят человека от необходимости выполнять действия, которые отрывают его от управления машиной. Например, смогут по голосовой команде переключить радио, увеличить громкость или изменить маршрут поездки.
Но происшествия случаются, даже когда водитель внимателен и соблюдает правила, — на дорогах слишком много факторов, провоцирующих аварийную ситуацию. В таких условиях не помешает лишняя пара глаз — или видеокамер. Нейросеть, обрабатывающая информацию с автомобильных камер, сможет предупредить водителя о пешеходах или других автомобилях в опасной близости. Мы можем даже помечтать о том, что в будущем нейросети множества автомобилей и дорожных камер смогут обмениваться данными через интернет, и тогда мы получим предупреждение о неадекватном водителе задолго до того, как он появится в поле зрения.
Некоторые производители уже пытаются разрабатывать ИИ, работающий с изображением камеры, направленной на водителя. Такая нейросеть будет знать хозяина в лицо и не позволит чужаку сесть за руль. Кроме того, по мимике нейросеть сможет определить, что человек устал или вот-вот задремлет, — и вовремя подаст сигнал. А если аварии не удается избежать, то по положению головы вычислит, какие подушки безопасности необходимо включить, — это поможет избежать травм.
Что это стучит в двигателе?
Еще одна сфера применения нейросетей в автомобиле — контроль за внутренними системами.
Большинству автовладельцев знакома ситуация, когда в самый неподходящий момент автомобиль приходится отвозить в автосервис. Конечно, по закону Мерфи, именно в этот день нужно куда-то срочно ехать!
Подобная система отслеживания телеметрии уже существует у суперкара Bugatti Chiron. В режиме онлайн он передает данные о функционировании всех систем в сервисный центр производителя. Если обнаружена неисправность, ремонтная бригада оперативно отправляется в любую точку мира, чтобы устранить дефект, — во всяком случае, так утверждают в компании. Если же проблема не требует вмешательства квалифицированного специалиста, сервисный центр может просто позвонить владельцу авто — к примеру, если давление в шинах снизилось до критического уровня. Система телеметрии Bugatti контролирует около 10000 сигналов, поступающих от различных узлов автомобиля: двигателя, трансмиссии, освещения, климат-контроля, информационно-развлекательного центра и других. Пока такими системами оборудуют только избранные автомобили класса люкс, но начало уже положено.
Разумное автострахование
Искусственные нейросети уже находят применение в автостраховании. В первую очередь они используются для оценки рисков, а помогают им в этом большие данные о водителях.
Большие данные — это наборы информации, которые слишком велики и сложно структурированы, чтобы их можно было обрабатывать с помощью обычных систем управления БД или тем более вручную. В страховании используются десятки источников информации о клиентах — базы номеров VIN, сведения о покупках и продажах, данные о нарушениях ПДД и законодательства и многое другое.
Для страховых компаний значение при принятии решения имеет буквально все, что касается водителя, — состояние его здоровья, стиль вождения, участие в инцидентах на дороге и даже семейные отношения. Но проанализировать огромные массивы собранных данных, дать им качественную оценку и вынести заключение человек может далеко не всегда. Неточности в прогнозах страховых компаний могут необоснованно поднять стоимость страхования для хороших водителей и снизить для плохих.
При этом с развитием технологий список информационных источников может увеличиться. Страховые компании захотят учитывать сведения о манере вождения, соблюдении скоростного режима и поведении водителя в сложных ситуациях. Сейчас эти данные фактически невозможно получить и использовать при продаже страховки, но в будущем подобную информацию сможет собирать и пересылать страховой компании встроенный ИИ автомобиля.
Будем надеяться, что скоро наступит день, когда любители обгонять по обочине или подрезать на повороте станут платить за страховку больше — потому что эти факты станут известны страховой компании и искусственный интеллект, выносящий решение, примет их во внимание.
ИИ управляет производством
Роботы и другие автоматы давно и широко используются в автомобилестроении, да и во многих других производствах. Но пока большая их часть управляется обычными компьютерными программами. В случае любого сбоя конвейер останавливается, и для продолжения работы требуется вмешательство человека.
Эксперты прогнозируют, что искусственный интеллект поможет ускорить производство, сокращая время простоя. Опираясь на данные с датчиков, нейросети смогут отслеживать работу оборудования, выявлять назревающие проблемы и принимать меры, а также контролировать своевременность профилактического обслуживания. На ИИ можно возложить и контроль за качеством продукции.
В итоге уменьшатся расходы на ремонт и замену оборудования, потери из-за простоев. А значит, будет снижаться и себестоимость продукции.
Будущее не за горами. Уже никого не удивить умным навигатором, прокладывающим самый удобный маршрут. Через несколько лет привычным явлением будут автомобили под управлением ИИ, беспилотные грузовики, автобусы и такси, а наши путешествия станут как никогда прежде безопасными, легкими и комфортными.
Освоить востребованную профессию в Data Science можно всего за полтора года на курсах GeekBrains. После учёбы вы сможете работать по специальностям Data Scientist, Data Analyst, Machine Learning, Engineer Computer Vision-специалист или NLP-специалист.