Вы считаете себя безопасным водителем? Если да, то как пассажир в такси или в машине со своим возбужденным другом, вы когда-нибудь инстинктивно тянулись к ближайшей дверной ручке, человеку или объекту, за который вы могли бы схватиться, когда водитель тормозит, ускоряется или поворачивает?

Если у вас есть смартфон с установленным Zendrive SDK, мы действительно можем помочь вам доказать, что ваш стиль вождения выделяется. Платформа Zendrive для объединения сенсоров на базе смартфона отделяет кинематику автомобиля от кинематики телефона. Мы можем узнать ваш «отпечаток пальца водителя» из временных рядов профилей торможения, ускорения и поворотов.

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

Мероприятие «Профили»

Необработанные сигналы датчиков от GPS смартфона, акселерометра, гироскопов и т. Д. Комбинируются и преобразуются с помощью платформы слияния датчиков, которая снижает шум и определяет поперечное и продольное ускорение транспортного средства. Затем внутренние детекторы событий Zendrive используются для обнаружения событий, связанных с этими поездками.

На рисунке 1 ниже показан снимок продольного ускорения транспортного средства с предохранителем от датчика при типичном движении. Сигнал ускорения имеет как пики (ускорение из-за дроссельной заслонки), так и впадины (замедление из-за торможения). Также показан тормозной импульс от CAN-шины автомобиля.

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

На рисунке 2 ниже показан набор событий торможения аналогичной величины - от одного водителя против событий от набора других водителей.

Очевидно, что форма (профиль) событий сильно различается. Идея состоит в том, чтобы зафиксировать функции, которые кодируют профиль каждого события, и построить модель машинного обучения, которая изучает «отпечаток пальца» или стиль торможения, ускорения, поворота каждого водителя, используя данные временных рядов вокруг событий (пиков), как показано на Рисунки 1 и 2.

Описание набора данных

Zendrive SDK упрощает сбор данных датчиков со смартфонов, на которых он установлен. Zendrive Dogfood - это внутреннее приложение, разработанное с целью предоставления отзывов пользователей и тестирования SDK на предмет потенциальных ошибок. Поездки помечаются пользователем как Водитель или Пассажир в конце каждой поездки, что дает нам возможность создавать контролируемые модели машинного обучения для классификации поездок водителя и пассажира.

Для этого упражнения мы собрали данные о поездках (driver или passenger) сотрудников Zendrive в двух регионах. Для каждого пользователя были построены персонализированные модели классификации. Чтобы подтвердить, что предложенный метод работает хорошо в нескольких регионах, набор данных о драйверах был поровну разделен между Индией и США.

Извлечение функций

Из рисунков 1 и 2 видно, что событие вождения может быть охарактеризовано величиной, формой, крутизной и волнообразностью пика ускорения / замедления.

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

Моделирование

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

Во-первых, мы разделяем поездки пользователя на наборы для обучения, проверки и тестирования. Как показано на рисунке 3 ниже, мы собираем все (нетривиальные по величине) события из каждой поездки и представляем каждое событие вектором признаков конечной длины. Мы помечаем события в зависимости от того, произошло ли это в поездке, в которой находился пользователь (помечено как 1), или было пассажиром (помечено как 0).

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

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

После обучения классификаторов «на уровне событий» и «на уровне поездки» мы тестируем наши классификаторы на тестовом наборе, складывая результаты прогнозов на уровне событий, а затем прогнозов на уровне поездки.

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

Результаты

Мы создали составной классификатор Driver vs Passenger из набора данных Zendrive Dogfood, собранных из поездок сотрудников, как упоминалось выше.

На рисунке 4 мы показываем наложенную цветную гистограмму оценок вероятности событий для поездок в данных проверки. Это показывает, как классификатор уровня событий может отделить события, происходящие в поездках водителя и пассажиров. Как и следовало ожидать, пассажирские события, генерируемые разными водителями, имеют более высокий разброс.

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

  • Скорость автомобиля в момент начала и окончания мероприятия
  • Коэффициенты квадратичного полинома, отражающие форму событий
  • Меры дисперсии, которые фиксируют шум или характеристики плавности

Наконец, в таблице 1 мы демонстрируем эффективность нашего классификатора уровня поездки с помощью отзыва водителей и пассажиров и оценки AUC ROC. Чтобы убедиться, что наш классификатор работает в нескольких географических регионах, мы выбрали несколько пользователей, которые совершили поездки в Индию и США.

Резюмируя эту таблицу:

  • Ансамблевые модели на основе сложенного дерева имеют приличную производительность для несбалансированных наборов данных.
  • Производительность модели одинакова в разных регионах.
  • Мы сравнили результаты с методом Vanilla - моделью на уровне событий случайного леса с базовыми агрегированными функциями на уровне событий и ансамблем на уровне трипов на основе голосования большинством голосов. Предлагаемый многослойный подход обеспечивает в среднем 3,4x подъема гармонического среднего значения отзыва водителя и пассажира по сравнению с методом Vanilla.

Кроме того, ключевым моментом является корреляция производительности с продолжительностью поездки и количеством событий в поездках, что показано в таблицах 2 и 3, соответственно.

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

Заключение

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

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

Преимущества

  • Инвариантность к таким факторам, как использование телефона, положение и географическое положение пользователя.
  • Модель можно обучить, даже если имеется небольшой корпус помеченных пассажирских поездок - путем объединения поездок других водителей в пределах той же географии.

Ограничения

  • Нам нужно приличное количество поездок в нашем учебном корпусе для обучения составной модели: примерно 100 поездок водителя и 100 поездок пассажиров для одного пользователя. К счастью, это требование может быть компенсировано консолидацией пассажирских рейсов, как упоминалось выше, но в этом отношении требуется дополнительный анализ.
  • Подход также сталкивается с проблемами в ситуациях, когда необходимо различать поездки водителя A и водителя B, особенно если они имеют схожую динамику движения.

Авторы

Aabhaas is a recent graduate from BITS Pilani, where he majored in Electrical and Electronics Engineering. As an intern at the Data Science team at Zendrive, he loves to experiment with statistical and machine learning models.
Aabhaas is broadly interested in the applications of machine learning, and he enjoys working on real-world problems that demand creative, data-driven solutions.

Arnab joined Zendrive as a Data Scientist in the R&D Engineering Department in July 2019. He is currently working as a Tech Lead in the Collision Detection team, working on building and improving Automatic Collision Notification -- a smartphone based in-vehicular road crash detection technology.
He completed his Ph.D. in Statistics from N. C. State University with a dissertation focused on big data challenges in spatio-temporal mobile sensor data. Prior to that Arnab has finished his B.Stat (2013) and M.Stat (2015) from ISI, Kolkata. Before joining Zendrive, Arnab has worked as a Machine Learning Researcher in Laboratory for Analytic Sciences for 2 years. He is enthusiastic about applications of Data Science in real-life problems.

Sakshi is a Senior Research Engineer at Zendrive. Over her 4 year stint, she has worked on building event-detectors to capture bad driving behavior, driver-passenger classification, vehicle-type identification and implementing data science pipelines in production.
She graduated with a Master of Engineering degree in Computer Science from Cornell University. Post graduation, she worked in San Francisco as a Software Engineer in recommendation and personalization space. Her interests lie in the application of data science and engineering techniques to implement scalable solutions.

Vishal is a Senior Data Scientist at Zendrive where he has led the development of smartphone sensor data fusion and event detection algorithms on the device, for characterizing driver behaviour.
He has a PhD in Electrical Engineering from the University of Connecticut where he focussed on target tracking and statistical signal processing. Prior to Zendrive he has worked in National Aerospace Laboratories and GE Global Research in Bangalore .