В этой статье мы рассмотрим принципы использования программных детекторов движения, возможности и сферы их применения, ну и по традиции дадим рекомендации по проектированию и наладке систем видеонаблюдения, требующих использования детекции движения.
Что такое детекция движения
Детекция наличия движения – функция, решающая задачу оперативного визуального обнаружения тревожных событий на охраняемом объекте. Без неё сотрудники службы безопасности вынуждены были бы неотрывно следить за множеством изображений с камер на множестве мониторов. Автоматическое же обнаружение движения позволяет исключить человеческий фактор из процесса обработки тревожных событий, тем самым повышая общую эффективность всей системы видеонаблюдения и безопасности.
Здесь и далее мы говорим о детекции движения, основанной на анализе изображения. И её ни в коем случае не стоит путать с разного рода аппаратными детекторами вроде ИК-датчиков, радиодетекторов, ультразвуковых устройств и т.п. Аппаратные детекторы не имеют дела с изображением – и это статья не о них.
Вот как раз движение он и не обнаруживает. Детектор определяет факт изменения изображения, изменения в самой картинке. Наиболее распространенный способ – оценка изменения контрастности двух соседних пикселов, исходя из соображения, что движение объекта вызывает изменение освещённости пикселов на матрице.
При этом очень важно понимать, что картинка может меняться не только при возникновении движения, но и при изменении освещённости, появлении бликов, возрастании уровня шумов при наступлении ночи, даже при изменении цвета наблюдаемого объекта.
Типы детекторов движения
Детекторы движения (по изображению) принято делить на т.н. программные и встроенные в IP-камеры. Под программной понимают функцию детектирования, присутствующую в ПО видеонаблюдения. Встроенной называют функцию детектирования движения, реализованную в «прошивке» IP-камеры. На самом деле и то и другое – детекция программная, т.к. она происходит по некоему математическому алгоритму обработки изображения, и термин «встроенный» следует понимать как «с помощью ПО, работающего в самой камере».
Конечно, детекторы можно классифицировать и по типам применяемых алгоритмов и по каким-то другим признакам, но такие классификации вряд ли принесут пользу специалистам-практикам, занятым проектированием и наладкой систем видеонаблюдения.
Какая же разница между детекторами в камерах и детекторами в ПО? Разница заключается в следующем:
-
в камерах работа происходит с «сырым», необработанным, несжатым изображением. Детекторы в ПО имеют дело с дважды преобразованным (сжатие в камере –> декодирование в «софте») изображением;
-
детектору в ПО требуется минимум два кадра чтобы «увидеть» наличие движения. Детектору в камере вообще необязательно работать с кадрами – он может оценивать изменение освещенности непосредственно светочувствительных элементов матрицы;
-
детекторам в ПО в принципе не важен источник изображения – они работают со стандартным видеопотоком, который можно получать с любого видеоустройства. Детекторы в камерах работают только с теми самыми конкретными камерами, в которые они «зашиты».
Т.к. в силу специализации мы имеем дело, прежде всего, с детекцией в ПО видеонаблюдения, то дальше мы немного поговорим об особенностях программной детекции движения.
Особенности программной детекции движения
Ещё раз уточним, что речь идёт о функции детектирования движения в ПО видеонаблюдения, работающем на видеосервере. Теперь по порядку:
-
Детекция движения всегда производится на преобразованном изображении
Да, очевидно, что для работы с «картинкой» эту самую картинку надо получить, распаковав приходящий с камеры сжатый видеопоток. Т.к. при сжатии всегда происходит ухудшение качества изображения (пусть даже и незаметное для глаза), то и эффективность работы детектора должна быть ниже (по сравнению с детектором в камере). На практике, впрочем, разница редко заметна. -
Детекция движения значительно нагружает платформу видеосервера
Прежде всего нагрузка ложится на центральный процессор видеосервера. В основе детекции движения по видеоизображению лежит довольно сложный алгоритм с множеством операций. В дополнение к этому изображение обязательно нужно распаковать (в отличие, например, от процесса записи в архив, при котором распаковка не требуется).
Часто, с целью снижения нагрузки на платформу, в ПО видеонаблюдения для работы детектора используются не все приходящие от камеры кадры, а только опорные, т.н. I-кадры. Положительный эффект от этого действительно есть, но, как мы уже рассказывали в статье и показывали в видеоролике на YouTube, есть и сильная зависимость эффективности детекторов движения от параметров входящего видеопотока. -
ПО оценивает изменения контрастности, но могут использоваться и другие методы
Утверждение, честно говоря, нельзя считать проверенным, т.к. производители не спешат заявлять о подробностях, объявляя их коммерческой тайной. Остаётся надеяться, что кто-нибудь из разработчиков ПО приоткроет тайну и расскажет о своих «нестандартных» методах хотя бы в комментариях к этой статье. -
ПО может использовать «камерный» детектор
Да, действительно, многие ПО видеонаблюдения, даже имея собственные функции детектирования, могут уметь работать напрямую с детекторами движения, встроенными в камеру. Считается, что при этом повышается точность и оперативность обнаружения детектора (об этом рассказано выше - в разделе «Типы детекторов движения»). Возможно даже одновременное использование и «камерного», и встроенного в ПО детекторов. Вряд ли кому-то такое потребуется на практике, но сама по себе такая возможность интересна. -
В разных ПО — разные алгоритмы работы детекторов
К сожалению, мало что известно о принципах работы программных детекторов, т.к. производители считают эти принципы коммерческой тайной. Но наши тесты показывают, что различные ПО по-разному нагружают платформу (при сходных требованиях к функции обнаружения движения) — и это косвенно говорит о разнице в алгоритмах.
Итак, мы рассмотрели теоретические моменты. Далее перейдём к моментам практическим и более интересным.
Проблематика детекторов движения
Детекторы движения работают неидеально. И это нередко становится неприятным открытием для начинающих специалистов охранного видеонаблюдения. Все недостатки, «подводные» камни» и нарекания на работу детекции движения можно поделить на две категории:
-
Детектор плохо обнаруживает движение - велика вероятность пропуска цели;
-
Детектор обнаруживает слишком много движения - большое количество ложных срабатываний.
Давайте разберём их по порядку.
Детектор плохо обнаруживает движение
Как мы уже сказали, в основе детекции лежит поиск изменений на изображении, поиск изменения контрастности на соседних пикселях. Очевидно, что чем больше два разных кадра отличаются друг от друга, тем вероятнее сработает детектор. Но и наоборот — если изменения незначительны, то реакции детектора не будет. Неужели возможно такое, что движение объекта на самом деле есть, а изменений на изображении нет? Да, возможно по следующим причинам:
-
Объект по цвету, освещенности и прочим свойствам не отличается от обстановки, в которой он движется. Белый медведь на снегу, человек в зелёной одежде на траве, чёрная кошка в тёмной комнате — против них программный детектор будет бессилен.
-
Объект движется медленно, очень медленно. Настолько, что изменения контрастности пикселов сопоставимы с цветовым и яркостным «шумом», вызванным колебаниями освещённости, тепловыми процессами в матрице камеры и т.п. Если детектор не реагирует на эти шумы – не среагирует и на объект. Поэтому не стоит использовать детекторы движения для обнаружения весеннего половодья или движения ледников в горах.
В этих условиях возникает риск пропуска цели. При известной настойчивости всё-таки есть шанс настроить оборудование на обнаружение движения в этих условиях, понизив пороговые значения критериев, по которым определяется факт наличия/отсутствия движения. Но при этом возрастёт риск столкнуться со следующей, рассмотренной ниже проблемой.
Детектор обнаруживает слишком много движения
Иногда говорят, что «реагирует на всё подряд» или «срабатывает постоянно». Иными словами нарушителей и злоумышленников в поле зрения нет, а уведомления о движении идут непрерывным потоком. Да, конечно, при наступлении тревожного события детектор отреагирует, но его реакция растворится среди множества прочих уведомлений и останется незамеченной. Почему такое может происходить? Причина в итоге всего одна:
- В поле зрения камеры всегда происходят какие-то изменения. Шевелятся листья, переливаются бликами стекла, летают насекомые, ездят автомобили и т.д. и т.п. Такое может быть на любом наружном объекте, где присутствуют деревья и кустарники. Или в помещении, когда камера видит фрагмент окна, а через окно уличную суету.
Хорошо, если возможно убрать постоянно «шевелящийся» объект из поля зрения камеры или повернуть камеру так, чтобы колеблющаяся ветка, кусок окна или постоянно работающий рекламный экран вышли из поля зрения камеры. Если такой возможности нет, надо смотреть на возможность как-нибудь настроить параметры детектора. Далее об этом и поговорим.
Возможности настроек детекторов движения
Даже самые простые детекторы имеют возможность регулировать параметры их работы. Смысл этих регулировок - максимально снизить количество ненужных, «ложных» срабатываний. Разные производители ПО видеонаблюдения предлагают различные наборы параметров, доступные пользователю для настройки. Но все эти параметры в итоге можно поделить на следующие типы:
-
Настройки чувствительности
-
Настройки размера
-
Настройки зоны
-
Настройки перемещения
Расскажем о каждом параметре для настройки подробнее.
Настройки чувствительности
В большинстве ПО имеется возможность установки определенного значения степени изменения контрастности, фактическое превышение которого детектор будет считать движением. Конкретный смысл и механизм влияния этого параметра производители раскрывают крайне редко (ссылаясь на коммерческую тайну), предоставляя пользователю возможность задавать чувствительность в процентах или условных единицах. При установке нулевого значения детектор практически ни на что не будет реагировать, при выборе 100-процентного значения детектор будет реагировать на малейшие, порой не различимые глазом изменения «картинки». Подразумевается, что подходящие значения будет подбираться опытным путём.
Низкая чувствительность программного детектора движения - детектируются только крупные и резко выделяющиеся объекты.
Настройка размера
Здесь уже и проще, и понятнее. Пользователь задаёт размер области изображения (в пикселах или процентах от размера кадра) – и если количество пикселей, у которых изменилась контрастность меньше, чем заданное количество (как правило в %), то детектор проигнорирует это изменение. Таким образом можно исключить срабатывания на всякую «мелочь» вроде листвы, бликов, капель дождя, травы и т.п.
Настройки зоны
Тут совсем просто. Пользователь прямо на изображении выделяет область, в которой требуется либо детектировать движение, либо наоборот - детектор срабатывать не должен.
-
«зона детекции»
Зона, в которой программный детектор движения следит за наличием движения. Все, что происходит вне этой зоны не будет вызывать срабатывание детектора. Зоны детекции полезны, прежде всего, в случаях, когда по факту движения требуется подавать уведомление оператору, т.к. позволяет следить за каким-то конкретным объектом. -
«зона исключения»/«маска детектора»
Зоны или даже зоны, в которых детектор будет игнорировать движение, реагируя только на события вне заданной области. Зоны исключения чаще всего используются для настройки ведения записи по срабатываниям детектора, т.к. даёт возможность исключить запись архива по заведомо ненужным событиям.
Пример использования маски детектора:
На картинке слева детекция работает по всему кадру, что вызывает ложные срабатывания. На картинке справа наложены зоны исключения, в которых детекция не производится - нет ложных срабатываний.
Настройки перемещения
Довольно редко встречаемая категория настроек. Здесь имеется в виду возможность указать скорость перемещения и/или направление движения объекта. В теории это должно позволить исключить срабатывание детектора на слишком медленные или слишком быстрые перемещения либо наоборот – заставить детектор реагировать на эти перемещения. Настройки направления должны в результате давать возможность реагировать (или наоборот – не реагировать) на перемещения объектов в указанных направлениях.
По факту такие возможности используются довольно редко, т.к. если на объекте реально требуется следить за перемещениями объектов, то используется на порядок более эффективная и «продвинутая» видеоаналитика трекинга объектов.
Как мы уже сказали выше – разные производители ПО предлагают различные возможности настроек детекторов движения. Настало время посмотреть конкретно, что именно будет доступно при выборе того или иного ПО.
Возможности работы с детекторами в ПО разных производителей
Дальше мы посмотрим, что предлагают производители ПО в плане настроек детекторов движения в базовой поставке ПО (т.е. без учета возможностей дополнительных модулей аналитики). Т.к. все существующие на рынке программные продукты в пределах одной статьи рассмотреть невозможно, мы остановились на наиболее известных и распространённых продуктах.
ПО видеонаблюдения | Возможности настройки | Внешний вид |
---|---|---|
Axxon Next |
Контраст, размер, зоны исключения. |
Возможности настройки параметров детектора движения в ПО Axxon Next |
ITV Интеллект |
Контраст, размер, скорость и направление движения, зоны детекции*, зоны исключения. Индивидуальная настройка зон |
Возможности настройки параметров базового детектора движения в ПО Интеллект
Возможности настройки параметров зоны детектора движения в ПО Интеллект |
Milestone Xprotect |
Контраст, количество изменившихся в кадре пикселов, зоны исключения |
Возможности настройки параметров детектора движения в ПО Milestone Xprotect |
Macroscop |
Размер, зоны исключения. Индивидуальная настройка зон. |
Возможности настройки параметров детектора движения в ПО Macroscop |
Trassir |
Размер, зоны детекции. Индивидуальная настройка зон. |
Возможности настройки параметров детектора движения в ПО Trassir |
* в ПО Интеллект понятие зоны отличается от общепринятого: зона – не выделяемый регион изображения, а набор условий для выполнения особых реакций, которые всегда работают со всей областью изображения (подробнее см. документацию к ПО Интеллект).
Как используются детекторы движения
Задача любого детектора движения – выдать уведомления о возникновении движения в наблюдаемой зоне. Как и где использовать полученное уведомление – определяется возможностями конкретного ПО. В базовый набор возможностей обычно входит:
-
Фиксация уведомления в журнале событий;
-
Включение видеозаписи по срабатыванию детектора;
-
Вывод уведомления оператору на экран.
Не всегда, но очень часто присутствуют и другие возможности:
-
Отправка уведомления по e-mail;
-
Вывод камеры, с которой пришло уведомление, на тревожный монитор;
-
Включение видеозаписи с улучшенными параметрами изображения (скорость, разрешение и пр.), предустановленными именно для тревожных видеозаписей (пример — в нашем справочном пособии);
-
Замыкание тревожных выходов для управления внешними устройствами.
Однако применение детекторов этим не ограничивается. Существующая видеоаналитика в массе своей использует для работы именно детекторы движения. Детекторы оставленных, унесённых предметов, межкамерный трекинг, распознавание номеров, подсчёт количества объектов – всем этим аналитическим функциям в той или иной мере требуются сведения о факте перемещения объектов в кадре, которые предоставляют детекторы движения.
По этой причине нельзя построить видеосервер с аналитикой, но без функции детектирования изображения. Требования высокой производительности серверов для видеоаналитики вызваны в том числе и нагрузкой от программного детектора движения.
Внимательный читатель может спросить: если ПО умеет работать с «камерными» детекторами, не снизятся ли в этом случае требования к производительности платформы? Нет, не снизятся. Т.к. далеко не всегда и не все встроенные в камеры детекторы передают информацию об обнаруженном движении в том объёме, в котором она требуется для модулей видеоаналитики. Отсюда - необходимость использования встроенного в ПО детекторов и соответствующие требования к ЦП видеосервера.
Заключение
Обойтись без детекции движения в системе видеонаблюдения невозможно, их роль сложно переоценить. При этом детекторы нельзя просто поделить на два разных типа («камерный» или программный) – следует учитывать принципы работы детекторов в каждом конкретном ПО видеонаблюдения, дабы в итоге получить систему, оптимально подходящую для каждой конкретной задачи и конкретного объекта.
Именно поэтому в нашем автоматизированном сервисе расчёта не только учитываются особенности программных детекторов в разных ПО, но и присутствует опция выбора потока для детектирования и даже вариант использования встроенных детекторов IP-камер.
И, как обычно, наши советы и рекомендации:
-
Не хватает глубины архива при записи по детекции движения?
В первую очередь обратите внимание на работу и настройки детекторов движения. При настройке важно убедиться в работе детектора во всем диапазоне работы камеры, и в первую очередь в сложных условиях - снег, дождь, сложное и недостаточное освещение. Наверняка после этого фактическая глубина архива вырастет, а количество «ложняков» значительно уменьшится. Но не увлекайтесь слишком — увеличится риск пропустить нужное событие. -
Сомневаетесь в качестве интеграции камер? Требуется аналитика? В системе камеры разных марок и хочется удобно и единообразно настраивать детекцию?
Тогда очевиден выбор варианта с программным детектором движения. -
Подобрали камеры и рассчитали видеосервер, но заказчик просит заменить ПО?
Обязательно рассчитайте видеосервер заново — разница в работе детекторов существенно влияет на требования к платформе. -
Не хотите зависеть от параметров потока детекции движения?
Рассмотрите вариант использования «камерных» детекторов. Но не забудьте уточнить их поддержку в выбранном ПО. -
Не знаете, что всё-таки выбрать - программную детекцию или встроенную в IP-камеры?
Рассмотрите вариант использования части камер — встроенного детектора движения, а для другой части — программного. Программные продукты ведущих производителей позволяют это реализовать. -
Хотите знать что предшествовало тревоге, и что было после?
Для этого существуют функции пред- и постзаписи. Первая означает наличие программного буфера, с помощью которого записанное «по движению» видео начинается не с момента регистрации движения, а за несколько секунд до него. Вторая позволяет закончить запись спустя несколько секунд уже после прекращения срабатывания детектора. В результате — при анализе архива — можно увидеть как само тревожное событие, так и ситуацию до и после него.
Наша компания бесплатно консультирует специалистов по проектированию систем видеонаблюдения, а также проводит аудит спецификаций проекта, который избавит вас от рисков совершить ошибку при выборе проектного решения. Прислать запрос можно на email: info@videomax.ru либо связаться с нами по бесплатному телефону 8 800 302-55-46.