После почтения на сайте статьи Шуравина Александра (megabax) с названием: «Простой алгоритм распознавания движения», появилась потребность продвинуться в решении задачи, поставленной в статье. В результате появился алгоритм для обработки последовательности кадров, содержащих отображения движущихся объектов, например транспортных средств (ТС).
На выходе алгоритма формируются несколько кадров – по числу ТС, отображенных во входной последовательности. Каждый выходной кадр отображает индивидуальный трек ТС в поле зрения камеры и изображение этого ТС. Там же будет размещена цифровая информация о текущем положении центра окаймляющего прямоугольника, мгновенной и средней скорости ТС.
Для примера на рисунке 1 показаны результаты обработки входной последовательности, состоящей из 40 кадров, снятых с одного из путепроводов над трассой М8. На выходе сформированы пять кадров с отображением трека и изображения каждого ТС, попавшего поле зрения камеры.
Алгоритм состоит из трех блоков.
В первом блоке из нескольких последовательных кадров формируется бинарный кадр, отображающий в виде белых пятен на черном фоне движущиеся объекты и/или их фрагменты.
Во втором блоке каждое пятно окрашивается в свой оттенок серого и вычисляются масса пикселей в пятне, размеры прямоугольника, окаймляющего пятно, координаты его вершин и центра.
В третьем блоке вычисляется смещение каждого пятна относительно каждого пятна на предшествующем кадре и по минимуму смещения определяется пятно, относящееся, скорее всего, к тому же объекту. Благодаря индивидуальной окраске эти пятна можно выделить и перенести на отдельные кадры, отображающие последовательность близких пятен.
Такие кадры индивидуальны для каждого пятна и в итоге отображают трек движущегося объекта, сформированный наложением синхронно движущихся пятен. Оценка скорости ТС может производиться по смещению центра или вершин окаймляющих пятно прямоугольников. Более точный способ изложен в статье [1].
Алгоритм достаточно эффективен, благодаря информативности выходных кадров. Они могут содержать цифровую информацию о положении и скорости ТС в поле зрения камеры, а также визуальные данные о размере, внешнем виде каждого ТС и его треке.
Вот скриншот программы для первого и второго блоков.
Код третьего блока содержит много однотипных переборов и оказался довольно тяжелым и медленным. Поэтому в статье он не приводится. Желающим могу отправить полный код программы обработки. (Нужно, правда, понимать что программа написана «чайником»).
Для настройки алгоритма нужно задать пороги для оценки величины попарного сравнения уровня освещенности в одноименных пикселях смежных кадров. Оптимальные пороги соответствуют минимальному числу пятен на бинарном кадре, обозначенном в программе символом w1[k].
На рисунке 2 показана группа кадров для попарного сравнения освещенности в каждом пикселе.
На рисунках 3a, 3b, 3c показано влияние величины порога на вид бинарного кадра и кадра в оттенках серого, полученных из двух смежных кадров (второй и третий пороги так велики, что отключают третий и четвертый кадры).
На рисунках 4a, 4b, 4c показано влияние величины порога на вид бинарного кадра и кадра в оттенках серого, полученных из трех смежных кадров (третий порог отключает четвертый кадр).
На рисунках 5a, 5b, 5c показано влияние величины порога на вид бинарного кадра и кадра в оттенках серого, полученных, из четырех смежных кадров.
На рисунках 6 показано влияние величины порога на вид выходных кадров.
Литература
1. Яковлев А.А. Определение скорости по видео методом особых точек. Актуальные вопросы современной науки /Сборник статей по материалам 1Х международной научно- практической конференции (8 февраля 2018г., г. Томск). ч. 1 .- стр. 97/ — Уфа: Изд. Дендра, 2018.
Автор: artem54397