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

Перемещение между локациями — неотъемлемая часть жизни. Работа, магазины, путешествия — всё это требует использования транспорта. Чаще всего подобные передвижения связаны с использованием различных видов транспорта. Статистика показывает, что в среднем, в зависимости от профессии, человек проводит в транспорте порядка 2 часов в день. Если взять 60 лет (21900 дней) и умножить на 2 часа в день, то из 60 лет мы получим 5 лет, которые проведем в дороге.
Таким образом, в среднем порядка двух часов в сутки жизнь людей, передвигающихся на автобусах находится в руках другого человека – водителя. По данным сайта RusDTP.ru, с января по декабрь 2024-го, в стране произошло 6741 авария с участием автотранспорта общего пользования, осуществляющего автобусные перевозки. Это почти показатели 2022 года, за который в ДТП попало 7166 автобусов. Для 602 людей эта поездка стала последней, а 10 910 человек получили ранения разной степени тяжести. Большинство аварий произошло по вине водителей.

После такой статистики невольно задаешься вопросом: а как можно сделать поездки безопаснее? Как предотвратить ДТП? Может быть водителю нужен второй пилот, как в авиаперевозках? И мы нашли решение.
Как все начиналось
В 2020 году наша команда получила запрос от системного интегратора на разработку нейросети для мониторинга состояния водителей. Ранее у нас был опыт создания системы контроля усталости для сотрудников аэропортов, и мы решили адаптировать технологию для транспорта.
Мы начали участвовать в проекте по отслеживанию "запрещённых" состояний водителя с апреля 2020 года. Первое, что предстояло понять - это метод монтажа компьютера в автобус. Первой задачей стал выбор оборудования. Изначально планировали использовать ПК с GPU 1080ti, но из-за ограничений по энергопотреблению в автобусах перешли на платформу NVIDIA Jetson AGX Xavier. Это позволило совместить высокую производительность с компактностью.
Система анализирует видео с камеры в режиме реального времени и подает звуковые сигналы, если водитель отвлекается или теряет концентрацию. Схема такой системы представлена на графике ниже:

Плохой водитель
Пока наши инженеры занимались проектированием системы для интеграции в автобус, мы начали думать над тем, где нам найти данные для обучения алгоритмов компьютерного зрения. Поиски в открытых источниках на платформе Kaggle и в видеоматериалах на разных платформах оказались безуспешными. И мы решили собрать их самостоятельно.
ТЗ на сбор ставило перед нами задачу записать следующие виды нарушений:
Курение — имитация процесса езды, одна рука или две руки находятся на руле, человек смотрит на дорогу вперед и периодически выпускает дым в разные стороны, периодически стряхивая пепел то в пепельницу, то в окно.
Засыпание — одна или две руки лежат на руле, взгляд направлен в сторону дороги и постепенно уменьшается периодичность моргания водителя. Имитация попытки проснуться, ближе/дальше от руля и камеры. Имитация процесса зевания.
Разговоры по телефону — взгляд направлен на дорогу, одна рука на руле, в другой руке телефон (то в левой, то в правой), потом две руки на руле, телефон держит то левым, то правым ухом.
Поворот головы — длительный взгляд в течениии 1-2 минут в боковые окна. Взгляд вниз вперед — под ноги, на телефон или вбок и вниз в течении 2-3 минут.
Ремень безопасности — часть видео с ремнем записать, а часть без.
Проезд по кочкам — записать каждое из нарушений в процессе движения автобуса.
Кроме того, требовалось повторить каждый из пунктов выше:
в пяти разных автобусах.
в разное время суток. (утром, днем, вечером, ночью, на рассвете)
с разными очками: с темными, прозрачными, с бликовым покрытием. (+ очки оставлять наверху на голове)
с шапкой, в кепке, в платке.
Ночные съемки проводили с ИК-подсветкой, а для реалистичности использовали реквизит: телефоны разных моделей, сигареты разных марок. Вот несколько из сцен данного перформанса:

По одежде тоже старались внести разнообразие. В кадр попали: несколько кепок, шапка, бандана, десятки верхних комплектов одежды, очки солнечные, очки для зрения, очки с бликовым покрытием и другие аксессуары.
И вот, данные собраны, теперь их предстоит разметить. Параллельно с этим был согласован технический паспорт монтажа нашей системы в автобус ЛиАЗ 529222:

Монтаж системы
Монтаж был успешно завершен и мы начали собирать статистику о нарушениях в реальном времени через админ-панель. Система прижилась в верхнем отсеке кабины водителя:

Первые сложности, с которыми мы столкнулись и как их решили:
1. Согласования. Довольно сложно было согласовать паспорт монтажа и отразить простым языком сотрудникам автобусного парка суть системы. Исходя из опыта, в общении людьми вне контекста рекомендуем не использовать сложные термины и объяснять просто: что, зачем и какая из этого будет миру польза – без сложных терминов и слов. Например: «Система следит, чтобы водитель не отвлекался — это снизит аварии».
2. Поиск автобуса. Сложно было поймать автобус без рейсов, так что монтировать и вносить обновления в систему на объекте приходилось только ночью.
3. Интернет-соединение. Модем интернета не вытягивал глобальных обновлений и только съедал наше время и нервы при обрыве соединения. По итогу обновления загружали тоже по ночам. После того, как система была успешно замонтирована, откалибрована – мы стали собирать статистику. Увы, но мы были неприятно удивлены.
«Ало, я за рулем, давай быстро»
Опустим факт отсутствия масок в разгар пандемии, так как хоть это и являлось нарушением регламента, но было далеко не главным нарушением со стороны водителей. Зачастую кто-то разговаривал по телефону на скорости (её мы замеряли с помощью GPS трекера и также передавали в админку + визуализировали на видео). Часто было такое, что водитель сидел в мобильном телефоне на скорости порядка 40 км/ч с неподдельным интересом с кем-то вёл переписку:

Поначалу мы в качестве эксперимента распознавали сразу тип события, но позже для оптимизации и перехода на более бюджетную железку (Jetson Nano) сделали фиксацию лишь двух важных событий: отвлечение и сонливость. А далее уже на сервере стали проводить дальнейшую классификацию конкретных типов нарушений, что значительно помогло нам сократить потребляемые мощности и перечень ложных срабатываний системы за счет упрощения логики определения нарушений. То есть:
Устройство в автобусе — фиксирует общие состояния: «отвлечение» или «сонливость».
Сервер — проводит детальную классификацию нарушений.
Заключение
Пилотный проект в Московской области показал результат: за первые месяцы количество нарушений сократилось на 18%. Дальнейшие шаги — улучшение интерфейса админ-панели, гибкая настройка звуковых оповещений и масштабирование системы.
Выводы:
Машинное обучение и компьютерное зрение — эффективные инструменты для повышения безопасности.
Автоматизация контроля за водителями снижает человеческий фактор и спасает жизни.
Технологии уже здесь — осталось сделать их частью повседневности.
Если вы хотите узнать, как нейросети могут улучшить безопасность и производительность на ваших ТС, запросите кейс-стади по адресу r.fedorov@neuro-core.ru