Поиск по сайту Поиск

Как ИИ отслеживает небезопасное поведение водителей

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

Все автомобилисты так или иначе сталкиваются с пробками на дорогах. Монотонное движение побуждает лишний раз достать смартфон и написать в чат о своих проблемах, полистать новостную ленту или отвлечься разговором. Невинные на первый взгляд занятия могут стоить человеческой жизни. В США по этим причинам происходят 20% аварий. В русскоязычной терминологии проблема носит название «рассеянное вождение».

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

Что, если научиться выделять небезопасное поведение и вовремя предупреждать о нём водителей во избежание происшествий? Звучит, как неплохая задача классификации для свёрточных нейронных сетей. 

Рассмотрим, как создать отслеживающую рассеянных водителей нейросеть с помощью Python, Keras и Tensorflow. Если раньше вы не работали с этими инструментами, рекомендуем сначала ознакомиться с нашей статьёй «Как начать работу с Keras, Deep Learning и Python». В конце материала можно скачать и посмотреть исходный код.

Импортируем библиотеки

В качестве бэкэнда нейросети будем использовать Keras и Tensorflow. Импортируем необходимые библиотеки:

Строка 3 устанавливает tensorflow как бэкэнд для keras, а строка 4 скрывает все логи.

Импорт набора данных

Файл driver_imgs_list.csv содержит список всех изображений из обучающей выборки, а также ссылки на людей и имена классов. Имя класса указывает на вид активности человека на фотографии.

https://cdn-images-1.medium.com/max/800/1*ByrPGJEuWD8xkz8hRgyCpA.png
Первые 5 строк набора данных

Обзор изображений

Перед обработкой изображений полезно хотя бы частично просмотреть датасет, поэтому отобразим по одной фотографии из каждого класса. Метки classname не содержат никакого информативного описания. Чтобы понимать, что означают классы c0, c1 и так далее, создадим словарь и добавим заголовки к каждому из них:

Каталог train содержит в себе 10 вложенных папок, каждая из которых соответствует изображениям одного из классов. Итеративно пройдём по всем каталогам и отобразим первые фотографии в них. 

Строка 10 выводит 10 изображений, организованных в коллаж (5 по вертикали и 2 по горизонтали). image_count определяет число отображаемых фотографий в диапазоне от 1 до 10.

https://cdn-images-1.medium.com/max/800/1*bb_x6o9QZMh4y4D-Mg4AkA.png
Различное поведение водителей

Строим модель

Создадим свёрточную нейронную сеть с тремя слоями Conv2D (за каждым располагается слой MaxPooling2D), 1 слоем Flatten и 3 слоями Dense. Поскольку проблема является многоклассовой, последний слой Dense содержит 10 нейронов, а потери определяются с помощью categorical_crossentropy (категориальной кроссэнтропии).

Модель классификатора

Создаём обучающую выборку

Дополним обучающую выборку с помощью функции ImageDataGenerator. Также используем метод flow_from_directory, чтобы считывать соответствующие каждому классу изображения из нужной папки. Разделяем данные на обучающие и тестовые в соотношении 80% и 20%. Обратите внимание, что все изображения масштабируются в вещественный диапазон [0…1] (rescale).

Теперь обучим модель и посчитаем точность и потери.

Обучаем модель

Используем функцию fit_generator:

Модель достигает точности в 97%.

Заключение 

Используя простую свёрточную нейросеть, мы смогли обучить модель и достигнуть 97% точности обнаружения небезопасного поведения водителей. В качестве следующего шага можно улучшить решение, повысив сложность и добавив новые слои в архитектуру сети. Предлагайте свои идеи и делитесь результатами в комментариях!

Датасет можно найти здесь ( ~4 ГБ).

С оригинальной статьёй можно ознакомиться на портале towardsdatascience.com. Другие решения можно посмотреть в соревновании от Kaggle.

Как открыть интернет-магазин с нуля: гайд по запуску онлайн-бизнеса

К 2024 году интернет-магазины набрали большую популярность: большинство людей совершали онлайн-покупки хотя бы один раз в жизни. Как известно, спрос...
Read More

Машинное обучение: что такое и где применяют

Мир вокруг нас меняется быстрее, чем когда-либо. Алгоритмы, которые еще вчера были научной фантастикой, сегодня помогают водить автомобили, рекомендовать фильмы...
Read More

Коммерческое предложение: что это, зачем нужно, как его оформить

Коммерческое предложение — это ключевой инструмент, который позволяет компаниям представлять свои товары и услуги потенциальным клиентам. Рассмотрим, в каких случаях...
Read More

Как внедрить CRM-систему для подбора персонала в облаке и ускорить наем: кейс DIY Service

В кейсе рассказываем, как маркетинговое агентство DIY Service автоматизировало подбор и передачу кандидатов на вакансии в операционный отдел и оптимизировало...
Read More

Что такое CentOS – обзор, версии ОС

В мире IT есть много операционных систем, каждая из которых претендует на звание «лучшей». Среди этого множества дистрибутивов есть CentOS...
Read More

Холдинг: что это такое, как работает и кому выгоден

Рассмотрим, в чем особенности этой корпоративной структуры, какие у нее преимущества и недостатки. (далее…)
Read More

Байер: кто такой, чем занимается, сколько может заработать

Байера можно назвать менеджером по закупкам, но эта профессия подразумевает больше личного вовлечения. Для успешной карьеры в этой области нужно...
Read More

Что такое комплаенс: как бизнесу управлять рисками и вовремя решать проблемы

Соответствие требованиям закона и отраслевым стандартам — это не только юридическая необходимость, но и решающий фактор успеха и репутации компании....
Read More

Основные средства в 2024 году: бухгалтерский учет, стоимость, амортизация

В любом бизнесе важно иметь четкое представление о состоянии активов компании для планирования ее дальнейшего развития. Рассказываем, что такое основные...
Read More

Нотариус: кто это, чем занимается и чем полезен бизнесу и физлицам

Нотариус обладает исключительным правом подтверждать, что юридическая процедура была совершена по всем требованиям закона. Это важно, например, чтобы защититься от...
Read More