Научная статья на тему 'Виртуальный прибор для систем видеомониторинга'

Виртуальный прибор для систем видеомониторинга Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
216
213
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Виртуальный прибор для систем видеомониторинга»

Бободжонов Д.А., Волков С.В., Чапаев В.С.

Пензенский государственный университет

ВИРТУАЛЬНЫЙ ПРИБОР ДЛЯ СИСТЕМ ВИДЕОМОНИТОРИНГА

Автоматические и автоматизированные системы видеомониторинга являются одной из ключевых составляющих современных комплексных систем безопасности. Задача видеомониторинга подразумевает визуальный контроль заданной области пространства при помощи одной или нескольких видеокамер, позволяющий сохранять и просматривать цифровые видеоданные, а также постоянно оценивать состояние контролируемой территории, выделяя так называемые охранные события, заключающиеся в тех или иных изменениях наблюдаемой обстановки. Современная система видеомониторинга аккумулирует в себе значительное количество различных технологий компьютерного зрения, включая как собственно технологии видеонаблюдения, так и технологии OCR и биометрические технологии, и ряд других. Таким образом, технология интеллектуального видеомониторинга должна включать следующие основные элементы и программно-алгоритмические модули:

• визуальные датчики различного типа (ТВ, ИК и др.) для дистанционного видеонаблюдения;

• средства распределенного сбора информации, сжатия, обработки и передачи цифровой видеоинформации по локальным и глобальным сетям в реальном времени;

• автоматическое выделение объектов интереса (люди, транспортные средства, другие объекты);

• автоматическое слежение за движущимися объектами в зоне наблюдения;

• биометрическое распознавание персонала, биометрический контроль доступа в критические зоны объекта наблюдения;

• автоматическую идентификацию транспортных средств, грузов и оборудования на основе распознавания идентификационных меток (регистрационных номеров, штриховых кодов, других технологических маркировок);

• методы оценки сценариев поведения наблюдаемых объектов и групп объектов;

• формирование «тревожных» сообщений оператору в случае реализации неблагоприятных или нестандартных сценариев развития событий в зоне видеонаблюдения;

• программно-аппаратные средства для реализации методов и алгоритмов сбора и обработки видеоинформации.

Технологии Nationallnstruments, с применением среды графического программирования Labview, позволяют реализовывать сложные интеллектуальные системы видеомониторинга различного назначения, включающие в себя все выше перечисленные элементы и программно-алгоритмические модули.

Постановка задачи: реализовать видеомониторинг контролируемой зоны (неохраняемая автостоянка,

склад готовой продукции, офисное помещение и т. д.) с применением доступных для обычного пользователя средств. При обнаружении движения в контролируемой зоне система должна включить видеозапись происходящих событий и оповестить оператора по GSM-каналу. В качестве визуального датчика используем обычную USBWeb-камеру. Для оповещения оператора используем GSM-модем или сотовый телефон, подключенный к USB входу персонального компьютера, на котором и будет работать разработанный виртуальный прибор. Общий вид предложенной системы представлен на рисунке 1.

Рисунок 1

Разрабатываемый виртуальный прибор должен осуществлять последовательную обработку кадров изображения, делаемых Web-камерой. По результатам обработки принимается решение о наличии движения в контролируемой зоне. В случае распознавания движения включается узел видеозаписи и узел GSM-оповещения. Обобщенный алгоритм работы ВП представлен на рисунке 2. Алгоритм предусматривает регулируемую задержку включения Web-камеры для исключения ложного срабатывания детектора движения при возможном пересечении контролируемой зоны самим пользователем при первоначальном запуске ВП. Далее происходит инициализация подключенной к персональному компьютеру Web-камеры и делаются снимки контролируемой зоны с заданным интервалом времени. ВП сравнивает полученные от Web-камеры кадры и выводит результат сравнения на лицевую панель ВП. Если сравниваемые кадры идентичны -результирующий кадр имеет пиксели с нулевой интенсивностью по освещенности (черный фон) . Любое изменение одного из кадров даст изменение интенсивности соответствующих пикселей результирующего кадра. Параллельно с операцией сравнения выполняется расчет коэффициента корреляции Ккорр. двух соседних кадров. Значение Ккорр. сравнивается с заданным пользователем порогом. Порог определяет чувствительность детектора движения и вводится для исключения его ложных срабатываний, например, при медленном изменении освещенности контролируемой зоны в течение суток. В конце проверяется состояние кнопки «STOP» на лицевой панели виртуального прибора, если кнопка нажималась в процессе работы ВП, то происходит остановка работы ВП.

Рисунок 2

Для реализации разработанного алгоритма используем среду графического программирования Labview 8.6. Лицевая панель ВП имеет две вкладки, на одной размещены ручки оперативного управления и индикаторы, на другой элементы предварительной настройки рисунки 3-4.

УОРАВДЕЧ^Б: j ( ~~ ' ~~ [УПРАВЛЕНИЕ || НАСТРОИКИ ~[~

КАДГ I HAtPt

Рис.3 Рис.4

Отдельные узлы алгоритма можно последовательно реализовать и протестировать на работоспособность. Далее необходимо объединить узлы в одну блок-диаграмму и выполнять операции в цикле по условию WhileLoop.

Для работы с изображениями в Labview есть специальная библиотека IMAQVision, в которой собраны различные функции, позволяющие оперативно решать поставленные задачи по обработке изображений. Для организации управления USBWeb-камерой необходимо зарезервировать в памяти компьютера место для временного хранения кадров изображения (функция IMAQCreate). Для получения снимка изображения с камеры используется функция IMAQUSBSnap, где полученное изображение с именем image показывается на индикаторе лицевой панели ВП. В нашем случае необходимо выбрать параметры получаемого изображения (GrayscaleU8) и записать полученное изображение в сжатый файл для дальнейшей его обработки (IMAQWriteFile) рисунок 5.

В соответствии с разработанным алгоритмом ВП должен сравнить полученные камерой кадры, определить коэффициент корреляции. Для сравнения двух соседних кадров используем функцию IMAQAbsolutedifference рисунок 6. Результат работы функции выводится на индикатор лицевой панели ВП. Функция Absolutedifference осуществляет попиксельное вычитание изображений. Результат операции берется по модулю.

Для расчета коэффициента корреляции соседних кадров необходимо полученные кадры преобразовать в массивы интенсивностей пикселей с помощью функции IMAQImageToArray, на выходе которой получается двумерный массив пикселей. Расчет коэффициента корреляции выполняется соответствующей функцией, на вход которой необходимо подавать одномерные массивы данных. По этой причине используем функцию преобразования двумерного массива данных в одномерный массив ReshapeArray. Полученный результат - значение коэффициента корреляции - сравнивается с устанавливаемым пользователем порогом рисунок 7. При абсолютно идентичных кадрах Ккорр.=1.

Рисунок 7

Преобразование двумерного массива интенсивностей пикселей в одномерный происходит с учетом разрешения кадра, т.е. определяется общее количество пикселей в кадре. Для кадров изображения с разрешением 640х480 общее число пикселей рано 307200.

При получении Ккорр. ниже установленного порога, программа переходит к выполнению подпрограмм видеозаписи avi-файла и GSM-оповещения пользователя о наличии движения в контролируемой зоне.

Узел видеозаписи изображения - это отдельная подпрограмма, выполняемая только в момент срабатывания детектора движения. Для управления началом выполнения подпрограммы ее следует поместить в структуру CASE и управлять логическим сигналом с выхода детектора движения. Организация видеозаписи предусматривает последовательное выполнение нескольких операций. Во-первых, функцией USBEnumerateCameras создается список всех доступных, подключенных к USB камер. Далее функцией IndexArray выбираем для работы одну из камер, создаем для нее сессию USB и конфигурируем ее для приема данных с камеры (USBInit, USBGrabSetup). Для сборки кадров необходимо использовать тактированный цикл TimedLoop, который выполняет итерации с заданной фиксированной периодичностью. Это необходимо для того, чтобы записываемые avi-файлы воспроизводились с реальной скоростью. Сборку кадров в цикле осуществляет функция USBGrabAcquire, на выходе которой формируется кадр. Получаемые кадры отображаются на индикаторе лицевой панели ВП в момент процесса видеозаписи. Для успешной сборки и записи кадров необходимо выполнить еще два условия. Во-первых, нужно зарезервировать область памяти персонального компьютера для временного хранения собираемых кадров с помощью функции IMAQCreate. Во-вторых, с помощью функции IMAQAVICreate необходимо создать avi-файл со всеми атрибутами для записи: имя файла, путь для расположения, используемый кодек, параметры компрессии, число кадров в секунду. Непосредственно запись кадров в avi-файл происходит в цикле, с помощью функции IMAQAVIWriteFrame. После завершения записи необходимо закрыть созданный avi-файл (AVIClose), закрыть USB сессию (USBClose) и очистить память от временных файлов (IMAQDispose). Вариант организации видеозаписи приведен на рисунке 8.

При организации системы видеомониторинга необходимо учитывать несколько факторов. Первое - во время работы системы детектор движения может срабатывать несколько раз, и желательно получать видеоинформацию о каждом таком случае. Структура на рис. 8 создает один avi-файл, перезаписывая

его каждый раз при очередном срабатывании детектора движения. Второе - при создании каждый раз новых видеофайлов необходимо осуществлять контроль занимаемого ими места на диске персонального компьютера, для исключения переполнения жесткого диска ПК. Желательно, чтобы пользователь мог сразу ограничить максимальный размер занимаемого видеофайлами дискового пространства. В данном случае локальная задача состоит в том, чтобы после каждой видеозаписи формировать новое имя в пути для записи avi-файла и одновременно подсчитывать общий размер уже записанных видеофайлов.

Формирование имени видеофайла удобно осуществлять в основном цикле работы ВП с использованием сдвигового регистра. На рисунке 9 показан участок блок-диаграммы, реализующий данную задачу.

Очередное срабатывание детектора движения прибавляет единицу к номеру следующего записываемого avi-файла. Функция NumberToDecimalString преобразует номер в строку, которая затем объединяется со строкой «.avi» оператором ConcatenateString.

Контроль объема записываемых видеофайлов осуществляется с использованием сдвигового регистра в основном цикле работы ВП, где и происходит накопление их объема. Получение информации о размере записанного видеофайла выполняется с помощью функции GetFileSize рисунок 10.

Рисунок 10

В LabVIEWIMAQVISION есть еще одна полезная функция для определения установленных кодеков в операционной системе персонального компьютера IMAQAVIGetFilterNames. Пользователь разрабатываемого ВП может самостоятельно определить наличие в системе тех или иных кодеков и использовать их по выбору для сжатия записываемых видеофайлов.

В Labview имеются функции последовательной коммуникации. Передача данных по каналам последовательной связи была и остается наиболее распространенным способом взаимодействия компьютера и периферийных устройств. При этом в качестве основных протоколов обмена данными часто используются RS-232 и RS-485. В основе их работы лежит последовательная передача данных от передатчика к приемнику по двум проводам. Каждый передаваемый символ упаковывается в кадр символа, состоящий из одиночного стартового бита, 8 бит данных, бита четности и заданного числа стоповых битов. Функции последовательной коммуникации Labview являются специализированными функциями VISA для последовательных портов. VISA - это стандартная архитектура виртуальных приборов (оболочка драйверов для стандартизации работы с различными типами интерфейсов: GRIB, PXI, VXI, Serial.

Узел оповещения по GSM-каналу реализован, как и узел видеозаписи, в CASE-структуре рисунок 11.

Функция VISA Find Resource - этофункцияпоискаресурсов, котораявыдаетсписок (interface) всехре-сурсов VISA системычерезузелсвойств Property Node. Далее в цикле происходит конфигурация последовательного порта. В нашем случае необходимо сконфигурировать последовательный порт для общения с GSM-модемом по UART-интерфейсу. Общение с модемом происходит посредством АТ-команд. Перечень доступных для используемого модема АТ-команд, как правило, приводится в предоставляемой производителем технической документации на модем. Имеется ряд общепринятых команд, которые возможно использовать для организации GSM-оповещения. Например, команда «ATDL;» - набор последнего набранного номера, «ATDI<n>;» - установление соединения по абонентскому номеру <n>. Имеются команды по отправке текста SMS на указанный абонентский номер. В разрабатываемом ВП по умолчанию используется команда набора последнего набранного модемом номера. Перед применением GSM-оповещения в ВП необходимо заранее произвести в модеме или на сотовом телефоне звонок на номер, который в дальнейшем будет использоваться виртуальным прибором для GSM-оповещения. Функция VISAWrite производит последовательную запись сформированной в буфере АТ-команды в прибор (модем), подключенный к выбранному пользователем интерфейсу (по умолчанию СОМ1). Управление циклом осуществляется через локальную переменную «GSM ОПОВЕЩЕНИЕ». Далее функция VISAClose закрывает сессию работы с модемом до очередного срабатывания детектора движения.

Демонстрация работы виртуального прибора в системе видеомониторинга представлена на рисунке

12. Разработанный виртуальный прибор для систем видеомониторинга и его экспериментальные тесты наглядно демонстрируют возможности применения среды графического программирования Labview. Имеющийся в Labview инструментарий значительно упрощает реализацию сложных задач по цифровой обработке изображений. Алгоритмы, используемые при построении виртуального прибора, могут быть применены в других системах цифровой обработки данных, системах технического зрения, системах безопасности с применением цифровой обработки изображений.

Рисунок 12

ЛИТЕРАТУРА

1. Трэвис Дж., Кринг Дж. LabVIEW для всех. - МДМК-Пресс, 2008. - 880 с.

2. Суранов А.Я. LabVIEW 8.20: Справочник по функциям. - М.:ДМК-Пресс, 2007. - 536 с.

3. Визильтер Ю.В., Желтов С.Ю., Князь В.А., Ходарев А.Н., Моржин А.В. Обработка и анализ цифровых изображений с примерами на LabVIEW IMAQ Vision. - М.: ДМК Пресс, 2007. - 464 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.