ИНФОРМАТИКА
В. В. ГОРШЕНИН
АЛГОРИТМ КОДОВОЙ КНИГИ В ПРОТОТИПЕ СИСТЕМЫ СТЕРЕОНАБЛЮДЕНИЯ
Ставится задача стереонаблюдения, излагаются общие требования к системе стереонаблюдения. Проанализированы недостатки, обнаруженные в процессе эксплуатации первого созданного прототипа системы стереонаблюдения. Предлагается модификация прототипа с помощью алгоритма кодовой книги.
Ключевые слова: компьютерное зрение, стереозрение, видеонаблюдение, алгоритм кодовой книги.
Введение
Системы, использующие видеоаппаратуру для графической регистрации происходящих событий, принято называть системами видеонаблюдения. Основная цель использования видеонаблюдения — обеспечение безопасности. Системы видеонаблюдения стали применяться несколько десятилетий назад, претерпели за это время эволюционное развитие и на данный момент широко распространены за рубежом и в России. Современные системы видеонаблюдения способны работать в контрастных внешних условиях освещенности, при воздействии неблагоприятных факторов окружающей среды, способны охватывать наблюдением территорию большой площади. Неотъемлемой частью комплекса видеонаблюдения является человек. Только действия оператора видеонаблюдения позволяют среагировать на происходящее и принять необходимые меры по предотвращению нежелательных последствий. Высшим уровнем автоматического реагирования является определение наличия движения в кадре. При этом системы видеонаблюдения не могут количественно описать движение наблюдаемого объекта. Указанное обстоятельство обусловлено законами оптики: для одной камеры будут выглядеть «одинаковыми» и автомобиль, движущийся вдалеке, и пчела, пролетающая перед объективом. В данной работе предлагается способ улучшения систем видеонаблюдения — стереонаблюдение.
Термин «стереонаблюдение», используемый в рамках данной работы, сформулирован по аналогии с «видеонаблюдением» и означает применение систем стереозрения в задачах наблюдения [1]. Стереонаблюдение качественно отличается от видеонаблюдения тем, что позволяет не только производить видеорегистрацию событий в рамках наблюдаемой сцены, но и определять трехмерные координаты тех участков сцены, в которых происходят события (движение). Переход на использование систем стереонаблюдения позволит автоматически классифицировать наблюдаемые события на «разрешенные» и «запрещенные», а также реагировать на появление определенным образом (видеорегистрация, отправка сигнала оператору и т.п.). Выбор метода стереозрения среди других мето-
дов технического зрения для решения поставленной задачи объясняется следующим обстоятельством. Системы стерео- и видеонаблюдения используют одинаковую аппаратную базу и поэтому существующие системы видеонаблюдения могут быть улучшены установкой дополнительных камер и вычислительных модулей со встроенными алгоритмами стереозрения. Другие методы технического зрения [4] требуют для своей работы дополнительной лазерной, инфракрасной, ультразвуковой и т. п. «подсветки», поэтому их применение серьезно усложнит существующие системы наблюдения.
В данной статье представлены промежуточные результаты разработки программно-аппаратного комплекса системы стереонаблюдения с функцией автоматической классификации движения в рамках наблюдаемой сцены: обзор современных разработок в области систем видеонаблюдения; общая схема функционирования системы стереонаблюдения; реализация прототипа системы стереонаблюдения; недостатки первого прототипа, выявленные в ходе испытаний; модифицированный прототип системы стереонаблюдения.
1. Современные тенденции в области видеонаблюдения
В рамках изучения современных тенденций развития технологий видеонаблюдения [2] была рассмотрена продукция ведущих отечественных и зарубежных производителей систем видеонаблюдения и компонентов к ним: Вокорд
(www.vocord.ru, Россия), Новые Технологии (www.cvsnt.ru, Россия), komkom (www.comcom.ru, Россия), Wizebox (www.wizebox.ru, Россия), DSSL (www.dssl.ru, Россия), CNB Technology Inc. (www.cnbtec.com, Южная Корея), CBC Group (www.cbceurope.com, Япония), Korea Technology and Communication Co., Ltd. (www.ktnc.co.kr, Южная Корея), Axis Communications (www.axis.com/ru, Швеция), Seikou Optical Ltd. (www.seikou-opt.com, Япония), MC Electronics Co., LTD. (www.mcctv.com, Южная Корея), Gatsometer BV (www.gatsometer.com, Голландия) . К современным тенденциям в развитии технологий видеонаблюдения необходимо отнести следующие направления:
• использование систем с переменной частотой оцифровки;
• использование камер с переменным фокусным расстоянием;
• использование камер с изменяемым положением (поворот, наклон);
• применение тепловизоров в системах видеонаблюдения;
• построение географически распределенных многокамерных систем видеонаблюдения.
Системы с переменной частотой оцифровки [7] позволяют «захватывать» с максимальной частотой (до 50 кадров в секунду) кадры с той камеры, которая в данный момент фиксирует движение. Применение такого подхода позволяет оптимально перераспределять нагрузку на АЦП системы видеонаблюдения.
Совместное использование двух камер — обзорной и поворотной — позволяет реализовать возможность детального рассмотрения определенного участка
наблюдаемой сцены [8]. В окне обзорной камеры задается область, которая путем несложной процедуры калибровки создает связь координат с поворотной видеокамерой. При этом информация об объектах на изображении с обзорной видеокамеры используется для управления поворотной видеокамерой. Такое управление возможно только в режиме «on-line», при просмотре видеозаписи невозможно «приблизить» и рассмотреть желаемый участок.
Применение тепловизоров (видеокамер, работающих в инфракрасном диапазоне) позволяет точнее определить движущийся объект. Как правило, движущийся объект (человек, автомобиль) отличается по тепловому «портрету» от окружающей обстановки.
Географически распределенные системы видеонаблюдения предназначены для создания интегрированных распределенных систем безопасности. Подобная система интегрируется с системами контроля доступа, системами охранной и пожарной сигнализации, а также с другими автоматизированными системами управления и сбора информации, может использоваться на предприятиях, в крупных зданиях, магазинах, городских системах видеонаблюдения.
Существует целый ряд систем видеонаблюдения, предназначенных для определения параметров движения объекта в кадре. Классическим примером таких систем можно считать камеры автоматической фиксации превышения скорости автомобилем на дороге [9]. Относительно указанных систем необходимо отметить тот факт, что точность измерения достигается за счет использования дополнительной активной «подсветки»: лазерной, инфракрасной, электромагнитной, ультразвуковой. Применение активной «подсветки» повышает сложность системы и увеличивает ее стоимость. Данное обстоятельство может стать нежелательным при массовом внедрении.
Все вышеперечисленные подходы повышают надежность систем видеонаблюдения, не предлагая революционных решений. С этой точки зрения интересной является публикация компанией «Новые технологии» информации об испытаниях стереоскопической системы видеонаблюдения CVS-3D [10]. Подробной информации об этой разработке нет. По всей видимости, общее направление разработок компании «Новые технологии» совпадает с идеей автора данной работы.
На основании изложенной информации можно сделать вывод о том, что системы стереонаблюдения являются перспективными и требуют проведения исследований.
2. Система стереонаблюдения
Число различных конструкций фото- и видеокамер, разработанных на данный момент, велико. Тем не менее, при построении математической модели этих устройств все они сводятся к одному единственному устройству — пинхол-камере (от англ. «pinhole»). Пинхол-камера представляет собой светонепроницаемый ящик, в одной стенке которого сделано отверстие малого диаметра, а на противоположной стенке располагается экран для обзора проецируемого изображения. При этом результат съемки такой камерой полностью определяется взаимным расположением отверстия пинхол-камеры и экрана для проецирования изображения. Исчерпывающее описание математической модели камеры приводится в [4].
С каждой камерой связываются: система координат, матрица внутренних параметров, матрица внешних параметров, а также коэффициенты дисторсии, которые описывают оптические искажения, создаваемые линзами объективов. Матрица внутренних параметров описывает процесс проецирования наблюдаемой камерой сцены на плоскость изображения. Матрица внешних параметров описывает положение (смещение и поворот) камеры относительно некоторой внешней системы координат. Для определения значений матрицы внутренних параметров, матрицы внешних параметров, а также коэффициентов дисторсии проводится процедура калибровки камеры. Эта процедура выполняется автоматически с помощью специальной тестовой калибровочной мишени.
Рис. 1. Общий алгоритм работы системы стереонаблюдения
Стереокамера представляет собой систему их двух камер, закрепленных неподвижно друг относительно друга и наблюдающих сцену с близких ракурсов. Стереокамера описывается с помощью наборов внутренних и внешних параметров. Матрица внутренних параметров (фундаментальная матрица) описывает взаимное расположение двух камер стереопары. Матрица внешних параметров определяет положение стереокамеры относительно некоторой выбранной системы координат. Для определения значений внутренних и внешних параметров стереопары выполняется процедура калибровки стереокамеры, которая выполняется автоматически с использованием калибровочной мишени, аналогичной случаю с одной камерой.
Общий алгоритм работы системы стереонаблюдения представлен на рис. 1. Имея откалиброванную стереокамеру, можно вычислить трехмерные координаты объекта реального мира, наблюдаемого обеими камерами стереосистемы. Для этого необходимо выполнить сначала процедуру сопоставления точек (проекций объекта), а затем триангуляцию для определения координат искомого объекта. Процедура триангуляции является несложной задачей: располагая двумя лучами, необходимо найти точку пересечения данных лучей. Так как в общем случае лучи не пересекаются, то вместо точки пересечений можно искать середину
отрезка, перпендикулярного обоим лучам. Процедура сопоставления точек заключается в следующем: имея координаты точки искомого объекта на первом (левом) изображении стереопары, необходимо найти координаты точки проекции на втором (правом) изображении. Данную задачу нельзя решить исходя исключительно из геометрических соображений. Для правильного сопоставления необходимо искать совпадение точек в графическом смысле.
Задача сопоставления точек является сложной в силу присутствия шумов на изображении, а также того факта, что изображения получены с близких, но не совпадающих ракурсов. Также задача сопоставления усложняется тем ограничением, что в рамках поставленной задачи камеры, составляющие стереосистему, не обязательно имеют одинаковые технические характеристики: фокусное расстояние, угол обзора, разрешение, цветопередачу. Отсутствие ограничения на использование одинаковых стереоголовок позволит модернизировать существующие системы видеонаблюдения, а не заменять их полностью.
3. Первый прототип системы стереонаблюдения
Первый реализованный прототип системы стереонаблюдения был написан на языке программирования Си с использованием прикладной библиотеки OpenCV [5] и двух бытовых веб-камер (Logitech Optic Pro 9000) в качестве стереоголовок [6]. Прототип выполнял функции: калибровки каждой стереоголовки, калибровки стереокамеры, отслеживания движения в рамках наблюдаемой сцены, сопоставления характерных точек, восстановления трехмерных координат отслеживаемого объекта.
В классической задаче стереонаблюдения целью является построение карты глубины (height map) наблюдаемой сцены: для каждого наблюдаемого объекта вычисляется, на каком расстоянии от камеры он находится. В такой постановке задача требует значительных вычислительных ресурсов. В задаче стереонаблюдения вычисление полной карты глубины не требуется — достаточно определять координаты только движущихся объектов. Движущийся объект можно описать с помощью нескольких характерных точек и в дальнейшем выполнять процедуру сопоставления только для этих точек. При разработке прототипа было решено использовать итерационный пирамидальный алгоритм Лукаса — Канады (ЛК) [11] для сопоставления характерных точек на изображениях, получаемых с левой и правой камер. Указанный алгоритм был выбран по нескольким причинам: сочетает скорость и точность работы, неоднократно применялся и хорошо зарекомендовал себя при отслеживании перемещающихся объектов. Алгоритм Лукаса — Канады использует градиентный метод для поиска точки минимума целевой функции е, заданной следующим образом:
«І+Ші uy +Шу
e(d) = t(dx dy) = ^2 ^2 (I(xy) - J(x + dx y + dy))2.
X = Ux-Wx y=«y-Шу
Для прототипа системы стереонаблюдения был предложен модифицированный алгоритм ЛК, использующий целевую функцию следующего вида:
«1+^1 «У +ШУ
б(ё) = е(4 <1У)= ^ ^ (I(ху) - 3(х + 4 у + ¿у))2 + сБь(х + 4 у + <1У)2.
х=«х-шх У=«у-Шу
Второе слагаемое в выражении призвано учесть эпиполярное ограничение. Суть указанного ограничения в следующем. Имея заданную точку на первом изображении, на втором изображении можно определить отрезок, на который будет проецироваться луч, восстановленный из проекции на первом изображении. Для данного отрезка можно записать уравнения прямой Ь, которая проходит через него. Функция Оъ вычисляет расстояние от точки (х + ¿х у + ¿у) до прямой Ь на втором изображении. В выражение также включен весовой коэффициент с для балансирования слагаемых.
Рис. 2. Иллюстрация работы немодифицированного алгоритма ЛК
Для определения свойств модифицированного алгоритма Лукаса — Канады было проведено сравнительное тестирование. Целью сравнения являлось определение устойчивости и точности сопоставления точек в условиях зашумленного сигнала. В качестве поясняющего примера можно привести экмперимент, в котором с помощью откалиброванной стереокамеры были сняты два видеоролика — с левой и правой камеры — продолжительностью 18 секунд (262 кадра). Видеоролики содержат изображение комбинированной сцены, включающей объекты простой и сложной структуры. Видеоролики подавались на вход модифицированного и немодифицированного алгоритмов ЛК, работавших с одинаковыми параметрами. В качестве отслеживаемых точек указывалось 5 целей, заданных вручную (рис. 2,3). По окончании видеоролика оценивались критерии устойчивости и точности. Критерий устойчивости работы заключался в том, что алгоритм находил парную точку на втором изображении. Критерий точности — чтобы найденная точка соответствовала искомой — определялся визуально. Итогом сравнительного тестирования стало то, что немодифицированный алгоритм ЛК является устойчивым, но не точным. Модифицированный алгоритм Лукаса — Канады является устойчивым и точным.
При испытаниях первого прототипа были выявлены недостатки. Просчетом при проектировании является попытка находить и выполнять сопоставление
характерных точек для движущегося объекта. Даже при невысоких скоростях изображение перемещающегося объекта на отдельных кадрах видеоряда становится нечетким — «смазанным». Это уменьшает количество информации, содержащейся в фрагменте изображения вокруг характерной точки, процедура сопоставления точек начинает работать с ошибками, которые неизбежно влияют на качество работы всей системы в целом. Попытка повысить четкость движущегося объекта за счет уменьшения времени выдержки при съемке отдельного кадра может лишь от части решить проблему, так как «смазывание» возникает из природы самого движения. К техническим недостаткам необходимо отнести использование цветового пространства И,ОБ — изображения, получаемые с камеры, очень чувствительны к шумам. Указанные недостатки были учтены при разработке второго прототипа системы стереозрения.
4. Модификация прототипа
Основной идеей при модификации прототипа является переход от отслеживания характерных точек к отслеживанию контуров перемещающегося объекта. Для выделения контуров движущегося объекта последовательно были реализованы три способа: разность двух последовательных кадров; применение статистической модели; алгоритм кодовой книги (с^еЬоок). Изначально был реализован первый подход как наиболее простой, тем не менее результаты его работы оказались неприемлемыми. С целью улучшения была применена статистическая модель наблюдаемой сцены, которая улучшила общее качество работы, но не решила отдельные проблемы. В качестве итогового способа используется алгоритм кодовой книги, изначально разработанный для сжатия видеоданных и адаптированный к задаче определения движения.
Метод выделения движущегося объекта с помощью двух последовательных кадров заключается в следующем. Для двух последовательных кадров одного видеоряда вычисляется модуль разности значений яркости соответствующих пикселей. Далее выполняется фильтрация по порогу: области изображения, в которых модуль разности превосходит заданный порог, помечаются как области,
в которых присутствует движение. Остальные области отмечаются как пустые. Таким образом, формируется двухцветное изображение, маска, выделенные области в которой соответствуют движущимся объектам. Данный метод прост в реализации и не требователен к ресурсам памяти и процессора ЭВМ. Тем не менее, метод имеет серьезный недостаток — выделяются только края движущегося объекта. Это обстоятельство ограничивает применение данного метода в серьезных задачах.
Следующий метод использует предварительно накопленную информацию о наблюдаемой сцене — статистическую модель. Для каждого пикселя изображения в течение предварительного периода времени накапливаются статистические данные: среднее значение, среднее отклонение. Таким образом, в статистической модели для каждого пикселя определяется допустимая окрестность точки среднего значения яркости пикселя, накопленная за период обучения. Далее, в рабочем режиме, для текущего значение пикселя проверяется, попадает он в допустимую окрестность или нет. В случае, если значение яркости пикселя не попадает в допустимую окрестность, считается, что пиксель относится к движущемуся объекту. Таким образом, формируется двухцветная маска, помечающая движущиеся объекты. Статистическая модель является более совершенным способом по сравнению с покадровой разностью, так как учитывает особенности каждой конкретной сцены, позволяет непрерывно обновлять модель, учитывая плавные изменения наблюдаемой сцены, а также сглаживает искажения, вносимые зашумленным видеосигналом. Данный метод остается не требовательным к ресурсам ЭВМ, как и метод покадровой разности. Использование статистической модели имеет один недостаток — нельзя корректно обработать те пиксели изображения, которые имеют более одного устойчивого состояния. В качестве примера можно рассмотреть объекты, совершающие периодические движения: ветви деревьев, качающиеся под действием ветра, и т. п. Применение статистической модели для описания подобных объектов даст неверные результаты: в силу усреднения допустимая окрестность будет иметь слишком большой радиус и в нее будут попадать значения яркости пикселей, относящиеся к движущемуся объекту.
Устранить недостатки статистической модели позволяет метод кодовой книги [3]. В данном случае также создается модель наблюдаемой сцены. С каждым пикселем изображения соотносится набор допустимых интервалов яркости — кодовая книга. Формирование кодовой книги для каждого пикселя выполняется в течение предварительного периода времени согласно следующему алгоритму. Если текущее значение яркости пикселя точно попадает в один из существующих интервалов, то продолжить далее. Если текущее значение яркости пикселя попадает на границу интервала с учетом определенного допуска, то интервал необходимо увеличить в сторону расширения данной границы интервала. Если предыдущие условия не выполнены, то необходимо сформировать новый интервал, «накрывающий» текущее значение яркости пикселя. На рис. 4 представлен процесс формирования кодовой книги для одного пикселя изображения: дискретно изменяющийся с течением времени уровень яркости рассматриваемого пикселя постоянно «накрывается» интервалом из кодовой книги.
Уровень
яркости
пикселя
а о а о о а о а о о о а а
■я-я-тго О О
0 0 0 0000000000
□ в □го~о
Время
Рис. 4. Процесс формирования кодовой книги для одного пикселя
Каждому интервалу назначается атрибут — время последнего изменения, это позволяет отбрасывать устаревающие записи и поддерживать модель в актуальном состоянии. После того как для каждого пикселя изображения сформирована кодовая книга, система переходит в режим функционирования. Если текущее значение яркости пикселя попадает в один из интервалов кодой книги, то считается, что это элемент заднего фона. В противном случае пиксель помечается как элемент движущегося объекта. Таким образом, формируется двухцветная маска, помечающая движущиеся объекты (рис. 5, а).
а)
■ СарЬиге
■ '. ш
б)
Рис. 5. Результаты работы алгоритма кодовой книги
При периодическом обновлении кодовой книги во время работы алгоритма она приспосабливается к плавным изменениям наблюдаемой сцены. Применение данного метода требует большего объема памяти ЭВМ и вычислительных ресурсов процессора. Тем не менее, метод кодовой книги дает наилучшие результаты по выделению движущихся объектов.
В дополнение к методу кодовой книги в модифицированном прототипе системы стереонаблюдения используется обработка полученной маски с целью выделения компонент связности. Каждая выделенная компонента связности признается отдельным движущимся объектом. Для нее вычисляется точка центра масс — именно она используется для выполнения последующей триангуляции и восстановления трехмерных координат движущегося объекта (рис. 5, б). Помимо качественных изменений в прототип были внесены чисто технические: переход от использования цветовой модели RGB к модели YCrCb, использующей в качестве основного канала значение яркости объекта, а не его цвет. Было замечено, что шумы, создаваемые фотодатчиком камеры, в основном искажают цвет пикселя, а не значение его яркости. Поэтому канал яркости в модели YCrCb является более стабильным.
Список литературы
1. Горшенин, В. В. Модифицированный алгоритм Лукаса — Канады в задаче стереонаблюдения / В. В. Горшенин // Казан. наука. — 2010. — № 5. — С. 4-7.
2. Горшенин, В. В. Перспективы развития систем видеонаблюдения / В. В. Гор-
шенин // Казан. наука. — 2010. — № 6. — С. 7-10.
3. Kim, K. Real-time foreground-background segmentation using codebook model / K. Kim [et al.] // Real-time Imaging. — 2005. — Vol. 11, № 3. — P. 172-185.
4. Форсайт, Д. А. Компьютерное зрение. Современный подход / Д. А. Форсайт, Ж. Понс. — М. : Вильямс, 2004.
5. Bradski, G. Learning OpenCV: Computer Vision with the OpenCV Library /
G. Bradski, A. Kaehler, O’Reilly. — Sebastopol, California, USA, 2008.
6. Горшенин, В. В. Прототип системы стереонаблюдения / В. В. Горшенин // Современные проблемы математики : тез. 42-й Всерос. молодеж. школы-конф. — Екатеринбург : Ин-т математики и механики УрО РАН, 2011. — C. 283-286.
7. Динамическое управление частотой оцифровок [Электронный ресурс] / Офиц. сайт компании «Новые технологии». — Режим доступа: www.cvsnt.ru/technology_cvs.html#v07.
8. ActiveDome — инновационная функция для управления поворотными видеокамерами [Электронный ресурс] / Офиц. сайт компании «DSSL». — Режим доступа: dssl.ru/support/news/detail.php? ID=342& phrase_ id=335114.
9. Speed enforcement [Электронный ресурс] / Офиц. сайт компании «Gatsometer BV». — Режим доступа: www.gatsometer.com/web_ en/speed_ enforcement.
10. 3D видео в компьютерных телевизионных системах безопасности [Электронный ресурс] / Офиц. сайт компании «Новые технологии». — Режим доступа: www.cvsnt.ru/technology_cvs.html#v01.
11. Bouguet, J.-Y. Pyramidal implementation of the Lucas Kanade feature tracker description of the algorithm [Электронный ресурс] / J.-Y. Bouguet. — Режим доступа: robots.stanford.edu/cs223b04/algo_tracking.pdf