Виброакустический мониторинг дорожной обстановки

В России впервые в мире внедрили систему акустического мониторинга по волоконно-оптическим линиям на действующей автомобильной дороге протяженностью около 240 километров. Проект был реализован компанией «СМАРТС» в Самарской области на участке трассы федерального значения M-5 «Урал» при поддержке Российского фонда развития информационных технологий.  Система позволяет в режиме реального времени отслеживать большое количество событий на дороге с точностью до 1 метра по акустическим следам от участников дорожного движения. 

Для реализации программной части системы компании «СМАРТС» понадобился технологический партнер, которым стала российская ИТ-компания Haulmont.

В рамках этого проекта мы разработали на платформе JMIX (ранее — CUBA Platform) программное обеспечение — Автоматизированную Информационную Систему «Акустический мониторинг» (АИС АМ). Система реализует функции сбора, аналитики и хранения данных, а также рабочие места пользователей и администраторов системы. 

Чтобы достичь поставленных целей, нам пришлось погрузиться в новую предметную область и задействовать целый букет разнообразных технологий — Kafka, Zookeeper, Hazelcast, Hadoop Hive, YandexClickhouse, Grafana, Prometeus, PostgreSQL и другие; также нам понадобилось создать и обучить несколько типов нейронных сетей, без которых в такого рода проектах обойтись невозможно. 

133c12d6551328cc0d6d8f70f28f38bc.png

IoT-датчик длиной десятки километров

Во вселенной Фрэнка Герберта «Дюна» на планете Арракис жили гигантские черви, которые чувствовали малейшую вибрацию песка. С технической точки зрения можно представить, что у такого червя был встроенный распределенный акустический сенсор (Distributed Acoustic Sensor, DAS), который позволял ему обнаружить и распознать источник вибрации. Ну, а что происходило дальше, вы знаете. В наших широтах по причине высокой влажности эти существа, к счастью, не обитают, однако сама идея улавливать очень слабые вибрации в грунте и, анализируя их, определять, где и что шумит, может быть весьма плодотворной. Вместо инопланетной формы жизни берем оптоволокно, закапываем его в землю, светим в него лазером и по искажению сигнала вследствие деформации волокна из-за колебаний почвы определяем, что за событие произошло. По сути, оптический кабель становится очень длинным IoT- датчиком, на основе которых создают системы виброакустического мониторинга. 

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

Вспоминаем физику: почему небо голубое?

Прежде, чем двинуться дальше, любознательный читатель непременно задаст вопрос: «А как это работает?»

В основе метода виброакустического мониторинга лежит физическое явление рассеяния света на объектах, размеры которых меньше длины волны. Открыл его в 1871 году настоящий британский ученый Джон Уильям Стретт, и в том же году он женился. Как принято среди ученых, явление назвали в честь первооткрывателя — «рэлеевское рассеяние». Да-да, Джон Уильям Стретт и есть тот самый лорд Рэлей, просто титул лорда он унаследовал от отца два года спустя и в науке прославился уже под этим именем. Кстати, голубой цвет неба объясняется именно этим эффектом, потому что воздух рассеивает свет с короткой длиной волны сильнее, чем с длинной. Получается, что красные и желтые лучи от Солнца, игнорируя атмосферу, попадают нам в глаз, а синие разбегаются по всему небу, и мы видим их многократно отраженными. Прямой солнечный свет выглядит белым, потому что часть синих лучей избегает рассеяния, образуя полный спектр. 

95ad7ab2aa7fadd47dbe4fab15f3d39d.png

Однако от понимания физического эффекта до его практического использования в методе когерентной рефлектометрии — дистанция огромного размера. Прежде надо было изобрести лазеры и микроэлектронику, чтобы построить приборы, способные этот эффект регистрировать. Поэтому распределенное акустическое зондирование стали применять только с 1970-х годов, сначала в нефтегазовой отрасли для мониторинга трубопроводов и защиты периметра. И лишь с середины 2010-х годов появились решения для мониторинга железных дорог, а затем и автомобильных. Дело в том, что в задачах типа охраны периметра происходят редкие события, которые отлавливать относительно просто. А если по дороге движется поток транспортных средств, то датчиком генерится огромное количество данных — и пришлось подождать, пока созреют и станут коммерчески доступными технологии Big Data, чтобы такие системы стали экономически рентабельны.

Слушаем шум дороги

Дорожный шум — это коллективная звуковая энергия, исходящая от автомобилей, сообщает нам Википедия. Одних он раздражает, других настраивает на романтический лад ночная песня шин. И когда среди ночи проносится один автомобиль, на слух можно определить была ли это обычная легковушка или тяжелый грузовик. Днем же все эти звуки сливаются для человека в непрерывный гул, в котором трудно что-либо разобрать. Здесь-то и приходит на помощь система виброакустического мониторинга: как известно, акустические волны распространяются не только в воздухе, но и в твердой среде, в том числе и в оптоволокне, проложенном вдоль дороги. Анализируя изменения в интерференционной картине отраженного сигнала, можно определить место и характер воздействия на волокно. 

В первой версии системы мы брали уже готовые события от поставщика датчиков. Разумеется, под капотом трудится нейросеть и затем определяется разброс значений и средняя скорость транспортного потока, подсчитывается количество событий таких как образование затора, съезд на обочину, ведение дорожных работ, проникновение в кабельные колодцы и многое другое. Также в акустическом сигнале видны аварии — во-первых, по резкому всплеску; во-вторых, после аварии изменяется скоростная характеристика всего потока, потому что остальным водителям приходится притормаживать. 

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

Нужны не только уши, но и глаза

Львиную долю информации об окружающем мире мы получаем благодаря зрению. Умные дороги тоже сначала обзавелись зрением — комплексы фотовидеофиксации давно стали привычными. Но слепых зон на любой трассе еще достаточно, поскольку хорошие камеры стоят дорого и на каждом столбе их не повесишь. С другой стороны, даже там, где камер нет, акустический датчик может зарегистрировать превышение скорости или другое нарушение — обгон в неположенном месте, съезд на обочину и так далее. Но вот беда — он не видит номер машины!

Глазами системы стали двенадцать стационарных и две мобильные камеры, передающие поток событий и видео в онлайн-режиме. Теперь, комбинируя акустику с картинкой, при расследовании аварий система пытается довести трек до зоны видимости камер.  И хотя данные, снимаемые с акустического датчика, носят вероятностный характер, по ним нельзя абсолютно точно определить автомобиль, эта информация может быть полезна. Но главное не в этом. Камеры помогают собрать обогащенный датасет для обучения нейросети, чтобы значительно улучшить качество распознавания треков автомобилей и «ассортимент» событий. Возможно, это станет таким же революционным шагом в обеспечении безопасности дорожного движения, как переход от немого кино к звуковому. Но об этом чуть ниже. 

Строим конвейер данных  

Итак, на входе у нас есть данные от виброакустических датчиков и с камер фотовидеофиксации. От датчиков поступает 30–70 млн событий в сутки, то есть примерно 350–800 в секунду плюс события и видеозапись с камер. И это только опытный участок, дальше будет больше — на втором этапе ожидается поток данных в формате HDF5 примерно 2 ТБ в час с одного датчика.

Поэтому подсистему сбора мы реализовали на Apache Kafka, чтобы принимать данные в темпе их поступления. Для этого мы использовали ряд адаптеров, основанных как на родных коннекторах Kafka от Confluent, так и на собственных на базе SpringBoot, которые интегрируются с различными API, получающими события по протоколам HTTP Live Streaming и WebSocket. Затем топики обогащаются при помощи Kafka Streams, черпая информацию из распределённого кэша Hazelcast. На выходе данные при помощи сервисов на базе SpringBoot и иных синкеров отправляются в PostgreSQL для оперативной работы пользователей, Apache Hive для долгосрочного хранения в исходном формате и Yandex Clickhouse для статистической обработки событий в BI-системе.

Весь пайплайн снабжен метриками, которые на разных этапах собираются Prometheus, визуализируются с помощью Grafana, а в критических ситуациях система оповещает разработчиков и пользователей через Telegram.

dadc37c2d83bc6aa11d3bf240e99fb19.png

Учим свою нейросеть

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

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

Выявляем треки движения и определяем события

Прежде всего нейросеть должна определять треки движения транспортных средств. На рисунке ниже они все как раз и присутствуют, видно даже остановки на светофоре. По оси X оптическая длина кабеля, по оси Y — время.

87046a8aed74397c9ad00e768cf02cdb.png

Далее используется сверточная нейросеть архитектуры U-Net (112 слоев, 35 из которых сверточные). Исходное изображение акустического сигнала при проходе через первую половину слоев сжимается по высоте и ширине, но увеличивается по числу каналов (каналы теперь содержат «признаки» объектов на изображении), и при проходе через вторую половину слоев изображение восстанавливается до исходного размера и на нем будут отрисовываются треки автомобилей.

За поиск точечных событий, например, остановок ТС, отвечает YOLOv5 — одна из наиболее современных и эффективных моделей в классе Object Detection. Особенность моделей YOLO (you only look once) в том, что они принадлежат к классу one-stage детекторов, то есть, изображение необходимо пропустить через нейронную сеть только один раз, что дает ощутимый выигрыш во времени.

Кратко описать принцип ее работы можно так: изображение разбивается на небольшие области, каждая из этих областей возвращает шесть чисел — номер класса, уверенность модели в этом классе, координаты центра, а также ширину и высоту прямоугольника. С помощью метода Non-maximum Supression выполняется фильтрация выделенных областей и удаляются дубликаты — иначе было бы много ложных срабатываний.

286f9e34b19858a2a7c2e7ea0a64da1a.jpeg

Обычно такие нейросети применяются, чтобы найти в кадре котиков, но нам нужно нечто совершенно иное — определить события начала движения и остановки транспортного средства:

f18afab3d72897bf947f0bdd66cd18e7.jpeg729c7d0d5e7de91bea627f0ac7877b35.png

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

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

Такие аномалии скорости могут образовываться по различным причинам, охватывая разные временные и пространственные интервалы. Это значит, что необходимо иметь инструмент, который позволит быстро создавать и модифицировать алгоритмы расчета; при этом он должен обеспечивать наглядность и простоту сопровождения. Посмотрев, что есть на рынке, мы склонились в пользу Apache NiFi — ETL, который вполне можно отнести к классу Low-code решений. С его помощью в системе реализован сбор усредненных метрик, предварительная агрегация поступающего потока данных, сравнение поступающих данных с накопленными и поиск аномалий. Результаты работы его алгоритмов при помощи Kafka сохраняются в PostgreSQL. 

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

Я милого узнаю по походке…

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

Реалии таковы, что мы не можем получить непрерывный трек движущегося транспортного средства из-за помех. Если мы «ведем» легковой автомобиль, то он может исчезнуть в акустической тени какого-нибудь КАМАЗа и затем появиться снова. В итоге вместо сплошной линии мы имеем некий пунктир, и надо решить, относятся ли соседние фрагменты трека к одному авто или к разным. Задача решается в два действия:

Сначала с помощью EfficientNet получаем фингерпринты для каждого фрагмента трека. На втором шаге с помощью многослойного линейного классификатора (25 слоев, 6 из которых полносвязные) вычисляется вероятность совпадения двух фингерпринтов. В результате получается наглядная картинка — зеленые линии показывают, что текущая часть трека по фингерпринту соответствует начальной, красная — не соответствует.

1d128e4a1af89fd9c88d64c422046829.png

Визуализируй это

BI-часть системы строится на очень удачной коллаборации Clickhouse и Grafana. Разработанная в Yandexколоночная аналитическая СУБД Clickhouse легко развертывается и настраивается для приема миллионов строк данных ежесуточно и не требует значительных затрат на сопровождение. На текущий момент в Clickhouse накоплено 20 миллиардов записей. 

Так как Clickhouse отвечает только за хранение данных, не предоставляя пользователям никакого интерфейса, потребовалось найти инструмент для людей. Нами были протестированы Apache Superset, Redash и Grafana и для нашего кейса работы выбор однозначно пал на последнюю. 

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

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

aa45072b37e58ff49d3fa4d408953be7.png

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

d149dfe948d9a27be480a4e1ab3c9e3a.png

Одномерный мир в проекции на глобус

Пользователи работают с системой через веб-интерфейс в приложении на Java-платформе JMIX (ранее — CUBA). В принципе это довольно обычное корпоративное приложение, коих в Haulmont было разработано великое множество. Базовая функциональность по работе с объектами, администрирование, управление пользователями, безопасность, полнотекстовый поиск и другие стандартные блоки реализуются средствами платформы. 

Однако с точки зрения разработки, пожалуй, здесь можно отметить несколько особенностей. Во-первых, все события, о которых мы говорили ранее, происходят фактически в одномерном мире — внутри оптоволоконного кабеля. И логичным образом возникает задача отображения этой информации на реальный мир — то есть, на карту. Оптоволокно лежит вдоль дороги, которая отнюдь не является прямой и кроме того, оператору нужно видеть, где расположены прочие объекты — дорожные знаки, АЗС, съезды и развязки и так далее. Поэтому в составе решения появилась ГИС на основе GeoServer и взаимодействие с картой составляет существенную часть работы оператора. В дополнение к этому заказчик с помощью промышленного квадрокоптера произвел аэрофотосъемку автомобильной дороги с прилегающими территориями в HD качестве, так что пользователь может буквально видеть каждый метр трассы — для чего тоже понадобилась разработка соответствующего модуля. Второй особенностью можно считать интенсивное использование инструментов BI, что также потребовало создания специфических интерфейсов и ряда интеграций.

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

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

Но существующие камеры могут существенно обогащать данные автоматизированной информационной системы «Акустического мониторинга» (АИС АМ). Информация с камер на подъезде или выезде участков дорог с АИС АМ помогают привязать дополнительную информацию к треку движения транспортного средства (акустическому следу) — к примеру государственный регистрационный номер, цвет, марку. Таким образом это будет след не «неизвестного транспортного средства», а вполне определенного, что позволит с большой точностью разбирать дорожно-транспортные происшествия и помогать в оперативно-следственных мероприятиях.

4dfdea368946364bd7a89edf9675e97c.png

Комплекс виброакустического мониторинга автодорог впервые в мире внедрен именно России и количество сценариев его использования будет постоянно расти. Будем держать вас в курсе! Как внедряется и работает система можно посмотреть в ролике.  

Все это далеко выходит за рамки обычных корпоративных систем, которые мы регулярно делаем на нашей платформе JMIX.  Система разработана и успешно внедрена в Самарской области на серверном оборудовании «СМАРТС». В настоящий момент можно поделиться полученным опытом и некоторыми планами дальнейшего сотрудничества Haulmont и «СМАРТС» по развитию данного решения.  В 2023 году у заказчика большие планы на расширение возможностей АИС АМ и её интеграции с не менее интересным программно-аппаратным комплексом ПАК «Умная дорога» (в основе которого лежит технология V2X — коммуникация автомобилей между собой и с дорожной инфраструктурой). Скоро наши автомобили и дороги станут умными и смогут значительно больше, чем информировать о пробках. Конечно, АИС АМ будет одной из ключевых информационных систем об обстановке на дороге, для реализации большого количества кейсов V2X.

© Habrahabr.ru