SlideShare une entreprise Scribd logo
1  sur  111
Télécharger pour lire hors ligne
Выделение объектов




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

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




• Структурный выход
  • Нужно выдать ограничивающий
    прямоугольник
Насколько задача сложна?


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


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

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




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


Сложный фон, разные ракурсы, внутриклассовая изменчивость объектов
Скользящее окно
    Сканирование изображения окном фиксированного
    размера – хорошая идея
                                • Рассматриваем
                                  только
                                  прямоугольную
                                  область (окно)
                                • Если выбрали точно,
                                  то в эту область
                                  попадёт только лицо
                                • Просмотрим все
                                  области, «сканируя»
                                  окном изображение
•    Каждую область будем обрабатывать независимо
Недостатки скользящего окна

• Соотношение размеров
  рамки
• Дискретность сдвига
• Частичное перекрытие
• Множественные отклики
Классификация окон
•   Фактически, разделяем изображение на множество
    перекрывающихся окон
•   Сформулируем задачу выделения объектов как задачу
    классификации окна – объект / не объект
•   Для обучения классификатора будем собирать выборки
    окон с объектами и без объектов               Решающая
                                                  граница
                                       Фон
Где мониторы?




                                                   Мониторы
                   Мешок фрагментов
                                       В пространстве признаков
Схема метода

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




                             Обучение
                Признаки                   Обученный
                            классифика   классификатор
              изображения
                               тора
Схема метода

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




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




                     Применение
                                                    Предсказание
                Признаки            Обученный
              изображения         классификатор     Машина
Признаки пикселей




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




   Градиенты в каждом                  Наличие и ориентация
         пикселе                       края в каждом пикселе
Использование напрямую
                           •   Можно ли использовать признаки
                               всех пикселей напрямую?
                           •   Можно, если все изображения для
                               классификации будут одинакового
                               размера
                           •   Нормализуем изображения, т.е.
                               приведем их к одному размеру
                           •   Вытянем изображение в вектор,
                               признаки пикселей будут
                               элементами вектора




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




• Вместо использования признаков напрямую, можно
  вычислить какие-то общие характеристики для объекта
  («агрегирование» признаков)
• Гистограммы – стандартный способ непараметрического
  описания распределения признаков
                                     Space Shuttle
                                     Cargo Bay
                                           Images from Dave Kauchak
Квантование признаков




• Как построить гистограмму для признаков, которые
  изменяются непрерывно?
• Или разрешение слишком большое?
• «Квантование» - отображение признаков на меньшее
  разрешение
  • Пр: все направления градиента разбиваем на 8 вариантов
  • Каждый вариант нумеруем от 1 до 8
Квантование признаков




• Есть фотографии тигров и медведей
• Хотим научиться отличать одни от других по цвету
• Оптимально ли использовать гистограмму цветов на
  интервале от [0,255]?
• Не все цвета встречаются!
Адаптивное квантование




• Хотим разбить элементы (пр. пиксели) на часто
  встречающиеся группы
• Затем можем каждый элемент сопоставить своей
  группе (дать ему номер группы)
• Кластеризация!
Кластеризация
•   Дана обучающая выборка
                                              m
                X m  x1 , ..., x m  xi  R
•   Объекты независимы и взяты из некоторого неизвестного
    распределения
                    xi   (x)
•   цель: для всех новых значений x оценить значения   x 


      X2




                                                               X1
Кластеризация K-cредними
•    Минимизируем сумму квадратов Евклидовых
     расстояний между точками xi и ближайшими
     центрами кластеров mk

               D( X , M )                 ( xi  mk ) 2
                              cluster k point i in
                                        cluster k
•    Алгоритм:
•    Случайно инициализируем K центров кластеров
•    Повторяем до сходимости:
     •   Назначаем каждую точку ближайшему центру
     •   Пересчитываем центр каждого кластера как среднее
         всех назначенных точек
Иллюстрация
Иллюстрация
Иллюстрация
Иллюстрация
Иллюстрация
Иллюстрация
Иллюстрация
Иллюстрация
Иллюстрация
Алгоритм К-средних

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


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


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

•   Часто применяется
Для нашего примера




• Зададим количество кластеров (например, 100)
• Кластеризуем
• Будут кластеры в белой, зеленой, черной,
  оранжевой областях
Функции сравнения гистограмм
                                                                 K
 • Histogram intersection
 (нормализованные гистограммы)
                                       D (hi , h j )  1   min hi ( m ), h j (m ) 
                                                              m 1
                                                       N
 • L1 distance                         D( h1 , h2 )   | h1 (i)  h2 (i) |
                                                       i 1



 •   χ2   distance                     D( h1 , h2 )  
                                                             N
                                                                     h1 (i)  h2 (i)  2


                                                         i 1         h1 (i)  h2 (i)

 • Quadratic distance (cross-bin)
                                    D (h1 , h2 )   Aij ( h1 (i)  h2 ( j)) 2
                                                      i, j

Jan Puzicha, Yossi Rubner, Carlo Tomasi, Joachim M. Buhmann: Empirical Evaluation of
Dissimilarity Measures for Color and Texture. ICCV 1999
Проблемы сравнения гистограмм


                             ?




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




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


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




          Уровень 0     Уровень 1   Уровень 2
Пример: HOG
 •   Идея была изначально
     предложена для пешеходов, но
     затем стала широко применяться
 •   Прямоугольное окно 64 x 128
     пикселов разобьём на ячейки
     (cells) 8 x 8 пикселей
 •   В каждой ячейке посчитаем
     гистограмму ориентаций
     градиентов (8 корзин)
 •   Можем нормализовать не каждую
     гистограмму отдельно, а
     объединяя их в блоки 2x2 и тогда
     нормализуя вместе
 •   Много параметров для настройки


Navneet Dalal, Bill Triggs,Histograms of Oriented Gradients for Human Detection, CVPR 2005
Примеры
Общая схема


                                                           Посчитаем
  Вычислим                            Определим
                   Квантуем                               статистику по
 признаки по                          область для
                   признаки                                выбранной
изображению                           вычисления
                                                             области



                                                    71%    29%




         RGB            Квантование на 10           Посчитанная
                        уровней                     гистограмма


  Теперь нужно обучить классификатор по этим признакам
Линейный классификатор
•   Найдем линейную функцию (гиперплоскость) и разделим
    положительные {y=+1} и отрицательные {y=-1} примеры {x}



                                    x i положитель ные :   xi  w  b  0
                                    x i отрицатель ные :   xi  w  b  0




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




C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining
and Knowledge Discovery, 1998
Метод опорный векторов
      •   Найдем гиперплоскость, максимизирующую отступ между
          положительными и отрицательными примерами


                                            xi положитель ные ( yi  1) :      xi  w  b  1
                                            xi отрицатель ные ( yi  1) :    x i  w  b  1


                                              Для опорных векторов,          x i  w  b  1

                                              Расстояние от точки до             | xi  w  b |
                                              гиперплоскости:                        || w ||

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

C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining
and Knowledge Discovery, 1998
Поиск гиперплоскости
      1.   Максимизируем 2/||w||
      2.   Правильно классифицируем все данные:

           x i положительные ( yi  1) :       xi  w  b  1
           x i отрицательные ( yi  1) :     x i  w  b  1

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


                                   1 T
      •        Минимизируем          w w
                                   2
               При условии        yi(w·xi+b) ≥ 1

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


C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining
and Knowledge Discovery, 1998
Поиск гиперплоскости

      • Решение:         w  i  i yi x i


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


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


C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining
and Knowledge Discovery, 1998
Поиск гиперплоскости
      •   Решение:       w  i  i yi x i
                         b = yi – w·xi для любого опорного вектора

      •   Решающая функция:
                      w  x  b  i  i yi xi  x  b

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




C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining
and Knowledge Discovery, 1998
Реальный случай


                  Вводим дополнительные «slack»
   ξj             переменные:             T
                                   1 ,..., n 

                                                   n
                                   1 T
                   Минимизируем       w w  C  i
                                   2             i 1

        ξi
                   При условии  yi ( wx i  b)  1  i

                   С – параметр регуляризации
Нелинейные SVM
•   На линейно разделимых данных SVM работает отлично:


                               0               x



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


                               0               x


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




                                   0           x   Slide credit: Andrew Moore
Нелинейные SVM
• Идея: отображение исходного пространства
  параметров на какое-то многомерное пространство
  признаков (feature space) где обучающая выборка
  линейно разделима:




                     Φ: x → φ(x)




                                        Slide credit: Andrew Moore
Нелинейные SVM
    •   Вычисление скалярных произведений в многомерном
        пространстве вычислительно сложно
    •   The kernel trick: вместо прямого вычисления преобразования
        φ(x), мы определим ядровую функцию K:

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

    •   Чтобы все было корретно, ядро должно удовлетворять условию
        Мерсера (Mercer’s condition)
        •   Матрица K(xi,xj) должна быть неотрицательно определенной
    •   С помощью ядра мы сможем построить нелинейную решающую
        функцию в исходном пространстве:

                              y K (x , x )  b
                              i
                                    i   i       i



C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining
and Knowledge Discovery, 1998
Для гистограмм
      • Поскольку вектор-признак у нас – гистограмма,
        нам потребуются специальные ядра
      • Ядро пересечения гистограмм:
                                        N
                         I (h1 , h2 )   min( h1 (i ), h2 (i ))
                                       i 1

      • Обобщенное гауссово ядро:
                                      1             2
                  K (h1 , h2 )  exp   D (h1 , h2 ) 
                                      A              
      • D может быть евклидовым расстоянием, χ2 , и т.д.



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
Обучение детектора
•   Сколько на изображении объектов «автомобиль» и сколько
    фрагментов фона?




•   Выделение объектов ассиметричная задача: объектов гораздо
    меньше, чем «не-объектов»
•   Вдобавок, класс «не объект» очень сложный – нужно много
    разных данных для обучения
•   Для SVM желательно одинаковое количество и фона, и объекта
Пример – поиск «торса»
• Хотим построить детектор «верхней части тела и
  головы»
• Воспользуемся схемой HOG + линейный SVM
• Данные
  • 33 фрагмента фильмов из базы Hollywood2
  • 1122 кадров с размеченным объектами
• На каждом кадре отмечены 1-3 человека, всего
  1607 людей, это маловато
Положительные окна
Посмотрим, что отметили люди при разметке:




   Внимание: похожие положение и ориентация!
Искаженные примеры
Давайте «размножим» данные, «пошевелив» их:




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

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


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


Вспомним SVM – нам нужны
«трудные примеры» для фона. Как
их найти, если мы всего можем
выбрать ~32k для фона?
Бутстраппинг (Bootstrapping)
                                     • Выбираем отрицательные
                                       примеры случайным
                                       образом
                                     • Обучаем классификатор
                                     • Применяем к данным
                                     • Добавляем ложные
                                       обнаружение к выборке
                                     • Повторяем
• Смысл:
   • Ложные обнаружения для первого детектора – сложные (hard
   negative)
   • Пусть наша выборка фона будет маленькой, но сложной и
   представительной


  I. Laptev "Improvements of Object Detection Using Boosted Histograms« ВMVC 2006
Случайные фрагменты фона
Элементы выборки фона для первой итерации:
Первая стадия


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




• Ищем ложные обнаружения с высоким рейтингом
• Используем их как трудные отрицательные примеры
• Затраты: # количество изображений x поиск в каждом
Трудные примеры
Трудные примеры
Измерение качества
После перетренировки
Сравнение
Сравнение
Пример
Резюме алгоритма
• Используем скользящее окно
• Строим вектор-признак
  • Выбираем признаки пикселей для расчёта
  • Определяем вид агрегирования (гистограмма, метод
    построения)
  • Выбираем пространственное разбиение (окно целиком,
    сетка, пирамида)
• Обучаемый SVM
  • Линейный
  • Нелинейный (нужно выбрать тип ядра)
• Для обучения:
  • Размножаем (шевелим) эталонные примеры объектов
  • Используем схему bootstrapping для выбора примеров
    фона
Требования к детектору
• Для изображения в 1МП нужно просмотреть порядка
  1М окон (например, для случая лиц)
• На одном изображении обычно 0-10 лиц




• Чтобы избежать ложных обнаружений (false positives)
ошибка 2го рода должна быть ниже 10-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.
Вспомним сопоставление шаблонов

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




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




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

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




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


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




Value =
∑ (pixels in white area) –
∑ (pixels in black area)
Пример

         Source




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




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


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

 MATLAB: ii = cumsum(cumsum(double(i)), 2);
Вычисление суммы в прямоугольнике

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


         Integral
          Image


             -1     +1
            +2      -2
             -1     +1
Выбор признаков
• Для окна поиска 24x24 пиксела, число возможных
  прямоугольных признаков достигает ~160,000!
Выбор признаков
• Для окна поиска 24x24 пиксела, число возможных
  прямоугольных признаков достигает ~160,000!
• В процессе поиска вычислять все признаки
  нереально
• Хороший классификатор должен использовать
  лишь маленькое подмножество всевозможных
  признаков
• Вопрос - как выбрать такое подмножество?
Бустинг
    • Бустинг – схема классификации, основанная на
      комбинировании слабых классификаторов в
      более точный комитетный
        • Слабый классификатор должен быть лучше монетки
    • Обучение состоит из нескольких этапов усиления
      (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.
Пример хорошего классификатора



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


          +O
                   O              +        
         +O    +               +        +
+                        +           
                                           
+                         + 

    h1    e1 = 0.300               D2
          a1=0.424
Итерация 2 из 3


           +                          +        
       +O +                        +        +
+               O            +           
                                               
+ O                           +
                                   
    e2 = 0.196        h2               D2
    a2=0.704
Итерация 3 из 3


                +        O
            +       +         h3
+   O                            СТОП
        O
                         
+
        
            e3 = 0.344
            a2=0.323
Конечная гипотеза



0.42                     + 0.70                  + 0.32


       H final  sign[0.42  h1 ( x)  0.70  h2 ( x)  0.72  h3 ( x)]

                                                           +
                  1, x   0                      + +
       hi ( x)  
                   1, x  1                    +  
                                                  +    
AdaBoost (Discreet)
Пусть есть набор {h} – слабых классификаторов
   Пусть T: (x1, y1), …, (xm, ym) где              xi  X , yi    {1,1}
                                                                         Ошибка ht
   Инициализируем D1(i) = 1/m
                                                                         рассчитывается с
   Для    k  1, K                                                       учётом Dt

    1. Обучим hk с минимальной                               k  Pri ~ D [hk ( xi )  yi ]
                                                                           k

    ошибкой
                                                          1  1  k    Вес Adaптируется. Чем
    2. Рассчитаем вес гипотезы                     t     ln 
                                                                
                                                          2  k        больше e k тем меньше
    3. Для всех i = 1 to m                                               ak
                                             
                                   Dk (i ) e k    if hk ( xi )  yi
                      Dk 1 (i )                                     Увеличиваем вес
                                    Zk     e
                                               k
                                                   if hk ( xi )  y i    примера, если на нём
                                                                         алгоритм ошибается
         Результат:
                           K                                Zt нормализующий коэф.
            H ( x)  sign   k hk ( x ) 
                           k 1          
                                                   Линейная комбинация
AdaBoost (пороги)
Эмпирический риск
• Как показали Freund и Schapire
       1
   k   k
       2
                       
  Remp  exp  2  k2 
                k      
• Эмпирический риск падает по экспоненте –
  высокая скорость обучения
Бустинг
• Плюсы                      • Минусы
  + Универсальность
                               – Трудность определения
                                 нужного числа итераций
  + Высокая скорость
    сходимости                   обучения (зачастую,
                                 ошибка на контроле
  + Высокая обобщающая           продолжает падать и
    способность                  после нуля эмпирического
                                 риска)
  + Возможность очень
    эффективной
    программной реализации
    и распараллеливания

  + Простота метода и
    отсутствия параметров
Бустинг для поиска лиц

• Определяем слабые классификаторы на основе
  прямоугольных признаков
• Для каждого этапа бустинга:
  • Вычисляем каждый прямоугольный признак на каждом
    примере
  • Выбираем наилучший порог для каждого признака
  • Выбираем наилучший признак / порог
  • Перевзвешиваем выборку
• Вычислительная сложность обучения: O(MNK)
  • M этапов, N примеров, K признаков
Слабые классификаторы
• Определяем слабые классификаторы на основе
  прямоугольных признаков


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


               1 if f t ( x )  t
    ht ( x )  
               0                     порог
 окно
Бустинг для поиска лиц
• Первые два признака, выбранные бустингом:




  Эта комбинация признаков дает 100% detection
  rate и 50% false positive rate
Бустинг для поиска лиц
• Классификатор из 200 признаков дает 95% точность и
  долю ложноположительных срабатываний 1 из 14084




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




                    ROC-кривая
Каскад (Attentional cascade)
• Начинаем с простых классификаторов, которые
  отбрасывают часть отрицательных окон, при этом
  принимая почти все положительные окна
• Положительный отклик первого классификатора
  запускает вычисление второго, более сложного,
  классификатора, и т.д.
• Отрицательный отклик на любом этапе приводит
  к немедленной отбраковке окна


                              T                  T                  T
  IMAGE        Classifier 1       Classifier 2       Classifier 3       FACE
  SUB-WINDOW
                      F                  F                 F

               NON-FACE           NON-FACE           NON-FACE
Каскад




• Медленные классификаторы применяются только к
  некоторым окнам ⇒ существенное ускорение
• Управляем сложностью/скоростью классификатора:
  • Количество опорных векторов [Romdhani et al, 2001]
  • Количество признаков [Viola & Jones, 2001]
  • Видом ядра SVM [Vedaldi et al, 2009]
Каскад
• Цепочка классификаторов с
                                                                           Receiver operating
  каждым уровнем становится более                                            characteristic
  сложной, ошибка второго рода                                                          % False Pos
  постоянно снижается                                                           0                       50
                                                                           vs false neg determined by




                                                                          100
                                                        % Detection

                                                                          0
                             T                  T                                   T
 IMAGE        Classifier 1       Classifier 2       Classifier 3                        FACE
 SUB-WINDOW
                     F                  F                             F

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


                             T                  T                  T
 IMAGE        Classifier 1       Classifier 2       Classifier 3       FACE
 SUB-WINDOW
                     F                  F                 F

              NON-FACE           NON-FACE           NON-FACE
Обучение каскада
• Задаем требуемые значения уровня обнаружения и
  доли ложноположительных срабатываний для
  каждого этапа
• Добавляем признаки до тех пор, пока параметры
  текущего этапа не достигнут заданного уровня
  • Приходится понижать порог AdaBoost для максимизации
    обнаружения (в противоположенность минимизации общей
    ошибки классификации)
  • Тестирование на отдельном наборе (validation set)
• Если общий уровень ложноположительных
  срабатываний недостаточно низок, добавляем
  очередной этап
• Ложные обнаружения на текущем этапе
  используются как отрицательные примеры на
  следующем этапе
Тренировочная выборка
• 5000 лиц
  • Все фронтальные,
    уменьшенные до
    24x24 пикселов
  • Все нормированы
• 300М отрицательных
  примеров
  • 9500 изображений без лиц
• Большая изменчивость
  • Разные люди
  • Освещение
  • Поза лица
Производительность системы
• Обучение: “недели” на 466 MHz Sun рабочей
  станции
• 38 этапов, всего 6061 признаков
• В среднем 10 признаков оцениваются для каждого
  окна на тестовой выборке
• “На 700 Mhz Pentium III, детектор лиц
  обрабатывает одно изображение 384x288
  пикселов за 0.067 секунды”
  • 15 Hz
  • В 15 раз быстрее сравнимого по точности
    предшествующего метода (Rowley et al., 1998)
Пример работы
Поиск профилей
Признаки для поиска профилей
Резюме: детектор Violo-Jones
• Прямоугольные признаки как слабые
  классификаторы
• Интегральные изображения для быстрого
  вычисления признаков
• Бустинг для выбора признаков
• Каскад классификаторов для быстрого
  выбраковки отрицательных окон
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, не
  фильтровались по качеству
Object Detection with Discriminatively Trained Part
                   Based Models
   Pedro F. Felzenszwalb, David Mcallester, Deva
               Ramanan, Ross Girshick
                    PAMI 2010
Подход




 • Деформируемая модель из нескольких компонент
     • Для каждого ракурса обучим свою модуль
     • Каждая модель состоит из общего шаблона и нескольких
       шаблонов отдельных частей
     • Обучение только по рамкам
Pedro F. Felzenszwalb et. Al. Object Detection with Discriminatively Trained Part Based
Models, PAMI 2010
Модель




 Корневой фильтр     Фильтр части     Модель
Низкое разрешение   2х разрешение   деформации
Функция качества




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

   x = image          Счета (Score) за    Модель деформации
   zi = (xi,yi)       локальные шаблоны   «пружинки»
                      частей
   z = {z1,z2...}

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

                    score(x,z) = w . F(x, z)
                                                       Source: Deva Ramanan
HOG-фильтр



                                            Фильтр




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




                                «Качество» это сумма качеств
                                частей минус пенальти за
                                деформацию
Обнаружение человека
Резюме лекции
• Скользящее окно – один из основных способов
  сведения задачи выделения объектов к задаче
  категоризации изображений
• Нужно уделить большое внимание построению
  хорошей выборки для обучения (jittering,
  bootstrapping)
• Каскад классификаторов – хороший способ
  повышения точности и скорости работы
• Методы и схемы:
  • HOG + SVM
  • Viola-Jones
  • HOG + SVM + компоненты

Contenu connexe

Tendances

CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.Anton Konushin
 
CV2011 Lecture 7. Recognition
CV2011 Lecture 7. RecognitionCV2011 Lecture 7. Recognition
CV2011 Lecture 7. RecognitionAnton Konushin
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrievalAnton Konushin
 
CV2011-2. Lecture 12. Face models.
CV2011-2. Lecture 12.  Face models.CV2011-2. Lecture 12.  Face models.
CV2011-2. Lecture 12. Face models.Anton Konushin
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.Anton Konushin
 
CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.Anton Konushin
 
CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.Anton Konushin
 
CV2011-2. Lecture 02. Photomontage and graphical models.
CV2011-2. Lecture 02.  Photomontage and graphical models.CV2011-2. Lecture 02.  Photomontage and graphical models.
CV2011-2. Lecture 02. Photomontage and graphical models.Anton Konushin
 
CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.Anton Konushin
 
CV2011-2. Lecture 10. Pose estimation.
CV2011-2. Lecture 10.  Pose estimation.CV2011-2. Lecture 10.  Pose estimation.
CV2011-2. Lecture 10. Pose estimation.Anton Konushin
 
CV2011-2. Lecture 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.CV2011-2. Lecture 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.Anton Konushin
 
CV2011-2. Lecture 05. Video segmentation.
CV2011-2. Lecture 05.  Video segmentation.CV2011-2. Lecture 05.  Video segmentation.
CV2011-2. Lecture 05. Video segmentation.Anton Konushin
 
CV2011 Lecture 5. Features
CV2011 Lecture 5. FeaturesCV2011 Lecture 5. Features
CV2011 Lecture 5. FeaturesAnton Konushin
 
CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.Anton Konushin
 
CV2011-2. Lecture 06. Structure from motion.
CV2011-2. Lecture 06.  Structure from motion.CV2011-2. Lecture 06.  Structure from motion.
CV2011-2. Lecture 06. Structure from motion.Anton Konushin
 
CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.Anton Konushin
 
CV2011 Lecture 6. Fitting
CV2011 Lecture 6. FittingCV2011 Lecture 6. Fitting
CV2011 Lecture 6. FittingAnton Konushin
 
CV2011-2. Lecture 03. Photomontage, part 2.
CV2011-2. Lecture 03.  Photomontage, part 2.CV2011-2. Lecture 03.  Photomontage, part 2.
CV2011-2. Lecture 03. Photomontage, part 2.Anton Konushin
 
CV2011 Lecture 4. Image representation
CV2011 Lecture 4. Image representationCV2011 Lecture 4. Image representation
CV2011 Lecture 4. Image representationAnton Konushin
 

Tendances (20)

CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.
 
CV2011 Lecture 7. Recognition
CV2011 Lecture 7. RecognitionCV2011 Lecture 7. Recognition
CV2011 Lecture 7. Recognition
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrieval
 
CV2011-2. Lecture 12. Face models.
CV2011-2. Lecture 12.  Face models.CV2011-2. Lecture 12.  Face models.
CV2011-2. Lecture 12. Face models.
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
 
CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.
 
CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.
 
CV2011-2. Lecture 02. Photomontage and graphical models.
CV2011-2. Lecture 02.  Photomontage and graphical models.CV2011-2. Lecture 02.  Photomontage and graphical models.
CV2011-2. Lecture 02. Photomontage and graphical models.
 
CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.
 
CV2011-2. Lecture 10. Pose estimation.
CV2011-2. Lecture 10.  Pose estimation.CV2011-2. Lecture 10.  Pose estimation.
CV2011-2. Lecture 10. Pose estimation.
 
CV2011-2. Lecture 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.CV2011-2. Lecture 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.
 
CV2011-2. Lecture 05. Video segmentation.
CV2011-2. Lecture 05.  Video segmentation.CV2011-2. Lecture 05.  Video segmentation.
CV2011-2. Lecture 05. Video segmentation.
 
CV2011 Lecture 5. Features
CV2011 Lecture 5. FeaturesCV2011 Lecture 5. Features
CV2011 Lecture 5. Features
 
CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.
 
CV2011-2. Lecture 06. Structure from motion.
CV2011-2. Lecture 06.  Structure from motion.CV2011-2. Lecture 06.  Structure from motion.
CV2011-2. Lecture 06. Structure from motion.
 
CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.
 
CV2011 Lecture 6. Fitting
CV2011 Lecture 6. FittingCV2011 Lecture 6. Fitting
CV2011 Lecture 6. Fitting
 
CV2011-2. Lecture 03. Photomontage, part 2.
CV2011-2. Lecture 03.  Photomontage, part 2.CV2011-2. Lecture 03.  Photomontage, part 2.
CV2011-2. Lecture 03. Photomontage, part 2.
 
CV2011 Lecture 4. Image representation
CV2011 Lecture 4. Image representationCV2011 Lecture 4. Image representation
CV2011 Lecture 4. Image representation
 
L05 features
L05 featuresL05 features
L05 features
 

En vedette

T H E L A T E S T T E C H
T H E  L A T E S T  T E C HT H E  L A T E S T  T E C H
T H E L A T E S T T E C HFree- Dominius
 
Tyrone Isaac-Stuart - How Musicpreneurs Deal With Their Struggles [Darker Mus...
Tyrone Isaac-Stuart - How Musicpreneurs Deal With Their Struggles [Darker Mus...Tyrone Isaac-Stuart - How Musicpreneurs Deal With Their Struggles [Darker Mus...
Tyrone Isaac-Stuart - How Musicpreneurs Deal With Their Struggles [Darker Mus...Tommy Darker
 
Awdren Fontão - Gerando renda com apps – Windows Phone e S40
Awdren Fontão - Gerando renda com apps – Windows Phone e S40Awdren Fontão - Gerando renda com apps – Windows Phone e S40
Awdren Fontão - Gerando renda com apps – Windows Phone e S40INdT
 
Animals Loving Autumn
Animals Loving AutumnAnimals Loving Autumn
Animals Loving Autumnmaditabalnco
 
Доклад для конференции Маркетинг Недвижимости 2012 Eye tracking на примере са...
Доклад для конференции Маркетинг Недвижимости 2012 Eye tracking на примере са...Доклад для конференции Маркетинг Недвижимости 2012 Eye tracking на примере са...
Доклад для конференции Маркетинг Недвижимости 2012 Eye tracking на примере са...Maria Chaykina
 
What Women Want?
What Women Want?What Women Want?
What Women Want?RedPrairie
 
Spark smart watches
Spark smart watchesSpark smart watches
Spark smart watchessrikanthkg
 
Mapping Your Salesforce Career - Amanda Bailey
Mapping Your Salesforce Career - Amanda BaileyMapping Your Salesforce Career - Amanda Bailey
Mapping Your Salesforce Career - Amanda BaileySalesforce Admins
 
Correccion de errores y hechos posteriores al cierre
Correccion de errores y hechos posteriores al cierreCorreccion de errores y hechos posteriores al cierre
Correccion de errores y hechos posteriores al cierreBalbino Rodriguez
 
Automatic headlight beam intensity switcher
Automatic headlight beam intensity switcherAutomatic headlight beam intensity switcher
Automatic headlight beam intensity switchereSAT Journals
 
Felix Canetty-Clarke - What The Heck Does Your Audience Want? [Darker Music T...
Felix Canetty-Clarke - What The Heck Does Your Audience Want? [Darker Music T...Felix Canetty-Clarke - What The Heck Does Your Audience Want? [Darker Music T...
Felix Canetty-Clarke - What The Heck Does Your Audience Want? [Darker Music T...Tommy Darker
 
Claves de la comunicación interna
Claves de la comunicación internaClaves de la comunicación interna
Claves de la comunicación internaMASmedios com
 
Jhonny presidente
Jhonny presidenteJhonny presidente
Jhonny presidentejhonnyorduz
 
New Iaa Magopt Paper
New Iaa Magopt PaperNew Iaa Magopt Paper
New Iaa Magopt Papermartindudziak
 
Интурмаркет 2013 Как сделать сайт туристической компании удобнее
Интурмаркет 2013 Как сделать сайт туристической компании удобнееИнтурмаркет 2013 Как сделать сайт туристической компании удобнее
Интурмаркет 2013 Как сделать сайт туристической компании удобнееMaria Chaykina
 

En vedette (20)

T H E L A T E S T T E C H
T H E  L A T E S T  T E C HT H E  L A T E S T  T E C H
T H E L A T E S T T E C H
 
Enviro
EnviroEnviro
Enviro
 
Tyrone Isaac-Stuart - How Musicpreneurs Deal With Their Struggles [Darker Mus...
Tyrone Isaac-Stuart - How Musicpreneurs Deal With Their Struggles [Darker Mus...Tyrone Isaac-Stuart - How Musicpreneurs Deal With Their Struggles [Darker Mus...
Tyrone Isaac-Stuart - How Musicpreneurs Deal With Their Struggles [Darker Mus...
 
Awdren Fontão - Gerando renda com apps – Windows Phone e S40
Awdren Fontão - Gerando renda com apps – Windows Phone e S40Awdren Fontão - Gerando renda com apps – Windows Phone e S40
Awdren Fontão - Gerando renda com apps – Windows Phone e S40
 
Actividad 1 eje 4
Actividad 1 eje 4Actividad 1 eje 4
Actividad 1 eje 4
 
Animals Loving Autumn
Animals Loving AutumnAnimals Loving Autumn
Animals Loving Autumn
 
Доклад для конференции Маркетинг Недвижимости 2012 Eye tracking на примере са...
Доклад для конференции Маркетинг Недвижимости 2012 Eye tracking на примере са...Доклад для конференции Маркетинг Недвижимости 2012 Eye tracking на примере са...
Доклад для конференции Маркетинг Недвижимости 2012 Eye tracking на примере са...
 
What Women Want?
What Women Want?What Women Want?
What Women Want?
 
Spark smart watches
Spark smart watchesSpark smart watches
Spark smart watches
 
Mapping Your Salesforce Career - Amanda Bailey
Mapping Your Salesforce Career - Amanda BaileyMapping Your Salesforce Career - Amanda Bailey
Mapping Your Salesforce Career - Amanda Bailey
 
Conf conafet
Conf conafetConf conafet
Conf conafet
 
Chapter 48
Chapter 48Chapter 48
Chapter 48
 
Correccion de errores y hechos posteriores al cierre
Correccion de errores y hechos posteriores al cierreCorreccion de errores y hechos posteriores al cierre
Correccion de errores y hechos posteriores al cierre
 
Automatic headlight beam intensity switcher
Automatic headlight beam intensity switcherAutomatic headlight beam intensity switcher
Automatic headlight beam intensity switcher
 
Felix Canetty-Clarke - What The Heck Does Your Audience Want? [Darker Music T...
Felix Canetty-Clarke - What The Heck Does Your Audience Want? [Darker Music T...Felix Canetty-Clarke - What The Heck Does Your Audience Want? [Darker Music T...
Felix Canetty-Clarke - What The Heck Does Your Audience Want? [Darker Music T...
 
Claves de la comunicación interna
Claves de la comunicación internaClaves de la comunicación interna
Claves de la comunicación interna
 
Jhonny presidente
Jhonny presidenteJhonny presidente
Jhonny presidente
 
New Iaa Magopt Paper
New Iaa Magopt PaperNew Iaa Magopt Paper
New Iaa Magopt Paper
 
Miradas inocentes
Miradas inocentesMiradas inocentes
Miradas inocentes
 
Интурмаркет 2013 Как сделать сайт туристической компании удобнее
Интурмаркет 2013 Как сделать сайт туристической компании удобнееИнтурмаркет 2013 Как сделать сайт туристической компании удобнее
Интурмаркет 2013 Как сделать сайт туристической компании удобнее
 

Similaire à 20120414 videorecognition konushin_lecture03

20100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture0220100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture02Computer Science Club
 
Сегментация изображений в компьютерной графике.ppt
Сегментация  изображений в компьютерной графике.pptСегментация  изображений в компьютерной графике.ppt
Сегментация изображений в компьютерной графике.pptssuser413a98
 
20100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture0320100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture03Computer Science Club
 
CV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic videoCV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic videoAnton Konushin
 
распознавание автомобильного номера в условиях зашумлённости»
распознавание автомобильного номера в условиях зашумлённости»распознавание автомобильного номера в условиях зашумлённости»
распознавание автомобильного номера в условиях зашумлённости»seik0ixtem
 
Лекция 3 Сегментация
Лекция 3 СегментацияЛекция 3 Сегментация
Лекция 3 СегментацияVictor Kulikov
 
“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
 “ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt) “ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)Alina Vilk
 
20120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture0520120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture05Computer Science Club
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewKhryashchev
 
Сегментация
СегментацияСегментация
СегментацияLiloSEA
 
20120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture0220120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture02Computer Science Club
 
Лекция 8 Основы 3D обработки
Лекция 8 Основы 3D обработкиЛекция 8 Основы 3D обработки
Лекция 8 Основы 3D обработкиVictor Kulikov
 
Лекция 07 Обработка видео
Лекция 07 Обработка видеоЛекция 07 Обработка видео
Лекция 07 Обработка видеоVictor Kulikov
 
виды графики
виды графикивиды графики
виды графикиelenash584
 
20100919 computer vision_konushin_lecture04
20100919 computer vision_konushin_lecture0420100919 computer vision_konushin_lecture04
20100919 computer vision_konushin_lecture04Computer Science Club
 
Неэталонная оценка качества изображений
Неэталонная оценка качества изображенийНеэталонная оценка качества изображений
Неэталонная оценка качества изображенийVladimir Pavlov
 
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVPavel Tsukanov
 

Similaire à 20120414 videorecognition konushin_lecture03 (18)

20100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture0220100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture02
 
Сегментация изображений в компьютерной графике.ppt
Сегментация  изображений в компьютерной графике.pptСегментация  изображений в компьютерной графике.ppt
Сегментация изображений в компьютерной графике.ppt
 
20100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture0320100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture03
 
L06 detection
L06 detectionL06 detection
L06 detection
 
CV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic videoCV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic video
 
распознавание автомобильного номера в условиях зашумлённости»
распознавание автомобильного номера в условиях зашумлённости»распознавание автомобильного номера в условиях зашумлённости»
распознавание автомобильного номера в условиях зашумлённости»
 
Лекция 3 Сегментация
Лекция 3 СегментацияЛекция 3 Сегментация
Лекция 3 Сегментация
 
“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
 “ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt) “ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
 
20120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture0520120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture05
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_review
 
Сегментация
СегментацияСегментация
Сегментация
 
20120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture0220120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture02
 
Лекция 8 Основы 3D обработки
Лекция 8 Основы 3D обработкиЛекция 8 Основы 3D обработки
Лекция 8 Основы 3D обработки
 
Лекция 07 Обработка видео
Лекция 07 Обработка видеоЛекция 07 Обработка видео
Лекция 07 Обработка видео
 
виды графики
виды графикивиды графики
виды графики
 
20100919 computer vision_konushin_lecture04
20100919 computer vision_konushin_lecture0420100919 computer vision_konushin_lecture04
20100919 computer vision_konushin_lecture04
 
Неэталонная оценка качества изображений
Неэталонная оценка качества изображенийНеэталонная оценка качества изображений
Неэталонная оценка качества изображений
 
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
 

Plus de Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

Plus de Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

20120414 videorecognition konushin_lecture03

  • 1. Выделение объектов Антон Конушин Computer science club, Екатеринбург 13-15 апреля 2012 года
  • 2. Задача выделения объекта • Выделение объектов • Где на изображении (и есть ли) самолет? • Структурный выход • Нужно выдать ограничивающий прямоугольник
  • 3. Насколько задача сложна? Найдём стул в изображении Выход корреляции Это стул
  • 4. Насколько задача сложна? Найдём стул в этом изображени Мусор Простое сопоставление шаблонов не решает задачу Сложный фон, разные ракурсы, внутриклассовая изменчивость объектов
  • 5. Скользящее окно Сканирование изображения окном фиксированного размера – хорошая идея • Рассматриваем только прямоугольную область (окно) • Если выбрали точно, то в эту область попадёт только лицо • Просмотрим все области, «сканируя» окном изображение • Каждую область будем обрабатывать независимо
  • 6. Недостатки скользящего окна • Соотношение размеров рамки • Дискретность сдвига • Частичное перекрытие • Множественные отклики
  • 7. Классификация окон • Фактически, разделяем изображение на множество перекрывающихся окон • Сформулируем задачу выделения объектов как задачу классификации окна – объект / не объект • Для обучения классификатора будем собирать выборки окон с объектами и без объектов Решающая граница Фон Где мониторы? Мониторы Мешок фрагментов В пространстве признаков
  • 8. Схема метода Обучающие Обучение изображения Метки Обучение Признаки Обученный классифика классификатор изображения тора
  • 9. Схема метода Обучающие Обучение изображения Метки Обучение Признаки Обученный классифика классификатор изображения тора Применение Предсказание Признаки Обученный изображения классификатор Машина
  • 10. Признаки пикселей Пространство Пространство Пространство цветов L*a*b* цветов RGB цветов HSV Градиенты в каждом Наличие и ориентация пикселе края в каждом пикселе
  • 11. Использование напрямую • Можно ли использовать признаки всех пикселей напрямую? • Можно, если все изображения для классификации будут одинакового размера • Нормализуем изображения, т.е. приведем их к одному размеру • Вытянем изображение в вектор, признаки пикселей будут элементами вектора Для распознавания, изображение должно описываться вектор- признаком фиксированной длины!
  • 12. Агрегирование • Вместо использования признаков напрямую, можно вычислить какие-то общие характеристики для объекта («агрегирование» признаков) • Гистограммы – стандартный способ непараметрического описания распределения признаков Space Shuttle Cargo Bay Images from Dave Kauchak
  • 13. Квантование признаков • Как построить гистограмму для признаков, которые изменяются непрерывно? • Или разрешение слишком большое? • «Квантование» - отображение признаков на меньшее разрешение • Пр: все направления градиента разбиваем на 8 вариантов • Каждый вариант нумеруем от 1 до 8
  • 14. Квантование признаков • Есть фотографии тигров и медведей • Хотим научиться отличать одни от других по цвету • Оптимально ли использовать гистограмму цветов на интервале от [0,255]? • Не все цвета встречаются!
  • 15. Адаптивное квантование • Хотим разбить элементы (пр. пиксели) на часто встречающиеся группы • Затем можем каждый элемент сопоставить своей группе (дать ему номер группы) • Кластеризация!
  • 16. Кластеризация • Дана обучающая выборка m X m  x1 , ..., x m  xi  R • Объекты независимы и взяты из некоторого неизвестного распределения xi (x) • цель: для всех новых значений x оценить значения   x  X2 X1
  • 17. Кластеризация K-cредними • Минимизируем сумму квадратов Евклидовых расстояний между точками xi и ближайшими центрами кластеров mk D( X , M )    ( xi  mk ) 2 cluster k point i in cluster k • Алгоритм: • Случайно инициализируем K центров кластеров • Повторяем до сходимости: • Назначаем каждую точку ближайшему центру • Пересчитываем центр каждого кластера как среднее всех назначенных точек
  • 27. Алгоритм К-средних • Однопараметрический • Требует знания только о количестве кластеров • Рандомизирован • Зависит от начального приближения • Не учитывает строения самих кластеров • Часто применяется
  • 28. Для нашего примера • Зададим количество кластеров (например, 100) • Кластеризуем • Будут кластеры в белой, зеленой, черной, оранжевой областях
  • 29. Функции сравнения гистограмм K • Histogram intersection (нормализованные гистограммы) D (hi , h j )  1   min hi ( m ), h j (m )  m 1 N • L1 distance D( h1 , h2 )   | h1 (i)  h2 (i) | i 1 • χ2 distance D( h1 , h2 )   N h1 (i)  h2 (i) 2 i 1 h1 (i)  h2 (i) • Quadratic distance (cross-bin) D (h1 , h2 )   Aij ( h1 (i)  h2 ( j)) 2 i, j Jan Puzicha, Yossi Rubner, Carlo Tomasi, Joachim M. Buhmann: Empirical Evaluation of Dissimilarity Measures for Color and Texture. ICCV 1999
  • 30. Проблемы сравнения гистограмм ? • Все метрики сравнения гистограмм чувствительны к размеру ячеек • Можно использовать более широкие ячейки, но при этом теряем «разрешающую способность»
  • 31. Пространственное распределение У всех этих трех изображений похожие гистограммы цветов
  • 32. Пространственная пирамида Вычислим гистограму в каждом блоке и объединим все гистограммы в один вектор-признак Уровень 0 Уровень 1 Уровень 2
  • 33. Пример: HOG • Идея была изначально предложена для пешеходов, но затем стала широко применяться • Прямоугольное окно 64 x 128 пикселов разобьём на ячейки (cells) 8 x 8 пикселей • В каждой ячейке посчитаем гистограмму ориентаций градиентов (8 корзин) • Можем нормализовать не каждую гистограмму отдельно, а объединяя их в блоки 2x2 и тогда нормализуя вместе • Много параметров для настройки Navneet Dalal, Bill Triggs,Histograms of Oriented Gradients for Human Detection, CVPR 2005
  • 35. Общая схема Посчитаем Вычислим Определим Квантуем статистику по признаки по область для признаки выбранной изображению вычисления области 71% 29% RGB Квантование на 10 Посчитанная уровней гистограмма Теперь нужно обучить классификатор по этим признакам
  • 36. Линейный классификатор • Найдем линейную функцию (гиперплоскость) и разделим положительные {y=+1} и отрицательные {y=-1} примеры {x} x i положитель ные : xi  w  b  0 x i отрицатель ные : xi  w  b  0 Какая гиперплоскость наилучшая?
  • 37. Метод опорных векторов (SVM) • Support Vector Machine (SVM) • Найдем гиперплоскость, максимизирующую отступ между положительными и отрицательными примерами C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998
  • 38. Метод опорный векторов • Найдем гиперплоскость, максимизирующую отступ между положительными и отрицательными примерами xi положитель ные ( yi  1) : xi  w  b  1 xi отрицатель ные ( yi  1) : x i  w  b  1 Для опорных векторов, x i  w  b  1 Расстояние от точки до | xi  w  b | гиперплоскости: || w || Поэтому отступ равен 2 / ||w|| Опорные вектора Отступ C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998
  • 39. Поиск гиперплоскости 1. Максимизируем 2/||w|| 2. Правильно классифицируем все данные: x i положительные ( yi  1) : xi  w  b  1 x i отрицательные ( yi  1) : x i  w  b  1 • Квадратичная оптимизационная задача: 1 T • Минимизируем w w 2 При условии yi(w·xi+b) ≥ 1 • Решается с помощью методом множителей Лагранжа C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998
  • 40. Поиск гиперплоскости • Решение: w  i  i yi x i Обученные Опорные веса вектора • Для большей части векторов вес = 0! • Все вектора, для которых вес >0 называются опорными • Определяется только опорными векторами C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998
  • 41. Поиск гиперплоскости • Решение: w  i  i yi x i b = yi – w·xi для любого опорного вектора • Решающая функция: w  x  b  i  i yi xi  x  b • Решающая функция зависит от скалярных произведений (inner product) от тестового вектора x и опорных векторов xi • Решение оптимизационной задачи также требует вычисления скалярных произведений xi · xj между всеми парами векторов из обучающей выборки C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998
  • 42. Реальный случай Вводим дополнительные «slack» ξj переменные: T   1 ,..., n  n 1 T Минимизируем w w  C  i 2 i 1 ξi При условии yi ( wx i  b)  1  i С – параметр регуляризации
  • 43. Нелинейные SVM • На линейно разделимых данных SVM работает отлично: 0 x • Но на более сложных данных не очень: 0 x • Можно отобразить данные на пространство большей размерности и разделить их линейно там: x2 0 x Slide credit: Andrew Moore
  • 44. Нелинейные SVM • Идея: отображение исходного пространства параметров на какое-то многомерное пространство признаков (feature space) где обучающая выборка линейно разделима: Φ: x → φ(x) Slide credit: Andrew Moore
  • 45. Нелинейные SVM • Вычисление скалярных произведений в многомерном пространстве вычислительно сложно • The kernel trick: вместо прямого вычисления преобразования φ(x), мы определим ядровую функцию K: K(xi , xjj) = φ(xi ) · φ(xj) • Чтобы все было корретно, ядро должно удовлетворять условию Мерсера (Mercer’s condition) • Матрица K(xi,xj) должна быть неотрицательно определенной • С помощью ядра мы сможем построить нелинейную решающую функцию в исходном пространстве:   y K (x , x )  b i i i i C. Burges, A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998
  • 46. Для гистограмм • Поскольку вектор-признак у нас – гистограмма, нам потребуются специальные ядра • Ядро пересечения гистограмм: N I (h1 , h2 )   min( h1 (i ), h2 (i )) i 1 • Обобщенное гауссово ядро:  1 2 K (h1 , h2 )  exp   D (h1 , h2 )   A  • D может быть евклидовым расстоянием, χ2 , и т.д. 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
  • 47. Обучение детектора • Сколько на изображении объектов «автомобиль» и сколько фрагментов фона? • Выделение объектов ассиметричная задача: объектов гораздо меньше, чем «не-объектов» • Вдобавок, класс «не объект» очень сложный – нужно много разных данных для обучения • Для SVM желательно одинаковое количество и фона, и объекта
  • 48. Пример – поиск «торса» • Хотим построить детектор «верхней части тела и головы» • Воспользуемся схемой HOG + линейный SVM • Данные • 33 фрагмента фильмов из базы Hollywood2 • 1122 кадров с размеченным объектами • На каждом кадре отмечены 1-3 человека, всего 1607 людей, это маловато
  • 49. Положительные окна Посмотрим, что отметили люди при разметке: Внимание: похожие положение и ориентация!
  • 50. Искаженные примеры Давайте «размножим» данные, «пошевелив» их: Небольшие сдвиги, отображения, повороты, изменения масштаба
  • 51. Искаженные примеры Из 1607 эталонных примеров получили ~32000 искаженных (jittered) примеров Сколько отрицательных примеров можно набрать из 1100 кадров? • Гораздо больше 32k. Вспомним SVM – нам нужны «трудные примеры» для фона. Как их найти, если мы всего можем выбрать ~32k для фона?
  • 52. Бутстраппинг (Bootstrapping) • Выбираем отрицательные примеры случайным образом • Обучаем классификатор • Применяем к данным • Добавляем ложные обнаружение к выборке • Повторяем • Смысл: • Ложные обнаружения для первого детектора – сложные (hard negative) • Пусть наша выборка фона будет маленькой, но сложной и представительной I. Laptev "Improvements of Object Detection Using Boosted Histograms« ВMVC 2006
  • 53. Случайные фрагменты фона Элементы выборки фона для первой итерации:
  • 54. Первая стадия Трудный отрицательный пример • Ищем ложные обнаружения с высоким рейтингом • Используем их как трудные отрицательные примеры • Затраты: # количество изображений x поиск в каждом
  • 62. Резюме алгоритма • Используем скользящее окно • Строим вектор-признак • Выбираем признаки пикселей для расчёта • Определяем вид агрегирования (гистограмма, метод построения) • Выбираем пространственное разбиение (окно целиком, сетка, пирамида) • Обучаемый SVM • Линейный • Нелинейный (нужно выбрать тип ядра) • Для обучения: • Размножаем (шевелим) эталонные примеры объектов • Используем схему bootstrapping для выбора примеров фона
  • 63. Требования к детектору • Для изображения в 1МП нужно просмотреть порядка 1М окон (например, для случая лиц) • На одном изображении обычно 0-10 лиц • Чтобы избежать ложных обнаружений (false positives) ошибка 2го рода должна быть ниже 10-6 • Нужно быстро отбрасывать ложные окна
  • 64. Детектор 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.
  • 65. Вспомним сопоставление шаблонов Найти стул в изображении Что если воспользоваться маленькими фрагментами? Искать не стул, а часть стула?
  • 66. Части объектов Что если воспользоваться маленькими фрагментами? Искать не стул, а часть стула? Не так плохо, срабатывает на ножках
  • 67. Слабые детекторы Определим семейство визуальных признаков, которые могут использоваться как слабые классификаторы («слабые детекторы» Берём изображение на вход. Бинарный отклик будет выходом. Получаем слабый детектор.
  • 69. Пример Source Result
  • 70. Интегральные изображения • Значение каждого пиксела (x,y) равно сумме значений всех пикселов левее и выше пикселя (x,y) включительно • Интегральное изображение (x,y) рассчитывается за один проход
  • 72. Вычисление интегрального изображения ii(x, y-1) s(x-1, y) i(x, y) • Сумма по строке: s(x, y) = s(x–1, y) + i(x, y) • Интегральное изображение: ii(x, y) = ii(x, y−1) + s(x, y) MATLAB: ii = cumsum(cumsum(double(i)), 2);
  • 73. Вычисление суммы в прямоугольнике • Пусть A,B,C,D – значения интегрального изображения в углах прямоугольника D B • Тогда сумма значений пикселов в исходном изображении вычисляется по формуле: A C sum = A – B – C + D • 3 операции сложения для любого прямоугольника
  • 74. Пример Integral Image -1 +1 +2 -2 -1 +1
  • 75. Выбор признаков • Для окна поиска 24x24 пиксела, число возможных прямоугольных признаков достигает ~160,000!
  • 76. Выбор признаков • Для окна поиска 24x24 пиксела, число возможных прямоугольных признаков достигает ~160,000! • В процессе поиска вычислять все признаки нереально • Хороший классификатор должен использовать лишь маленькое подмножество всевозможных признаков • Вопрос - как выбрать такое подмножество?
  • 77. Бустинг • Бустинг – схема классификации, основанная на комбинировании слабых классификаторов в более точный комитетный • Слабый классификатор должен быть лучше монетки • Обучение состоит из нескольких этапов усиления (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.
  • 79. Итерация 1 из 3 +O O  +  +O + + + +   +     +  +  h1 e1 = 0.300 D2 a1=0.424
  • 80. Итерация 2 из 3 +  +  +O + + + +  O +     + O +  e2 = 0.196 h2 D2 a2=0.704
  • 81. Итерация 3 из 3 + O + + h3 + O   СТОП O  +  e3 = 0.344 a2=0.323
  • 82. Конечная гипотеза 0.42 + 0.70 + 0.32 H final  sign[0.42  h1 ( x)  0.70  h2 ( x)  0.72  h3 ( x)]  +  1, x   0 + + hi ( x)     1, x  1 +   + 
  • 83. AdaBoost (Discreet) Пусть есть набор {h} – слабых классификаторов Пусть T: (x1, y1), …, (xm, ym) где xi  X , yi    {1,1} Ошибка ht Инициализируем D1(i) = 1/m рассчитывается с Для k  1, K учётом Dt 1. Обучим hk с минимальной  k  Pri ~ D [hk ( xi )  yi ] k ошибкой 1  1  k  Вес Adaптируется. Чем 2. Рассчитаем вес гипотезы t  ln     2  k   больше e k тем меньше 3. Для всех i = 1 to m ak  Dk (i ) e k if hk ( xi )  yi Dk 1 (i )    Увеличиваем вес Zk e k if hk ( xi )  y i примера, если на нём алгоритм ошибается Результат:  K  Zt нормализующий коэф. H ( x)  sign   k hk ( x )   k 1  Линейная комбинация
  • 85. Эмпирический риск • Как показали Freund и Schapire 1  k   k 2   Remp  exp  2  k2   k  • Эмпирический риск падает по экспоненте – высокая скорость обучения
  • 86. Бустинг • Плюсы • Минусы + Универсальность – Трудность определения нужного числа итераций + Высокая скорость сходимости обучения (зачастую, ошибка на контроле + Высокая обобщающая продолжает падать и способность после нуля эмпирического риска) + Возможность очень эффективной программной реализации и распараллеливания + Простота метода и отсутствия параметров
  • 87. Бустинг для поиска лиц • Определяем слабые классификаторы на основе прямоугольных признаков • Для каждого этапа бустинга: • Вычисляем каждый прямоугольный признак на каждом примере • Выбираем наилучший порог для каждого признака • Выбираем наилучший признак / порог • Перевзвешиваем выборку • Вычислительная сложность обучения: O(MNK) • M этапов, N примеров, K признаков
  • 88. Слабые классификаторы • Определяем слабые классификаторы на основе прямоугольных признаков Значение признака 1 if f t ( x )  t ht ( x )   0 порог окно
  • 89. Бустинг для поиска лиц • Первые два признака, выбранные бустингом: Эта комбинация признаков дает 100% detection rate и 50% false positive rate
  • 90. Бустинг для поиска лиц • Классификатор из 200 признаков дает 95% точность и долю ложноположительных срабатываний 1 из 14084 Недостаточно хорошо! ROC-кривая
  • 91. Каскад (Attentional cascade) • Начинаем с простых классификаторов, которые отбрасывают часть отрицательных окон, при этом принимая почти все положительные окна • Положительный отклик первого классификатора запускает вычисление второго, более сложного, классификатора, и т.д. • Отрицательный отклик на любом этапе приводит к немедленной отбраковке окна T T T IMAGE Classifier 1 Classifier 2 Classifier 3 FACE SUB-WINDOW F F F NON-FACE NON-FACE NON-FACE
  • 92. Каскад • Медленные классификаторы применяются только к некоторым окнам ⇒ существенное ускорение • Управляем сложностью/скоростью классификатора: • Количество опорных векторов [Romdhani et al, 2001] • Количество признаков [Viola & Jones, 2001] • Видом ядра SVM [Vedaldi et al, 2009]
  • 93. Каскад • Цепочка классификаторов с Receiver operating каждым уровнем становится более characteristic сложной, ошибка второго рода % False Pos постоянно снижается 0 50 vs false neg determined by 100 % Detection 0 T T T IMAGE Classifier 1 Classifier 2 Classifier 3 FACE SUB-WINDOW F F F NON-FACE NON-FACE NON-FACE
  • 94. Каскад • Уровень обнаружения и доля ложноположительных срабатываний каскада можно оценить как произведение соответствующих уровней ошибок каждого этапа • Уровень обнаружения 0.9 и доля ложноположительных срабатываний порядка 10-6 достигается с помощью каскада из 10 этапов, если на каждом этапе уровень обнаружения примерно равен 0.99 (0.9910 ≈ 0.9) и доля ложноположительных примерно 0.30 (0.310 ≈ 6×10-6) T T T IMAGE Classifier 1 Classifier 2 Classifier 3 FACE SUB-WINDOW F F F NON-FACE NON-FACE NON-FACE
  • 95. Обучение каскада • Задаем требуемые значения уровня обнаружения и доли ложноположительных срабатываний для каждого этапа • Добавляем признаки до тех пор, пока параметры текущего этапа не достигнут заданного уровня • Приходится понижать порог AdaBoost для максимизации обнаружения (в противоположенность минимизации общей ошибки классификации) • Тестирование на отдельном наборе (validation set) • Если общий уровень ложноположительных срабатываний недостаточно низок, добавляем очередной этап • Ложные обнаружения на текущем этапе используются как отрицательные примеры на следующем этапе
  • 96. Тренировочная выборка • 5000 лиц • Все фронтальные, уменьшенные до 24x24 пикселов • Все нормированы • 300М отрицательных примеров • 9500 изображений без лиц • Большая изменчивость • Разные люди • Освещение • Поза лица
  • 97. Производительность системы • Обучение: “недели” на 466 MHz Sun рабочей станции • 38 этапов, всего 6061 признаков • В среднем 10 признаков оцениваются для каждого окна на тестовой выборке • “На 700 Mhz Pentium III, детектор лиц обрабатывает одно изображение 384x288 пикселов за 0.067 секунды” • 15 Hz • В 15 раз быстрее сравнимого по точности предшествующего метода (Rowley et al., 1998)
  • 101. Резюме: детектор Violo-Jones • Прямоугольные признаки как слабые классификаторы • Интегральные изображения для быстрого вычисления признаков • Бустинг для выбора признаков • Каскад классификаторов для быстрого выбраковки отрицательных окон
  • 102. 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, не фильтровались по качеству
  • 103.
  • 104. Object Detection with Discriminatively Trained Part Based Models Pedro F. Felzenszwalb, David Mcallester, Deva Ramanan, Ross Girshick PAMI 2010
  • 105. Подход • Деформируемая модель из нескольких компонент • Для каждого ракурса обучим свою модуль • Каждая модель состоит из общего шаблона и нескольких шаблонов отдельных частей • Обучение только по рамкам Pedro F. Felzenszwalb et. Al. Object Detection with Discriminatively Trained Part Based Models, PAMI 2010
  • 106. Модель Корневой фильтр Фильтр части Модель Низкое разрешение 2х разрешение деформации
  • 107. Функция качества score(x,z) = S wi f(x, zi) + S wij Y(zi, zj) i i,j x = image Счета (Score) за Модель деформации zi = (xi,yi) локальные шаблоны «пружинки» частей z = {z1,z2...} Качество линейно по локальным шаблонам wi и параметрам пружинок wij score(x,z) = w . F(x, z) Source: Deva Ramanan
  • 108. HOG-фильтр Фильтр • Поиск: скользящее окно по положению и масштабу • Фичи: HOG-фильтр • Классификатор: линейный SVM
  • 109. Гипотезы • Каждая часть – HOG-фильтр • Базовое положение «Качество» это сумма качеств частей минус пенальти за деформацию
  • 111. Резюме лекции • Скользящее окно – один из основных способов сведения задачи выделения объектов к задаче категоризации изображений • Нужно уделить большое внимание построению хорошей выборки для обучения (jittering, bootstrapping) • Каскад классификаторов – хороший способ повышения точности и скорости работы • Методы и схемы: • HOG + SVM • Viola-Jones • HOG + SVM + компоненты