Локализация лиц с помощью детектора Виолы-Джонс
TRANSCRIPT
![Page 1: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/1.jpg)
Локализация лиц с помощью детектора Виолы-Джонс
Шкловец Артем
![Page 2: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/2.jpg)
Постановка задачи
Человек
Компьютер
Различие в представлении информации
![Page 3: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/3.jpg)
Скользящее окно
Просматриваем изображение окном выбранного размера.
Проделываем эту операцию на всех слоях пирамиды изображения.
![Page 4: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/4.jpg)
Особенности задачи и требования к детектору лиц
Большое количество просмотров окон (для 1MП изображения
~ окон) Высокая скорость расчёта признаков и классификатора
Чтобы избежать ложных срабатываний (false positive) ошибка второго рода должна быть менее
Инвариантность к освящению, полу цвету кожи и пр.
Малое количество лиц на изображении(обычно 0 - 20 лиц)
Желательно быстро отбрасывать окна без лица
![Page 5: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/5.jpg)
Детектор Виолы Джонс
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
USA
Michael J. Jones
Mitsubishi Electric Research Laboratory
USA
![Page 6: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/6.jpg)
Этапы решения задачи классификации
Подготовка выборки данных для обучения
Извлечение признаков из данных
Обучение классификатора
Оптимизация классификатора
![Page 7: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/7.jpg)
Обучающая выборка
Положительные примеры:
4916 фронтальных лиц
размером 24*24 пикселя
различные люди, позы,
освящение, без выравнивания по глазам
Отрицательные примеры:
9500 изображений
![Page 8: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/8.jpg)
Признаки Хаара
Прямоугольные фильтры
Результат =
Для окна 24*24 пикселя 160000 признаков
Papageorgiou, Oren and Poggio, «A general framework for object detection», International Conference on Computer Vision, 1998.
![Page 9: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/9.jpg)
Интегральное изображение Значение каждого пиксела
(x,y) равно сумме значений всех пикселов левее и выше пикселя (x,y) включительно
Интегральное изображение рассчитывается за один проход
![Page 10: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/10.jpg)
Вычисление признаков Хаара Пусть 1,2,3,4 – значения
интегрального изображения в углах прямоугольника
Тогда сумма значений пикселов в исходном изображении вычисляется по формуле: sum = A – B – C + D
3 операции сложения для любого прямоугольника
![Page 11: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/11.jpg)
Пример вычисление признаков Хаара
-1
+2
-1
+1
-2
+1
+2
-2
+1
-1
-2
+2-1
+1
![Page 12: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/12.jpg)
Требования к классификатору
Быстрая скорость классификации
Высокая точность классификации
Возможность определять значимые признаки
Возможность управления точностью (false positive, false negative) при обучении
Обучение на неравномерных выборках
![Page 13: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/13.jpg)
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: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/14.jpg)
AdaBoost
Дано
Инициализируем
Для каждого
Строим классификатор Y, который минимизирует взвешенную ошибку классификации, .
Определяем вес классификатора
Обновляем , где .
Строим результирующий классификатор:
𝐷1
![Page 15: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/15.jpg)
AdaBoost (1-ая итерация)
Дано
Инициализируем
Для каждого
Строим классификатор Y, который минимизирует взвешенную ошибку классификации, .
Определяем вес классификатора
Обновляем , где .
Строим результирующий классификатор:
h1𝜖1=0.3
α 1=0.42
𝐷2
![Page 16: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/16.jpg)
AdaBoost (2-ая итерация)
Дано
Инициализируем
Для каждого
Строим классификатор Y, который минимизирует взвешенную ошибку классификации, .
Определяем вес классификатора
Обновляем , где .
Строим результирующий классификатор:
h2𝜖1=0.21
α 1=0.65
𝐷3
![Page 17: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/17.jpg)
AdaBoost (3-ая итерация)
Дано
Инициализируем
Для каждого
Строим классификатор Y, который минимизирует взвешенную ошибку классификации, .
Определяем вес классификатора
Обновляем , где .
Строим результирующий классификатор:
h3
𝜖1=0.3
α 1=0.42
STOP
![Page 18: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/18.jpg)
AdaBoost (Результат)
𝐻 (𝑥 )=𝑠𝑖𝑔𝑛0.42 +0.65 92 ¿
¿
![Page 19: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/19.jpg)
AdaBoost (Пример)
![Page 20: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/20.jpg)
Особенности AdaBoost
Высокая скорость сходимости
Возможность построить классификатор на части признаков
Высокая скорость сходимости
Отсутствие параметров
Возможность управлять false positive false negative
Длительная процедура обучения
Трудность определения нужного числа итераций обучения
![Page 21: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/21.jpg)
AdaBoost для поиска лиц
Определяем слабые классификаторы как сравнение того или иного признака Хаара с некоторым порогом.
Для каждого этапа AdaBoost :
Вычисляем все признаки Хаара для всех изображений обучающей выборки,
Выбираем такой признак и такой порог для которых сумма весов ошибочно, классифицированных изображений минимальна
Переопределяем веса выборки.
Результат обучения:
Классификатор из 200 признаков дает 95% точность и долю false positive 1 из 14084
![Page 22: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/22.jpg)
Каскад классификаторов
Построим несколько классификаторов от простых к сложным.
Классификаторы построим таким образом чтобы false positive была минимальна (практически ноль). Это можно достичь соответствующим выбором простых классификаторов.
Положительный отклик классификатора инициализирует вычисление следующего.
Отрицательный отклик на любом этапе приводит к отбраковке окна.
![Page 23: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/23.jpg)
Каскад классификаторов
![Page 24: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/24.jpg)
Результат обучения Обучение: “недели” на 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: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/25.jpg)
Признаки выбранные в первом каскаде
![Page 26: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/26.jpg)
Пример детектора Виолы-Джонс
![Page 27: Локализация лиц с помощью детектора Виолы-Джонс](https://reader030.vdocuments.pub/reader030/viewer/2022020117/55d28503bb61ebdb098b46b6/html5/thumbnails/27.jpg)
Резюме и области применения В 15 раз быстрее сравнимого по точности предшествующего
метода локализации лиц
Работает в реальном времени с удовлетворительной точностью
Детектор Виолы-Джонс может быть эффективно применен для поиска малодеформируемых объектов в выраженными особенностями (лица, улыбка, глаза, верхняя часть тела, тело человека)
Неэффективен для объектов с различным внешним видом, или без четко выраженными особенностями (жесты, автомобили, цветы и т. п)