Вождение — это занятие, которым занимается большая часть населения земного шара. Тем не менее, ежедневное количество аварий составляет 19 937 аварий. Распространенной причиной аварий является вождение в нетрезвом виде и превышение скорости. Тем не менее, одна из наиболее распространенных причин сбоев — отвлечение внимания. Отвлекаться — это не плохая привычка, это не противозаконно. Это просто зависимость, которую следует устранить и запретить во время вождения. Иметь доступ к отвлекающим факторам во время вождения очень опасно, о чем свидетельствует количество автомобильных аварий. Отвлекать может не только использование телефона, но и что угодно. Моя цель состояла в том, чтобы обучить различные модели и повысить точность моих данных в процессе определения того, отвлекается ли водитель с помощью искусственного интеллекта. Я хотел выбрать конкретную модель, созданную с использованием искусственного интеллекта для обнаружения отвлекающих факторов водителей с достаточно высокой точностью, чтобы ее можно было использовать в реальном мире. Точность нашей модели довольно надежна и может быть улучшена за счет большего количества тестов в таких моделях, как K-ближайшие соседи, CNN и трансферное обучение с VGG 16, и выбрать лучшую модель. Давайте посмотрим видео ниже о сценарии из реальной жизни, когда водители отвлеклись.

Отвлеченное вождение — это практика вождения автомобиля во время другой деятельности, обычно связанной с использованием мобильного телефона или других электронных устройств. Отвлекшиеся водители — серьезная проблема, с которой ежедневно сталкивается большинство водителей по всему миру. Водитель считается отвлеченным, когда ест пищу, разговаривает по телефону, отвечает на звонки и делает все, что не связано с вождением. Да, некоторые из этих задач могут быть важными и их нельзя пропускать, но стоит ли это вашей жизни? Конечно, нет. Многозадачность за рулем имеет серьезные последствия, которые могут повлиять не только на вас, но и на окружающих вас людей. Кто-то должен взять на себя инициативу, чтобы прекратить отвлекаться от вождения на дорогах в наши дни. Ежедневно более сотни человек получают ранения, примерно девять из них заканчиваются летальным исходом. Кроме того, отвлеченные водители создают небезопасную среду для водителей, которые находятся в безопасности. Этот исследовательский проект использует возможности искусственного интеллекта, которые могут помочь обнаружить отвлеченных водителей на дороге. Эти водители должны быть обнаружены и предупреждены, когда искусственный интеллект обнаруживает отвлечение во время вождения. Используя нейронные сети и модели k-ближайших соседей, мы будем собирать и анализировать различные типы данных в различных ситуациях для обнаружения отвлекающихся водителей.

Есть три типа отвлечений: визуальные отвлечения, ручные отвлечения и когнитивные отвлечения. Визуальные отвлекающие факторы отвлекают внимание водителя от дороги. Примеры визуальных отвлекающих факторов включают видеозвонки, осмотр достопримечательностей, текстовые сообщения. Ручное отвлечение – это когда водитель убирает руки с руля. Примеры ручных отвлечений включают еду или текстовые сообщения. Когнитивное отвлечение ухудшает когнитивные чувства водителя. Примеры когнитивных отвлекающих факторов включают плохое настроение, мечтательность или отвлечение пассажиров.

В нашей модели, которая используется для описательного анализа водителей, мы использовали этот распространенный тип отвлекающих факторов, описанный ранее как основные классы нашей модели. Входные данные наших моделей — это изображения, сделанные автомобилем и отображающие действия водителя. Модель будет классифицировать изображения на основе типа отвлечения внимания с заданными данными. В наших данных у нас есть четыре разных типа классов. Трое отвлекаются за рулем, а последний внимателен. В трех случаях отвлеченного вождения речь идет о питье кофе, использовании радио и использовании зеркала. Все эти три случая — разные случаи отвлеченного вождения. Различные типы людей могут быть помещены в эти классы на основе изображения водителя, которое камера собирает. Обучающие данные используются для обучения модели, тогда как фактические тестовые данные предназначены для прогнозирования новых входных данных и классификации драйверов. Ниже слева показано количество данных для обучения и тестирования, а справа — пример изображения с точки зрения камеры.

Я также использовал алгоритм k-ближайших соседей, импортированный из пакета обучения scikit, для определения точности. Чтобы определить точность нашей модели K-ближайших соседей, нам нужно создать признаки и целевые переменные. После создания этих переменных вы должны разделить данные на данные обучения и тестирования. Затем вы создаете модель KNN, используя значение соседа. Выполняя эти расчеты, я пришел к выводу, что точность нашей модели KNN составляет 50%. Как видно на изображении ниже, наша модель неправильно идентифицировала 467 записей из общего числа. Демонстрируя, что предсказание с использованием модели KNN невероятно неправильно, обе фотографии также демонстрируют сходство между каждым из изображений.

Используемые нейронные сети, которые представляют собой количество нейронов, активацию нейронов, а также потери и показатели. Вот что было использовано для настройки этой функции:

После выполнения этого шага у нас была цель обучить эту нейронную сеть с использованием эпох, перемешивания и validation_data. Позвольте мне дать вам определение этих трех терминов. Эпохи — это количество раз, когда модель обучается на всем наборе данных. Перемешивание — это смешивание набора данных для обучения, поэтому модель уделяет больше внимания данным и лучше учится во время обучения. Validation_data — это то, что мы запрашиваем, чтобы наша модель тестировала себя на test_data после каждой эпохи. Из-за того, что наша модель довольно привередлива, вместо того, чтобы тестировать нашу модель в конце обучения. Мы тестируем его на протяжении всего обучения, чтобы получать и получать лучшие результаты.

Окончательные результаты:

После запуска нескольких различных моделей, таких как K-ближайшие соседи, CNN и трансферное обучение с VGG 16, я обнаружил, что лучшей моделью, которую мы использовали, была модель VGG 16 с точностью плюс-минус 80%.

Дополнительно прогоняли данные через матрицу путаницы со следующими результатами:

В заключение наша окончательная модель закончилась с точностью обнаружения драйвера около 80%, что является солидным процентом. Этот метод может быть реализован в реальном мире; однако это не гарантирует точности. Я твердо верю, что с более крупными тестами с широкими методами тестирования точность этого обнаружения должна постоянно увеличиваться.