Поиск объектов

56
Поиск объектов на изображении Many slides adapted from P. Viola and S.Lazebnik CSEDays-2010

Upload: lilosea

Post on 22-May-2015

2.669 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Поиск объектов

Поиск объектов на изображении

Many slides adapted from P. Viola and S.Lazebnik

CSEDays-2010

Page 2: Поиск объектов

Вспоминаем - «Мешок слов»

1. Извлечение особенностей

2. Обучить “визуальный словарь”

3. Квантуем особенности по словарю

4. Описываем картинку частотами «визуальных слов»

5. Варианты:• Поиск ближайшего• Многоклассовая

классификация

Page 3: Поиск объектов

Найти интересные объекты (людей)

Page 4: Поиск объектов

• Подход на основе скользящего окна (sliding window). • Сканируем изображение окном поиска и применяем классификатор к каждому положению

Поиск лиц

Page 5: Поиск объектов

Требования к детектору лиц

• Скользящим окно необходимо оценить десятки тысяч возможных комбинаций масштаба / положения

• Лица же достаточно редкий объект – 0-10 лиц на картинке• Для достижения вычислительной эффективности

отрицательные примеры нужно отбрасывать как можно быстрее

• На изображении в 1МП сопоставимое с количеством пикселей число возможных положений лица

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

Page 6: Поиск объектов

Детектор 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 7: Поиск объектов

Признаки

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

Value =

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

Page 8: Поиск объектов

Пример

Source

Result

Page 9: Поиск объектов

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

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

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

(x,y)

Page 10: Поиск объектов

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

Page 11: Поиск объектов

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

• Сумма по строке: 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 12: Поиск объектов

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

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

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

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

D B

C A

Page 13: Поиск объектов

Пример

-1 +1+2

-1

-2

+1

Integral Image

Page 14: Поиск объектов

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

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

Page 15: Поиск объектов

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

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

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

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

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

Page 16: Поиск объектов

Бустинг

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

• Обучение состоит из нескольких этапов усиления (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 17: Поиск объектов

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

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

0

)( if 1)( tt

t

xfxh

окно

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

порог

Page 18: Поиск объектов

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

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

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

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

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

Page 19: Поиск объектов

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

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

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

Page 20: Поиск объектов

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

• Классификатор из 200 признаков дает 95% detection rate и a false positive rate of 1 in 14084

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

Receiver operating characteristic (ROC) curve

Page 21: Поиск объектов

Каскад (Attentional cascade)

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

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

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

FACEIMAGESUB-WINDOW

Classifier 1T

Classifier 3T

F

NON-FACE

TClassifier 2

T

F

NON-FACE

F

NON-FACE

Page 22: Поиск объектов

Каскад

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

vs false neg determined by

% False Pos

% D

etec

tion

0 50

0

100

FACEIMAGESUB-WINDOW

Classifier 1T

Classifier 3T

F

NON-FACE

TClassifier 2

T

F

NON-FACE

F

NON-FACE

Receiver operating characteristic

Page 23: Поиск объектов

Каскад

• detection rate и false positive rate каскада вычисляются как произведение соответствующих уровней ошибок каждого этапа

• A detection rate 0.9 и false positive rate порядка 10-6 достигается с помощью каскада из 10 этапов, если на каждом этапе detection rate примерно равен 0.99 (0.9910 ≈ 0.9) и false positive rate примерно 0.30 (0.310 ≈ 6×10-6)

FACEIMAGESUB-WINDOW

Classifier 1T

Classifier 3T

F

NON-FACE

TClassifier 2

T

F

NON-FACE

F

NON-FACE

Page 24: Поиск объектов

Обучение каскада

• Задаем требуемые значения detection and false positive rates для каждого этапа

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

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

• Тестирование на отдельном наборе (validation set)

• Если общий уровень false positive rate недостаточно низок, добавляем очередной этап

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

Page 25: Поиск объектов

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

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

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

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

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

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

Page 26: Поиск объектов

Производительность системы

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

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

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

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

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

Page 27: Поиск объектов

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

Page 28: Поиск объектов

Другие задачи поиска объектов

Локализация черт лица

Определение пола

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

Page 29: Поиск объектов

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

Page 30: Поиск объектов

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

Page 31: Поиск объектов

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

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

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

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

Page 32: Поиск объектов

Дескриптор HOG и поиск пешеходов

• HOG = Histogram of Oriented Gradients

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

Основа работы – эксперименты с разными параметрами системы

Page 33: Поиск объектов

uncentered

centered

cubic-corrected

Sobel

Slides by Pete Barnum

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

• В RGB (цвете)• берем максимум по каналам

• Рамка больше объекта!

• Иначе качество падает

Page 34: Поиск объектов

• «Ячейки» (Cells)• Лучший 8*8 пикселов

• Гистограмма ориентаций

• «Взвешенные гистограммы»• Тестирование разного количества

ячеек• Идеально около 9, без ориентаций

Slides by Pete Barnum

Page 35: Поиск объектов

•Нормализация по блокам• 2*2, 3*3 блоки из ячеек

• Блоки пересекаются по ячейкам, каждая ячейка участвует в нескольких блоках• Нормализуем вектора-дескрипторы• Несколько вариантов нормализации

Slides by Pete Barnum

Page 36: Поиск объектов

•Параметры• 64*128 окно поиска• 7*15 блоков = 105 блоков• Каждый блок – 4 ячейки с гистограммой из 9 корзин• 38*7*15 = 3780 признаков

• Классификация с помощью SVM - (Support Vector Machine)• Машина опорных векторов

Slides by Pete Barnum

Page 37: Поиск объектов

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

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

0:negative

0:positive

b

b

ii

ii

wxx

wxx

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

лучше?

Page 38: Поиск объектов

Машина опорных векторов• Найти гиперплоскость, которая максимизирует отступ

(margin) между положительными и отрицательными примерами

1:1)(negative

1:1)( positive

by

by

iii

iii

wxx

wxx

MarginSupport vectors

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

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

||

w

wx bi

Опорные вектора, 1 bi wx

Отступ равен 2 / ||w||

Page 39: Поиск объектов

Машина опорных векторов• Найти гиперплоскость, которая максимизирует отступ

(margin) между положительными и отрицательными примерами

ГраницаОпорныевектора

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

Оптимизационная задача:

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

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

wwT

2

1

i iii y xw

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

веса

Page 40: Поиск объектов

HOG: резюме

• Вклад авторов• HOG по ячейкам• Плотная сетка ячеек • Локальная нормализация

каждого блока, причем блоки пересекаются

• Фиксированное окно и ячейки • 1 кадр в секунду

• Разреженный перебор• ~800 окон на кадр

Page 41: Поиск объектов

Violo-Jones + HOG = Cascade HOG

• Ускорение поиска людей за счет объединения идей• HOG блоки разного размера как признаки

– Нужно для каскада

– Маленькие блоки не репрезентативны на первых стадиях

– От 12*12 до 64*128 пикселей

– Всего 5031 блок

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

• Линейный SVM в качестве слабого классификатора• Бустинг для выбора признаков (слабых

классификаторов)

Qiang Zhu et. al. Fast human detection using a cascade of Histograms of Oriented Gradients, CVPR 2006

Page 42: Поиск объектов

Параметры каскада

• (а) – признаки с наименьшей ошибкой• (b) – уровень 1 (с) – уровень 2, (d) – уровень 8

Page 43: Поиск объектов

Cascaded HOG

• HOG + integral images + SVM + boosting• 12800 окон на изображение• 4-5 кадров в секунду

• 70-80X ускорение при том же качестве

• Behold the power of cascade and boosting!

Page 44: Поиск объектов
Page 45: Поиск объектов
Page 46: Поиск объектов

Схемы голосования для поиска объектов

Juergen Gall, Victor Lempitsky: Class-specific Hough Forests for Object Detection. CVPR 2009

• Пусть «визуальные слова» будут голосовать за положение объекта!

Page 47: Поиск объектов

Идея• Для каждого «слова» запоминаем:

• Принадлежит ли оно объекту• Вектор-смещения от слова к центру объекта

Тренировочное изображение

Визуальное слово с векторами смещения

Page 48: Поиск объектов

Случайные окна + решающий лес

Page 49: Поиск объектов

Решающий лес

На выходе: вероятность принадлежности объекту + распределение положений относительно центра

Page 50: Поиск объектов

Признаки и бинарные тесты

• 16 признаков на каждый пиксель окна• 3 канала LAB• Первые производные по x и y• Вторые производные по x и y• HOG (9 ориентаций)

– По окрестности 5x5• 32 признака всего

• Min и мах значение каждого признака по 5x5 окрестности

а - № канала

Page 51: Поиск объектов

Применение леса

Page 52: Поиск объектов

Обнаружение объектов

52

Page 53: Поиск объектов

Обнаружение объектов

Обнаружение объектов разных размеров

53

Page 54: Поиск объектов

Обнаружение объектов

На данный момент, около 2-6 секунд на изображение

54

Page 55: Поиск объектов

Построение решения

• Выбор признаков• Должны считаться быстро (пр. интегральные

изображения)

• Метод сканирования изображения• Сканирующее окно (быстро)• Особые точки (медленно)• Случайные области (медленно)

• Каскад• Единственный метод достижения скорости работы в

реальном времени

Page 56: Поиск объектов

Методы классификации

• Бустинг• Объединяет классификацию и выбор признаков• Требуется большая обучающая выборка• Долго обучается

• SVM• На практике часто работает лучше бустинга

• Решающий лес• Быстрое обучение• Простая реализация• Хорошо работает при больших размерностях векторов• Вероятностное распределение на выходе