20120414 videorecognition konushin_lecture03

111
Выделение объектов 13-15 апреля 2012 года Антон Конушин Computer science club, Екатеринбург

Upload: computer-science-club

Post on 16-Jun-2015

464 views

Category:

Education


0 download

TRANSCRIPT

Page 1: 20120414 videorecognition konushin_lecture03

Выделение объектов

13-15 апреля 2012 года

Антон КонушинComputer science club, Екатеринбург

Page 2: 20120414 videorecognition konushin_lecture03

Задача выделения объекта

• Выделение объектов• Где на изображении (и есть ли)

самолет?

• Структурный выход • Нужно выдать ограничивающий

прямоугольник

Page 3: 20120414 videorecognition konushin_lecture03

Насколько задача сложна?

Это стул

Найдём стул в изображении Выход корреляции

Page 4: 20120414 videorecognition konushin_lecture03

Найдём стул в этом изображени

МусорПростое сопоставление шаблонов не решает задачу

Насколько задача сложна?

Сложный фон, разные ракурсы, внутриклассовая изменчивость объектов

Page 5: 20120414 videorecognition konushin_lecture03

• Рассматриваем только прямоугольную область (окно)

• Если выбрали точно, то в эту область попадёт только лицо

• Просмотрим все области, «сканируя» окном изображение

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

• Каждую область будем обрабатывать независимо

Сканирование изображения окном фиксированного размера – хорошая идея

Page 6: 20120414 videorecognition konushin_lecture03

Недостатки скользящего окна

• Соотношение размеров рамки

• Дискретность сдвига• Частичное перекрытие• Множественные отклики

Page 7: 20120414 videorecognition konushin_lecture03

• Фактически, разделяем изображение на множество перекрывающихся окон

• Сформулируем задачу выделения объектов как задачу классификации окна – объект / не объект

• Для обучения классификатора будем собирать выборки окон с объектами и без объектов

Мешок фрагментов

Решающая граница

Мониторы

Фон

В пространстве признаков

Где мониторы?

Классификация окон

Page 8: 20120414 videorecognition konushin_lecture03

Схема метода

Метки

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

тора

Обучение

Признаки изображения

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

Обучающие изображения

Page 9: 20120414 videorecognition konushin_lecture03

Схема метода

Метки

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

тора

Обучение

Признаки изображения

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

Обучающие изображения

Признаки изображения

Применение

Обученный классификатор Машина

Предсказание

Page 10: 20120414 videorecognition konushin_lecture03

Признаки пикселей

Пространство цветов L*a*b*Пространство

цветов HSVПространство цветов RGB

Градиенты в каждом пикселе

Наличие и ориентация края в каждом пикселе

Page 11: 20120414 videorecognition konushin_lecture03

Использование напрямую

• Можно ли использовать признаки всех пикселей напрямую?

• Можно, если все изображения для классификации будут одинакового размера

• Нормализуем изображения, т.е. приведем их к одному размеру

• Вытянем изображение в вектор, признаки пикселей будут элементами вектора

Для распознавания, изображение должно описываться вектор-признаком фиксированной длины!

Page 12: 20120414 videorecognition konushin_lecture03

Space Shuttle Cargo Bay

Агрегирование

• Вместо использования признаков напрямую, можно вычислить какие-то общие характеристики для объекта («агрегирование» признаков)

• Гистограммы – стандартный способ непараметрического описания распределения признаков

Images from Dave Kauchak

Page 13: 20120414 videorecognition konushin_lecture03

Квантование признаков

• Как построить гистограмму для признаков, которые изменяются непрерывно?

• Или разрешение слишком большое?• «Квантование» - отображение признаков на меньшее

разрешение• Пр: все направления градиента разбиваем на 8 вариантов• Каждый вариант нумеруем от 1 до 8

Page 14: 20120414 videorecognition konushin_lecture03

Квантование признаков

• Есть фотографии тигров и медведей• Хотим научиться отличать одни от других по цвету• Оптимально ли использовать гистограмму цветов на

интервале от [0,255]?• Не все цвета встречаются!

Page 15: 20120414 videorecognition konushin_lecture03

Адаптивное квантование

• Хотим разбить элементы (пр. пиксели) на часто встречающиеся группы

• Затем можем каждый элемент сопоставить своей группе (дать ему номер группы)

• Кластеризация!

Page 16: 20120414 videorecognition konushin_lecture03

Кластеризация

X2

X1

• Дана обучающая выборка

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

• цель: для всех новых значений x оценить значения x

i mx R

( )i x x�

1m mX x , ..., x

Page 17: 20120414 videorecognition konushin_lecture03

Кластеризация K-cредними• Минимизируем сумму квадратов Евклидовых

расстояний между точками xi и ближайшими центрами кластеров mk

• Алгоритм:• Случайно инициализируем K центров кластеров• Повторяем до сходимости:

• Назначаем каждую точку ближайшему центру• Пересчитываем центр каждого кластера как среднее

всех назначенных точек

k

ki

ki mxMXDcluster

clusterinpoint

2)(),(

Page 18: 20120414 videorecognition konushin_lecture03

Иллюстрация

Page 19: 20120414 videorecognition konushin_lecture03

Иллюстрация

Page 20: 20120414 videorecognition konushin_lecture03

Иллюстрация

Page 21: 20120414 videorecognition konushin_lecture03

Иллюстрация

Page 22: 20120414 videorecognition konushin_lecture03

Иллюстрация

Page 23: 20120414 videorecognition konushin_lecture03

Иллюстрация

Page 24: 20120414 videorecognition konushin_lecture03

Иллюстрация

Page 25: 20120414 videorecognition konushin_lecture03

Иллюстрация

Page 26: 20120414 videorecognition konushin_lecture03

Иллюстрация

Page 27: 20120414 videorecognition konushin_lecture03

Алгоритм К-средних

• Однопараметрический• Требует знания только о

количестве кластеров

• Рандомизирован• Зависит от начального

приближения

• Не учитывает строения самих кластеров

• Часто применяется

Page 28: 20120414 videorecognition konushin_lecture03

Для нашего примера

• Зададим количество кластеров (например, 100)• Кластеризуем• Будут кластеры в белой, зеленой, черной,

оранжевой областях

Page 29: 20120414 videorecognition konushin_lecture03

Функции сравнения гистограмм

• Histogram intersection(нормализованные гистограммы)

• L1 distance

• χ2 distance

• Quadratic distance (cross-bin)

N

iihihhhD

12121 |)()(|),(

Jan Puzicha, Yossi Rubner, Carlo Tomasi, Joachim M. Buhmann: Empirical Evaluation of Dissimilarity Measures for Color and Texture. ICCV 1999

N

i ihihihihhhD

1 21

221

21 )()()()(),(

ji

ij jhihAhhD,

22121 ))()((),(

K

mjiji mhmhhhD

1)(),(min1),(

Page 30: 20120414 videorecognition konushin_lecture03

Проблемы сравнения гистограмм

• Все метрики сравнения гистограмм чувствительны к размеру ячеек

• Можно использовать более широкие ячейки, но при этом теряем «разрешающую способность»

?

Page 31: 20120414 videorecognition konushin_lecture03

Пространственное распределение

У всех этих трех изображений похожие гистограммы цветов

Page 32: 20120414 videorecognition konushin_lecture03

Пространственная пирамида

Вычислим гистограму в каждом блоке и объединим все гистограммы в один вектор-признак

Уровень 0 Уровень 1 Уровень 2

Page 33: 20120414 videorecognition konushin_lecture03

Пример: HOG

• Идея была изначально предложена для пешеходов, но затем стала широко применяться

• Прямоугольное окно 64 x 128 пикселов разобьём на ячейки (cells) 8 x 8 пикселей

• В каждой ячейке посчитаем гистограмму ориентаций градиентов (8 корзин)

• Можем нормализовать не каждую гистограмму отдельно, а объединяя их в блоки 2x2 и тогда нормализуя вместе

• Много параметров для настройки

Navneet Dalal, Bill Triggs,Histograms of Oriented Gradients for Human Detection, CVPR 2005

Page 34: 20120414 videorecognition konushin_lecture03

Примеры

Page 35: 20120414 videorecognition konushin_lecture03

Общая схема

Вычислим признаки по

изображению

Посчитаем статистику по выбранной

области

Квантуем признаки

Определим область для вычисления

RGB Квантование на 10 уровней

71% 29%

Посчитанная гистограмма

Теперь нужно обучить классификатор по этим признакам

Page 36: 20120414 videorecognition konushin_lecture03

Линейный классификатор• Найдем линейную функцию (гиперплоскость) и разделим

положительные {y=+1} и отрицательные {y=-1} примеры {x}

0:0:

bныеотрицательbныеположитель

ii

ii

wxxwxx

Какая гиперплоскость

наилучшая?

Page 37: 20120414 videorecognition konushin_lecture03

Метод опорных векторов (SVM)• Support Vector Machine (SVM)• Найдем гиперплоскость, максимизирующую отступ между

положительными и отрицательными примерами

C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998

Page 38: 20120414 videorecognition konushin_lecture03

Метод опорный векторов• Найдем гиперплоскость, максимизирующую отступ между

положительными и отрицательными примерами

1:1)(1:1)(

byныеотрицательbyныеположитель

iii

iii

wxxwxx

ОтступОпорные вектора

C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998

Расстояние от точки до гиперплоскости: ||||

||wwx bi

Для опорных векторов, 1 bi wx

Поэтому отступ равен 2 / ||w||

Page 39: 20120414 videorecognition konushin_lecture03

Поиск гиперплоскости1. Максимизируем 2/||w||2. Правильно классифицируем все данные:

• Квадратичная оптимизационная задача:

• Минимизируем

При условии yi(w·xi+b) ≥ 1

• Решается с помощью методом множителей Лагранжа

C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998

wwT

21

1:1)(1:1)(

byныеотрицательbyныеположитель

iii

iii

wxxwxx

Page 40: 20120414 videorecognition konushin_lecture03

Поиск гиперплоскости

• Решение:

• Для большей части векторов вес = 0!• Все вектора, для которых вес >0 называются

опорными• Определяется только опорными векторами

i iii y xw

C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998

Опорныевектора

Обученные веса

Page 41: 20120414 videorecognition konushin_lecture03

Поиск гиперплоскости• Решение:

b = yi – w·xi для любого опорного вектора

• Решающая функция:

• Решающая функция зависит от скалярных произведений (inner product) от тестового вектора x и опорных векторов xi

• Решение оптимизационной задачи также требует вычисления скалярных произведений xi · xj между всеми парами векторов из обучающей выборки

i iii y xw

C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998

bybi iii xxxw

Page 42: 20120414 videorecognition konushin_lecture03

Реальный случай

ξi

ξj

Минимизируем

При условии

С – параметр регуляризации

n

ii

T C12

1 ww

Tn ,...,1

Вводим дополнительные «slack» переменные:

iii bwxy 1)(

Page 43: 20120414 videorecognition konushin_lecture03

• На линейно разделимых данных SVM работает отлично:

• Но на более сложных данных не очень:

• Можно отобразить данные на пространство большей размерности и разделить их линейно там:

0 x

0 x

0 x

x2

Нелинейные SVM

Slide credit: Andrew Moore

Page 44: 20120414 videorecognition konushin_lecture03

Φ: x→ φ(x)

Нелинейные SVM• Идея: отображение исходного пространства

параметров на какое-то многомерное пространство признаков (feature space) где обучающая выборка линейно разделима:

Slide credit: Andrew Moore

Page 45: 20120414 videorecognition konushin_lecture03

Нелинейные SVM• Вычисление скалярных произведений в многомерном

пространстве вычислительно сложно• The kernel trick: вместо прямого вычисления преобразования

φ(x), мы определим ядровую функцию K:

K(xi , xjj) = φ(xi ) · φ(xj)

• Чтобы все было корретно, ядро должно удовлетворять условию Мерсера (Mercer’s condition)

• Матрица K(xi,xj) должна быть неотрицательно определенной

• С помощью ядра мы сможем построить нелинейную решающую функцию в исходном пространстве:

bKyi

iii ),( xx

C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998

Page 46: 20120414 videorecognition konushin_lecture03

Для гистограмм

• Поскольку вектор-признак у нас – гистограмма, нам потребуются специальные ядра

• Ядро пересечения гистограмм:

• Обобщенное гауссово ядро:

• D может быть евклидовым расстоянием, χ2 , и т.д.

N

iihihhhI

12121 ))(),(min(),(

2

2121 ),(1

exp),( hhDA

hhK

J. Zhang, M. Marszalek, S. Lazebnik, and C. Schmid, Local Features and Kernels for Classifcation of Texture and Object Categories: A Comprehensive Study, IJCV 2007

Page 47: 20120414 videorecognition konushin_lecture03

Обучение детектора• Сколько на изображении объектов «автомобиль» и сколько

фрагментов фона?

• Выделение объектов ассиметричная задача: объектов гораздо меньше, чем «не-объектов»

• Вдобавок, класс «не объект» очень сложный – нужно много разных данных для обучения

• Для SVM желательно одинаковое количество и фона, и объекта

Page 48: 20120414 videorecognition konushin_lecture03

Пример – поиск «торса»

• Хотим построить детектор «верхней части тела и головы»

• Воспользуемся схемой HOG + линейный SVM• Данные

• 33 фрагмента фильмов из базы Hollywood2• 1122 кадров с размеченным объектами

• На каждом кадре отмечены 1-3 человека, всего 1607 людей, это маловато

Page 49: 20120414 videorecognition konushin_lecture03

Положительные окна

Внимание: похожие положение и ориентация!

Посмотрим, что отметили люди при разметке:

Page 50: 20120414 videorecognition konushin_lecture03

Искаженные примеры

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

Давайте «размножим» данные, «пошевелив» их:

Page 51: 20120414 videorecognition konushin_lecture03

Искаженные примеры

Сколько отрицательных примеров можно набрать из 1100 кадров?• Гораздо больше 32k.

Вспомним SVM – нам нужны «трудные примеры» для фона. Как их найти, если мы всего можем выбрать ~32k для фона?

Из 1607 эталонных примеров получили ~32000 искаженных (jittered) примеров

Page 52: 20120414 videorecognition konushin_lecture03

Бутстраппинг (Bootstrapping)

• Выбираем отрицательные примеры случайным образом

• Обучаем классификатор• Применяем к данным• Добавляем ложные

обнаружение к выборке• Повторяем

• Смысл:• Ложные обнаружения для первого детектора – сложные (hard negative)• Пусть наша выборка фона будет маленькой, но сложной и представительной

I. Laptev "Improvements of Object Detection Using Boosted Histograms« ВMVC 2006

Page 53: 20120414 videorecognition konushin_lecture03

Случайные фрагменты фона

Элементы выборки фона для первой итерации:

Page 54: 20120414 videorecognition konushin_lecture03

Первая стадия

• Ищем ложные обнаружения с высоким рейтингом • Используем их как трудные отрицательные примеры• Затраты: # количество изображений x поиск в каждом

Трудный отрицательный пример

Page 55: 20120414 videorecognition konushin_lecture03

Трудные примеры

Page 56: 20120414 videorecognition konushin_lecture03

Трудные примеры

Page 57: 20120414 videorecognition konushin_lecture03

Измерение качества

Page 58: 20120414 videorecognition konushin_lecture03

После перетренировки

Page 59: 20120414 videorecognition konushin_lecture03

Сравнение

Page 60: 20120414 videorecognition konushin_lecture03

Сравнение

Page 61: 20120414 videorecognition konushin_lecture03

Пример

Page 62: 20120414 videorecognition konushin_lecture03

Резюме алгоритма

• Используем скользящее окно• Строим вектор-признак

• Выбираем признаки пикселей для расчёта• Определяем вид агрегирования (гистограмма, метод

построения)• Выбираем пространственное разбиение (окно целиком,

сетка, пирамида)

• Обучаемый SVM• Линейный• Нелинейный (нужно выбрать тип ядра)

• Для обучения:• Размножаем (шевелим) эталонные примеры объектов• Используем схему bootstrapping для выбора примеров

фона

Page 63: 20120414 videorecognition konushin_lecture03

Требования к детектору• Для изображения в 1МП нужно просмотреть порядка

1М окон (например, для случая лиц)• На одном изображении обычно 0-10 лиц

• Чтобы избежать ложных обнаружений (false positives)ошибка 2го рода должна быть ниже 10-6

• Нужно быстро отбрасывать ложные окна

Page 64: 20120414 videorecognition konushin_lecture03

Детектор Violo-Jones• Основополагающий метод для поиска объектов

на изображении в реальном времени• Обучение очень медленное, но поиск очень быстр• Основные идеи:

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

признаков• Бустинг для выбора признаков• Каскад (Attentional cascade) для быстрой отбраковки окон

без лица

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.

Page 65: 20120414 videorecognition konushin_lecture03

Найти стул в изображении

Что если воспользоваться маленькими фрагментами? Искать не стул, а часть стула?

Вспомним сопоставление шаблонов

Page 66: 20120414 videorecognition konushin_lecture03

Части объектовЧто если воспользоваться маленькими фрагментами? Искать не стул, а часть стула?

Не так плохо, срабатывает на ножках

Page 67: 20120414 videorecognition konushin_lecture03

Определим семейство визуальных признаков, которые могут использоваться как слабые классификаторы («слабые детекторы»

Берём изображение на вход. Бинарный отклик будет выходом. Получаем слабый детектор.

Слабые детекторы

Page 68: 20120414 videorecognition konushin_lecture03

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

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

Value =

∑ (pixels in white area) –∑ (pixels in black area)

Page 69: 20120414 videorecognition konushin_lecture03

Пример

Source

Result

Page 70: 20120414 videorecognition konushin_lecture03

Интегральные изображения

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

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

(x,y)

Page 71: 20120414 videorecognition konushin_lecture03

Вычисление интегрального изображения

Page 72: 20120414 videorecognition konushin_lecture03

Вычисление интегрального изображения

• Сумма по строке: s(x, y) = s(x–1, y) + i(x, y) • Интегральное изображение: ii(x, y) = ii(x, y−1) +

s(x, y)

ii(x, y-1)s(x-1, y)

i(x, y)

MATLAB: ii = cumsum(cumsum(double(i)), 2);

Page 73: 20120414 videorecognition konushin_lecture03

Вычисление суммы в прямоугольнике

• Пусть A,B,C,D – значения интегрального изображения в углах прямоугольника

• Тогда сумма значений пикселов в исходном изображении вычисляется по формуле:

sum = A – B – C + D• 3 операции сложения для

любого прямоугольника

D B

C A

Page 74: 20120414 videorecognition konushin_lecture03

Пример

-1 +1+2-1

-2+1

Integral Image

Page 75: 20120414 videorecognition konushin_lecture03

Выбор признаков• Для окна поиска 24x24 пиксела, число возможных

прямоугольных признаков достигает ~160,000!

Page 76: 20120414 videorecognition konushin_lecture03

Выбор признаков

• Для окна поиска 24x24 пиксела, число возможных прямоугольных признаков достигает ~160,000!

• В процессе поиска вычислять все признаки нереально

• Хороший классификатор должен использовать лишь маленькое подмножество всевозможных признаков

• Вопрос - как выбрать такое подмножество?

Page 77: 20120414 videorecognition konushin_lecture03

Бустинг• Бустинг – схема классификации, основанная на

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

• Обучение состоит из нескольких этапов усиления (boosting rounds)• На каждом этапе выбираем слабый классификатор,

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

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

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

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

Page 78: 20120414 videorecognition konushin_lecture03

Пример хорошего классификатора

+

++

+

+

Page 79: 20120414 videorecognition konushin_lecture03

Итерация 1 из 3

+

+++

+

O

OO+

++

+

+

D2e1 = 0.300

a1=0.424

h1

Page 80: 20120414 videorecognition konushin_lecture03

Итерация 2 из 3

+++

+

+

OO

O

+

++

+

+

D2h2e2 = 0.196

a2=0.704

Page 81: 20120414 videorecognition konushin_lecture03

Итерация 3 из 3

+

++

+

+

h3

e3 = 0.344

a2=0.323

O

O

O СТОП

Page 82: 20120414 videorecognition konushin_lecture03

Конечная гипотеза

0.42 + 0.70 + 0.32

+

++

++

)](72.0)(70.0)(42.0[ 321 xhxhxhsignH final

1

0

,1,1

)(xx

xhi

Page 83: 20120414 videorecognition konushin_lecture03

Инициализируем D1(i) = 1/m Ошибка htрассчитывается с учётом Dt

])([Pr ~ iikDik yxhk

1. Обучим hk с минимальной ошибкой

k

kt

1ln

21

2. Рассчитаем вес гипотезы

iik

iik

k

kk yxhe

yxheZ

iDiDk

k

)(if)(if)()(1

3. Для всех i = 1 to m

K

kkk xhxH

1)(sign)(

Результат:

Вес Adaптируется. Чем больше ek тем меньшеak

Zt нормализующий коэф.

AdaBoost (Discreet)

Увеличиваем вес примера, если на нём алгоритм ошибается

Линейная комбинация

Пусть T: (x1, y1), …, (xm, ym) где }1,1{, ii yXx

Для Kk ,1

Пусть есть набор {h} – слабых классификаторов

Page 84: 20120414 videorecognition konushin_lecture03

AdaBoost (пороги)

Page 85: 20120414 videorecognition konushin_lecture03

Эмпирический риск• Как показали Freund и Schapire

• Эмпирический риск падает по экспоненте –высокая скорость обучения

2

12

exp 2

k k

emp kk

R

Page 86: 20120414 videorecognition konushin_lecture03

Бустинг• Плюсы

+ Универсальность

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

+ Высокая обобщающая способность

+ Возможность очень эффективной программной реализации и распараллеливания

+ Простота метода и отсутствия параметров

• Минусы– Трудность определения

нужного числа итераций обучения (зачастую, ошибка на контроле продолжает падать и после нуля эмпирического риска)

Page 87: 20120414 videorecognition konushin_lecture03

• Определяем слабые классификаторы на основе прямоугольных признаков

• Для каждого этапа бустинга:• Вычисляем каждый прямоугольный признак на каждом

примере• Выбираем наилучший порог для каждого признака• Выбираем наилучший признак / порог• Перевзвешиваем выборку

• Вычислительная сложность обучения: O(MNK)• M этапов, N примеров, K признаков

Бустинг для поиска лиц

Page 88: 20120414 videorecognition konushin_lecture03

Слабые классификаторы

• Определяем слабые классификаторы на основе прямоугольных признаков

0

)( if 1)( tt

t

xfxh

окно

Значение признака

порог

Page 89: 20120414 videorecognition konushin_lecture03

Бустинг для поиска лиц• Первые два признака, выбранные бустингом:

Эта комбинация признаков дает 100% detection rate и 50% false positive rate

Page 90: 20120414 videorecognition konushin_lecture03

Бустинг для поиска лиц• Классификатор из 200 признаков дает 95% точность и

долю ложноположительных срабатываний 1 из 14084

Недостаточно хорошо!

ROC-кривая

Page 91: 20120414 videorecognition konushin_lecture03

Каскад (Attentional cascade)

• Начинаем с простых классификаторов, которые отбрасывают часть отрицательных окон, при этом принимая почти все положительные окна

• Положительный отклик первого классификатора запускает вычисление второго, более сложного, классификатора, и т.д.

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

FACEIMAGESUB-WINDOW Classifier 1

TClassifier 3

T

F

NON-FACE

TClassifier 2

T

F

NON-FACE

F

NON-FACE

Page 92: 20120414 videorecognition konushin_lecture03

Каскад

• Медленные классификаторы применяются только к некоторым окнам ⇒ существенное ускорение

• Управляем сложностью/скоростью классификатора:• Количество опорных векторов [Romdhani et al, 2001]• Количество признаков [Viola & Jones, 2001]• Видом ядра SVM [Vedaldi et al, 2009]

Page 93: 20120414 videorecognition konushin_lecture03

Каскад• Цепочка классификаторов с

каждым уровнем становится более сложной, ошибка второго рода постоянно снижается

vs false neg determined by

% False Pos

% D

etec

tion

0 50

0

100

FACEIMAGESUB-WINDOW Classifier 1

TClassifier 3

T

F

NON-FACE

TClassifier 2

T

F

NON-FACE

F

NON-FACE

Receiver operating characteristic

Page 94: 20120414 videorecognition konushin_lecture03

Каскад• Уровень обнаружения и доля ложноположительных

срабатываний каскада можно оценить как произведение соответствующих уровней ошибок каждого этапа

• Уровень обнаружения 0.9 и доля ложноположительных срабатываний порядка 10-6

достигается с помощью каскада из 10 этапов, если на каждом этапе уровень обнаружения примерно равен 0.99 (0.9910 ≈ 0.9) и доля ложноположительных примерно 0.30 (0.310 ≈ 6×10-6)

FACEIMAGESUB-WINDOW Classifier 1

TClassifier 3

T

F

NON-FACE

TClassifier 2

T

F

NON-FACE

F

NON-FACE

Page 95: 20120414 videorecognition konushin_lecture03

Обучение каскада• Задаем требуемые значения уровня обнаружения и

доли ложноположительных срабатываний для каждого этапа

• Добавляем признаки до тех пор, пока параметры текущего этапа не достигнут заданного уровня• Приходится понижать порог AdaBoost для максимизации

обнаружения (в противоположенность минимизации общей ошибки классификации)

• Тестирование на отдельном наборе (validation set)• Если общий уровень ложноположительных

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

• Ложные обнаружения на текущем этапе используются как отрицательные примеры на следующем этапе

Page 96: 20120414 videorecognition konushin_lecture03

Тренировочная выборка

• 5000 лиц• Все фронтальные,

уменьшенные до24x24 пикселов

• Все нормированы

• 300М отрицательных примеров• 9500 изображений без лиц

• Большая изменчивость• Разные люди• Освещение• Поза лица

Page 97: 20120414 videorecognition konushin_lecture03

Производительность системы• Обучение: “недели” на 466 MHz Sun рабочей

станции• 38 этапов, всего 6061 признаков• В среднем 10 признаков оцениваются для каждого

окна на тестовой выборке• “На 700 Mhz Pentium III, детектор лиц

обрабатывает одно изображение 384x288 пикселов за 0.067 секунды” • 15 Hz• В 15 раз быстрее сравнимого по точности

предшествующего метода (Rowley et al., 1998)

Page 98: 20120414 videorecognition konushin_lecture03

Пример работы

Page 99: 20120414 videorecognition konushin_lecture03

Поиск профилей

Page 100: 20120414 videorecognition konushin_lecture03

Признаки для поиска профилей

Page 101: 20120414 videorecognition konushin_lecture03

Резюме: детектор Violo-Jones

• Прямоугольные признаки как слабые классификаторы

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

• Бустинг для выбора признаков• Каскад классификаторов для быстрого

выбраковки отрицательных окон

Page 102: 20120414 videorecognition konushin_lecture03

Pascal VOC

• PASCAL Visual Object Classes (VOC) Dataset and Challenge

• 20 классов: • aeroplane, bicycle, boat, bottle, bus, car, cat, chair, cow,

dining table, dog, horse, motorbike, person, potted plant, sheep, train, TV

• Реальные изображения из flickr, не фильтровались по качеству

Page 103: 20120414 videorecognition konushin_lecture03
Page 104: 20120414 videorecognition konushin_lecture03

Object Detection with Discriminatively Trained Part Based Models

Pedro F. Felzenszwalb, David Mcallester, Deva Ramanan, Ross Girshick

PAMI 2010

Page 105: 20120414 videorecognition konushin_lecture03

Подход

• Деформируемая модель из нескольких компонент• Для каждого ракурса обучим свою модуль• Каждая модель состоит из общего шаблона и нескольких

шаблонов отдельных частей• Обучение только по рамкам

Pedro F. Felzenszwalb et. Al. Object Detection with Discriminatively Trained Part Based Models, PAMI 2010

Page 106: 20120414 videorecognition konushin_lecture03

Модель

Корневой фильтрНизкое разрешение

Фильтр части2х разрешение

Модель деформации

Page 107: 20120414 videorecognition konushin_lecture03

Счета (Score) за локальные шаблоны частей

Модель деформации «пружинки»

Качество линейно по локальным шаблонам wi и параметрам пружинок wij

x = image zi = (xi,yi)z = {z1,z2...}

Source: Deva Ramanan

score(x,z) = S wi f(x, zi) + S wij Y(zi, zj) i i,j

score(x,z) = w . F(x, z)

Функция качества

Page 108: 20120414 videorecognition konushin_lecture03

HOG-фильтр

• Поиск: скользящее окно по положению и масштабу• Фичи: HOG-фильтр• Классификатор: линейный SVM

Фильтр

Page 109: 20120414 videorecognition konushin_lecture03

Гипотезы• Каждая часть – HOG-фильтр• Базовое положение

«Качество» это сумма качеств частей минус пенальти за деформацию

Page 110: 20120414 videorecognition konushin_lecture03

Обнаружение человека

Page 111: 20120414 videorecognition konushin_lecture03

Резюме лекции

• Скользящее окно – один из основных способов сведения задачи выделения объектов к задаче категоризации изображений

• Нужно уделить большое внимание построению хорошей выборки для обучения (jittering, bootstrapping)

• Каскад классификаторов – хороший способ повышения точности и скорости работы

• Методы и схемы:• HOG + SVM• Viola-Jones• HOG + SVM + компоненты