Достаточно простой и эффективный алгоритм распознавания и сопровождения движения

в 13:18, , рубрики: .net, C#, Алгоритмы, движущиеся объекты, Компьютерное зрение, Программирование

После почтения на сайте статьи Шуравина Александра (megabax) с названием: «Простой алгоритм распознавания движения», появилась потребность продвинуться в решении задачи, поставленной в статье. В результате появился алгоритм для обработки последовательности кадров, содержащих отображения движущихся объектов, например транспортных средств (ТС).

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

Для примера на рисунке 1 показаны результаты обработки входной последовательности, состоящей из 40 кадров, снятых с одного из путепроводов над трассой М8. На выходе сформированы пять кадров с отображением трека и изображения каждого ТС, попавшего поле зрения камеры.

Достаточно простой и эффективный алгоритм распознавания и сопровождения движения - 1

Алгоритм состоит из трех блоков.

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

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

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

Такие кадры индивидуальны для каждого пятна и в итоге отображают трек движущегося объекта, сформированный наложением синхронно движущихся пятен. Оценка скорости ТС может производиться по смещению центра или вершин окаймляющих пятно прямоугольников. Более точный способ изложен в статье [1].

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

Вот скриншот программы для первого и второго блоков.

Достаточно простой и эффективный алгоритм распознавания и сопровождения движения - 2
Достаточно простой и эффективный алгоритм распознавания и сопровождения движения - 3
Достаточно простой и эффективный алгоритм распознавания и сопровождения движения - 4

Код третьего блока содержит много однотипных переборов и оказался довольно тяжелым и медленным. Поэтому в статье он не приводится. Желающим могу отправить полный код программы обработки. (Нужно, правда, понимать что программа написана «чайником»).

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

На рисунке 2 показана группа кадров для попарного сравнения освещенности в каждом пикселе.

Достаточно простой и эффективный алгоритм распознавания и сопровождения движения - 5

На рисунках 3a, 3b, 3c показано влияние величины порога на вид бинарного кадра и кадра в оттенках серого, полученных из двух смежных кадров (второй и третий пороги так велики, что отключают третий и четвертый кадры).

Достаточно простой и эффективный алгоритм распознавания и сопровождения движения - 6

На рисунках 4a, 4b, 4c показано влияние величины порога на вид бинарного кадра и кадра в оттенках серого, полученных из трех смежных кадров (третий порог отключает четвертый кадр).

Достаточно простой и эффективный алгоритм распознавания и сопровождения движения - 7

На рисунках 5a, 5b, 5c показано влияние величины порога на вид бинарного кадра и кадра в оттенках серого, полученных, из четырех смежных кадров.

Достаточно простой и эффективный алгоритм распознавания и сопровождения движения - 8

На рисунках 6 показано влияние величины порога на вид выходных кадров.

Достаточно простой и эффективный алгоритм распознавания и сопровождения движения - 9

Литература

1. Яковлев А.А. Определение скорости по видео методом особых точек. Актуальные вопросы современной науки /Сборник статей по материалам 1Х международной научно- практической конференции (8 февраля 2018г., г. Томск). ч. 1 .- стр. 97/ — Уфа: Изд. Дендра, 2018.

Автор: artem54397

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js