Руки на руль: Bus Factor следит за тобой

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

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Привет, Хабр, меня зовут Антон Рябых, работаю в Doubletapp. Расскажу вам о том, как мы придумали сервис, контролирующий поведение водителей общественного транспорта с помощью алгоритмов машинного обучения и компьютерного зрения.

К нам обратилась компания «Термотех», которая занимается городскими перевозками. Организатору движения нужно было автоматически понимать, что:

  • водитель общественного транспорта не пользуется телефоном во время движения;

  • камера, установленная в салоне водителя, снимает с верного ракурса, не отвернута в сторону;

  • от камеры в целом идет сигнал, она не повреждена, не завешена и не загрязнена.

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

Как мы решали эту задачу

Машинное обучение

Для обучения сети совместно с клиентом был собран и размечен датасет из 40 000 изображений. Там были водители с телефоном и без, фото с неверными ракурсами или иными ошибками отображения. Особенностью фотографий было их разнообразное качество: часто изображение было не очень четкое, некоторые снимки черно-белые, многие сделаны при плохом освещении, иногда ночью. Классы изображений были сильно несбалансированы: на большинстве фото не было телефона или ошибочного ракурса.

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

Тогда вместо задачи классификации мы оформили решаемую проблему как задачу детекции: разметили bounding-boxes телефонов на изображениях и использовали сеть для детекции объектов. Наличие разметки телефонов дополнительно позволило использовать больше аугментаций изображений: теперь мы исключали вариант, при котором в случае неверной обрезки телефон может пропасть из кадра, при этом фото останется в классе с наличием телефона.

Решение задачи через детекцию позволило добиться искомой точности. Детекция осуществлялась через нейронную сеть с архитектурой YOLOv3. 

Для создания решения использовался язык Python и фреймворки Tensorflow + Keras, для деплоя — Tensorflow-Serving.

Backend

Для работы системы был разработан Backend на Django, получающий фотографии из общественного транспорта через API видеосистемы. Фото анализировались на наличие ошибок и хранились на сервере. В административной панели можно было увидеть ошибки, найденные на фото. В случае, если система обнаружения ошибок срабатывала неверно, оператор помечал фото как неверно обработанное и указывал, к какому типу его действительно нужно было отнести: таким образом собирались данные для дальнейшего дообучения нейронных сетей. 

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

Как это работает?

Камеры установлены в кабинах у водителей общественного транспорта.

Система Bus Factor по API получает фото с камер, анализирует их на предмет нарушений, выставляет каждому фото соответствующий обнаруженным нарушениям статус.

Сотрудник клиента видит все записи с транспортными средствами, у которых обнаружены нарушения, и действует по инструкции.

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

Поиск телефона в кадре, проверка ракурса и работы камеры реализованы при помощи нейронных сетей. 

Внедрение нашей системы сократило затраты человеко-часов в 30 раз. Теперь операторам необходимо только перепроверять некоторые ответы машины, а не отсматривать все видео самостоятельно. Клиент отмечает, что с появлением нашей технологии значительно повысилась дисциплина водителей.

Источник: https://habr.com/ru/companies/doubletapp/articles/726898/


Интересные статьи

Интересные статьи

Цель статьи, – показать примеры управления реализацией стратегии с помощью корпоративной единой информационной площадки на доступном инструменте, - Битрикс24. В статье на простом языке обсуждаются воз...
Выгрузка пользователей из 1C ЗУП в Битрикс24 или правдивая история о том как настроить интеграцию 1С-Битрикс24 с ЗУП без 1С-ника.В жизни так бывает, причём бывает чаще чем хотелось бы, хоть в целом и ...
tl;dr У 90% современных смартфонов диагональ экрана превышает пять дюймов. Появление таких дисплеев представило принципиально новые проблемы для разработчиков приложений и дизайнеров. Давайте пос...
Наш продукт разрабатывается на платформе .Net Core 2.2 с использованием WCF 4.5 для взаимодействия с SOAP сервисом клиента. В процессе работы сервиса разработчики шины данных заметили высокую наг...
Практически все коммерческие интернет-ресурсы создаются на уникальных платформах соответствующего типа. Среди них наибольшее распространение получил Битрикс24.