facedetection+genderrecognition_review
TRANSCRIPT
Алгоритмы выделения лиц и распознавания пола
Принцип работы
2
Постановка задачи
Исходное
изображение
Изображение с
выделенными
лицамиРаспознавание
пола
мм
мжж
3
Принцип выделения лиц
• Задать прямоугольное окно, разрешением N×N, N определяет минимальный размер детектируемого лица
• Сканировать изображение окном по горизонтали и вертикали с шагом в один пиксель
• Многократно масштабируя изображение, повторять сканирование для нахождения лиц больших размеров
K
K
K
4
Принцип выделения лиц
• Для каждого окна (анализируемых окон несколько миллионов) принять решение – «лицо»; «не лицо», т.е. построить классификатор на два класса
• Наложить на изображение рамки окон, для которых были приняты положительные решения
K
K
K
5
Принцип построения классификатора
• Извлечение информативных признаков (таких характеристик изображения, которые были бы различны для «лиц» и «не лиц», и по которым можно было бы разделить наши классы)
Матрица значений яркостей пикселей
Вектор значений признаков
6
Принцип построения классификатора
• Вычисление числа, как функции от значений признаков
• Принятие решения путем сравнения этого числа с порогом
Скалярное число
Вектор значений признаков
ДА (лицо)
НЕТ (не лицо)
7
Оценка работы алгоритма
1) Число ошибок I рода.Возникают, когда алгоритм обнаружения
пропускает детектируемые объекты на изображении.
2) Число ошибок II рода.Заключаются в том, что алгоритм выделения
детектирует как «объект» некоторую область на изображении, которая объектом не является.
7
8
Обучение классификатора
С помощью набора обучающих изображений необходимо:
• Выбрать / отобрать небольшое число самых лучших признаков из всех имеющихся
• Получить функцию для вычисления итогового значения классификатора
• Подобрать порог
Скалярное число
Вектор значений признаков
ДА (лицо)
НЕТ (не лицо)
9
Методы обучения
• Бустинг• Метод опорных векторов• Разреженная сеть просеивающих
элементов
• Искусственные нейронные сети• Байесовский классификатор• Анализ главных компонент• Линейный дискриминантный анализ
10
Бустинг
Признаки – прямоугольные (Хааровские)• Вычислить два числа - сумму значений пикселей в темной и светлой области• Взять разность• Учесть все возможные разрешения этих прямоугольных областей и их положение внутри окна детектора• Получается огромное число признаков (больше, чем было пикселей)
11
Бустинг
Отбор лучших признаков
Значение j-ого признака, посчитанное для обучающих образцов
)(xfj
)( pj xf)( nj xf
θопт• Подбор оптимального порога, исходя из минимизации числа неверно классифицированных образцов для
каждого признака• Выбор признака, имеющего минимальную ошибку
12
Бустинг
Отбор лучших признаков - AdaBoost
)(xfjθопт• Ошибка считается, как сумма весов, присвоенных обучающим образцам• Веса обновляются при выборе каждого следующего признака: веса неверно классифицированных образцов увеличиваются, а верно классифицированных – уменьшаются• Таким образом будет отобран тот признак, который не ошибается на тех образцах, на которых ошибался предыдущий, и тем самым исправляет его ошибки
0,14 0,140,14 0,14 0,14 0,140,14
0,880,020,020,020,02 0,02 0,02
13
Бустинг
Функция классификатора
случаяхостальныхв
pxfpеслиpfxh
jjjjjjjj
0
,1,,,
jt
jtt
,
,1log
Линейная комбинация слабых классификаторов
Значение признака сравнивается с порогом
Веса обратно пропорциональны ошибке
T
ttt xhxF
1
)()(
14
Бустинг
Итоговое решение
случаяхостальныхв
xFxC
T
tt
0
)(1)( 1
21
Число отбираемых признаков для достижения нужного уровня детектирования очень велико
Для миллиона окон столько вычислений займет слишком много времени
Нужно быстро отсеять основную массу окон совсем непохожих на лица простеньким классификатором
Затем продолжать отсеивать оставшиеся «не лица» более массивными классификаторами
15
Бустинг
Каскадная структура
1-йслой1-й
слой2-й
слой3-й
слойN-й
слой
Поступающее окно изображения
)(1 xC )(2 xC )(3 xC )(xCN
• Итоговый детектор содержит 38 слоев, включающих в себя в общей сложности 6060 признаков
• Первый слой – 2 признака; второй слой – 10 признаков; следующие два – 25 признаков; следующие три – 50 признаков; и т. д.
16
Метод опорных векторов Признаки – значения пикселей, представленные в виде вектора
• Представим изображение в виде вектора в N-мерном пространстве• В этом пространстве построим гиперплоскость, такую, чтобы образцы разных классов оказались по разную сторону от этой гиперплоскости• В зависимости от того, с какой стороны от гиперплоскости находится наш вектор, примем решение
17
Метод опорных векторов
Опорные вектора mXX ,,1
m ,,1
m
iiii bXXkyXf
1
),(sgn)( )2
exp(),(2
2
xx
xxk
Коэффициенты линейной комбинации
Построение разделяющей гиперплоскости
Проецирование в пространство большей размерности
18
m
iiii bXXkyXf
1
),(sgn)(
m
iii bXZkXf
1
),(sgn)(
mm 2
1 1
),(),(min
m
i
m
iiiiii ZkXky
Метод опорных векторов
Каскадная структура
3 опорных вектора
+ + + +
-
+
----
32 опорных вектора
4 опорных вектора
8 опорных векторов
16 опорных векторов
19
Разреженная сеть просеивающих элементов
Вычисление SMQT признаков
001010010
Представление в виде вектора
82
Пересчет в виде
индекса
Признаки
20
Wx
facex
Wx
nonfacex xMhxMh
Обучение
Wx
iface
x xMhЕсли ))(( ))(())(( xMhxMh iface
xiface
x
))(())(( xMhxMh iface
xiface
x Wx
iface
x xMhЕсли ))((
Каскадная структура
Разреженная сеть просеивающих элементов
20 признаков
50 признаков
100 признаков
200 признаков
648 признаков
+ + + +
-
+
----
Классификатор
21
Распознавание поламм
мжж
Чем принципиально отличается распознавание пола от выделения лиц?
Нужно анализировать всего лишь несколько окон, поэтому распознавание пола занимает в разы меньше времени
БОЛЬШЕ НИЧЕМ
22
Еще пара методов обучения
•Метод главных компонент (PCA)•Линейный дискриминантный анализ (LDA)
nx RИзображение проецируется в пространство признаков меньшей размерности :
где W – матрица
my R
,y Wxm n
23
PCA & LDA• Матрица межклассовой
дисперсии:
• Матрица внутриклассовой дисперсии:
• Ковариационная матрица:
где– c – количество классов
i – среднее значение класса i
– | i | - номер изображения из i..
1
( )( )c
TB i i
i
S
c
i x
TikikW
ik
xS1
))((
1
( )( )k i
cT
T k i B Wi x
S x S S
1
2
12
(1)
(2)
(3)
24
PCA & LDA
• PCA
Максимизируется дисперсия векторов обучающей выборки
• LDA
Максимизируется отношение межклассового к внутриклассовому расстоянию
WSWW TT
WPCA maxarg
WSW
WSWW
WT
BT
Wfld maxarg
12
PCA
FLD
25
Алгоритмы в Signage_demo
• Выделение лиц
AdaBoost
• Выделение других объектов
AdaBoost
• Распознавание пола
Kernel Direct Discriminate Analysis
26
Алгоритмы в Signage_demo
Детектирование объектовАлгоритм: Viola-Jones
Параметры: 1) каскад 2) коэффициент масштабирования
Виды объектов
Фигура человека
- полностью- верхняя часть- нижняя часть
Лицо в фас
Глаза- оба
- только левый- только правый
Нос Рот
Лицо в профиль
ПостобработкаАлгоритм детектирования кожи
Алгоритм 1:Явное задание кластера кожи
Параметры:- STDR (Skin Tone Detection Rate)
Алгоритм 2:Непараметрическая модель кожи
Параметры:- пороги детектирования
Фильтрация ложных срабатываний
Распознавание полаАлгоритм KDDA (Kernel Direct Discriminant Analysis)
Классы:- мужчина- женщина- ребенок
ИзображениеВыравнивание гистограммы
27
Постобработка
Исходноеизображение А лгоритм
V io la -Jones
В ы деленны еобласти
Д етектированиекож и
Л ица
Н елица
27
28
Методы моделирования цвета кожи1. Априорно заданная область в
цветовом пространствеИспользуется набор неравенств, которым должны удовлетворять координаты цвета в выбранном цветовом пространстве для того, чтобы данный цвет был отнесен к оттенку кожи.
2. Непараметрические модели распределения оттенка кожиВычисляют и хранят вероятности принадлежности к оттенку кожи каждой точки дискретизированного цветового пространства.
3. Параметрические модели распределения оттенка кожиИспользуют явное представление распределения цвета кожи (например, бимодальное нормальное, смесь нормальных и т.д.) в выбранном цветовом пространстве.
28
29
Алгоритм, использующий явное задание кластера кожи
30
Явное задание кластера кожи
95R 40G 20B
15},,min{},,max{ BGRBGR
15 GR GR BR
Параметр алгоритма:STDR – доля пикселей, которая должна быть детектирована как кожа, чтобы алгоритм отнес данное окно к классу лиц.
30
31
Предлагаемый алгоритм
32
Обучающая база
Светло-красный оттенок
Светло-желтый оттенок
Светло-коричневый оттенок
Темно-красный оттенок
Темно-желтый оттенок
Темно-коричневый оттенок
32
33
Процедура обучения
1. Перейти от цветового пространства RGB к пространству K1K2K3.
2. Для каждого набора обучающих изображений получить матрицу W(k1,k2,k3), описывающую распределение пикселей соответствующего оттенка кожи.
3. Подобрать пороги детектирования каждого оттенка кожи.
33
34
Этапы работы алгоритма
1. Масштабировать изображение до размеров 150×150 пикселей
2. Перейти от цветового пространства RGB к пространству K1K2K3.
3. Для каждого пикселя изображения вычислить вероятность того, что он принадлежит одному из оттенков кожи.
4. Сравнить полученные значения с эмпирически найденными порогами.
34