Моделируем перекрёстки на основе данных с веб-камер.
Большинство дорог в российских городах не дружелюбны к пешеходам, велосипедиста, инвалидам - словом, ко всем тем, кто не на машине. При этом многие автомобилисты (в том числе принимающие решения в городе) не верят, что улучшение условий для пешеходов, не приведет к появлению пробок на дорогах.
Нашей целью является устранение этого стереотипа и, как следствие, совершенствование транспортной инфраструктуры.
Для достижения этой цели необходимо было решить следующие задачи:
- Данные о реальной ситуации на дорогах существуют, однако, либо дóроги, либо недоступны обычному пользователю. Мы решаем эту задачу, получая видеопоток с открытых веб-камер.
- Мы обрабатываем поток, выделяя траектории машин, автобусов и пешеходов. Эти данные усредняются за какое-то время, и мы получаем данные о типичном потоке (что не исключает возможности сохранять информацию о различии потока в разное время суток, праздничные дни и т.п.)
- Далее, необходимо смоделировать схему перекрестка с учётом реального потока автомобилей, автобусов и пешеходов на нём.
- Мы даём возможность пользователям в игровой форме пробовать различные режимы работы светофоров, количество полос, ограничения скорости автомобилей, видеть смоделированное движение и получать информацию о существенных его характеристиках. Это позволяет найти лучшее решение для пешеходов, не приводящее к серьезным заторам и пробкам, и устраняет описанный выше стереотип.
Важным приоритетом при разработке являлась простота интерфейса. Проектирование современного города является очень сложной задачей, требующей участия большого количества специалистов. Было необходимо выделить простые и понятные «настройки» перекрёстка и характеристики движения. Надеемся, что нам это хотя бы частично удалось.
Технические решения, использованные в проекте, позволяют в дальнейшем масштабировать его до моделирования нескольких соседних перекрёстков и даже всего города во все времена суток и времена года, требуя относительно небольших затрат на оборудование веб-камер и серверов для обработки данных.
Сбор информации с перекрестков осуществляется в 2 этапа:
-
Обработка видео для сбора треков
Детектирование машин и пешеходов осуществляется с помощью нейронной сети YOLO (You Only Look Once).
-
Обработка собранных треков, выделение участков въездов\выездов из перекрестка
Области с машинами и пешеходами передаются в трекер Deep SORT. В основе трекинга лежит выделение особенностей у обьектов(построение дескрипторов). Трекер предсказывает будущее положение обьектов с помощью фильтра Калмана. Построенные дескрипторы позволяют нам продолжать трекать обьект, даже если он был чем-то перекрыт продолжительное время.
Моделирование перекрёстка осуществляется по модели SUMO (Simulation of Urban MObility). SUMO позволяет моделировать очень большие дорожные сети (в частности, авторами SUMO смоделирована сеть г. Кёльна и г. Оснабрюк).
В прототипе схема перекрёстка (количество полос, разрешённые повороты и т.п.) была введена вручную в редакторе sumo-gui. В дальнейшем возможно автоматическое получение схемы перекрёстка (перекрёстков) из данных OSM (OpenStreetMap).
Полученная на этапе сбора данных информация о потоке (количество машин, въезжающих на перекрёсток за одну минуту, и вероятность совершения ими различных манёвров поворота) конвертируется в формат, необходимый SUMO.
Далее результаты о смоделированных траекториях и существенных характеристиках потока (среднее время ожидания, количество проехавших и прошедших и т.п.) передаются в подсистему отображения.
Веб-сервер, необходимый для конвертации данных, написан на Haskell.
Для задания основных параметров перекрёстка написана форма ввода данных на html+javascript, на той же странице реализовано отображение результатов моделирования в виде условных изображений автомобилей, перемещающихся по перекрёстку.