К полезным изменениям, как правило, относятся:
- движение людей, автотранспорта;
- открытие или закрытие дверей, окон;
- изменение искусственных условий освещённости (включение или выключение света в помещении);
- обнаружение оставленных и унесённых предметов.
Также существует ряд изменений, на которые детектор движения не должен реагировать:
- помехи, связанные с технической стороной обеспечения видеонаблюдения (искажения при формировании изображений, наводки сетей питания, дрожание камеры);
- естественные помехи (дождь, снег, движение листвы, тени);
- изменение естественных условий освещённости (суточный солнечный цикл, перекрытие естественных источников света облаками).
Рис. 1. Структура классического детектора движения
Классический детектор движения изображён на рисунке 1. Он имеет каскадную структуру и состоит из последовательно-соединённых модулей, каждый из которых реализует свою функцию.
На вход детектора последовательно подаются изображения с одного видеоканала. Модулем, выполняющим предварительную обработку видеопоследовательности, является модуль вычитания фона. В результате получается бинарное (маркированное) изображение, на котором каждый пиксель со значением 1 принадлежит переднему плану, а пиксель со значением 0 - заднему плану.
Маркированное изображение подаётся на дальнейшую обработку в модуль сегментации объектов. На этапе сегментации область переднего плана делится на регионы. Определяются основные характеристики регионов: координаты и размер.
Множество найденных на изображении регионов поступает на обработку в модуль сопровождения объектов. В данном модуле происходит межкадровое связывание найденных регионов, являющихся изображением одного и того же физического объекта. Объекту присваивается уникальный идентификатор, запоминается траектория движения и размер.
В изложенной структуре детектора движения самым «узким» местом является модуль вычитания фона. На его работу тратится около 80 процентов процессорного времени, а на все остальные модули - 20 процентов. Поэтому автором была предложена альтернативная реализация детектора движения. Основная каскадная структура была сохранена. При этом добавлен модуль детектирования оставленных и унесённых предметов. Исходными данными для него служит список найденных объектов. По характеру движения определяется принадлежность объекта к оставленным предметам. В случае положительного решения информация об объекте подаётся в модуль принятия решений. Также информация о данном объекте передаётся в модуль вычитания фона, в котором происходит обновление модели заднего плана - объект становится частью заднего плана. То есть устанавливается обратная связь между частями каскада модулей.
Рассмотрим преимущества, которые даёт данная организация детектора движения. Для поддержания модели заднего плана в актуальном состоянии требуется достаточно частая процедура обновления модели. Данная процедура происходит на каждом кадре, что влечёт за собой увеличение вычислительной нагрузки на процессор. Вычислительную сложность можно снизить за счёт обновления модели с некоторой периодичностью. Однако в этом случае может потеряться информация о детектируемых в момент обновления объектах. При обратной связи обновление модели частично становится событийным, то есть модель обновляется именно в той части изображения, которую в данный момент и необходимо обновить.