Время прочтения: 4 мин.

Нарушения ПДД водителями несут для организаций операционные, репутационные и правовые риски.

Ранее для выявления нарушений аудиторы анализировали видеозаписи из служебных автомобилей. Это рутинный и трудоёмкий процесс, т.к. очень большие объёмы видео обрабатывались вручную. Было принято решение автоматизировать данный процесс и создать модель выявления нарушений ПДД для формирования риск-ориентированной подборки видео.

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

Для сегментации изображения и обнаружения дорожной разметки была использована свёрточная нейронная сеть архитектуры U-Net. Данная архитектура представляет собой последовательность слоёв свёртки и пулинга, которые сперва уменьшают пространственное разрешение картинки, а затем увеличивают его, предварительно объединив с данными картинки и пропустив через другие слои свёртки.

Для обучения модели был нужен обучающий датасет. К сожалению, все найденные датасеты из открытого доступа состояли из фотографий дорог не из России. Результаты обучения модели на зарубежных дорогах были неутешительными: модель зачастую просто отказывалась воспринимать нашу отечественную дорожную разметку как разметку. Поэтому было принято решение заняться созданием обучающей выборки самостоятельно. Из видео с регистраторов было нарезано около 1500 скриншотов и с помощью сервиса Supervise.ly на них разметили дорожное полотно (рис.1).

Рисунок 1

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

Рисунок 2

На рисунке 2 показано как работает U-Net: сверху — оригинальная запись с лобового стекла, снизу – пример работы нейронной сети, где зеленые области — это маска дорожной разметки, а тонкие красные линии — аппроксимация разметки в прямую.

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

Для определения наличия светофоров и автомобилей использовали предобученную нейросеть Darknet + Yolo v3. Эта нейронная сеть является улучшенной версией архитектуры YOLO, что расшифровывается как You Only Look Once. Главная особенность YOLO v3 заключается в том, что у нее на выходе присутствует три слоя, каждый из которых рассчитан на детектирование объектов различного размера.

Основная особенность данной архитектуры по сравнению с другими заключается в том, что большая часть систем применяют нейронную сеть несколько раз к разным частям изображения, а в YOLO нейронная сеть применяется ко всему изображению сразу и один раз. Сеть делит изображение на своеобразную сетку и предсказывает bounding boxes (параллелепипеды, ограничивающие найденные объекты) и вероятности того, что там есть эти искомые объекты для каждого участка.

Достоинства данного подхода состоят в том, что просматривая изображение целиком, YOLO при детектировании и распознавании объекта учитывает контекст изображения. Также YOLO обладает явными преимуществами в быстродействии: она в тысячу раз быстрее чем R-CNN и в несколько сотен раз быстрее чем Fast R-CNN.

Рисунок 3

Пример работы YOLO представлен на рисунке 3. Анализ изображения происходит покадрово, все найденные красные светофоры корректно детектируются нейронной сетью.

Обучение целых двух нейросетей требует наличия достаточно мощного компьютера, особенно в части видеокарты, т.к. используются вычисления именно на GPU. Мы использовали процессор Core i7 восьмого поколения, видеокарту nvidia gtx1080 и 32 ГБ оперативной памяти. Таких системных характеристик было вполне достаточно для реализации проекта.

По результатам использования моделей выявления нарушений ПДД, можно сказать, что это был успешный проект. На вход скрипту было подано видео с авторегистратора за один месяц общей длительностью 7 часов 11 минут, время инференса модели (обработки входящих видео) составило 25 минут. По окончанию обработки всех видеофайлов было нарезано 112 фрагментов по 8 секунд (15 минут суммарно), из которых аудиторы, сэкономив почти 7 часов, без труда определили нарушения.