Подлесный А.И., Медведев А.С., Федяев О.И. Система выделения лиц в видео потоке с применением алгоритма Виолы-Джонса. В работе рассматривается разработка программной системы выделения лиц на изображении. Она позволит распознавать людей по их лицам. Задача локализации лица сформулирована как задача выделения на снимке подмножества дискретных точек (пикселей), образующих лицо человека. Для решения этой задачи использован метод Виолы-Джонса. Он позволил надежно обнаруживать лица независимо от яркости сцены и цвета лица. Недостатком метода Виолы-Джонса является его алгоритмическая сложность при программировании и обучении.
Ключевые слова: видеоизображение, лицо человека, выделение лица, метод Виолы-Джонса
Проблеме распознавания человека по изображению лица посвящено множество работ, однако в целом она ещѐ далека от разрешения [1]. Основные трудности состоят в том, чтобы распознать человека по изображению лица независимо от изменения ракурса и условий освещѐнности при съѐмке, а также при различных изменениях, связанных с возрастом, причѐской и т. д. Распознавание изображений пересекается с распознаванием образов. Такие задачи не имеют точного аналитического решения. При этом требуется выделение ключевых признаков, характеризующих зрительный образ, определение относительной важности признаков путѐм выбора их весовых коэффициентов и учѐт взаимосвязей между признаками [2].
Цифровое изображение, получаемое видеокамерой в момент времени t и имеющее по вертикали h, а по горизонтали w пикселей, обозначим It(h, w). Видео-поток – это последовательность цифровых изображений (кадров) It(h, w), It+1(h, w), ..., It+k(h, w). Под прямоугольной областью интересов Obt(X, Y) понимается множество пикселей цифрового изображения It(h, w), очерчивающих искомый объект, содержащее X пикселей по вертикали и Y по горизонтали. Обнаружением объекта называется выделение области Obt(X, Y) на цифровом изображении It(h, w) в момент времени t. Под обнаружением объекта в реальном времени понимается обработка видеопотока с частотой не менее 10 кадров в секунду. Обучением называется предварительная настройка и задание параметров метода для обнаружения интересующего объекта. Обучение может выполняться на основе обучающей выборки, состоящей из одного или нескольких обучающих изображений.
Под обучающим цифровым изображением понимается изображение It(h, w) с дополнительной информацией о наличии или отсутствии на нем искомого объекта. Обучающее изображение называется позитивным, если оно содержит объект, который нужно обнаружить. В противном случае обучающее изображение называется негативным.
На сегодняшний день существуют различные методы обнаружения объектов на цифровом изображении It(h, w): каскадный классификатор Виолы и Джонса, обобщенное преобразование Хафа [1- 3], метод Капура–Винна и другие. Однако методы обнаружения объекта, имеющие высокие показатели надежности и устойчивости, требуют значительных временных и машинных ресурсов для обучения на новых объектах. Методы обнаружения объекта на цифровом изображении It(h, w), по способу отнесения участка изображения к области Obt(X, Y) разделяют на две большие группы: обобщающие и различающие [4] .
Для решения этого класса задач предложен ряд программных средств. К этим средствам относится система Emgu CV — кроссплатформенная «обѐртка» для .NET библиотеки обработки изображений [5]. Она используется для решения разнообразных задач связанных с 2D графикой, распознанием лиц и предметов на фото, распознание лиц и предметов на видео. Система AForge.NET ориентирована на разработчиков и исследователей в области компьютерного зрения и искусственного интеллекта [6]. К новому поколению систем компьютерного видеонаблюдения относятся система Cognitec FaceVACS SDK и FaceVACS VideoScan, которые автоматически сканирует входящий видеопоток и обнаруживают несколько лиц и проверяют наличие возможных совпадений в «контрольном списке» [7].
Таким образом, выбор условий съѐмки и настроек очень важны для многих алгоритмов и систем. Отлично работая в одних условиях, многие алгоритмы могут полностью перестать работать в других условиях.
Алгоритм Виолы-Джонса является одним из лучших по соотношению показателей эффективность распознавания/скорость работы [8-11]. Также этот детектор обладает крайне низкой вероятностью ложного обнаружения лица. Алгоритм даже хорошо работает и распознает черты лица под небольшим углом, примерно до 30 градусов.
Основные принципы, на которых основан метод, таковы:
– используются изображения в интегральном представлении, что позволяет вычислять быстро
необходимые объекты;
– используются признаки Хаара, с помощью которых происходит поиск нужного объекта (в
данном контексте, лица и его черт);
– используется бустинг (от англ. boost – улучшение, усиление) для выбора наиболее подходящих
признаков для искомого объекта на данной части изображения;
– все признаки поступают на вход классификатора, который даѐт результат «верно» либо
«ложь»;
В общем виде данный метод ищет лица и черты лица по общему принципу сканирующего окна: сканируется изображение окном поиска (так называемое, окно сканирования), а затем применяется классификатор к каждому положению.
Для того, чтобы производить какие-либо действия с данными, используется интегральное представление изображений в методе Виолы-Джонса. Интегральное представление позволяет быстро рассчитывать суммарную яркость произвольного прямоугольника на данном изображении, причем какой бы прямоугольник не был, время расчѐта неизменно. Интегральное представление изображения – это матрица, совпадающая по размерам с исходным изображением. В каждом еѐ элементе хранится сумма интенсивностей всех пикселей, находящихся левее и выше данного элемента. Для определения точечного значения перепада яркости по горизонтальной и вертикальной оси используются признаки Хоара [9]. Признак - это отображение f: X => Df, где Df — множество допустимых значений признака. Если заданы признаки f1,…, fn, то вектор признаков x = (f1(x),…,fn(x)) называется признаковым описанием объекта x ∈ X. В стандартном методе Виолы-Джонса используются прямоугольные признаки. Вычисляемым значением такого признака будет F = X-Y, где X – сумма значений яркостей точек закрываемых светлой частью признака, а Y – сумма значений яркостей точек закрываемых тѐмной частью признака. Для их вычисления используется интегральное изображение.
Анализ исходного изображения выполняется по алгоритму сканирующего окна. Задаѐтся размер окна сканирования (например, 24*24 ячейки) и набор используемых признаков. Окно сканирования последовательно двигается по изображению с шагом в 1 ячейку окна. При сканировании изображения в каждом окне вычисляется приблизительно тысячи вариантов расположения признаков за счет изменения масштаба признаков и их положения в окне сканирования. Сканирование производится последовательно для различных масштабов, при этом масштабируется не само изображение, а сканирующее окно (изменяется размер ячейки). Все найденные признаки попадают к классификатору, который «выносит вердикт». Классификатор должен реагировать только на определенное, нужное подмножество всех признаков. Для этого классификатор обучается нахождению лиц по данному определенному подмножеству.
Машинное обучение в методе Виолы-Джонса решает задачу классификация. Имеется множество объектов (изображений), разделѐнных некоторым образом на классы. Задано конечное множество изображений, для которых известно, к какому классу они относятся (к примеру, это может быть класс «фронтальное положение носа»). Это множество называется обучающей выборкой. Классовая принадлежность остальных объектов не известна. Используется алгоритм, способный классифицировать произвольный объект из исходного множества. В машинном обучении задача классификации относится к разделу обучения с учителем когда классы поделены. Распознавание образов по сути своей и есть классификация изображений и сигналов. В случае алгоритма Виолы-Джонса для идентификации и распознавания лица классификация является двухклассовой. Сложная процедура классификации основывается на алгоритме бустинга (от англ. boosting – повышение, усиление, улучшение) - это процедура последовательного построения композиции алгоритмов машинного обучения, когда каждый следующий алгоритм стремится компенсировать недостатки композиции всех предыдущих алгоритмов.
Идея бустинга была предложена Робертом Шапиром в конце 90-х годов [9,10], когда надо было найти решение вопроса о том, чтобы имея множество плохих (незначительно отличающихся от случайных) алгоритмов обучения, получить один хороший. В основе такой идеи лежит построение цепочки (ансамбля) классификаторов [8,9,11], который называется каскадом, каждый из которых (кроме первого) обучается на ошибках предыдущего. Таким образом, имеет место последовательная обработка примеров каскадом классификаторов, причем так, что задача для каждого последующего становится труднее. Результат определяется путем простого голосования: пример относится к тому классу, который выдан большинством моделей каскада. Математически бустинг объясняется так. Наряду с множествами X и Y вводится вспомогательное множество R, называемое пространством оценок. Рассматриваются алгоритмы, имеющие вид суперпозиции a(x) = C(b(x)), где функция b: X → R называется алгоритмическим оператором, функция C: R → Y –решающим правилом. Многие алгоритмы классификации имеют именно такую структуру: сначала вычисляются оценки принадлежности объекта к классам, затем решающее правило переводит эти оценки в номер класса. Значение оценки, как правило, характеризует степень уверенности классификации.
На этапе объектно-ориентированного анализа и проектирования использован унифицированный язык моделирования UML для описания моделей программной системы [12]. Для программной реализации данной системы выбран язык программирования Python из-за его связи с библиотекой OpenCV. Помимо этого в нѐм есть большое количество хороших библиотек для работы с изображениями. Более того, это очень высокоуровневый язык, позволяющий абстрагироваться от работы с драйверами при использовании камеры. Пользовательский интерфейс системы реализован через набор входных параметров скрипта.
Система была протестирована на фотографиях, получаемых из видеопотока вэбкамеры и взятых из Интернета. На рисунке 1 приведен результат выделения лица человека на фотографии с одним лицом. Кроме того, тестирование системы проводилось при предъявлении групповых фото. На рисунке 2 показан результат тестирования алгоритма Виолы-Джонса при выделении лиц на групповых фотографиях. Для тестирования были взяты несколько случайных фотографий, найденных в Интернете. Лица людей на фотографии содержали различные искажения: поворот головы в различных плоскостях, не фронтальная съѐмка, низкая контрастность или чѐткость.
Некоторые групповые фотографии были выбраны не случайно, так как большое количество людей в кадре автоматически уменьшает возможный размер каждого лица и его детализацию. Кроме того, на групповых фотографиях можно одновременно зафиксировать различные углы поворота головы, а также перекрытие лиц. Некоторые фотографии
Анализ работы алгоритма Виолы-Джонса показал, что он практически не зависит от яркости сцены. Точность детектирования лица намного превышает точность детектора лица по цвету кожи. Недостатком алгоритма является его сложность, что вызывает трудности при программировании системы. Также он требует много вычислительных ресурсов, что может быть критичным в некоторых случаях. Несмотря на это, алгоритм хорошо себя зарекомендовал в ходе экспериментов, поэтому он будет использован в системе распознавания лиц человека.
1. Выделение и распознавание лиц [Электронный ресурс]. – Режим доступа:
http://wiki.technicalvision.ru/index.php/Выделение_и_распознавание_лиц
2. Распознавание человека по изображению лица нейросетевыми методами. [Электронный
ресурс].
http://uiip.basnet.by/structure/l_ori/starovoitov/Starovoitov_Publication_
3. Брилюк Д.В., Старовойтов В.В. Распознавание человека по изображению лица
нейросетевыми методами. – Минск, 2002.
4. Татаренков Д. А. Анализ методов обнаружения лиц на изображении // Молодой ученый. -
№4, 2015. - С. 270-276.
5. Алфимцев А.Н., Лычков И.И. Метод обнаружения объекта в видеопотоке в реальном времени
// Вестник ТГТУ, Т. 17, № 1, 2011.
6. Козлов В.А., Потапов А.С. Анализ методов выделения движущихся объектов на
видеопоследовательностях с шумами // Научно-технич. вестник СПГУ ИТ, №3 (73), 2011.
7. Байгарова Н.С., Бухштаб Ю.А. Некоторые принципы организации поиска видеоданных //
Программирование, №3, 1999.
8. Модификация алгоритма Виолы-Джонса [Электронный ресурс]. – Режим доступа:
http://tarapov-conf.univer.kharkov.ua/reports/54.pdf
9. Метод Виолы-Джонса (Viola-Jones) как основа для распознавания лиц [Электронный ресурс].
– Режим доступа: https://habrahabr.ru/post/133826/
10. Метод распознавания лиц Виолы-Джонса (Viola-Jones) [Электронный ресурс]. – Режим
доступа: http://oxozle.com/2015/04/11/metod-raspoznavaniya-lic-violy-dzhonsa-viola-jones
11. Модификация алгоритма Виолы-Джонса на основе адаптивно скользящего окна
[Электронный ресурс]. – Режим доступа http://www.sworld.com.ua/index.php/uk/technical-sciences-
116/informatics-computer-science-and-automation-116/27293-116-160
12. Скотт К. UML. Основные концепции. - М.: Издательский дом ―Вильямс», 2002. - 144 с.
Подлесный А.И., Медведев А.С., Федяев О.И. Система выделения лиц в видео потоке с применением алгоритма Виолы-Джонса. В работе рассматривается разработка программной системы выделения лиц на изображении. Она позволит распознавать людей по их лицам. Задача локализации лица сформулирована как задача выделения на снимке подмножества дискретных точек (пикселей), образующих лицо человека. Для решения этой задачи использован метод Виолы-Джонса. Он позволил надежно обнаруживать лица независимо от яркости сцены и цвета лица. Недостатком метода Виолы-Джонса является его алгоритмическая сложность при программировании и обучении.
Ключевые слова: видеоизображение, лицо человека, выделение лица, метод Виолы-Джонса
Podlesniy A.I., Medvedev A.S., Fedyaev O.I. The system of selection faces in the video stream using the Viola-Jones algorithm. The paper deals with the development of a software system selecting persons in the image. It allows you to recognize people by their faces. Task face localization is formulated as a problem of allocation of the picture subset of discrete points (pixels), forming the man's face. Viola-Jones method is used to solve this problem. It allows the reliable detection of persons, regardless of the brightness of the scene and the complexion. The disadvantage of the method of Viola-Jones is its algorithmic complexity in programming and training.
Keywords: video, a person's face, the face selection, Viola-Jones method