Всем привет!
Давненько я ничего не писала. Но у меня есть оправдание :). Во всём виноватa защита докторского минимума и следующий за ней отдых в Австрии (интересное видео из путешествия есть в моём телеграм канале). Теперь спешу порадовать вас новой статьёй. Сегодня мы будем обеспечивать охрану офиса, ведь речь пойдёт о детекции движения.
Предположим, что комнате установлена камера наблюдения. Нам необходимо обеспечить срабатывание сигнализации в случае появляния в кадре движущегося объекта. Вот пример:
То есть, снимается какая-то статическая сцена, в которой появляется человек. Его то мы и хотим обнаружить. Для решения этой задачи используется следующее предположение. В случае отсутствия движущегося объектa, кадры, следующие друг за другом, не отличаются друг от друга. Ну или слабо отличаются друг от друга. Что же это значит? Помните, мы говорили о том, что любое изображение — это таблица чисел , где каждая ячейка хранит цвет пикселя. Так вот, в таком случае, можно посчитать разницу между двумя следующими друг за другом кадрами. Если кадры друг от друга не отличаются, то в каждом пикселе получаем ноль:
А вот что произойдёт, когда неожиданно в кадре появляется человек:
В результирующей таблице разницы двух кадров появляются пиксели с ненулевым значением. Так вот, на основании количества ненулевых пикселей и их связанности друг с другом система принимается решение о срабатывании сигнализации.
Ну а теперь о том как обойти такую систему детекции движения. Если двигаться ооооочень медлено, то система практически не имеет шанса вас обнаружить. Ведь в таком случае два идущих друг за другом кадра практически одинаковые. Вот так вот.