Smart Traffic Lights: умные светофоры

Клиент

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

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

Проект

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

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

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

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

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

Идея заключалась в том, чтобы вывести перекрестки и светофоры на определенный уровень автономности — чтобы в случае проблем со связью не получить транспортный коллапс.

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

Перекресток управляется одним контроллером и способен работать в двух режимах — режим онлайн (оперативное реакция на команды центра управления) и режим оффлайн (режим работы на основе профиля).

Данные о загрузке направлений поступают с установленных на этих же перекрестках камер. Модуль сбора и обработки анализирует поток данных, распознает ГРНЗ транспортных средств и фиксирует количество и направление движение транспорта через перекрестки. С учетом загрузки каждого перекрестка, направления и области — модуль управления формирует профиль каждого объекта.

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

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

Отдельной проблемой была обработка нескольких видео-потоков с перекрестков в качестве, достаточном для распознавания номерных знаков. Для отработки и тестов на первых этапах мы собрали эмуляторы светофорных контроллеров, а в качестве потоков данных — отсняли несколько десятков часов видео с различных перекрестков в разное время суток и с разными погодными условиями.

Мы добились 89,5% точности распознавания в ночных условиях, при плотном снегопаде, серьезно ограничивающем видимость. В условиях естественной освещенности и достаточной видимости — точность распознавание ГРНЗ ТС не опускалась ниже 97,2%.

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

Профиль проекта

  • Платформы и языки программирования: .NET, C#, Python, C++
  • Год реализации: 2014
  • Текущий статус: сдан
  • Срок исполнения: 12 месяцев