image
Цифровая Пенза. Чтобы правильно и оперативно управлять городским движением нужно уметь видеть и распознавать транспортные потоки
Олег Звонов
Олег Звонов

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

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

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

При создании системы используются open-source решения. Проект yolo-deepsort (https://github.com/LeonLok/Deep-SORT-YOLOv4). Данный проект совмещает в себе детектор объектов YOLOv4 и трекер найденных с помощью детектора объектов. В процессе работы разработчики заменили исходный YOLOv4 на YOLOv5.

Работа разделена на два процесса, первый процесс работает над решением задачи поиска объектов в кадре и их классификацией (в нашем случае различных типов транспортных средств) — YOLOv5. Далее эти данные отдаются на трекер. Второй процесс  работает с полученными объектами от YOLOv5 и на основе этих данных создаёт новые треки или обновляет ранее созданные, обобщая работу трекера, создаваемый инструмент сравнивает положение объектов с существующего кадра и прошлого кадра, и на основании этого делает вывод о новом положении объектов. 

Немного о технических аспектах реализации проекта. В реализации Deep SORT https://github.com/nwojke/deep_sort — (система отслеживания в реальном времени с метрикой глубокой ассоциации), используются такие математические аспекты, как: расстояние Махалонобиса и фильтр Калмана, с помощью них и происходит сравнение. 

Также Deep SORT использует так называемый «внешний вид» объекта, что позволяет запоминать образ искомого объекта. Этот внешний вид позволяет сохранять данные о перекрытом объекте, не теряя его из отслеживаемых объектов. То есть, при временном перекрытии искомого объекта другим, трекер  продолжит отслеживать его в кадре. Данная часть проекта использует свёрточную нейронную сеть (CNN) натренированную на датасете, где используется, порядка 1 100 000 картинок с более 1000 разных людей. В этом датасете указана разметка (нахождение самого человека) и его идентификатор, чтобы на другом кадре нейронка обработала этого человека как того же. В реальном применении, для CNN не имеет значения ТС это или человек — по факту, нейронная сеть фиксирует признаки объекта и не теряет их «из внимания».

Как все это работает на реальном дорожном объекте.

Для примера мы взяли видео с камеры, которая снимает дорожный перекресток.

Рисунок 1 — кадр начального видео

Рисунок 2 — обработанный кадр видео

Для демонстрации на рисунке 2 изображены зоны, выделенные жёлтым. По этим зонам и определяется направление движения транспортного средства. Трекер понимает, что авто уехало за пределы охватываемой камерой территории, когда ТС пропадает из кадра. Если последний раз ТС было замечено в какой-либо зоне, авто считается как проехавшее, а зона, в которой последний раз был авто, определяет его направление. Такой подход помогает избавиться от ложных срабатываний. Ложно определённый объект не будет распознаваться несколько раз и не проследует к размеченной зоне. Также, это решает проблему пропажи из кадра авто, которое припарковано, как авто с идентификатором 1 на рисунке 2.

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

Рисунок 3 — подсчёт отслеживаемых авто

Рисунок 4 — подсчёт проехавших авто

На данный момент трекер способен отличать ТС по 5 типам (велосипед, машины, мотоцикл, автобус и грузовик). Как все это работает в реальном времени хорошо показывает это видео https://youtu.be/AFYE-ZGyH04 https://youtu.be/3aQdXTMVA5c .

Команда проекта

Заказчиком разработки выступает Пензенское предприятие ДорПроектСигнал в качестве исполнителей проекта создания трекера транспортного потока и другими задачами, по проектированию и разработке систем, включающих работу нейронных сетей (искусственного интеллекта), работали сотрудники ИТ-компании «CodeInside» — одного из ведущих производителей программного обеспечения в г. Пенза, в сотрудничестве с кафедрой «Вычислительной техники» Пензенского Государственного Университета и их научными сообществами. К сбору и разметке материалов для обучения нейронных сетей привлекались студенты ПГУ, которые не только смогли принять участие в разработке реального программного обеспечения, но и прошли производственную практику, получив полезные знания и новые навыки. Часть практикантов смогли принять участие в создании приложения по генерации искусственных наборов данных. Лучшие студенты, после прохождения практики, получили работу и продолжают трудиться над проектами уже в статусе штатных разработчиков компании.

Похожие статьи