Научная статья на тему 'СПОСОБ УМЕНЬШЕНИЯ ВЫЧИСЛИТЕЛЬНОЙ СЛОЖНОСТИ ПРОЦЕДУРЫ ОБУЧЕНИЯ ДЕТЕКТОРА ЛИЦ НА БАЗЕ МЕТОДА ВИОЛЫ-ДЖОНСА'

СПОСОБ УМЕНЬШЕНИЯ ВЫЧИСЛИТЕЛЬНОЙ СЛОЖНОСТИ ПРОЦЕДУРЫ ОБУЧЕНИЯ ДЕТЕКТОРА ЛИЦ НА БАЗЕ МЕТОДА ВИОЛЫ-ДЖОНСА Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
31
6
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОМПЬЮТЕРНОЕ ЗРЕНИЕ / ДЕТЕКТИРОВАНИЕ ЛИЦ / МЕТОД ВИОЛЫ-ДЖОНСА / БУСТИНГ / УМЕНЬШЕНИЕ СЛОЖНОСТИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Козыревский Вадим Кириллович, Веселов Антон Игоревич

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Козыревский Вадим Кириллович, Веселов Антон Игоревич

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

METHOD FOR REDUCING COMPUTATIONAL COMPLEXITY OF FACE DETECTING TEACHING PROCEDURE BASED ON VIOLA-JONES METHOD

The article suggests a method for computational complexity reducing of Viola-Jones face detecting teaching procedure. The reference detector teaching procedure is based on AdaBoost algorithm, representing an iterative procedure of algorithmic composition construction (strong classifier). Each element (weak classifier) of the composition analyzes only one feature of an image. In Viola-Jones method feature is the result of image convolution by some pre-defined filter. A set of possible filters is developed in advance and the best feature in terms of strong classifier's classification errors decreasing is selected at each learning iteration of AdaBoost. The proposed method is a modification of AdaBoost algorithm where complexity reduction is achieved by adaptive selection of the features to be analyzed. The idea of the modified method is based on the observation that at each iteration of the learning procedure the reference algorithm selects weak classifiers, correcting errors of the previously selected weak classifiers. It means that the weak classifiers with similar performance are unlikely to be selected at the adjacent iterations. Thus the space of the tested weak classifiers can be reduced. The proposed method includes two modifications of the reference algorithm. The first modification consists in a feature pre-analysis operation which is performed to estimate the correlation between the responses of different filters. This stage is performed before the reference AdaBoost algorithm is started. In the process of teaching, only the features with low correlation can be analyzed at the adjacent iteration, thus reducing the number of weak classifiers to be evaluated for boosting the final strong classifier. Practical relevance: the proposed algorithm reduces the computational complexity of Viola-Jones face detector teaching, which is an open issue in computer-vision-related systems.

Текст научной работы на тему «СПОСОБ УМЕНЬШЕНИЯ ВЫЧИСЛИТЕЛЬНОЙ СЛОЖНОСТИ ПРОЦЕДУРЫ ОБУЧЕНИЯ ДЕТЕКТОРА ЛИЦ НА БАЗЕ МЕТОДА ВИОЛЫ-ДЖОНСА»

www.mai.ru/science/trudy/

Труды МАИ. Выпуск № 93

УДК 004.93'1

Способ уменьшения вычислительной сложности процедуры обучения детектора лиц на базе метода Виолы-Джонса

Козыревский В.К.*, Веселов А.И.**

Санкт-Петербургский государственный университет аэрокосмического приборостроения, ул. Большая Морская, 67, Санкт-Петербург, 190000, Россия *e-mail: vadikko2@mail.ru **e-mail: felix@yu.spb.ru

Аннотация

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

Ключевые слова: компьютерное зрение, детектирование лиц, метод Виолы-Джонса, бустинг, AdaBoost, Fast Feature Select, уменьшение сложности.

Введение

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

Детектирование лиц является важной задачей в таких областях, как компьютерное зрение, биометрия, организация видеоконференций, создание интеллектуальных систем безопасности и контроля доступа, и т. д. В свою очередь детектирование объектов является трудной задачей как с практической, так и с теоретической точек зрения. Одним из решений этой задачи является метод детектирования лиц на основе алгоритма Виолы-Джонса [1]. Хотя этот метод был разработан и представлен ещё в 2001 году Полом Виолой и Майклом Джонсом, он до сих пор является популярным алгоритмом для поиска объектов на изображении в реальном времени.

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

Детектирование лиц с использованием метода Виолы-Джонса Перед описанием метода Виолы-Джонса рассмотрим задачу обучения в общем виде. Допустим, дано конечное множество объектов (прецедентов) по каждому из которых собраны некоторые данные - описание прецедента. В качестве таких описаний, чаще всего, используется признаковое пространство - совокупность из N показателей, присущая для всех прецедентов (в рамках статьи имеются в виду числовые признаки). В свою очередь совокупность таких описаний называется обучающей выборкой [2]. Будем считать, что объекты получены из некоторой неизвестной закономерности. Задача обучения сводится к восстановлению данной закономерности по обучающей выборке. Как правило, решение данной задачи сводится к поиску набора правил, указывающих как действовать при том или ином случае. Отличительной особенностью методов машинного обучения является то, что правила формируются автоматически. Отметим, что в некоторых источниках данные правила также называют алгоритмами, чтобы подчеркнуть, что они должны быть реализуемы в виде программы. В таком случае, задача обучения формулируется в терминах подбора таких параметров алгоритмов, при которых достигается оптимум некоторого критерия качества, показывающего, например,

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

1. Получить множество объектов, по которым будет восстанавливаться неизвестная зависимость. Сформировать обучающую выборку, включающую в себя признаковое описание объектов и требуемые выходы алгоритма (ответы).

2. Сформулировать критерий качества алгоритма.

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

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

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

- оно занимает существенную часть изображения;

- никакие другие объекты на изображении не присутствуют.

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

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

^(»=£[=1 (1) где х - изображение; щ(х) - слабый классификатор, т.е. любой алгоритм, решающий задачу классификации чуть лучше, чем случайное угадывание; Ь -весовой коэффициент -го слабого классификатора в композиции; - сильный

классификатор.

Ключевыми идеями метода Виолы-Джонса являются:

- способ выбора слабых классификаторов, а также способ их эффективного с вычислительной точки зрения применения;

- использование алгоритма Adaboost для формирования алгоритмической композиции.

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

Признаковое описание прецедентов

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

Рисунок 1 - Внешний вид признаков Хаара

Рисунок 2 - Расположение признаков Хаара на изображениях При расчёте значения признака маска позиционируется на изображении, после чего вычисляется разность между суммами значений яркостей пикселей, лежащими под областями разного цвета. Эта разность и будет числовым значением признака (откликом). Таким образом, значение признака рассчитывается по формуле:

//О) = Иг-В,

где У — номер признака, х — элемент выборки, Ш — сумма значений яркости пикселей под белой областью признака Хаара, В — сумма значений яркости пикселей под чёрной областью признака Хаара.

Предположим, что размер изображения (одного элемента выборки) 19x19 пикселей, тогда существует порядка 65 тысяч признаков Хаара для конкретной маски, а число масок равно 10. В таком случае размер множества (длина признакового описания объекта) всех возможных признаков Хаара будет равен 650 тысяч.

Построение алгоритмической композиции с помощью алгоритма AdaBoost

В настоящее время использование алгоритмов, основанных на композициях простых классификаторов, является одним из наиболее распространенных подходов к применению методов машинного обучения на практике. Бустингом принято называть процедуру последовательного построения цепочки классификаторов, в которой каждый последующий классификатор исправляет ошибки предыдущих [6]. AdaBoost (Adaptive Boosting, адаптивный бустинг) был предложен в работе [7] для решения задачи двоичной классификации. В последующем данный подход был расширен на другие задачи. Отличительной особенностью AdaBoost является критерий качества алгоритма для гладкой аппроксимации ошибки классификации используется взвешенная экспоненциальная функция потерь:

Е((хиу{)IL 1 ) = £IL 1 wj(as(Xi) * у) < £IL 1 <^ ^ , (2)

где Wj - «вес» ошибки на объекте i; у t - правильный ответ для объекта i.

Веса показывают значимость объекта при выборе слабого классификатора. Модификация весов на каждой итерации позволяет выбирать слабые классификаторы, исправляющие разные ошибки. Использование функции (2) позволяет в явном виде выписать последовательность шагов для поиска оптимальных параметров.

Детальное формальное описание AdaBoost выходит за рамки данной работы. Для пояснения идеи AdaBoost продемонстрируем его работу на задаче разделения объектов двух классов на плоскости (рисунок 3). Предположим, что имеется двумерное пространство, содержащее в себе объекты различных классов с метками

(1, -1). Будем считать, что слабым классификатором является любая прямая линия, отделяющая объекты разных классов друг от друга с вероятностью ошибки меньше 50%. Композиция таких прямых линий, в свою очередь, будет называться сильным классификатором: ошибка композиции будет существенно меньше, чем у каждого слабого классификатора по отдельности.

объект класса

слабый классификатор

Рисунок 3 - Плоскость с объектами разных классов На каждой итерации AdaBoost выполняет следующую последовательность шагов.

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

2. Определяет позиции ошибочно классифицированных объектов и увеличивает их вес.

3. Определяет значимость слабого классификатора в композиции ( Ь ^ в формуле (1)).

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

Рисунок 4 - Общий вид работы алгоритма AdaBoost

Отметим, что на каждой итерации AdaBoost на шаге 1, в общем случае, должен

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

Введём в рассмотрение понятие слабого классификатора в методе Виолы-Джонса. В данном случае слабый классификатор задаётся как

где номер признака, значение признака, элемент выборки,

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

возможные пороговые значения 0. Учитывая конечность обучающей выборки, можно выписать все возможные значения 0 для неё. Данное наблюдение использует в алгоритме Fast Feature Select (FFS) [8].

FFS

Одним из методов уменьшения сложности подбора порогового значения для одного классификатора является алгоритм Fast Feature Select (FFS), который перебирает не все возможные границы, а только некоторое «допустимое» подмножество. Предположим, размер обучающей выборки составляет N изображений. Тогда для некоторого признака с индексом j есть конечное множество

значений | v^,.. -,v^|. Отсортируем значения признаков и получим переупорядоченный вектор значений ( .. . Очевидно, что если верно

условие v^ ^ < 0 ! , 0 2 < для одного целого к и двух различных 0 ± и 0 2, выбор

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

оптимальное значение границы .

Приняв в рассмотрение описанный выше подход, алгоритм FFS можно

описать следующим образом. Вход: признаковое описание V = | vt^|, У = {yj —

метки принадлежности элементов из множества объектов к тому или иному классу, значения весов wt> ±,. . ., wt w на итерации t и j - индекс слабого классификатора, для которого необходимо определить оптимальный порог.

Отсортируем значения признаков следующим образом:

< ... <

Инициализируем начальное значение ошибки как:

N

6 = X ЩЛ * У1' i=1

Таким образом, если выбирается граница меньшая значения v± (когда классификатор ошибается на всех изображениях, где есть искомый объект) алгоритм пересчёта значения ошибки выглядит следующим образом: for к = 1 to N

lf Уik = i

е = е- wik, eik = е

else

e = e + wik,eik = e Оптимальная граница, в таком случае, может быть найдена как

q = arg min eit

i

в = v™

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

Оценим сложность алгоритма AdaBoost с учётом FFS. Пусть Т — количество

слабых классификаторов в итоговой композиции, количество всех возможных

признаков на одном элементе выборки, а N — размер обучающей выборки. Видно,

12

что сложность выбора всех возможных признаков составляет О ( М N) . Тогда, сложность алгоритма AdaBoost с учётом FFS:

О ( Т М N1 о gN + М N ) .

Предлагаемый алгоритм Необходимо отметить тот факт, что признаковое описание объектов обладает высокой избыточностью: есть признаки с высокой корреляцией. С точки зрения алгоритма AdaBoost данный факт приводит к тому, что на этапе выбора оптимального слабого классификатора проверяются классификаторы, несущие избыточность (дающие схожий результат). Чтобы продемонстрировать это утверждение, построим график зависимости значений признаков от элементов выборки на итерации t (рисунок 5). Данный график построен для изображений из тестового множества CBCL Database Face # 1 [9].

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

воспользуется коэффициентом корреляции Пирсона (3)[10].

г = £ (*-*) (У-У) (3)

(*-*) 2/£ (У-У)2 ' )

где X = , ? = ± У — среднее значение выборок.

13

Применив формулу (9) к кривым, представленным на Рисунке 4, получим, что коэффициент корреляции между вторым и третьим признаком равен 0,95, а между вторым и первым 0,25.

Допустим, на итерации — 1 алгоритма AdaBoost для классификатора был выбран второй признак. Т. к. коэффициент корреляции между вторым и третьим признаками равен 0,95, то можно не учитывать третий признак на -й итерации, так как он не будет исправлять ошибки, допущенные на предыдущей итерации.

В обоснование этих утверждений приведём гистограмму коэффициентов корреляции между признаками, по которым ЛёаБооБ1 строил слабые классификаторы (рисунок 6) при обучении детектора на основе метода Виолы-Джонса. По гистограмме видно, что значения корреляции между выбираемыми признаками колеблются в диапазоне от -0,5 до +0,5. Это означает, что AdaBoost действительно выбирает слабые классификаторы на основе некоррелированных признаков. Следовательно, можно применить следующий подход. Необходимо оценить связь между всеми признаками и не учитывать на текущей итерации те, которые не позволяют исправлять ошибки, допущенные на предыдущей итерации.

Для решения этой задачи необходимо на основе признакового описания

построить множество списков , содержащих в себе

индексы признаков, некоррелированных с текущим, т.е.

к = {к-гк,1 < ¿Ьг, к = 1.. М},

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

где гк1 - значение корреляции, ¿Яг - некоторый, заранее определённый порог.

■0.6 -0.4 -0.2 0.0 0.2 0 4 0.6 0.8

Рисунок 6 - Гистограмма коэффициентов корреляции от номера признака

Подобное представление позволяет не выбирать на стадии работы алгоритма AdaBoost t + 1-й слабый классификатор из всего множества слабых классификаторов.

Предположим, что был выбран -й слабый классификатор. Предположим, что к — индекс признака, на основе которого он был построен. Это означает, что следующий слабый классификатор будет выбираться на основе признака, индекс которого содержится в списке 1к, размер которого |/к| < М.

Заключение.

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

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

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

Работа выполнена при финансовой поддержке Минобрнауки России в рамках базовой части государственного задания вузу на 2016 год (проект № 2452).

Библиографический список

1. Viola P., Jones M. Robust Real-time Object Detection // International Journal of Computer Vision. 2004. Vol. 57. № 2. Pp. 137-154.

2. Вьюгин В.В. Математические основы теории машинного обучения. - М.: МЦНМО, 2013. - 387 с.

3. Местецкий Л.М. Математические методы распознавания образов - М: МГУ, ВМиК, 2002-2004. С. 42-44.

4. Hastie T., Tibshirani R., Friedman J. The elements of statistical learning. - New York: Springer, 2001. - 533 p.

5. Viola P., Jones M. Rapid object detection using a boosted cascade of simple features // Accepted conference on computer vision and pattern recognition. Cambridge. 2001. URL: http: //www.cs. cmu.edu/~srini/15-829/readings/ViJo01. pdf

6. Freund Y., Schapire R.E. A decision theoretic generalization of on-line learning and an application to boosting // Journal of Computer and System Sciences. 1997. Vol. 55. No. 1. Pp. 119-139.

7. Wu J, Brubaker S., Mullin M., Rehg J. Fast Asymmetric Learning for Cascade Face Detection // IEEE Transactions on Pattern Analysis and Machine Intelligence. 2008. Vol. 30. № 3. Pp.369-382.

8. CBCL Face Database #1, MIT Center For Biological and Computation Learning, 2000. URL: http: //cbcl .mit.edu/software-datasets/FaceData2 .html

9. Шмойлова Р.А. Общая теория статистики. - М.: Финансы и Статистика, 2002. - 560 с.

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