Научная статья на тему 'Обнаружение лиц людей в системах видеонаблюдения'

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

CC BY
185
38
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВИДЕОНАБЛЮДЕНИЕ / ОБНАРУЖЕНИЕ ЛИЦ / ГРАФИЧЕСКИЙ УСКОРИТЕЛЬ / ОПТИМИЗАЦИЯ / NVIDIA CUDA

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Зиновьев Иван Игоревич, Шамин Павел Юрьевич

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Зиновьев Иван Игоревич, Шамин Павел Юрьевич

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

The problem of real-time face detection in high-resolution video stream is relevant for today's video surveillance systems. The original solution of the problem with the use of the graphics accelerators compute capabilities is proposed. The tests of the resulting software implementation in the real world are shown.

Текст научной работы на тему «Обнаружение лиц людей в системах видеонаблюдения»

4

а)

б)

STM

Альтернативный алгоритм

Альтернативный алгоритм

Рис. 10. Диаграммы сравнения реализаций: по скорости (а) и точности (б)

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

Предложенные решения пригодны как для программной, так и для аппаратной реализации на микросхемах программируемой логики.

Нисколько не отрицая достоинства и возможности чисто технологических улучшений, авторы обращают внимание читателей на возрастающую значимость системного подхода к проблеме повышения производительности, в особенности для предметной области ВИСУ.

Дополнительная информация о лаборатории ВИСУ и деятельности ее коллектива доступна в сети: http://aivt.ftk. spbstu.ru/education/labs/intelsys/

список литературы

1. Джонс, М.Т. Программирование искусственного интеллекта в приложениях [Текст] / М.Т. Джонс. -М.: ДМК Пресс, 2006. -312 с.

2. Highest MHz Does Not Mean Highest Performance [Text] / Tensilica White Paper. -24 Oct. 2008. -P. 1-8.

3. Сэвидж, Дж. Сложность вычислений [Текст] / Дж. Сэвидж. -М.: Факториал, 1998. -368 с.

4. Кофман, А. Введение в теорию нечетких множеств [Текст] / А. Кофман. -М.: Радио и связь, 1982. -432 с.

5. Хохлов, Б. Обработка сигналов YUV в однокристальном процессоре иОСШ [Текст] / Б. Хохлов // Радио. -2009. -№ 2. -С. 10-13.

УДК 004.932.72

обнаружение лиц людей в

Поиск лиц людей на изображении применяется как в системах безопасности, так и в индустрии обслуживания и развлечения. Поэтому не удивительно, что на текущий момент предложены разнообразные варианты решения этой задачи. По результатам исследования, представленного в работе [4], можно сделать вывод, что наибольший

И.И. Зиновьев, П.Ю. Шамин

системах видеонаблюдения

интерес из открытых алгоритмов детектирования лиц людей на изображении представляет алгоритм, представленный в 2001 г. Полом Виолой и Майклом Джонсом [7].

Данный алгоритм успешно справлялся с задачей детектирования лиц людей в видеопотоке в реальном времени. Однако в связи с развитием

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

Рассмотрим основные способы решения данной проблемы.

1. Выделение части кадра для поиска лиц. Такой подход фактически не решает проблемы, но позволяет использовать существующий алгоритм при работе с кадрами видеопотока высокого разрешения.

2. Увеличение минимального размера искомого лица. Как известно, алгоритм Виола-Джонса работает по принципу «скользящего окна», т. е. последовательно анализирует все изображение участками определенного размера, равного размеру лица. Таким образом, чем больше размер искомого лица, тем меньше необходимо сделать итераций при анализе одного кадра. Недостаток такого подхода - исключение из рассмотрения части лиц, которые могут присутствовать в кадре.

3. Анализ цветовой информации изображения: выделение участков близких по цвету к коже людей [3]. Благодаря этому из рассмотрения обычно исключается значительная часть кадра, что приводит к ускорению анализа изображения. Но возможно ложное исключение участков, содержащих лица. Кроме того, использование цветного изображения сужает рамки применения такого подхода, поскольку многие видеокамеры, особенно высокочувствительные, предназначенные для работы в условиях низкой освещенности, дают только серое полутоновое изображение. Очевидно, что данный подход не применим и для работы с ИК-камерами и картинкой с электронно-оптических преобразователей (ЭОП).

4. Реализация параллельного алгоритма детектирования лиц людей на центральном процессоре (CPU) [2]. Получаем существенное ускорение алгоритма в зависимости от числа ядер у процессора. К недостаткам можно отнести небольшое число ядер у процессоров, что ограничивает максимально достижимое ускорение. Тем более что в реальной системе редко возможно выделение всех ядер центрального процессора (процессоров) для решения всего одной задачи.

5. Логическим продолжением предыдущего подхода является реализация параллельного алгоритма детектирования лиц людей на графической карте (графический ускоритель, GPU) [5]. Все современные видеокарты поддерживают ту

или иную технологию GPGPU, позволяющую использовать графический процессор видеокарты для общих вычислений, которые обычно проводит центральный процессор.

В статье предлагается оригинальная реализация параллельного алгоритма Виола-Джонса для архитектуры NVIDIA CUDA.

Подходы к распараллеливанию алгоритма Виола-Джонса подробно рассмотрены в работе [5]. В данной статье также рассматривается вариант, в котором каждый поток анализирует свой участок изображения. Несмотря на свои недостатки, такой подход является самым простым для понимания и реализации, и, как будет показано далее, довольно эффективным на практике.

В качестве эталонной взята реализация алгоритма Виола-Джонса для CPU из открытой библиотеки OpenCV. Это позволило сохранить возможность использования каскадов классификаторов из этой библиотеки.

На рис. 1 приведена обобщенная блок-схема работы полученного алгоритма при анализе видеопотока. На первом этапе происходит загрузка каскада классификаторов в память графического ускорителя. Так как все потоки одновременно выполняют одинаковые этапы каскада, но для разных участков изображения, то его целесообразно разместить в константной памяти GPU. Это объясняется тем, что при одновременном обращении к одинаковым адресам данного вида памяти разными потоками достигается максимально эффективное ее использование. Но объем константной памяти ограничен 64 Кбайтами, поэтому формат хранения в памяти каскада классификаторов переработан, подобраны минимально возможные типы данных для хранения его параметров. После проведенных действий в константной памяти GPU возможно размещение каскада классификаторов, в состав которого входит до 2150 слабых классификаторов.

Следует заметить, что все буферы в памяти GPU выделяются один раз на этапе инициализации детектора, что немаловажно при обработке видеопотока. Анализируемое изображение копируется в текстурную память, что позволяет реализовать эффективный алгоритм его масштабирования с аппаратной билинейной фильтрацией.

На следующем этапе для разных масштабов изображения выполняется ядро детектирования (рис. 2). В процессе детектирования каждый поток сохраняет результат своей работы в выделен-

Начало

Каскад классификаторов, минимальный и максимальный

размеры искомых лиц, шаг масштабирования изображения, коэффициент группировки

I

Преобразование каскада классификаторов и загрузка его в константную память GPU

Выделение буферов в памяти GPU

Анализируемое изображение (кадр)

т

Загрузка изображения в текстурную память GPU

Выполнение ядра детектирования для определенного масштаба изображения

Нет

Выгрузка промежуточных данных в оперативную память (zero сору)

Группировка найденных лиц и фильтрация результатов с учетом коэффициента группировки

Вывод координат найденных лиц

Рис. 1. Обобщенная блок-схема алгоритма

Рис. 2. Процесс «Выполнение ядра детектирования»

ную на этапе инициализации область глобальной памяти. Промежуточные данные накапливаются в памяти GPU. Для ускорения работы реализована их асинхронная загрузка в оперативную память компьютера (технология «zero copy»). После завершения анализа очередного кадра в оперативную память выгружаются все оставшиеся к этому моменту промежуточные результаты. Дальнейшая обработка полученных результатов, связанная с группировкой лиц, найденных в разных масштабах, производится на центральном процессоре. Такой подход позволяет минимизировать негативное влияние задержек, возникающих при пересылке данных между оперативной памятью и памятью графического ускорителя, на общее время работы алгоритма.

При разработке ядра детектирования была поставлена основная задача сделать работу мультипроцессоров видеокарты максимально независимой друг от друга, чтобы минимизировать

пересылку данных через медленную глобальную память. Для достижения поставленной цели в разделяемую память мультипроцессора из текстурной памяти считывается участок изображения, достаточный для обеспечения исходными данными всех его потоков. Размер участка зависит от выбранного размера блока потоков (обозначим его как [Бх]х[Бу]) и размера окна детектирования, на которое натренирован каскад ([^Х]х[^У]) и равен [Бx+Wx]x[Бy+Wy] пикселей (рис. 3). Допустим, что Бх = Бу = 16, а Wx = Wy = 20, тогда потребуется всего (16+20)х(16+20)х4 = 5184 байта разделяемой памяти для обеспечения 256 потоков исходными данными.

Продолжением выбранного подхода стал отказ от вычисления интегрального изображения для всего кадра в целом. Так как цель - добиться независимой работы мультипроцессоров, было решено использовать «частичное интегральное изображение». Это означает, что производится вычисление независимых интегральных изображений для частей изображения уже размещенных в разделяемой памяти мультипроцессоров. Каждый мультипроцессор сначала выполняет суммирование своего участка изображения по строкам, затем - по столбцам. Такая реализация позволяет избежать лишних копирований в глобальную память, но имеет недостаток вычисления интегрального изображения для перекрывающихся участков изображения (см. рис. 3) несколько раз.

Описанные выше особенности реализации позволили значительно сократить число обращений к медленной глобальной памяти, что положи-

тельно отразилось на быстродействии алгоритма. Главный недостаток такого подхода - необходимость выполнения всех действий в рамках одного ядра. Это приводит к увеличению количества используемых регистров мультипроцессоров, что ограничивает число потоков, которые могут на нем выполняться. Частично проблема решается ограничением числа используемых регистров в опциях компилятора до 20 и подбором размера блока потоков. Экспериментальным путем установлено, что оптимальный размер блока потоков равен 16^16 = 256 потоков.

Предложенный алгоритм внедрен в аппаратно-программный комплекс автоматизированного распознавания и биометрической идентификации людей (АРБИЛ), разрабатываемый в рамках опытно-конструкторской работы по теме «Разработка технических средств распознавания образов по анализу видеоизображения для автоматизации работы оператора» [1].

В августе 2011 г. проведены испытания комплекса в реальных условиях метрополитена Санкт-Петербурга. В ходе эксперимента камеры размещались на турникетах и были настроены на съемку с разрешением 1920x1080 с частотой 12,5 кадров/с. Проводилась регистрация людей, проходивших через турникет. Параллельно обрабатывались три видеопотока. Эксперимент проводился в естественных условиях, никто из участников специально не останавливался и не смотрел в камеру. Следует отметить, что подаваемые на вход алгоритма кадры можно охарактеризовать, как имеющие сложный фон: наличие мелких дета-

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

лей в поле зрения камеры, большой поток людей. Были возможны частичные перекрывания интересующих субъектов другими людьми, а также одновременное попадание в кадр нескольких из них. По результатам проведенного эксперимента отмечено 100 % детектирование лиц в зоне контроля и стабильное их сопровождение в реальном времени, т. е. алгоритм подтвердил возможность применения на практике в реальных условиях.

Для наглядной оценки скорости работы полученной реализации алгоритма (обозначим как gpu) проведем сравнение с многопоточными вариантами данного алгоритма, представленными в библиотеке OpenCV, как для центрального процессора (OCV-cpu), так и для графического ускорителя (OCV-gpu). Результаты сравнения приведены в таблице. Эксперимент состоит в следующем: один и тот же видеофайл продолжительностью 6 мин, полученный в ходе упомянутых выше испытаний, анализировался всеми вариантами алгоритма. Эксперимент проводился на компьютере, в состав которого входили два процессора Intel Xeon E5520 2.27 Ghz (в сумме 8 физических или 16 логических ядер) и видеокарта NVIDIA GTX 470 (448 CUDA-ядер). При этом фиксировались следующие показатели: минимальное T , максимальное T и среднее T

mm' max f ^ ayg

время, затраченное на анализ одного кадра, процент загрузки центрального процессора Pcpu и процессора графического ускорителя Pgpu, объем используемой оперативной памяти M и памяти

J * cpu

графического ускорителя M . В ходе эксперимента для всех вариантов алгоритма были установлены следующие параметры: минимальный размер лица 20х20 пикселей, шаг масштабирования 1.2, коэффициент группировки 3, каскад классификаторов haarcascade_frontalface_alt2.xml из состава библиотеки OpenCV.

Видно, что относительно реализации на CPU удалось достичь ускорения в 6,2 раза. Это подтверждает целесообразность переноса процесса детектирования лиц людей на графический ускоритель, что освобождает центральный процессор

0 500 1000 1500 2000

False positives

Рис. 4. Сравнение программных реализаций по базе FDDB (Discrete Score)

для выполнения других задач. Что касается сравнения с алгоритмом детектирования на графическом ускорителе, реализованном в OpenCV, то в данном случае предложенный алгоритм оказался в 2,8 раз быстрее. Также следует обратить внимание на более экономное расходование ресурсов графического ускорителя, позволяющее без существенных потерь запустить несколько процессов детектирования лица человека на одном GPU.

Сравнение эффективности работы рассмотренных выше программных реализаций алгоритма Виола-Джонса проводилось по относительному показателю положительных (True positive rate) и ложных (False positives) обнаружений при анализе изображений из базы «Face Detection Data Set and Benchmark» (FDDB) [6]. Особенность выбранной базы заключается в том, что собранные в ней изображения получены не в лабораторных условиях, т. е. условия съемки никто не контролировал. Поэтому возможно наличие нескольких лиц на одном изображении, частичные их перекрытия, различные ракурсы и повороты головы и даже отсутствие фокуса на некоторых изображениях.

Сравнительные характеристики разных реализаций алгоритма Виола-Джонса

Реализация T . , мс min T , мс max^ T , мс avg' P , % cpu' P , % gpu M , Мб cpu M , Мб gpu

OCV-cpu 410,23 585,03 438,49 60 - 79,348 -

OCV-gpu 171,29 213,91 195,78 7 76 184,908 201

gpu 46,73 82,46 69,91 7 59 89,344 63

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

Видно, что описанная в статье реализация алгоритма на GPU немного проигрывает своему аналогу на центральном процессоре по количеству обнаруженных лиц. Однако, как упоминалось выше, при анализе видеопотока в отличие от статичных изображений такой производитель-

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

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

список литературы

1. Аракелян, С.М. Аппаратно-программный комплекс автоматизированного распознавания и биометрической идентификации людей [Текст] / С.М. Аракелян, А.С. Голубев, А.В. Духанов [и др.] // Телема-тика'2010: Тр. XVII Всерос. науч.-метод. конф. -2010. -С. 253-254.

2. Квасов, Д.С. Обнаружение и идентификация лиц на растровом изображении с применением метода Виолы и Джонса [Текст] / Д.С. Квасов, И.И. Зиновьев, И.Г. Кокорин [и др.] // Телематика'2010: Тр. XVII Всерос. науч.-метод. конф. -2010. -С. 253-254.

3. Кудряшов, П.П. Быстрый поиск человеческих лиц на изображениях [Текст] / П.П. Кудряшов, С.А. Фо-менков // Вестник компьютерных и информационных технологий. -2007. -№7. -С. 14-17.

4. Degtyarev, N. Comparative Testing of Face Detection Algorithms [Текст] / N. Degtyarev, O. Seredin // In Proc. ICISP. -2010. -P. 200-209.

5. Hefenbrock, D. Accelerating Viola-Jones Face Detection to FPGA-Level Using GPUs [Текст] / D. Hefenbrock, J. Oberg, N. Thanh [et al.] // In Proc. FCCM. -2010. -P. 11-18.

6. Jain, V. FDDB: A Benchmark for Face Detection in Unconstrained Settings. [Электронный ресурс] / V. Jain, E. Learned-Miller // Technical Report UM-CS-2010-009. -Dept. of Computer Science, University of Massachusetts, Amherst, 2010.

7. Viola, P. Robust real-time face detection [Текст] / P. Viola, M. Jones // International J. of computer vision. -2004. -Vol. 57 (2). -P. 137-154.

УДК 004.056.53

И.Ю. Брык, Д.В. Кетов, С.В. Купреенко

динамический контроль целостности программ и процессов межсетевых экранов

На современном этапе развития информационно-коммуникационных технологий (ИКТ) проблемы обеспечения информационной безопасности особо актуальны. Возрастающая сложность программных приложений, которые все чаще приобретают распределенный характер, не позволяет эффективно контролировать процессы, происходящие в компьютерной системе. В этих условиях концепция безопасности «разре-

шено все, что не запрещено» становится неэффективной, т. к. для современных информационных систем и распределенных вычислительных систем объем понятия «не запрещено» критически возрастает и динамически изменяется. Компьютерная система как часть сетевой среды становится уязвимой перед процессами, порождаемыми различными приложениями в рамках информационного взаимодействия. Наличие уязвимостей

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