Онлайн сервис «Анализ скорости при ДТП по видеозаписи»

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

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

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

Но есть решение — анализ этих данных по записанным ранее видеокадрам и их обработка в разных платных и бесплатных, доступных и закрытых сервисах.



Об одном таком недавно появившемся сервисе и пойдет далее речь.

Ссылка на онлайн сервис «Анализ скорости при ДТП по видеозаписи».

Главная страница сервиса (пока что очень простая):



Автор идеи и реализации — российский программист и хабровчанин — Илья Александрович Волков.

Данная публикация написана на Хабре с его разрешения.

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





Этапы обработки видеокадров:

— на первом этапе компенсируются оптические искажения от видеокамеры, то есть все прямые линии реального мира должны быть прямыми и на обрабатываемом сервисом видео (коррекция искажений от камеры уже работает в автоматическом режиме в сервисе);

— на втором этапе осуществляется локационная привязка к плоскости дороги, для этого оператору необходимо отметить на кадре прямоугольник как в реальном мире и ввести два (и более) отрезка с измеренными ранее длинами (обычно это: ширина дороги, ширина отдельной полосы между линиями разметки, расстояние между проезжими частями или знаками, колесная база автомобилей);









— на третьем этапе оператору сервиса на каждом кадре необходимо установить точку, где находится интересуемый объект (отметить его траекторию движения), а в итоге сервис покажет нам текущую скорость объекта и ее изменение в процессе движения.









В плеере сервиса есть инструмент «Линейка», с помощью которого можено измерить расстояния на видео:



Точность работы сервиса достаточно сильно зависит от качества и параметров видеозаписи.



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

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

Автор сервиса планирует проанализировать большое количество видеозаписей с ДТП с участием пешеходов и проанализировать статистику данных скоростей транспорта в момент столкновений.





Вот что еще планирует сделать автор для развития данного сервиса:

  • добавить автоматическое слежение за точками;
  • добавить геотеги;
  • внедрить фильтр Калмана для сглаживания ошибок наблюдения;
  • использовать компьютерное зрение;
  • добавить функционал вычисления скорости нескольких объектов;
  • планируется внедрить для сервиса машинное обучение, чтобы минимизировать работу оператора для подготовки видеозаписи.



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

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

Интервью с автором сервиса «Анализ скорости при ДТП по видеозаписи»:

Вопрос: Давно ли возникла идея о реализации такого сервиса?
Ответ Ильи: Месяца четыре назад увидел видео с ДТП и стало интересно, с какой (хотя бы примерно) скоростью двигался один из участников. Интересно стало не только мне — в комментариях к видео было много споров, и назывались самые разные оценки. Тут-то я и подумал, что такой инструмент был бы полезен.

Вопрос: Сколько прошло времени от мысли, что «можно сделать это» до первого рабочего запуска сервиса?
Ответ Ильи: Ну вот четыре месяца и прошло примерно. Но я бы не торопился называть текущую версию рабочей — пока сыровата :)

Вопрос: Какие языки и платформы Вы используются в сервисе и какие планируете использовать далее?
Ответ Ильи: Проект хостится на Firebase, это отличная штука для быстрого старта практически любого проекта. Авторизация, хостинг, база данных, файловое хранилище — всё «из коробки». Удобный API, полная бесплатность на первых порах.

Фронтенд — Vue.js, тоже несложный для освоения с нуля инструмент. Отрисовка на канве с помощью Konva.js, за искажения оптики отвечают шейдеры.

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

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

Вопрос: Вы один занимаетесь проектом или есть команда программистов?
Ответ Ильи: Команда пока небольшая — я да мой товарищ, у которого есть компетенции во фронтенд-разработке.

Вопрос: Планируете Вы продолжать развитие сервиса и ждете ли помощи от коллег\форумчан по этому проекту?
Ответ Ильи: Развитие сервиса однозначно планируется, поскольку прототип выглядит очень даже любопытно. Идей по развитию полно, желание также присутствует.
Помощь всегда приветствуется — особенно советы.

Вопрос: Это будет бесплатный сервис или монетизация тоже в планах есть?
Ответ Ильи: Перспективы монетизации пока довольно туманные. Возможно, они прояснятся в дальнейшем.

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

Вопрос: Какая сейчас точность определения скорости с помощью сервиса? Насколько эти данные будут разниться, если нужные параметры введены по измерению рулеткой с реальной дороги или используя геосервисы, в которых ширина проезжей части измерена встроенной линейкой?
Ответ Ильи: На видео очень хорошего качества и без искажений оптики точность неплохая, тесты на открытом датасете показывают погрешность до 3%. Точность уменьшается с ухудшением качества видео и нестабильной частотой кадров.

Насчет измерений рулеткой и с помощью геосервисов — рулетка, конечно же, надёжнее. Данным от геосервиса нельзя слепо верить, но их можно и нужно перепроверять.

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

Вопрос: Будет ли возможность выбирать единицы измерения (км\ч, м\с, миль\час) и сохранять данные скоростной телеметрии в отдельный лог-файл?
Ответ Ильи: Да, благо это не так сложно сделать. Но когда это будет реализовано — не могу сказать.

Вопрос: Видеозаписи в зимние время ведь сложнее будет в Вашем сервисе обрабатывать из-за снежного покрова на дороге?
Ответ Ильи: Да, снег добавляет трудностей — некоторые ориентиры становится не видно, иногда изменяется даже геометрия дороги. Но в принципе, скорость вычисляется и на «снежных» видео.

Вопрос: Планируется в сервисе использовать нейросети?
Ответ Ильи: Это точно не перспектива ближайшего времени, но тема однозначно очень интересная. Было бы круто обучить нейросеть подбирать коэффициенты искажения камеры. Много идей по использованию готовых нейросетей. Но пока и без них много чего делать :)

Вопрос: Сейчас сервис хостится на Firebase, ищите ли вы альтернативу?
Ответ Ильи: Единственное, что не очень нравится в Firebase — это цены. Например, цена 1 ГБ трафика из файлового хранилища составляет около 7 рублей, в то время как у Яндекс.Облака — всего лишь рубль. Пока это не очень большая проблема, но в дальнейшем я буду искать пути для оптимизации. Сейчас же я проектирую архитектуру таким образом, чтобы не сильно привязываться к поставщику услуг.


Большое спасибо Илье за интересные и развернутые ответы!

Автор по возможности добавляет в сервис новые ролики:







Инструкция по работе с сервисом находится тут.

1. Для создания своего проекта необходимо залогиниться. Пока доступна авторизация через аккаунты Google и Facebook. После авторизации у вас будет доступна кнопка «Создать проект».



2. Нажимаем кнопку «Создать проект», появляется страница создания нового проекта, на которой предлагается загрузить видеофайл. Пока максимальный размер видеофайла — 3 мегабайта. Обрезать видео можно с помощью этого видеосервиса.



3. Загружаем файл, после успешной загрузки автоматически откроется страница проекта.



4. Для начала убираем искажения оптики камеры: с помощью ползунков k3, k4, Scale регулируем искажения таким образом, чтобы все прямые линии реального мира были прямыми и на картинке.



5. Перемещаем четырёхугольник так, чтобы он соответствовал прямоугольнику реального мира и указываем 2 расстояния (отрезки не должны быть параллельными).



6. Для поиска расстояний можно воспользоваться Яндекс.Картами.



7. Так как расстояния на Яндекс.Картах могут быть не совсем точными, нам необходимо убедиться в адекватности полученной привязки с помощью линейки. Обычно мы знаем колесные базы автомобилей. Например, у ВАЗ-2114 база составляет 2,46 метра, у нас получается 2,45.



8. Длина трамвая получилась около 16 метров, что тоже недалеко от истинной длины.



9. Теперь мы готовы заняться непосредственно вычислением скорости авто. Переходим в режим редактирования точек объекта и отмечаем точку объекта на каждом кадре. Отмечать точки вручную на каждом кадре может быть утомительно, поэтому существует инструмент интерполяции: отмечаем точку на одном кадре, затем отмечаем точку через 5-15 кадров, выделяем промежуток между кадрами на таймлайне и жмём кнопку «I»: Теперь точка между кадрами движется равномерно прямолинейно.



10. Таким образом, мы посчитали скорость объекта.

Источник: https://habr.com/ru/post/460185/


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

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

В эту субботу пройдет онлайн-офлайн митап самарского PHP-чата: зрители трансляции смогут задавать докладчикам вопросы голосом и полноценно участвовать в викторине, а те, кто согласится но...
Распределенные атаки типа DDoS весьма популярны. Зачастую для защиты от них используются сервисы вроде Cloudflare, позволяющие «поглотить» поток вредного трафика. Но даже применен...
Данная статья сугубо технического характера, затрагивающая один из аспектов блокировки ресурсов по спискам РКН и имеет актуальность для сервисов, ориентированных (в том числе) на жителей РФ. Кра...
Компании нужно провести опрос клиентов. Составляется анкета, неоднократно перерабатывается, утверждается, рассылается клиентам. Отклик (участие в опросе) обычно не высокий, порой не превышает 10%...
5-6 апреля, то есть уже на этих выходных, пройдёт JPoint 2019 — международная Java-конференция для опытных Java-разработчиков. Если вы не смогли поучаствовать, вживую или онлайн, то у нас есть ...