Введение
Проблема анализа видеопотока на предмет обнаружения недопустимых (атипичных, нехарактерных) движений возникает в задачах управления беспилотным транспортом, мониторинге охраняемых объектов и в других прикладных задачах. К анализу ситуаций в видеопотоке применяются разные подходы, а именно, с использованием нейросетей и без их использования.
Необходимо отметить серию работ по определению атипичного движения с использованием нейросетевых методов. Например, в работе И.С. Синицына, М.В. Сулицкого, Д.С. Парыгина, В.А. Джагаева и В.Н. Серяковой предлагалось решение для идентификации негативных дорожных факторов на изображениях с камер видеонаблюдения с помощью моделей нейросетей YOLO и Mask-RCNN с последующим информированием пользователей через сервис бота в мессенджере Telegram [1]. В работе А.А. Морозова и О.С. Сушковой осуществляется логический анализ видеопотока с использованием нейросетей средствами языка «Акторный Пролог» [2]. В другой работе автором совместно с К.П. Шустовой производится анализ видеопотока на допустимость со стационарной камеры с использованием методов логики высказываний и нейросетевых методов библиотеки распознавания IMAGEAI [3].
По результатам анализа в этих работах в режиме реального времени выводилось сообщение о возникновении недопустимой ситуации в кадре. Все эти работы определяли, что (кто) именно находится в кадре (человек, автомобиль, грузовик, какой вид животного и т.д.). Поэтому методы, предложенные в этих статьях, стоит применять в ситуации, когда важно, кто (что) именно возникает в кадре. Если при этом важна траектория движения объекта, то стоит использовать метод, предложенный в статье А.А. Морозова и О.С. Сушковой [2]. Если важными для определения недопустимой ситуации в кадре являются логические условия, ограничивающие количество наблюдаемых объектов, то использовать систему, которая позволяет встраивать и пользовательские методы распознавания, например указанные выше, для решения комбинированной задачи с включением соответствующих опций из системы работы [3].
Следует отметить серию работ по определению атипичного движения без использования нейросетевых методов. Например, в работе Р.А. Шаталина, В.Р. Фидельмана, П.Е. Овчинникова был предложен метод главных компонент для обнаружения нехарактерного поведения в задачах видеонаблюдения со стационарной камеры. Основной идеей метода являлось нахождение инвариантного подпространства, натянутого на собственные векторы матрицы характерных признаков видеопотока. Затем рассчитывалась длина вектора невязки. На основе полученного значения этой длины делался вывод о допустимости и недопустимости зафиксированного движения в текущем кадре. Кадры видеопотока предварительно обрабатывались фильтрами удаления шумов и процедурой отделения фона [4]. Отметим, что автором настоящей статьи была создана система для определения атипичности движения, в базу моделей которой был заложен метод, предложенный этими авторами. Тестирование показало, что этот метод работает небыстро, поэтому был нужен более быстрый и в то же время достаточно точный метод анализа. В работе К.П. Шустовой [5] предложен метод определения текущего уровня жидкости с помощью удаленного анализа видеопотока, получаемого со стационарной камеры. Здесь объектом наблюдения являлось движение уровня жидкости и допустимым считалось то его изменение (движение), которое находилось в допустимом для уровня интервале. В работе автора был организован учет наблюдения за несколькими областями интереса для одной стационарной камеры и предложена архитектура системы, реализующая контроль уровня в этих областях. Во второй работе К.П. Шустовой проводился анализ видеопотока на обнаружение движения в помещении со стационарной камеры, где был предложен алгоритм анализа видеопотока с использованием статистических методов [6]. Способ образования изображения для анализа позволил максимально избавиться от шумов, и существенным (то есть тем движением, которое надо учитывать) являлось движение, превосходящее допустимое значение для коэффициента вариации, соответствующего несущественному движению.
Необходимо привести работы, в которых видеопоток анализировался с подвижной камеры, а именно с камеры беспилотного транспортного средства. Так, в работе А.О. Лебедева, В.В. Васильева, А.Г. Паулиша был предложен алгоритм управления полетом беспилотного летательного аппарата вдоль железной дороги. Анализ видеопотока в ней осуществлялся статистическими и геометрическими методами с учетом перспективы, а в анализируемую область попадал как близкий к камере участок этой дороги, так и удаленный на большое расстояние, на столько, что камера захватывала и анализировала сближающиеся в перспективе рельсы железной дороги и атипичным (недопустимым) считалось отклонение движения беспилотного летательного аппарата от железнодорожного пути [7]. В другой работе был предложен алгоритм управления движением робота по цветовой линии на основе распознавания цветовых объектов при помощи пороговой обработки изображения, где атипичным (недопустимым) считалось отклонение робота от направления цветовой линии [8]. В работе авторского коллектива: Ш.С. Фахми, Н.В. Шаталовой и Е.В. Костиковой были предложены алгоритмы потоковой обработки видеоинформации морских сюжетов, где в основу анализа был положен математический аппарат адаптивных алгоритмов дискретного косинусного преобразования. Предложенные в этой статье алгоритмы позволяли оценить допустимость/недопустимость возникшего сюжета на поверхности воды по видеопотоку, полученному с движущейся камеры, обеспечивая быструю передачу данных с камеры беспилотника на обработчик. При анализе ситуации использовались сюжеты, заложенные в базу знаний системы наблюдения [9].
Необходимо отметить, что в различных задачах обнаружения нетипичных движений объектами интереса могут быть как крупные, так и мелкие объекты. К тому же эти объекты могут двигаться как с постоянной, так и с меняющейся скоростью. Поэтому для обнаружения типа имеющегося в кадре движения важной является задача захвата в кадр и того момента, когда объект развил максимально возможную для него скорость. Параметры видеопотока (ночное время, низкая или высокая освещенность, расстояние до объекта наблюдения и т.д.), в котором необходимо обнаружить недопустимое движение, тоже могут меняться. Поэтому актуальной является задача разработки быстро работающего алгоритма, учитывающего эти параметры и позволяющего обнаруживать недопустимые движения за счет гибкой настройки чувствительности параметров алгоритма. К тому же важно, чтобы этот алгоритм обеспечивал устойчивость к шуму и мог указывать место в кадре, где произошло обнаружение нетипичного движения.
Указанная выше гибкость настроек параметров метода анализа позволит, с одной стороны, обеспечить автоматизированный анализ видеопотока с помощью одной системы при меняющихся в процессе наблюдения его параметрах, с другой стороны, может быть использована для решения разных практических задач анализа видеопотока в условиях его получения со стационарной или движущейся камеры. В связи с этим актуальной является и, соответственно, разработка рекомендаций для создания удобного интерфейса такой системы.
Архитектура модуля, уже учитывающего регулировку некоторых нужных параметров для этого метода анализа, уже реализована в системе, предложенной автором в статье [10]. Поэтому при создании системы для обнаружения атипичности в видеопотоке полезно использование структурных элементов модуля, предложенного автором в этой статье. Архитектура этой системы, предложенной автором в этой статье, позволяет встраивать пользовательские методы анализа изображений. Поэтому предлагаемый автором метод может быть встроен в нее.
Цель исследования заключалась в разработке метода определения недопустимых движений в видеопотоке, который позволял гибко настраивать чувствительность обнаружения недопустимых движений, при этом обеспечивал устойчивость к шуму и указывал место в кадре, где произошло обнаружение нетипичного движения, а также не тратил время на определение фона и траектории движения объектов, а получение результата анализа не тормозило видеопоток при его обработке в программах Wolfram Mathematica и Python.
Материалы и методы исследования
С помощью статистического анализа и растрового анализа были проанализированы видеопотоки на предмет наличия недопустимого (атипичного) движения с учетом предложения на торговых площадках современных камер и их возможностей. Объектами исследования являлись видеопотоки, предметом исследования – наличие недопустимого (атипичного) движения.
Результаты исследования и их обсуждение
Математическая модель для обнаружения типа движения
Создание изображения для анализа. Пусть img – это матрица текущего изображения, получаемого с видеокамеры, и N x M – размерность этой матрицы.
Важной задачей является удачное формирование матрицы изображения для анализа imgan из матрицы img. Метод формирования этой матрицы imgan в предлагаемом в настоящей статье алгоритме берется близкий к предложенному в статье К.П. Шустовой [6]. А именно, в качестве изображения для анализа с матрицей imgan берется динамическая разность двух бинарных кадров, снятых с паузой pause.
Значение этой паузы зависит от конкретной прикладной задачи и характеристик камеры наблюдения. Пусть камера настроена на частоту ω кадров в секунду и прикладная задача такова, что важна фиксация перемещения объекта наблюдения на x метров и допустимо перемещение объекта наблюдения со скоростью v км/ч. Тогда значение паузы pause надо вычислять по формуле
с,
где м.
Здесь надо иметь в виду, что если в задаче надо зафиксировать перемещение объекта, движущегося со скоростью, зависящей от времени t, то и pause тоже может зависеть от t.
Если pause окажется неточно вычисляемой дробью в десятичной записи (как правило, до третьего знака после запятой), то в качестве pause в конкретной прикладной задаче, определение атипичности в которой зависит от скорости перемещения объекта, надо брать предельное значение слева. Это делается для того, чтобы в imgan четче зафиксировался момент недопустимого движения. Здесь учтено, что во время паузы выполнение программы полностью останавливается на указанный период времени. Это значит, что код не будет выполнен до того, как время паузы истечет.
Вычисление нужной паузы по указанной выше формуле позволит уменьшить время анализа видеопотока за счет избегания вычисления лишних разностей imgan и поиска на этих разностях значений характеристик движения.
На большинстве предприятий для камер настраивается частота ω = 15 кадров в секунду. Такая частота обеспечивает устраивающую эти предприятия работу видеонаблюдения и позволяет экономно использовать место для хранения записей [11]. Здесь имеются в виду предприятия, объектами наблюдения которых являются люди или транспортные средства.
В связи с этим ниже проводится этот анализ для камеры с частотой ω = 15 кадров в секунду и такой прикладной задачи, для которой важным является фиксация перемещения объекта (например, человека) на x = 0,5 м и того события, что объект наблюдения (человек) перемещался со скоростью большей, чем v = 6 км/час.
Анализ для pause. Пока фиксировался i-й кадр, прошло время 1/ω = 1/15 с. За это время (1/ω = 1/15 с) объект (человек) переместится на
м.
Значит, чтобы быть зафиксированным в (i+1)-м кадре, ему осталось переместиться на (x – y) = 0.46 м.
В соответствии с условием задачи тогда на это перемещение (x – y) = 0.46 м надо потратить время pause. Следовательно,
с.
Выбор для анализа типа движения именно такой разности imgan позволяет также сразу максимально избавиться от «шумов» и тем самым увеличить точность предлагаемого алгоритма. Поэтому сразу уменьшается и вероятность ложного сигнала из-за шумов. Преимущество этого метода по сравнению с методом выбора изображения для анализа, предложенного, например, в статье Р.А. Шаталина, В.Р. Фидельмана, П.Е. Овчинникова [4], состоит в том, что на выделение фона на изображении, как это делается в данном исследовании, требуется больше времени, чем найти разность двух изображений, так как разность изображений – это просто разность соответствующих матриц этих изображений, а, чтобы выделить фон, программе сначала надо определить, что именно является фоном, а это трудоемкая задача, требующая немало времени.
Итак, в качестве изображения для анализа imgan берется динамическая разность двух бинарных кадров, снятых с паузой pause (по умолчанию можем взять pause = 0.276 с). В программе Wolfram Mathematica 11 это записывается следующим образом:
Dynamic[{img = CurrentImage[],
imgan = ImageDifference@@Table[Pause[pause];
Binarize[CurrentImage[]], {2}}].
Задание областей интереса. В конкретной задаче видеонаблюдения важно анализировать не все изображение целиком, а выделять области на нем и проводить соответствующий анализ в этих выделенных областях интереса. Эти области задаются из соображений целесообразности в конкретной задаче видеоанализа. Рекомендуется задавать области интереса такими, чтобы они позволяли решить задачу видеоанализа и не включали в себя блики и лишний фон. Соблюдение этих рекомендаций позволит сократить время анализа и повысит точность отклика наблюдения. Обозначим эти области интереса через imganobl[k].
На изображении, соответствующем матрице imgan, метод берет области интереса, соответствующие матрице imganobl[k], и в каждой из них в отдельности проводит анализ и сообщает о наличии или отсутствии недопустимого движения. Каждая область интереса может иметь разные размерности. Пусть область интереса imganobl[k] имеет размерность n[k] x m[k].
При задании размера области интереса учитывается, какую максимально возможную скорость в состоянии развить наблюдаемый объект, а также реальные размеры охвата камерой среды, в которой происходит движение. Это делается для того, чтобы объект, если бы он развил такую скорость, попал бы в область интереса в (i+1)-м кадре. Поэтому в область интереса должно попасть то место, где объект наблюдения мог бы находиться, если двигался бы с такой максимально возможной скоростью. Расчет размера области интереса индивидуален для каждой конкретной задачи наблюдения.
В предложенном автором алгоритме резкие движения частей наблюдаемого объекта точно попадут в (i+1)-й кадр, даже если объект в целом весь не перемещался. На разностях imgan места движений объекта – это белые участки на черном фоне. Черный фон – это те места, которые были неподвижны.
Улучшение качества областей интереса. На изображении, поступающем с камеры, как правило, разные области требуют разных процедур улучшения качества отображения этих областей с целью получения изображения, пригодного для конкретного анализа. Поэтому для каждой области интереса в предлагаемом алгоритме задаются свои процедуры улучшения. Каждое улучшенное изображение области запоминается под тем же именем imganobl[k]. Здесь предлагаемый алгоритм учитывает параметры (признаки) поступающего видеопотока (о них см. ниже) и что имеющиеся в настоящее время камеры проводят автоматическое улучшение всего кадра в целом (что, безусловно, полезно и нужно для предлагаемого алгоритма), а не заданные для конкретной задачи анализа области интереса. Поэтому в предлагаемом алгоритме проводятся улучшения качества заданных областей интереса по умолчанию для каждого из признаков (параметров) поступающего видеопотока, и если пользователь, визуально оценив эти улучшения, захочет их подправить, то в алгоритме предусмотрены соответствующие виджеты для параметров методов улучшения качества области интереса. Пользователь может улучшать imganobl[k] уже другим или тем же самым методом, двигая движки на форме методов улучшения изображения каждой области интереса. Процесс вырезки областей интереса и организация улучшения качества этих областей были представлены ранее в работах автора с соавт. К.П. Шустовой [3, 5].
Систему поддержки принятия решения, в базе моделей которой будет этот алгоритм, предлагается создавать, соблюдая принцип развития, аналогично тому, как это было предложено в статье К.П. Шустовой [5], а именно, путем задания порогов параметров и значений этих параметров в виде функций:
zadatp[k_,vid_,i_] := Grid[{{“Задайте верхнюю грань порога p“, i, “ “,
InputField[Dynamic[pmax[k,vid,i]], Number, FieldSize –> 4
}}]
slp[k_,vid_,i_] := Grid[{{“p“, i,
Manipulator[Dynamic[p[k,vid,i]],
{0, Dynamic[pmax[k,vid,i]]}]
}}],
здесь k – метка области интереса, vid – вид операции улучшения изображения для этой области (например, изменение порога бинаризации, изменение масштаба), i – номер параметра для метода вида vid, pmax[k, vid, i] – это верхний порог параметра метода, p[k, vid, i] – текущее значение порога параметра метода. Здесь устанавливать верхний порог и его текущее значение пользователь может, осуществив ввод значения порога в поле ввода или сдвинув движок на форме пользователя.
Итак, на этом этапе есть области интереса, улучшенные каждая своими методами. Причем имена у них остались прежними: imganobl[k]. Теперь для каждой улучшенной области будут находиться параметры движения в ней. Алгоритм нахождения параметров движения в области интереса описывается ниже.
Алгоритм контроля движения. Здесь предлагается алгоритм анализа в областях интереса imganobl[k]. Сначала в каждой области наблюдения находится относительная частота появления белых пикселей. Пусть b[k] – количество белых пикселей в области интереса imganobl[k]. Тогда относительная частота появления белых пикселей в области imganobl[k] вычисляется следующим образом:
Далее учитывается, что связные белые области в imganobl[k] – это места, где произошло движение (смещение). Поэтому если p[k] больше допустимого порога pdop[k], то соответствующая область будет анализироваться подробнее. Величина порога pdop[k] определяется как результат обучения системы на обучающей выборке видеопотоков или рассчитывается, исходя из конкретной прикладной задачи наблюдения, если задача позволяет это сделать.
Если b[k] не больше допустимого порога pdop[k], то нет необходимости анализировать подробнее соответствующую область, так как этот случай означает, что в этой области происходит допустимое движение (то есть движение типичное, характерное). Это позволяет сократить время анализа видеопотока на наличие нехарактерных (недопустимых, нетипичных) движений.
Теперь встала задача, как же именно анализировать подробнее ту область, в которой p[k] оказался больше допустимого порога pdop[k]. Здесь надо учесть, что этот алгоритм должен быть быстровыполнимым, так как анализируется видеопоток и важна скорость анализа. В связи с этим автором предлагается смотреть на imganobl[k] как на черный пористый материал, на котором есть белые поры. Мелкие поры алгоритм будет считать соответствующими шуму (допустимыми мелкими движениями), а крупные – соответствующими уже недопустимому изменению положения объекта (или уже нехарактерному, атипичному движению). Искомое решение о допустимости/недопустимости движения автор строит с помощью так называемого когнитивного автомата, рассматриваемого К.Б. Саниевым [12]. А именно, в настоящей работе автором реализуется анализ на допустимость движения в видеопотоке на основе анализа структурного примитива, назвав этот структурный примитив «стволом». Под «стволом» поры понимается базовый (то есть наименьший) белый прямоугольный участок, начиная с которого движение считается нетипичным (недопустимым, нехарактерным). Обозначим этот ствол через stvol[k], то есть ствол для области наблюдения imganobl[k]. Пора считается крупной, если ее «ствол» крупный.
Размер ствола зависит от конкретной прикладной задачи, характеристик камеры наблюдения, удаленности объекта наблюдения от камеры и наклона плоскости наблюдения к плоскости камеры. Этот фиксированный размер ствола может определять аналитик (или агент, если прикладная задача касается поведения агента в среде) на основе расчета или обучения на примерах видеонаблюдения в конкретной прикладной задаче. Пусть размер этого ствола stvol[k] равен bn[k] × bm[k].
Когда уже известен stvol[k], то алгоритм ищет графическую примитиву stvol[k] в imganobl[k], скользя по этой области интереса, то есть ищет первый белый прямоугольник фиксированного размера. Если находит первую из пор с таким стволом, то сигнализирует о появлении в этой области недопустимого (нехарактерного, нетипичного) движения. Заметим, что в предложенном алгоритме не надо находить все белые поры с таким стволом, а надо находить только первую такую и сразу сообщать о наличии в этой области недопустимого движения. Это так же позволяет сократить время анализа.
Схема предложенного автором алгоритма контроля движения приведена на UML-диаграмме деятельности на рисунке.
В зависимости от конкретной прикладной задачи возникает целесообразность нахождения этого «ствола» stvol[k], скользя по области интереса imganobl[k] по горизонтали (слева направо или справа налево) и/или по вертикали (сверху вниз или снизу вверх). Поэтому в предложенном методе эти опции тоже учитываются.
Если прикладная задача такова, что искать наличие этого «ствола» надо, скользя по горизонтали слева направо, то сначала формируется матрица a, как часть матрицы imganobl[k], являющаяся левым верхним блоком размером bn[k] × bm[k], и вычисляется сумма элементов этой матрицы. Если эта сумма окажется равной bn[k] ∙ bm[k], то сообщается, что в области интереса imganobl[k] обнаружено недопустимое движение. Если нет, то переопределяется матрица a. А именно, берется теперь блок размера bn[k] × bm[k], начиная с элемента матрицы imganobl[k], стоящего на месте (1, 2). Снова вычисляется сумма элементов этой матрицы, сравнивается с bn[k] ∙ bm[k]. Далее делается соответствующий вывод о наличии недопустимого движения и т.д., пока еще можно формировать матрицу a, двигаясь по первой строке. Если такой возможности уже нет, то повторяется то же самое для следующей строки в матрице imganobl[k] и т.д., пока еще можно формировать новые матрицы a из imganobl[k], двигаясь вниз.
Алгоритм контроля движения в видеопотоке Выполнен автором в программе ArgoUML
В системе Wolfram Mathematica 11 эту процедуру можно записать так:
status[k]=0; (*Изначально, когда еще наблюдения не было, статус движения устанавливается как допустимое *)
analiz1=Do[
Do[
{(*Слева направо и сверху вниз*)
a=imganobl[k][[i;;(bn[k]+i-1),j;;bm[k]+j-1]],
If[Total[a,2]==bn[k] bm[k],
status[k]=1;
Print["Обнаружено недопустимое движение в области ",k,
" со стволом",MatrixForm[a]];Break[],
Print["движение в области ",k," ищем тип"]
]
},
{j,1,m[k]-bm[k]+1}],
{i,1,n[k]-bn[k]+1}]
Аналогично для остальных направлений скольжения формируем переменные analiz2, analiz3, analiz4, меняя только способ формирования матрицы a:
(*Справа налево и сверху вниз: *)
a=imganobl[k][[i;;(bn[k]+i-1),(-j-bm[k]+1);;-j]],
(*Слева направо и снизу вверх *)
a=imganobl[k][[(-bn[k]-i+1);;-i,j;;bm[k]+j-1]],
(*Справа налево и снизу вверх: *)
a=imganobl[k][[(-bn[k]-i+1);;-i,(-j-bm[k]+1);;-j]],
В этом методе автором учтено, что при определении недопустимого движения достаточно найти только первый такой «ствол» и именно на бинарном изображении.
Свойства предложенного алгоритма, примеры ситуаций, в которых применим предложенный алгоритм с указанием параметров для камер
Предлагаемый в настоящей работе алгоритм обнаружения недопустимого движения имеет параметры: пауза pause, pdop[k] и stvol[k]. Допустимое значение для pause зависит: от вида камеры; от длины вектора перемещения объекта, которое хотим обнаружить; от скорости объекта наблюдения, превышение которой считается недопустимым движением. Параметры pdop[k] и stvol[k] зависят: от размера объекта наблюдения, движение которого интересует; от его допустимой скорости движения; от расстояния камеры до этого объекта наблюдения.
Поэтому для решения вопроса о фиксации недопустимого движения в конкретной рассматриваемой прикладной задаче возможно использование только конкретного вида камер в зависимости от их характеристик. При разработке алгоритма анализа движения учтены характеристики имеющихся в настоящее время камер, предназначенных для использования на улице и в помещениях, реализующихся в продаже в настоящее время. Ниже перечислены параметры видеопотока и камеры, с которых может быть получен видеопоток для анализа предложенным в настоящей работе алгоритмом. Приведенный ниже список параметров видеопотоков и соответствующих камер сформирован на основе анализа специализированных торговых площадок [11, 13].
Список параметров видеопотоков прикладных задач, которые могут быть решены с помощью предложенного алгоритма анализа, и соответствующие рекомендуемые камеры:
− Видеопоток поступает в ночное время: IP-камера HiWatch DS-I200(D) и IP-камера TP-LINK Tapo C310 позволяют сразу получать кадры уже улучшенного качества для этого параметра видеопотока.
− Нужно четкое отображение мелких деталей: реализуется в IP-камере HiWatch DS-I400(С), а также в IP-камере HiWatch DS-I203(D) (2,8 мм). Поэтому эти камеры лучше использовать для задач по обнаружению движений мелких объектов.
− Гарантирование качественной съемки при низком освещении: реализуется в IP-камере Dahua DH-IPC-HFW2431SP-S-0280B, а также в IP-камерах HiWatch DS-I203(D) (2,8 мм), Dahua DH-IPC-HFW2230SP-S-0280B, RVi-1NCT2120 (2.8) white, IPTRONIC IPT-IPL1080BM(2,8)P.
− Настройка по осям и вращение камеры: реализуется в IP-камере Dahua DH-IPC-HDW2230TP-AS-0280B, а также в IP-камере Dahua DH-IPC-HFW2230SP-S-0280B.
− Обеспечение малого расстояния до объекта наблюдения: реализуется в IP-камере Dahua DH-IPC-HDW2230TP-AS-0280B: для 2,8 мм: 0,6 м, для 3,6 мм: 1,1 м.
− Частота передачи видеопотока:
а) в IP-камере HiWatch DS-I200(D) частота до 25 кадров в секунду;
б) в IP-камере HiWatch DS-I400(С) есть два варианта: 20 к/с, 25 к/с;
в) в IP-камере Dahua DH-IPC-HDW2230TP-AS-0280B: для основного потока 1920 × 1080 (1 к/с – 25/30 к/с), для дополнительного потока 704 × 576 (1 к/с – 25 к/с), 704 × 480 (1 к/с – 30 к/с).
Также имеются различные камеры для беспилотных транспортных средств [14, 15]. Предложенный автором алгоритм и для них тоже подходит.
Эксперименты подтвердили, что система, в базу моделей которой заложен предложенный в настоящей статье алгоритм, позволяет гибко настраивать чувствительность с помощью pause, pdop[k] и stvol[k], обеспечивая устойчивость к шуму и решение поставленной задачи анализа.
Ниже отмечены свойства предложенного алгоритма детектирования движения.
При пороге pdop[k], близком к единице (например, pdop[k] ≥ 0.9), мелкие движения не детектируются и алгоритм устойчив к шуму. При параметре pdop[k], близком к нулю, происходит очень чувствительная детекция движения (даже небольшие движения фиксируются). Поэтому если в прикладной задаче надо фиксировать даже незначительные движения или движения мелких объектов, то параметру pdop[k] надо давать значения, близкие к нулю, и ствол stvol[k] брать мельче.
Если областью интереса охватываем далекие от камеры объекты, то параметры pdop[k], stvol[k] должны быть меньше, если близкие к камере объекты – то эти параметры должны быть больше.
Если надо детектировать движение крупного высокого объекта, высота которого заранее известна, то в stvol[k] должно быть больше строк, чем столбцов, то есть должно быть bn[k] > bm[k]. Причем в этом случае надо рассчитать количество строк bn[k] в зависимости от известной реальной высоты объектов наблюдения и удаленности объекта наблюдения от камеры.
Если надо детектировать движение крупного невысокого объекта, то в stvol[k] должно быть больше столбцов, чем строк, то есть должно быть bn[k] < bm[k].
Если надо детектировать движение, происходящее в вертикальном направлении области интереса, то в stvol[k] должно быть больше строк, чем столбцов, то есть должно быть bn[k] > bm[k]. Если надо детектировать движение, происходящее в горизонтальном направлении области интереса, то в stvol[k] должно быть больше столбцов, чем строк, то есть должно быть bn[k] < bm[k]. Наконец, если надо детектировать движение, происходящее в области интереса без учета приоритета его направленности, то stvol[k] может быть квадратным bn[k] = bm[k].
Чем большее движение считается допустимым в видеопотоке, тем крупнее должен быть параметр stvol[k].
Предложенный в настоящей статье алгоритм на ноутбуке с процессором AMD Ryzen 54600H with Radeon Graphics 3.00 GHz и оперативной памятью 16,0 ГБ (доступно 15,4 ГБ) обнаруживает недопустимые движения не более чем за 0,02 с при размере ствола 3x3 для матрицы области интереса размерностью 200x200, а допустимые в сотни раз быстрее. То есть пользователь видит результаты анализа видеопотока без задержек и «зависаний».
Заключение
В настоящей работе автором предложен новый алгоритм обнаружения недопустимого (нехарактерного, нетипичного) движения в видеопотоке без использования нейросетевых методов. Был предложен новый способ формирования изображения для анализа видеопотока на недопустимость (нехарактерность, атипичность), параметры оценки движения и логика контроля этих параметров. Предложенный подход к обнаружению нештатной (недопустимой, нехарактерной, атипичной) ситуации в видеопотоке позволил существенно сократить время ее обнаружения.
В работе автором также приведены рекомендации для разработки интерфейса системы для обнаружения недопустимого движения. Эти рекомендации могут быть использованы при разработке модулей для решения конкретных прикладных задач по обнаружению недопустимых движений.
Предложенный в настоящей работе алгоритм может быть использован для обнаружения недопустимого движения в видеопотоке, получаемом как со стационарной, так и с движущейся камеры. В настоящей работе выделены характеристики видеопотоков, которые возникают в прикладных задачах анализа и учитываются предложенным в работе методом, а также указаны соответствующие этим параметрам современные камеры, которые можно использовать для получения нужного для анализа видеопотока.
Библиографическая ссылка
Шустова Е.П. АЛГОРИТМ ОБНАРУЖЕНИЯ НЕДОПУСТИМЫХ ДВИЖЕНИЙ В ВИДЕОПОТОКЕ // Современные наукоемкие технологии. 2025. № 5. С. 97-106;URL: https://top-technologies.ru/ru/article/view?id=40396 (дата обращения: 12.06.2025).
DOI: https://doi.org/10.17513/snt.40396