27
Локализация лиц с помощью детектора Виолы-Джонс Шкловец Артем

Локализация лиц с помощью детектора Виолы-Джонс

Embed Size (px)

Citation preview

Page 1: Локализация лиц с помощью детектора Виолы-Джонс

Локализация лиц с помощью детектора Виолы-Джонс

Шкловец Артем

Page 2: Локализация лиц с помощью детектора Виолы-Джонс

Постановка задачи

Человек

Компьютер

Различие в представлении информации

Page 3: Локализация лиц с помощью детектора Виолы-Джонс

Скользящее окно

Просматриваем изображение окном выбранного размера.

Проделываем эту операцию на всех слоях пирамиды изображения.

Page 4: Локализация лиц с помощью детектора Виолы-Джонс

Особенности задачи и требования к детектору лиц

Большое количество просмотров окон (для 1MП изображения

~ окон) Высокая скорость расчёта признаков и классификатора

Чтобы избежать ложных срабатываний (false positive) ошибка второго рода должна быть менее

Инвариантность к освящению, полу цвету кожи и пр.

Малое количество лиц на изображении(обычно 0 - 20 лиц)

Желательно быстро отбрасывать окна без лица

Page 5: Локализация лиц с помощью детектора Виолы-Джонс

Детектор Виолы Джонс

P. Viola and M. Jones. Rapid object detection using a boosted cascade of simple features. CVPR 2001.

P. Viola and M. Jones. Robust real-time face detection. IJCV 57(2), 2004.

Paul Viola

Microsoft Research

[email protected]

USA

Michael J. Jones

Mitsubishi Electric Research Laboratory

[email protected]

USA

Page 6: Локализация лиц с помощью детектора Виолы-Джонс

Этапы решения задачи классификации

Подготовка выборки данных для обучения

Извлечение признаков из данных

Обучение классификатора

Оптимизация классификатора

Page 7: Локализация лиц с помощью детектора Виолы-Джонс

Обучающая выборка

Положительные примеры:

4916 фронтальных лиц

размером 24*24 пикселя

различные люди, позы,

освящение, без выравнивания по глазам

Отрицательные примеры:

9500 изображений

Page 8: Локализация лиц с помощью детектора Виолы-Джонс

Признаки Хаара

Прямоугольные фильтры

Результат =

Для окна 24*24 пикселя 160000 признаков

Papageorgiou, Oren and Poggio, «A general framework for object detection», International Conference on Computer Vision, 1998.

Page 9: Локализация лиц с помощью детектора Виолы-Джонс

Интегральное изображение Значение каждого пиксела

(x,y) равно сумме значений всех пикселов левее и выше пикселя (x,y) включительно

Интегральное изображение рассчитывается за один проход

Page 10: Локализация лиц с помощью детектора Виолы-Джонс

Вычисление признаков Хаара Пусть 1,2,3,4 – значения

интегрального изображения в углах прямоугольника

Тогда сумма значений пикселов в исходном изображении вычисляется по формуле: sum = A – B – C + D

3 операции сложения для любого прямоугольника

Page 11: Локализация лиц с помощью детектора Виолы-Джонс

Пример вычисление признаков Хаара

-1

+2

-1

+1

-2

+1

+2

-2

+1

-1

-2

+2-1

+1

Page 12: Локализация лиц с помощью детектора Виолы-Джонс

Требования к классификатору

Быстрая скорость классификации

Высокая точность классификации

Возможность определять значимые признаки

Возможность управления точностью (false positive, false negative) при обучении

Обучение на неравномерных выборках

Page 13: Локализация лиц с помощью детектора Виолы-Джонс

AdaBoost Схема классификации, основанная на комбинировании слабых

классификаторов в более точный комитет (Слабый классификатор должен быть лучше монетки)

Y. Freund and R. Schapire, A short introduction to boosting, Journal ofJapanese Society for Artificial Intelligence, 14(5):771-780, September, 1999.

Обучение состоит из нескольких этапов усиления (boosting rounds)

На каждом этапе выбираем слабый классификатор, который лучше всех сработал на примерах, оказавшихся трудными для предыдущих классификаторов

«Трудность» записывается с помощью весов, приписанных примерам из обучающей выборки

Составляем общий классификатор как линейную комбинацию слабых классификаторов

Page 14: Локализация лиц с помощью детектора Виолы-Джонс

AdaBoost

Дано

Инициализируем

Для каждого

Строим классификатор Y, который минимизирует взвешенную ошибку классификации, .

Определяем вес классификатора

Обновляем , где .

Строим результирующий классификатор:

𝐷1

Page 15: Локализация лиц с помощью детектора Виолы-Джонс

AdaBoost (1-ая итерация)

Дано

Инициализируем

Для каждого

Строим классификатор Y, который минимизирует взвешенную ошибку классификации, .

Определяем вес классификатора

Обновляем , где .

Строим результирующий классификатор:

h1𝜖1=0.3

α 1=0.42

𝐷2

Page 16: Локализация лиц с помощью детектора Виолы-Джонс

AdaBoost (2-ая итерация)

Дано

Инициализируем

Для каждого

Строим классификатор Y, который минимизирует взвешенную ошибку классификации, .

Определяем вес классификатора

Обновляем , где .

Строим результирующий классификатор:

h2𝜖1=0.21

α 1=0.65

𝐷3

Page 17: Локализация лиц с помощью детектора Виолы-Джонс

AdaBoost (3-ая итерация)

Дано

Инициализируем

Для каждого

Строим классификатор Y, который минимизирует взвешенную ошибку классификации, .

Определяем вес классификатора

Обновляем , где .

Строим результирующий классификатор:

h3

𝜖1=0.3

α 1=0.42

STOP

Page 18: Локализация лиц с помощью детектора Виолы-Джонс

AdaBoost (Результат)

𝐻 (𝑥 )=𝑠𝑖𝑔𝑛0.42 +0.65 92 ¿

¿

Page 19: Локализация лиц с помощью детектора Виолы-Джонс

AdaBoost (Пример)

Page 20: Локализация лиц с помощью детектора Виолы-Джонс

Особенности AdaBoost

Высокая скорость сходимости

Возможность построить классификатор на части признаков

Высокая скорость сходимости

Отсутствие параметров

Возможность управлять false positive false negative

Длительная процедура обучения

Трудность определения нужного числа итераций обучения

Page 21: Локализация лиц с помощью детектора Виолы-Джонс

AdaBoost для поиска лиц

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

Для каждого этапа AdaBoost :

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

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

Переопределяем веса выборки.

Результат обучения:

Классификатор из 200 признаков дает 95% точность и долю false positive 1 из 14084

Page 22: Локализация лиц с помощью детектора Виолы-Джонс

Каскад классификаторов

Построим несколько классификаторов от простых к сложным.

Классификаторы построим таким образом чтобы false positive была минимальна (практически ноль). Это можно достичь соответствующим выбором простых классификаторов.

Положительный отклик классификатора инициализирует вычисление следующего.

Отрицательный отклик на любом этапе приводит к отбраковке окна.

Page 23: Локализация лиц с помощью детектора Виолы-Джонс

Каскад классификаторов

Page 24: Локализация лиц с помощью детектора Виолы-Джонс

Результат обучения Обучение: “недели” на 466 MHz Sun рабочей станции

38 этапов, всего 6061 признаков.

На 700 Mhz Pentium III, детектор лиц обрабатывает одно изображение 384x288 пикселов за 0.067 секунды

1 этап: 2 признака, отбрасывает 50% не лиц, при точности ~100% 2 этап: 10 признакoв, отбрасывает 80% не лиц, при точности ~100% 3 и 4 этапы: 25 признакoв

5 этап: 50 признакoв и т.д.

Среднее количество признаков для одного окна -10 признаков

Page 25: Локализация лиц с помощью детектора Виолы-Джонс

Признаки выбранные в первом каскаде

Page 26: Локализация лиц с помощью детектора Виолы-Джонс

Пример детектора Виолы-Джонс

Page 27: Локализация лиц с помощью детектора Виолы-Джонс

Резюме и области применения В 15 раз быстрее сравнимого по точности предшествующего

метода локализации лиц

Работает в реальном времени с удовлетворительной точностью

Детектор Виолы-Джонс может быть эффективно применен для поиска малодеформируемых объектов в выраженными особенностями (лица, улыбка, глаза, верхняя часть тела, тело человека)

Неэффективен для объектов с различным внешним видом, или без четко выраженными особенностями (жесты, автомобили, цветы и т. п)