SlideShare a Scribd company logo
1 of 128
Download to read offline
Оценка параметров моделей
Общая информация



         Этот курс
      подготовлен и
       читается при
    поддержке Microsoft
         Research




   Страница курса
    http://courses.graphicon.ru/main/vision
Зачем нужна оценка параметров?
                               9300 Harris Corners Pkwy, Charlotte, NC
• Умеем находить
  особенности на изображении
  - края и особые точки
• Хотим описать множество
  признаков на более высоком
  уровне, компактнее
• Сгруппируем точки согласно
  простым геометрическим
  моделям




                                                          Slide by S. Lazebnik
Оценка параметров
• Выберем параметрическую модель, описывающую
  геометрическое распределение признаков




      Простая модель: линия   Простая модель: окружность




                    Сложная модель: машина
                                                           Source: K. Grauman
Сопоставление изображений

                   500 особенностей

                        Лучше картинку про
                        оценку параметров
                        преобразования
                   Соответствия (268)

                   Выбросы (117)


                    Хороших соответствий
                    (151) – благодаря
                    оценке модели
                    преобразования!
Оценка параметров
• Выбор модели, описывающей набор признаков
• Критерий принадлежности модели не локальный
  • Только по точке невозможно сказать, удовлетворяет она
    модели или нет
• Три основных вопроса:
  • Какая модель лучше всего описывает набор признаков?
  • Какому экземпляру (instance) модели принадлежит
    признак?
  • Сколько экземпляров модели на изображении?
• Вычислительная сложность
  • Невозможно перебрать все возможные экземпляры и
    параметры моделей




                                                     Slide by S. Lazebnik
Оценка параметров
             Пример: поиск линих




• Шум в выделенных признаках
• Лишние данные: шум (выбросы), множество линий
• Пропавшие данные: перекрытия
                                                  Slide by S. Lazebnik
Оценка параметров: задачи
• Если мы знаем, какие точки лежат на линии, как
  нам найти оптимальные параметры линии?
   • Метод наименьших квадратов
• Как быть с выбросами?
   • Робастные оценки, RANSAC
• Как быть, если линий много?
   • Схемы голосования: RANSAC, преобразование Хафа
• Как быть, если мы не уверены, что линия –
  лучшая модель?
   • Выбор оптимальной модели (Model selection)




                                                  Slide by S. Lazebnik
Прямые линии

Дано:
  • Набор точек (xi, yi), i=1..N
Найти
  • Прямую, наилучшим образом
    их аппроксимирующую

• Здравый смысл:
  • Минимум квадратов расстояний от точек до прямой
• Вероятностная формулировка:
  • Максимум правдоподобия

      lˆ  arg max P {( xi , yi )} | l 
                  l
Метод наименьших квадратов

                     Максимум правдоподобия
                     Нет ошибок в x
                     Есть ошибки в y
                     Ошибки:
                        •   независимы
                        •   одинаково распределены
                        •   распределены
                            нормально
                       y  ax  b;
                       i  xi  X i , yi  Yi   ;
                        ~ N ( 0,  2 )
Метод максимального правдоподобия

Правдоподобие:                    arg max P {( xi , yi )} | (a, b)
                                            ( a ,b )



Независимые, нормально                      ( yi  axi  b) 2 
                            arg max  exp                    
распределенные ошибки:          ( a ,b )
                                         i        2 i2       

                                            ( yi  axi  b) 2
log – монотонная функция:    arg min 
                                 ( a ,b )
                                          i       2 i2


Одинаково распределённые    arg min  ( yi  axi  b) 2
                                 ( a ,b )
ошибки:                                      i


Получаем метод наименьших квадратов
Более сложный случай




           (ошибки как в x так и в y )
Модель
• Модель: точки на линии                    ax+by=d
  зашумлены гауссовым
  шумом в направлении              (u, v)
  перпендикулярном к               ε
  линии                                (x, y)
   x  u   a
        
   y v b
       
  Точка
                         нормаль
   на
  линии        шум:
            нормально –
          распределенный
     с нулевым матожиданием
   и стандартным отклонением σ
                                             Slide by S. Lazebnik
МНК
 • Модель: точки на линии                                                ax+by=d
   зашумлены гауссовым
   шумом в направлении                                          (u, v)
   перпендикулярном к                                          ε
   линии                                                            (x, y)
      x  u   a
           
      y v b
          
Правдоподобие точек при параметрах (a, b, d):
                          n                      n
                                                          (axi  byi  d ) 2 
P ( x1 , , xn | a, b, d )   P ( xi | a, b, d )   exp 
                                                                   2
                                                                              
                                                                              
                             i 1                   i 1        2           
                                                         n
                                            1
  Логарифм: L ( x1 , , xn | a, b, d )                 ( axi  byi  d ) 2
                                           2 2         i 1
                                                                          Slide by S. Lazebnik
Полные наименьшие квадраты
     Расстояние от (xn, yn) до линии
     ax+by=d (a2+b2=1): |ax + by – d|                                         ax+by=d
     Найти (a, b, d) минимизирующие:                                         Нормаль
                 n
                                                           n
                                                                  b , y
                                                       E   (a x(x y  d ))
                                                                    i i
                                                                             N=(a, b)
                                                                              2
                                        2
       E  i 1 (a xi  b yi  d )
                                                           i 1   i   i




E    n                                            a n        b n
    i 1  2( a xi  b yi  d )  0           d  i 1 xi  i 1 xi  a x  b y
d                                                 n          n
                                                                          2
                                             x1  x   y1  y 
E  i 1 ( a ( xi  x )  b( yi  y )) 2   
       n                                                       a   (UN )T (UN )
                                                            
                                            
                                             xn  x   yn  y  b 
dE          T                                                
     2(U U ) N  0
dN
Решение (UTU)N = 0, при условии ||N||2 = 1: собственный вектор UTU
соответствующий минимальному собственному значению

                                                                                  Slide by S. Lazebnik
SVD-разложение
•    Singular Value Decomposition: A = UDVT, где
     •  U, V - ортогональные
     •  D – диагональная (м.б. упорядочены столбцы по
       убыванию элементов)
     • D – состоит из сингулярных чисел
•    Одно из самых важных разложений
•    Связь с собственными значениями:
                              T             T           T
               T
                           A A  VDU UDV
    A  UDV               T         T    2 T
                         A A  VDDV  VD V
•    Сингулярные значения – корни квадратные
    собственных значений матрицы ATA
Наименьшие квадраты
•   Имеем уравнение     Ap  0    при     p 1
•   Решим с помощью SVD-разложения:          A  UDV T
•   Нужно минимизировать        UDV T p
               T      T
•   Однако: UDV p  DV p          VT p  p
•   Тогда нам нужно минимизировать DV T p при              VT p  1
•   Обозначим y = VTp
•   Тогда нам нужно минимизировать Dy при            y 1
    • D – диагональная, столбцы упорядочены по убыванию!

•   y=(0,….,0,1)T , тогда p=Vy – последний столбец V
Полные наименьшие квадраты
                                      n                 n
    x1  x   y1  y                                                        
                                      ( xi  x ) 2    ( xi  x )( yi  y )
U  
                  
                          T
                         U U   n i 1                i 1
                                                              n               
                                ( x  x )( y  y )              ( yi  y ) 2 
    xn  x
             yn  y 
                               i
                                i 1
                                                i           
                                                            i 1
                                                                              
                                                                              
                                      Матрица вторых моментов




                                                                     Slide by S. Lazebnik
Полные наименьшие квадраты
                                      n                    n
    x1  x   y1  y                                                          
                                      ( xi  x ) 2      ( xi  x )( yi  y )
U  
                  
                          T
                         U U   n i 1                  i 1
                                                                n               
                                ( x  x )( y  y )                ( yi  y ) 2 
    xn  x
             yn  y 
                               i
                                i 1
                                                i             
                                                              i 1
                                                                                
                                                                                
                                     Матрица вторых моментов


                                         N = (a, b)

                                                       ( xi  x , yi  y )
                               ( x, y)




                                                                         Slide by S. Lazebnik
Полные НК


Максимальный собственный вектор матрицы
            xi   x 2      xi   x  yi   y 
   Cov       i
           x    y   
                                i                       
          i     x    i   y        yi   y 2      
          i                      i                    
Задает направление прямой l , минимальный – направление
  нормали (a , b)

Прямая проходит через среднюю точку (  x ,  y )
         1                1
   x 
        N i
              xi ;  y 
                          N
                              y
                              i
                                   i


   c  ( a x  b y )
МНК и метод полных НК
Пример отличия:




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



                      (xi, yi)
     d((xi, yi), C)

                                 curve C




                                           Slide by S. Lazebnik
Наименьшие квадраты для коники
• Формула коники:
  C(a, x) = a · x = ax2 + bxy + cy2 + dx + ey + f = 0,
      a = [a, b, c, d, e, f],
      x = [x2, xy, y2, x, y, 1]
• Минимизация геометрических расстояний –
  нелинейная оптимизация даже для коник
• Алгебраическое расстояние: C(a, x)
• Алгебраическое расстояние минимизируется НК:
                                                a
                x12                             
                       x1 y1   y12   x1   y1 1  b 
                2              2              
                x2    x2 y2   y2    x2   y2 1 c
                                               0
                                             d 
                2              2              
                xn
                      xn yn   yn    xn   yn 1 e
                                               
                                                f
                                                       Slide by S. Lazebnik
МНК для коник
• СЛАУ: Da = 0
• Нужно ограничение для исключение тривиального
  решения
• Дискриминант: b2 – 4ac
  • Отрицательный: эллипс
  • Ноль: парабола
  • Положительный: гипербола
• Минимизация квадрата алгебраического расстояния
  с ограничениями ведет к обобщенной задаче на
  собственные значения (есть ряд методов)
• Подробнее тут:
  • A. Fitzgibbon, M. Pilu, and R. Fisher, Direct least-squares fitting
    of ellipses, IEEE Transactions on Pattern Analysis and Machine
    Intelligence, 21(5), 476--480, May 1999

                                                               Slide by S. Lazebnik
Проблема выбросов

Что, если предположение о характере шума нарушается?
Выбросы
• Если часть данных x не порождена моделью F, то при
оценке методом максимального правдоподобия результат
может быть сколь угодно далек от истинного
• Такие данные называются выбросы (outliers)
М-оценки
Идея – уменьшить влияние “далеких” точек

Возьмем параметризацию:
  x cos  y sin  R
  ( , R)  arg min  ( xi cos  yisin  R) 2
                ( ,  )
                           i
Модифицируем целевую функцию:

  ( , R )  arg min   ( i )
                ( ,R )
                           i

   i  xi cos  yi sin  R
                                      Если ρ(ε)=ε2 - получаем МНК
Робастные оценки
• Обычно: минимизируем               ri xi ,  ; 
                                   i
• ri (xi, θ) – невязка i-ой точки при условии параметров
  модели θ
  ρ – робастная функция с параметром масштаба σ


                                    Робастная функция
                                    ρ ведёт себя как
                                    квадрат
                                    расстояния при
                                    малых значения u
                                    но выравнивается
                                    при больших
                                    значениях u
                                                   Slide by S. Lazebnik
М-оценки


Результат:




             Равный вклад в целевую функцию
М-оценки
Часто используемые варианты функции  :
                                     2 3
                                         
                    K 2 1  1       |  | K
 Тьюки              6  K  
           ( )                   
                                         
                               2
                            K               |  | K
                                 6
                   c2       2 
 Коши      ( )  log 1    ;
                    2     c 
                                   

 Настроечные константы:                   K  4.685; c  2.385;
М-оценки
Вопрос:
   • Как найти минимум целевой функции?
     – Это может быть весьма непростой задачей при
       определенных функциях ρ


  Используется метод последовательных
  приближений – итеративно
  перевзвешиваемые наименьшие квадраты
Взвешенные наименьшие квадраты

 Обычные наименьшие квадраты (ordinary LS):

      ( a, b)  arg min  wi  yi  axi  b 
                                                          2
                   ( a ,b)
                               i



 Полные наименьшие квадраты (Total LS):

      (a, b, c)  arg        min 2
                              2              wi (axi  byi  c ) 2
                        ( a ,b ):a  b 1
                                             i

                                            w
                                             i
                                                 i   1
Взвешенные НК
Максимальный собственный вектор матрицы
          wi  xi   x 2                              w x   y   
                                                             i   i              x   i       y
  Cov     i
         w  x    y   
                                                         i                   
                                                            w y    
                                                                                        2

         i i
         i
                    x   i    y
                                                             i
                                                                     i      i
                                                                             
                                                                             
                                                                                    y

                            
  Задает направление прямой l , минимальный – направление
  нормали (a , b)

Прямая проходит через среднюю точку                                      ( x ,  y )
          w  x  i       i          w x   i       i
   x    i
                 ;            y    i
                                           ;                 c  (a x  b y )
           w i
                      i               w i
                                                 i
Итеративный МНК
Итеративно перевзвешиваемые наименьшие квадраты:

1. Получить начальное приближение методом наименьших
   квадратов – Θ(0)=(ρ(0), θ(0))

2. Номер итерации t=1

3. Для Θ(t-1) посчитать текущую оценку шума σ(t)

4. Рассчитать веса точек wi(t) с учетом функции ρ

5. Используя взвешенные МНК получить Θi

6. Если вектор параметров существенно изменяется
   ||Θ(t) − Θ(t-1)||> ε’ - перейти на шаг 3
Оценка масштаба σ (шума)

 • Как рассчитать уровень шума σ ?
    – Нужна устойчивая к выбросам оценка




 Несмещенная (для нормального
 распределения) робастная оценка
 средней ошибки
Влияние константы




  Первый шаг   C = 1.5   C = 3.5
Веса

  • Как связаны веса точек и функция ρ ?
          ' ( i  )
    wi 
            i 

                               2 
                             1               |   | K
   Тьюки          w(  )       K  
                                              
                                              
                                     0          |   | K
                            
                                  1
    Коши          w(  )                2
                                            ;
                                 x 
                            1         
                                 c  
М-оценки
Недостатки:
  • Необходимость хорошего первого приближения
  • Баланс весов – точность vs устойчивость
RANSAC
• Идея – проведение оценки не по всем данным, а
по выборке, не содержащей выбросов
• Поскольку выбросы заранее неизвестны, такую
выборку пытаемся получить случайным образом
за несколько попыток
• Для снижения вероятности включения выбросов,
выборка содержит минимальное количество точек,
необходимых для оценки параметров модели
• Random sample consensus (RANSAC)

M. A. Fischler, R. C. Bolles. Random Sample Consensus: A Paradigm
for Model Fitting with Applications to Image Analysis and Automated
Cartography. Comm. of the ACM, Vol 24, pp 381-395, 1981.
Выборка как основа схемы

• Основой рассматриваемых схем является оценка модели по
небольшой выборке S  x
• Проблема- количество таких выборок огромно
Базовая схема RANSAC


Повторяем N раз:
(i) Построение выборки S  X
(ii) Построение гипотезы  по выборке S
(iii) Оценка степени согласия гипотезы  и набора исходных
      данных X
(iv) Выбор наилучшей гипотезы
(v) Уточнение гипотезы по всем «хорошим» данным


 Для заданной доли выбросов  можно рассчитать
 количество итераций N, необходимое для получения
 модели построенной без выбросов с заданной
 вероятностью P
Функции оценки гипотезы (1)


RANSAC
                                        1  i 2  T 2
  R ( )   p( i ( ) 2 ), p( i2 )        2     2
                                                       , i  1,n
           i                            0  i  T
        i ( )   - невязка i-ой точки и оцениваемой гипотезы



LMS (Least median squares)

  R ( )  median( i ( ) 2 ), i  1,n
Пример RANSAC




            11 «голосов»   4 «голосов»
Выбор параметров
• Размер выборки s
  • Обычно, минимальное количество, дочтаточное для
    оценки параметров
• Порог T
  • Выбираем T так, чтобы вероятность инлаера (inlier) была
    p (пр. 0.95)
  • Обычно гауссова модель шума с нулевым матожиданием и
    σ: t2=3.84σ2
• Количество выборок N
  • Выбираем N так, чтобы вероятность выбрать хотя бы одну
    выборку без выбросов была не ниже заданной (например,
    0.99)
  • Зависит от доли выбросов в данных (доля выбросов: e)



                                                  Source: M. Pollefeys
Сколько гипотез нужно проверить?


1  1  e 
           s N
                  1 p                                     s
                            N  log1  p  / log 1  1  e    

• N – количество выборок
• p – вероятность получить хорошую выборку за N
итераций;
• s – количество элементов в выборке
• ε – процент хороших точек в наборе
Количество итераций
                proportion of outliers e
s    5%   10%    20%     25% 30%           40% 50%
2     2    3      5       6   7             11  17
3     3    4      7       9   11            19  35
4     3    5      9       13  17            34  72
5     4    6      12      17  26            57 146
6     4    7      16      24  37            97 293
7     4    8      20      33  54           163 588
8     5    9      26      44  78           272 1177




• Количество выборок быстро растет с ростом размера
выборки и доли выбросов




                                                      Source: M. Pollefeys
Адаптивное завершение алгоритма
• Доля e обычно заранее неизвестна, поэтому
  начинаем с грубой оценки (пр.: 50%), затем
  вычисляем оценку хороших точек для каждой
  гипотезы
• Процедура:
  • N=∞, sample_count =0
  • While N >sample_count
     – Строим выборку, гипотезу, оцениваем кол-во inliers
     – Set e = 1 – (number of inliers)/(total number of points)
     – Recompute N from e:


                                     
              N  log 1  p  / log 1  1  e 
                                                s
                                                    
      – Increment the sample_count by 1


                                                         Source: M. Pollefeys
Функции оценки гипотезы (2)


RANSAC
  • сильно зависит от выбора порога T


LMS
  • Не работает при >50% выбросов
  • Может выбрать ложную гипотезу
Большой порог – проблема!
Большой порог – проблема!




                   Верное решение…
Большой порог – проблема!




                   …эквивалентно
                   неверному
Маленький порог – проблема!
Проблема LMS




          Медиана ошибки одинакова
             для обоих решений
Con: LMS, subspace problem




                   Нет хорошего решения, если
                   выбросов >50%
Функции оценки гипотезы (3)

• M-SAC
   • Возьмём M-оценку в качестве целевой функции:

                                        i 2     2
                                                i  T 2
R ( )   p( i ( ) 2 ), p ( i2 )   2        2    2
                                                         , i  1,n
         i                             T       i  T


• M-SAC дает более точную оценку без
увеличения вычислительной сложности
M-SAC




        Верное решение…
M-SAC




        Лучше неверного
Обобщение на окружности

• Берем три точки
• Проводим через них окружность
• Все остальное – точно так же!



• Аналогично применяется для всех других
  моделей. Отличия только в функции оценки
  параметров модели, размере выборки
Сопоставление изображений




                        Сопоставление по
                          дескрипторам –
                          много ложных
Фильтрация ложных соответствий

   (m,m’) – пары соответствующих точек
   Как отделить правильные соответствия от
    неправильных?
   Используем модель преобразования H из M в M’
    для фильтрации точек
   Оценим модель с помощью RANSAC
   Отфильтруем выбросы по модели
   Уточним модель по всем оставшимся точкам
      Iterative least-squares

      Non-linear minimization
Ложные соответствия

                      500 особенностей




                      Соответствия (268)

                      Выбросы (117)


                      Хороших
                      соответствий (151)
Модели преобразований в 2D


• Подобие
  (перенос,
  масштаб, поворот)


• Афинное


• Проективное
  (гомография)



                             Slide by S. Lazebnik
Оценка афинного преобразования
 • Как вычислить преобразование по известным
   соответствиям?
               ( xi , yi )
                                                  ( xi, yi)




                                                                      m1 
                                                                     
                                                                   m2  
                                       x                       1 0  m3   xi 
 xi   m1      m2   xi   t1     i   yi   0 0                  
 y   m            y   t 
                  m4   i   2      0    0    xi yi         0 1 m4   yi 
 i  3
                                                                     
                                                                  t1             
                                                                      
                                                                      t 2Slide by S. Lazebnik
                                                                          
Оценка афинного преобразования
                                m1 
                              m  
                             2   
       x    yi   0 0     1 0  m3   xi 
        i                       
       0    0    xi yi   0 1 m4   yi 
                               
                            t1     
                                
                                t2 
                                
• Линейная система с 6ю неизвестными
• Каждое соответствие дает нам 2 линейно-
  независимых уравнения
• Нужно 3+ соответствий для оценки
  преобразования

                                                Slide by S. Lazebnik
Гомография
• Перспективное преобразование плоскости
• Переводит четырехугольник в другой
  произвольный четырехугольник




                                           Slide by S. Lazebnik
Гомография
• Преобразование между 2мя разными видами одной и той же
  плоскости




• Преобразование между видами с повернутой камеры (центр
  проекции общий)




                                                    Slide by S. Lazebnik
Однородные координаты
• Однородные координаты




   Перевод в однородные             Перевод из однородных
        координаты                        координат


  Удобнее представлять себе так:


      wx    wy w  x
                      T
                                   y 1  x
                                        T
                                                 y
                                                   T




Подробнее будет в лекциях про геометрические свойства камер!
Оценка гомографии

   xi   h11    h12   h13   xi 
  yi   h21
                h22   h23   yi 
                                        x '  Hy
   1   h31
                h32   h33   1 
                              
                   Уравнение гомографии
• Каждая пара соответствующих точек {(x,y),(x’,y’)} даёт
  2 линейно-независимых уравнения на параметры H
• H определена с точностью до масштаба
   • Можем поставить ограничение ||H||=1 или h33=1
• 4х пар соответствующих точек достаточно для
  составления системы уравнений
• Задача сводится к задаче наименьших квадратов
Ректификация изображения




• Выбираем 4 точки, которые являются вершинами
прямоугольника с известными размерами
• Вычисляем гомографию (4е точки -> прямоугольник)
• Развертываем изображение
• Можем измерять расстояния на плоскости!
Приложение: склейка панорам




                              Slide by S. Lazebnik
Распознавание панорам
• Из неупорядоченного набора фотографий определить,
  какие относятся к какой панораме и сшить их




  M. Brown and D. Lowe, “Recognizing Panoramas,” ICCV 2003.
      http://www.cs.ubc.ca/~mbrown/panorama/panorama.html
                                                          Slide by S. Lazebnik
RANSAC pros and cons
• Плюсы
  • Простой и общий метод
  • Применим для множества задач
  • Хорошо работает на практике
• Минусы
  • Много настраиваемых параметров
  • Не всегда удается хорошо оценить параметры по
    минимальной выборке
  • Иногда требуется слишком много итераций
  • Не срабатывает при очень высокой доле выбросов
  • Часто есть лучший способ, нежели равновероятно
    выбирать точки
Схемы голосования
• Пусть каждый признак голосует за все модели,
  которым он удовлетворяет
• Модели, за которые проголосовало наибольшее
  количество признаков, считаем результатом
• Надеемся, выбросы/шум не будут голосовать
  согласованно за определенные модели
• Пропущенные данные не играют большой роли до
  тех пор, пока оставшихся данных достаточно для
  голосования за правильные модели




                                             Slide by S. Lazebnik
Преобразование Хафа
• Hough transform:
   • Дискретизируем пространство параметров (разделим его
     на ячейки)
   • Для каждого признака (точки) на изображении, голосуем
     за все ячейки в пространстве параметров, которые могут
     породить этот признак (точку)
   • Найдем ячейки с максимум голосов




         Image space                           Hough parameter space

   P.V.C. Hough, Machine Analysis of Bubble Chamber Pictures, Proc.
   Int. Conf. High Energy Accelerators and Instrumentation, 1959 Slide by S. Lazebnik
Фазовое пространство
• Пример для линий
• Каждая линия на изображении соответствует точке в
  пространстве параметров (фазовом пространстве)
• Необходимо, что всевозможные линии на изображении
  соответствовали ограниченной области в фазовом
  пространстве



    Image space                    Hough parameter space




                                                 Source: S. Seitz
Параметризация линий

Прямую на плоскости можно
задать следующим образом:
x cos + y sin = R,



• R - длина перпендикуляра опущенного на
прямую из начала координат
   • R ограничено размерами входного изображения.

•  - угол между перпендикуляром к прямой и
осью OX
   •  изменяется в пределах от 0 до 2
Фазовое пространство




 Через одну точку можно провести   Каждой прямой пространства (x,
 несколько прямых. Учитывая        y) соответствует точка фазового
 дискретность их будет конечное
 число.                            пространства (R,  ). Прямые с
                                   левого рисунка образуют
                                   синусоиду.
Дискретизация

Переводим непрерывное фазовое
  пространство в дискретное:
   • введем сетку на пространстве (R, )


  Счетчик ставится в соответствие каждой ячейке сетки
  [Ri, Ri+1] x [i,i+1]

  За эту ячейку «голосуют» точки (x, y), удовлетворяющие:


  x cos + y sin = R, где i ≤  ≤ i+1, Ri ≤ R ≤ Ri+1
Иллюстрация




      features   votes



                         Slide by S. Lazebnik
Демонстрация
Как заполняется аккумулятор




     Анимация со страницы Amos Storkey
Схема алгоритма
•   Инициализируем аккумулятор H
    нулями
                                            ρ
•   Для каждой точки края(x,y)
    на изображении
      For θ = 0 to 180
         ρ = x cos θ + y sin θ                    θ
         H(θ, ρ) = H(θ, ρ) + 1
      end
    end

•   Найти значения (θ, ρ) где H(θ, ρ) достигает
    локального максимума
    •   Найденные линии задаются формулой
        ρ = x cos θ + y sin θ

                                                      Slide by S. Lazebnik
Пример работы метода




 Исходное изображение   Выделенные края        Найденные прямые




                        Фазовое пространство
Недостатки метода Хафа

   Ручной выбор дискретизации фазового пространства
        Шум приводит к «размытию» максимумов




                                                Slide by S. Lazebnik
Эффект шума
• Количество голосов за линию из 20 точек с
  увеличением шума:




                                              Slide by S. Lazebnik
Случайные точки (выбросы)




        features                   votes
Равномерно распределенные точки могут приводит к
         случайным пикам в аккумуляторе
                                            Slide by S. Lazebnik
Неполнота данных




  Пропущенные данные также приводят к размытию значений в
   аккумуляторе
Преобразование Радона
Преобразование Хафа
  (Hough transform)
  • Перебрать все точки на изображении
  • Для каждой выбрать все прямые, через нее проходящие
     – Увеличить счетчик точек для каждой из этих прямых
Преобразование Радона
  (Radon transform)
  • Перебрать все возможные прямые на изображении
  • Для каждой посчитать кол-во точек, на ней лежащих

Доказано, что эти подходы эквивалентны в
  дискретном случае
Преобразование Радона

Используется та же параметризация, что и для
  Хафа
   • R - определяется размерами изображения,
     0 ≤  ≤ 2
   • Рассчитывается следующая величина:


 R,     I R cos   s sin  , R sin   s cos  ds
            H
Преобразование Радона

                                  R

       R, i 


   H                                    qi




  R,    I R cos   s sin  , R sin   s cos  ds
                   H
Пример поиска прямых
Пример взят из помощи к MatLab




  Исходное                       Найденны
  изображение                    е края
Пример фазового пространства


        Большой пик  = 1,
        R = -80


 R




                 q
Соответствующая прямая


                        Большой пик  =
                        1, R = -80

                    R




                                 q
 Исходное                      R ,  i 
 изображение
Радон и Хаф
Доказано, что эти преобразования эквивалентны
  для дискретного случая
   • Преобразование Радона пришло из
     томографии, изначально формулируется
     непрерывно
   • Преобразование Хафа придумано специально
     для поиска фигур на изображениях, дискретно
     изначально
Когда что лучше применять?
  • Хаф эффективнее когда на изображении мало точек
  • Радон эффективнее, когда возможных конфигураций
    прямых немного
Практические вопросы
• Отфильтроваить лишние признаки
  • Для линий, стоит брать точки на краях только с большим
    градиентом
• Выбор правильной сетки
  • Слишком грубая: несколько близких линий будут
    голосовать за одну ячейку
  • Слишком мелкая: можно пропустить линии, т.к.
    зашумленные точки будут голосовать за разные ячейки
• Для поиска максимумов можно сглаживать
  значения в аккумуляторе
• Какая точка соответствует какой линии?
  • Помечаем голоса




                                                      Slide by S. Lazebnik
Расширение: учет градиента
• Когда мы находим края, мы
  знаем также градиент
• Это значит, что направление
  линии уже определено!

• Усовершенствованный метод:

  For each edge point (x,y)
      θ = gradient orientation at (x,y)
      ρ = x cos θ + y sin θ
      H(θ, ρ) = H(θ, ρ) + 1
  end


                                          Slide by S. Lazebnik
Обобщение на другие кривые

Рассмотрим семейство кривых на плоскости, заданное
параметрическим уравнением:

F(a1, a2, …, an, x, y) = 0;

где F - некоторая функция, a1, a2, ..., an - параметры семейства
кривых, x, y - координаты на плоскости.

Параметры семейства кривых образуют фазовое пространство,
каждая точка которого (конкретные значения параметров a1, a2, ...,
an) соответствует некоторой кривой.
Преобразование Хафа: За и Против

• За
  • Может работать в условиях перекрытий
  • Поиск нескольких экземпляров объектов за один проход
  • Некоторая устойчивость к шуму: выбросы обычно
    голосуют за разные ячейки
• Против
  • Сложность алгоритма резко растет с увеличением
    количества параметров
  • Сложно выбрать правильный шаг сетки
Поиск окружностей
• Как применить преобразование Хафа для
  окружностей?
• Размерность нашего фазового пространства?
• Если дана точка ориентированного края, за какие
  точки в фазовом пространстве она будет
  голосовать?




                                              Slide by S. Lazebnik
Поиск окружностей


       image space                          Hough parameter space
y                                                  r


              ( x, y )  rf ( x, y )



                  (x,y)
                                                                         x
    ( x, y )  rf ( x, y)


                                        x
                                             y
                                                           Slide by S. Lazebnik
Поиск окружностей
• Преобразование Радона для окружностей
• Для каждого (x,y,r), рисуем окружность на
  изображении и вычисляем «поддержку»


         r




                     x

   y
  Какое преобразование эффективнее?
                                              Slide by S. Lazebnik
Применение для распознавания




F. Jurie and C. Schmid, Scale-invariant shape features for recognition of
object categories, CVPR 2004                                     Slide by S. Lazebnik
Hough circles vs. Laplacian blobs

  Original
  images
                                                 Устойчивость к шуму и фону




 Laplacian
   circles




Hough-like
   circles




    F. Jurie and C. Schmid, Scale-invariant shape features for recognition of
    object categories, CVPR 2004                                     Slide by S. Lazebnik
Применение: распознавание
Сопоставление по SIFT
    • Идея:
         • Возьмем несколько изображений объекта с разных
           ракурсов
         • Найдем на нём особые точки, вычислим дескриптор
         • То же самое сделаем с тестовым изображением
         • Будем сопоставлять все изображения из базы с
           тестовым изображением
         • Ищем «группы» совпадающих особенностей
             – Достаточно хорошо работает при 3х особенностях




David G. Lowe. "Distinctive image features from scale-invariant keypoints.” IJCV 60
(2), pp. 91-110, 2004.
Шаг 1
• Найдем ближайшие по дескриптору пары (м.б.
  тысячи)
• Отфильтруем ложные по эвристике:
  • Сравним расстояния до ближайшей особенности с второй
    ближайшей по метрики
  • Отношения будет большим для не очень «выделенных»
    особенностей
  • Порог 0.8 дает неплохое разделение
Шаг 2
• Используем схему голосования (Хаф)
  • Каждое соответствие голосует за преобразование
     – X, Y, Масштаб, ориентация
  • Находим ячейки не менее чем с 3мя голосами
• Уточняем преобразование
  • Считаем аффинное преобразование по 3м
    соответствиям
  • Используем для поиска соответствий по другим точкам,
    фильтруем ложные, итеративно уточняем
    преобразование
• Классифицируем объект
  • Если не менее 3х соответствий
  • Используем Байесовский классификатор
Пример
Обобщенное преобразование Хафа
• Мы хотим найти форму, заданную своим контуром и
  центром




                                          a




D. Ballard, Generalizing the Hough Transform to Detect Arbitrary Shapes,
Pattern Recognition 13(2), 1981, pp. 111-122.
                                                                     Slide by S. Lazebnik
Обобщенное преобразование Хафа
• Для каждой точки контура p, вычислим вектор
  смещения r = a – p как функцию ориентации
  градиента θ




                                           a

                            θ       r(θ)
                     p
D. Ballard, Generalizing the Hough Transform to Detect Arbitrary Shapes,
Pattern Recognition 13(2), 1981, pp. 111-122.

                                                                     Slide by S. Lazebnik
Обобщенное преобразование Хафа
• Для модели формы: построим таблицу,
  идексируемую по θ, хранящую вектора смещения
  r как функцию от ориентации градиента
• Поиск: Для каждой точки края p с ориентацией
  градиента θ:
  • Извлечь все r индексированные по θ
  • Для каждого r(θ), проголосовать в аккумуляторе за точку
    p + r(θ)
• Пики в фазовом пространстве соответствуют
  опорным точкам с наибольшей поддержкой
• Используется предположение о фиксированном
  размере и ориентации!



                                                    Source: K. Grauman
Пример




         model shape   Slide by S. Lazebnik
Пример




         displacement vectors for model points   Slide by S. Lazebnik
Пример




         range of voting locations for test point   Slide by S. Lazebnik
Пример




         range of voting locations for test point   Slide by S. Lazebnik
Пример




         votes for points with θ =   Slide by S. Lazebnik
Пример




         displacement vectors for model points   Slide by S. Lazebnik
Пример




         range of voting locations for test point   Slide by S. Lazebnik
Пример




         votes for points with θ =   Slide by S. Lazebnik
Применение в распознавании
   • Вместо индексирования смещений по ориентации
     градиента индексируем по «кодовым словам»




                                                           Кодовое слово
                                                       с векторами смещения
        Тренировочное изображение


B. Leibe, A. Leonardis, and B. Schiele, Combined Object Categorization and
Segmentation with an Implicit Shape Model, ECCV Workshop on Statistical
Learning in Computer Vision 2004
                                                                       Slide by S. Lazebnik
Применение в распознавании
 • Вместо индексирования смещений по ориентации
   градиента индексируем по фрагментам изображения




                             Тестовое изображение

B. Leibe, A. Leonardis, and B. Schiele, Combined Object Categorization and
Segmentation with an Implicit Shape Model, ECCV Workshop on Statistical
Learning in Computer Vision 2004
                                                                       Slide by S. Lazebnik
Неявные модели формы
1. Строим словарь фрагментов по окрестностям
   выделенных особых точек с помощью
   кластеризации (подробнее дальше)




                                               Slide by S. Lazebnik
Неявные модели формы
1. Строим словарь фрагментов по окрестностям
   выделенных особых точек с помощью
   кластеризации
2. Сопоставляем каждый фрагмент вокруг особой
   точки с ближайшим значением из словаря




                                           Slide by S. Lazebnik
Неявные модели формы
1. Строим словарь фрагментов по окрестностям
   выделенных особых точек с помощью
   кластеризации
2. Сопоставляем каждый фрагмент вокруг особой
   точки с ближайшим значением из словаря
3. Для каждой записи в словаре, сохраняем все
   вектора смещения (к центру объекта от
   фрагмента)




                                           Slide by S. Lazebnik
Неявные модели формы
1. Извлекаем фрагменты из тестового
   изображения, ищем соответствия в словаре
2. Голосуем за все центры объекта по словарю
3. Ищем максимумы в фазовом пространстве
4. Строим взвешенную маску сегментации по
   маскам из словаря




                                               Slide by S. Lazebnik
Неявные модели формы
• Обучение с учителем
  • Нужно знать положение объекта и маску сегментации
    для каждого тренировочного изображения
• Фазовое пространство непрерывное
  • Нужно применять методы кластеризации для поиска
    максимумов
• Как искать объекты на разных масштабах?
  • Вариант 1: проводить поиск для нескольких масштабов
  • Вариант 2: использовать особые точки, инвариантные к
    масштабу
• Этап верификации очень важен
  • Когда гипотеза о положении объекта получена,
    накладываем детальный шаблон, проводим
    попиксельное сравнение и т.д.


                                                      Slide by S. Lazebnik
Резюме
• Метод наименьших квадратов
  • Он же Direct Linear Transform
  • Базовый метод оценки параметров модели по
    избыточным данным


• Робастные методы
  • М-оценки, итеративное уточнение


• Рандомизированные методы – RANSAC
  • Широкое применение при сопоставлении изображений


• Схемы голосования
  • Поиск объектов на изображении – линии, окружности,
    распознавание
На следующей лекции
•   Классификация изображений
•   Машинное обучение
•   Метод опорных векторов
•   Мешок слов

More Related Content

What's hot

20120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture0220120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture02Computer Science Club
 
CV2011-2. Lecture 09. Single view reconstructin.
CV2011-2. Lecture 09.  Single view reconstructin.CV2011-2. Lecture 09.  Single view reconstructin.
CV2011-2. Lecture 09. Single view reconstructin.Anton Konushin
 
CV2011-2. Lecture 07. Binocular stereo.
CV2011-2. Lecture 07.  Binocular stereo.CV2011-2. Lecture 07.  Binocular stereo.
CV2011-2. Lecture 07. Binocular stereo.Anton 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
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionAnton Konushin
 
CV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic videoCV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic videoAnton Konushin
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03Computer Science Club
 
20100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture0220100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture02Computer Science Club
 
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
 
CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.Anton Konushin
 
CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.Anton Konushin
 
20111009 csseminar image feature detection and matching
20111009 csseminar image feature detection and matching20111009 csseminar image feature detection and matching
20111009 csseminar image feature detection and matchingComputer Science Club
 
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
 
Лекция 07 Обработка видео
Лекция 07 Обработка видеоЛекция 07 Обработка видео
Лекция 07 Обработка видеоVictor Kulikov
 
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 2. Image processing
CV2011 Lecture 2. Image processingCV2011 Lecture 2. Image processing
CV2011 Lecture 2. Image processingAnton Konushin
 
Skyforge rendering tech (KRI 2014)
Skyforge rendering tech (KRI 2014)Skyforge rendering tech (KRI 2014)
Skyforge rendering tech (KRI 2014)Sergey Makeev
 
20120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture0420120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture04Computer Science Club
 

What's hot (20)

20120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture0220120413 videorecognition konushin_lecture02
20120413 videorecognition konushin_lecture02
 
CV2011-2. Lecture 09. Single view reconstructin.
CV2011-2. Lecture 09.  Single view reconstructin.CV2011-2. Lecture 09.  Single view reconstructin.
CV2011-2. Lecture 09. Single view reconstructin.
 
CV2011-2. Lecture 07. Binocular stereo.
CV2011-2. Lecture 07.  Binocular stereo.CV2011-2. Lecture 07.  Binocular stereo.
CV2011-2. Lecture 07. Binocular stereo.
 
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.
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time vision
 
CV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic videoCV2011 Lecture 11. Basic video
CV2011 Lecture 11. Basic video
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03
 
20100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture0220100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture02
 
CV2011-2. Lecture 10. Pose estimation.
CV2011-2. Lecture 10.  Pose estimation.CV2011-2. Lecture 10.  Pose estimation.
CV2011-2. Lecture 10. Pose estimation.
 
CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.
 
CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.
 
20111009 csseminar image feature detection and matching
20111009 csseminar image feature detection and matching20111009 csseminar image feature detection and matching
20111009 csseminar image feature detection and matching
 
L05 features
L05 featuresL05 features
L05 features
 
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.
 
Лекция 07 Обработка видео
Лекция 07 Обработка видеоЛекция 07 Обработка видео
Лекция 07 Обработка видео
 
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 2. Image processing
CV2011 Lecture 2. Image processingCV2011 Lecture 2. Image processing
CV2011 Lecture 2. Image processing
 
Skyforge rendering tech (KRI 2014)
Skyforge rendering tech (KRI 2014)Skyforge rendering tech (KRI 2014)
Skyforge rendering tech (KRI 2014)
 
20120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture0420120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture04
 

Similar to CV2011 Lecture 6. Fitting

алгебра 9 класс
алгебра 9 классалгебра 9 класс
алгебра 9 классDENGALKRAP
 
построение графиков средствами Microsoft excel
построение графиков  средствами Microsoft excelпостроение графиков  средствами Microsoft excel
построение графиков средствами Microsoft excelaviamed
 
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"Yandex
 
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"Yandex
 
Сегментация изображений в компьютерной графике.ppt
Сегментация  изображений в компьютерной графике.pptСегментация  изображений в компьютерной графике.ppt
Сегментация изображений в компьютерной графике.pptssuser413a98
 
Skalirovanie proizvedenija vektorov
Skalirovanie proizvedenija vektorovSkalirovanie proizvedenija vektorov
Skalirovanie proizvedenija vektorovNarvatk
 
20100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture0320100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture03Computer Science Club
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийTheoretical mechanics department
 
Мезенцев Павел - Машинное обучение на MapReduce
Мезенцев Павел - Машинное обучение на MapReduceМезенцев Павел - Машинное обучение на MapReduce
Мезенцев Павел - Машинное обучение на MapReducePavel Mezentsev
 
Задачи Пятой олимпиады Эйлера учителей Санкт-Петербурга
Задачи Пятой олимпиады Эйлера учителей Санкт-ПетербургаЗадачи Пятой олимпиады Эйлера учителей Санкт-Петербурга
Задачи Пятой олимпиады Эйлера учителей Санкт-Петербургаeekdiary
 
Методы численного интегрирования
Методы численного интегрированияМетоды численного интегрирования
Методы численного интегрированияTheoretical mechanics department
 
Неэталонная оценка качества изображений
Неэталонная оценка качества изображенийНеэталонная оценка качества изображений
Неэталонная оценка качества изображенийVladimir Pavlov
 
Методы удаления артефактов в видео
Методы удаления артефактов в видеоМетоды удаления артефактов в видео
Методы удаления артефактов в видеоMSU GML VideoGroup
 

Similar to CV2011 Lecture 6. Fitting (16)

алгебра 9 класс
алгебра 9 классалгебра 9 класс
алгебра 9 класс
 
построение графиков средствами Microsoft excel
построение графиков  средствами Microsoft excelпостроение графиков  средствами Microsoft excel
построение графиков средствами Microsoft excel
 
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
 
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
 
презентация к уроку2
презентация к уроку2презентация к уроку2
презентация к уроку2
 
Сегментация изображений в компьютерной графике.ppt
Сегментация  изображений в компьютерной графике.pptСегментация  изображений в компьютерной графике.ppt
Сегментация изображений в компьютерной графике.ppt
 
Skalirovanie proizvedenija vektorov
Skalirovanie proizvedenija vektorovSkalirovanie proizvedenija vektorov
Skalirovanie proizvedenija vektorov
 
20100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture0320100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture03
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближений
 
Мезенцев Павел - Машинное обучение на MapReduce
Мезенцев Павел - Машинное обучение на MapReduceМезенцев Павел - Машинное обучение на MapReduce
Мезенцев Павел - Машинное обучение на MapReduce
 
Задачи Пятой олимпиады Эйлера учителей Санкт-Петербурга
Задачи Пятой олимпиады Эйлера учителей Санкт-ПетербургаЗадачи Пятой олимпиады Эйлера учителей Санкт-Петербурга
Задачи Пятой олимпиады Эйлера учителей Санкт-Петербурга
 
Chjotnye i nechjotnye_funkcii
Chjotnye i nechjotnye_funkciiChjotnye i nechjotnye_funkcii
Chjotnye i nechjotnye_funkcii
 
Методы численного интегрирования
Методы численного интегрированияМетоды численного интегрирования
Методы численного интегрирования
 
Неэталонная оценка качества изображений
Неэталонная оценка качества изображенийНеэталонная оценка качества изображений
Неэталонная оценка качества изображений
 
Методы удаления артефактов в видео
Методы удаления артефактов в видеоМетоды удаления артефактов в видео
Методы удаления артефактов в видео
 
Введение в Learning To Rank
Введение в Learning To RankВведение в Learning To Rank
Введение в Learning To Rank
 

More from Anton Konushin

CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.Anton Konushin
 
CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.Anton Konushin
 
CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.Anton Konushin
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.Anton Konushin
 
CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.Anton Konushin
 
CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.
CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.
CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.Anton Konushin
 
CV2015. Лекция 2. Простые методы распознавания изображений.
CV2015. Лекция 2. Простые методы распознавания изображений.CV2015. Лекция 2. Простые методы распознавания изображений.
CV2015. Лекция 2. Простые методы распознавания изображений.Anton Konushin
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПОAnton Konushin
 
Статистическое сравнение классификаторов
Статистическое сравнение классификаторовСтатистическое сравнение классификаторов
Статистическое сравнение классификаторовAnton Konushin
 
Classifier evaluation and comparison
Classifier evaluation and comparisonClassifier evaluation and comparison
Classifier evaluation and comparisonAnton Konushin
 
CV2011-2. Lecture 04. Semantic image segmentation
CV2011-2. Lecture 04.  Semantic image segmentationCV2011-2. Lecture 04.  Semantic image segmentation
CV2011-2. Lecture 04. Semantic image segmentationAnton Konushin
 
Anton Konushin - TEDxRU 2009
Anton Konushin - TEDxRU 2009Anton Konushin - TEDxRU 2009
Anton Konushin - TEDxRU 2009Anton Konushin
 
Computer vision infrastracture
Computer vision infrastractureComputer vision infrastracture
Computer vision infrastractureAnton Konushin
 
Writing a computer vision paper
Writing a computer vision paperWriting a computer vision paper
Writing a computer vision paperAnton Konushin
 
Andrew Zisserman Talk - Part 1a
Andrew Zisserman Talk - Part 1aAndrew Zisserman Talk - Part 1a
Andrew Zisserman Talk - Part 1aAnton Konushin
 

More from Anton Konushin (15)

CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.
 
CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.
 
CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
 
CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.
 
CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.
CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.
CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.
 
CV2015. Лекция 2. Простые методы распознавания изображений.
CV2015. Лекция 2. Простые методы распознавания изображений.CV2015. Лекция 2. Простые методы распознавания изображений.
CV2015. Лекция 2. Простые методы распознавания изображений.
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПО
 
Статистическое сравнение классификаторов
Статистическое сравнение классификаторовСтатистическое сравнение классификаторов
Статистическое сравнение классификаторов
 
Classifier evaluation and comparison
Classifier evaluation and comparisonClassifier evaluation and comparison
Classifier evaluation and comparison
 
CV2011-2. Lecture 04. Semantic image segmentation
CV2011-2. Lecture 04.  Semantic image segmentationCV2011-2. Lecture 04.  Semantic image segmentation
CV2011-2. Lecture 04. Semantic image segmentation
 
Anton Konushin - TEDxRU 2009
Anton Konushin - TEDxRU 2009Anton Konushin - TEDxRU 2009
Anton Konushin - TEDxRU 2009
 
Computer vision infrastracture
Computer vision infrastractureComputer vision infrastracture
Computer vision infrastracture
 
Writing a computer vision paper
Writing a computer vision paperWriting a computer vision paper
Writing a computer vision paper
 
Andrew Zisserman Talk - Part 1a
Andrew Zisserman Talk - Part 1aAndrew Zisserman Talk - Part 1a
Andrew Zisserman Talk - Part 1a
 

CV2011 Lecture 6. Fitting

  • 2. Общая информация Этот курс подготовлен и читается при поддержке Microsoft Research  Страница курса http://courses.graphicon.ru/main/vision
  • 3. Зачем нужна оценка параметров? 9300 Harris Corners Pkwy, Charlotte, NC • Умеем находить особенности на изображении - края и особые точки • Хотим описать множество признаков на более высоком уровне, компактнее • Сгруппируем точки согласно простым геометрическим моделям Slide by S. Lazebnik
  • 4. Оценка параметров • Выберем параметрическую модель, описывающую геометрическое распределение признаков Простая модель: линия Простая модель: окружность Сложная модель: машина Source: K. Grauman
  • 5. Сопоставление изображений 500 особенностей Лучше картинку про оценку параметров преобразования Соответствия (268) Выбросы (117) Хороших соответствий (151) – благодаря оценке модели преобразования!
  • 6. Оценка параметров • Выбор модели, описывающей набор признаков • Критерий принадлежности модели не локальный • Только по точке невозможно сказать, удовлетворяет она модели или нет • Три основных вопроса: • Какая модель лучше всего описывает набор признаков? • Какому экземпляру (instance) модели принадлежит признак? • Сколько экземпляров модели на изображении? • Вычислительная сложность • Невозможно перебрать все возможные экземпляры и параметры моделей Slide by S. Lazebnik
  • 7. Оценка параметров Пример: поиск линих • Шум в выделенных признаках • Лишние данные: шум (выбросы), множество линий • Пропавшие данные: перекрытия Slide by S. Lazebnik
  • 8. Оценка параметров: задачи • Если мы знаем, какие точки лежат на линии, как нам найти оптимальные параметры линии? • Метод наименьших квадратов • Как быть с выбросами? • Робастные оценки, RANSAC • Как быть, если линий много? • Схемы голосования: RANSAC, преобразование Хафа • Как быть, если мы не уверены, что линия – лучшая модель? • Выбор оптимальной модели (Model selection) Slide by S. Lazebnik
  • 9. Прямые линии Дано: • Набор точек (xi, yi), i=1..N Найти • Прямую, наилучшим образом их аппроксимирующую • Здравый смысл: • Минимум квадратов расстояний от точек до прямой • Вероятностная формулировка: • Максимум правдоподобия lˆ  arg max P {( xi , yi )} | l  l
  • 10. Метод наименьших квадратов Максимум правдоподобия Нет ошибок в x Есть ошибки в y Ошибки: • независимы • одинаково распределены • распределены нормально y  ax  b; i  xi  X i , yi  Yi   ;  ~ N ( 0,  2 )
  • 11. Метод максимального правдоподобия Правдоподобие: arg max P {( xi , yi )} | (a, b) ( a ,b ) Независимые, нормально  ( yi  axi  b) 2  arg max  exp    распределенные ошибки: ( a ,b ) i  2 i2  ( yi  axi  b) 2 log – монотонная функция: arg min  ( a ,b ) i 2 i2 Одинаково распределённые arg min  ( yi  axi  b) 2 ( a ,b ) ошибки: i Получаем метод наименьших квадратов
  • 12.
  • 13. Более сложный случай (ошибки как в x так и в y )
  • 14. Модель • Модель: точки на линии ax+by=d зашумлены гауссовым шумом в направлении (u, v) перпендикулярном к ε линии (x, y)  x  u   a         y v b       Точка нормаль на линии шум: нормально – распределенный с нулевым матожиданием и стандартным отклонением σ Slide by S. Lazebnik
  • 15. МНК • Модель: точки на линии ax+by=d зашумлены гауссовым шумом в направлении (u, v) перпендикулярном к ε линии (x, y)  x  u   a         y v b       Правдоподобие точек при параметрах (a, b, d): n n  (axi  byi  d ) 2  P ( x1 , , xn | a, b, d )   P ( xi | a, b, d )   exp   2   i 1 i 1  2  n 1 Логарифм: L ( x1 , , xn | a, b, d )    ( axi  byi  d ) 2 2 2 i 1 Slide by S. Lazebnik
  • 16. Полные наименьшие квадраты Расстояние от (xn, yn) до линии ax+by=d (a2+b2=1): |ax + by – d| ax+by=d Найти (a, b, d) минимизирующие: Нормаль n n b , y E   (a x(x y  d )) i i N=(a, b) 2 2 E  i 1 (a xi  b yi  d ) i 1 i i E n a n b n  i 1  2( a xi  b yi  d )  0 d  i 1 xi  i 1 xi  a x  b y d n n 2  x1  x y1  y  E  i 1 ( a ( xi  x )  b( yi  y )) 2    n  a   (UN )T (UN )      xn  x yn  y  b  dE T    2(U U ) N  0 dN Решение (UTU)N = 0, при условии ||N||2 = 1: собственный вектор UTU соответствующий минимальному собственному значению Slide by S. Lazebnik
  • 17. SVD-разложение • Singular Value Decomposition: A = UDVT, где • U, V - ортогональные • D – диагональная (м.б. упорядочены столбцы по убыванию элементов) • D – состоит из сингулярных чисел • Одно из самых важных разложений • Связь с собственными значениями: T T T T A A  VDU UDV A  UDV T T 2 T A A  VDDV  VD V • Сингулярные значения – корни квадратные собственных значений матрицы ATA
  • 18. Наименьшие квадраты • Имеем уравнение Ap  0 при p 1 • Решим с помощью SVD-разложения: A  UDV T • Нужно минимизировать UDV T p T T • Однако: UDV p  DV p VT p  p • Тогда нам нужно минимизировать DV T p при VT p  1 • Обозначим y = VTp • Тогда нам нужно минимизировать Dy при y 1 • D – диагональная, столбцы упорядочены по убыванию! • y=(0,….,0,1)T , тогда p=Vy – последний столбец V
  • 19. Полные наименьшие квадраты n n  x1  x y1  y      ( xi  x ) 2  ( xi  x )( yi  y ) U       T U U   n i 1 i 1 n   ( x  x )( y  y ) ( yi  y ) 2   xn  x  yn  y    i  i 1 i  i 1   Матрица вторых моментов Slide by S. Lazebnik
  • 20. Полные наименьшие квадраты n n  x1  x y1  y      ( xi  x ) 2  ( xi  x )( yi  y ) U       T U U   n i 1 i 1 n   ( x  x )( y  y ) ( yi  y ) 2   xn  x  yn  y    i  i 1 i  i 1   Матрица вторых моментов N = (a, b) ( xi  x , yi  y ) ( x, y) Slide by S. Lazebnik
  • 21. Полные НК Максимальный собственный вектор матрицы    xi   x 2  xi   x  yi   y  Cov   i   x    y    i   i x i y  yi   y 2    i  i  Задает направление прямой l , минимальный – направление нормали (a , b) Прямая проходит через среднюю точку (  x ,  y ) 1 1 x  N i  xi ;  y  N y i i c  ( a x  b y )
  • 22. МНК и метод полных НК Пример отличия: Исходная прямая метод полных НК МНК
  • 23. Наименьшие квадраты для кривых • Минимизируем сумму квадратов геометрических расстояний от точек до кривой (xi, yi) d((xi, yi), C) curve C Slide by S. Lazebnik
  • 24. Наименьшие квадраты для коники • Формула коники: C(a, x) = a · x = ax2 + bxy + cy2 + dx + ey + f = 0, a = [a, b, c, d, e, f], x = [x2, xy, y2, x, y, 1] • Минимизация геометрических расстояний – нелинейная оптимизация даже для коник • Алгебраическое расстояние: C(a, x) • Алгебраическое расстояние минимизируется НК: a  x12   x1 y1 y12 x1 y1 1  b   2 2    x2 x2 y2 y2 x2 y2 1 c   0    d   2 2    xn  xn yn yn xn yn 1 e   f   Slide by S. Lazebnik
  • 25. МНК для коник • СЛАУ: Da = 0 • Нужно ограничение для исключение тривиального решения • Дискриминант: b2 – 4ac • Отрицательный: эллипс • Ноль: парабола • Положительный: гипербола • Минимизация квадрата алгебраического расстояния с ограничениями ведет к обобщенной задаче на собственные значения (есть ряд методов) • Подробнее тут: • A. Fitzgibbon, M. Pilu, and R. Fisher, Direct least-squares fitting of ellipses, IEEE Transactions on Pattern Analysis and Machine Intelligence, 21(5), 476--480, May 1999 Slide by S. Lazebnik
  • 26. Проблема выбросов Что, если предположение о характере шума нарушается?
  • 27. Выбросы • Если часть данных x не порождена моделью F, то при оценке методом максимального правдоподобия результат может быть сколь угодно далек от истинного • Такие данные называются выбросы (outliers)
  • 28. М-оценки Идея – уменьшить влияние “далеких” точек Возьмем параметризацию: x cos  y sin  R ( , R)  arg min  ( xi cos  yisin  R) 2 ( ,  ) i Модифицируем целевую функцию: ( , R )  arg min   ( i ) ( ,R ) i  i  xi cos  yi sin  R Если ρ(ε)=ε2 - получаем МНК
  • 29. Робастные оценки • Обычно: минимизируем   ri xi ,  ;  i • ri (xi, θ) – невязка i-ой точки при условии параметров модели θ ρ – робастная функция с параметром масштаба σ Робастная функция ρ ведёт себя как квадрат расстояния при малых значения u но выравнивается при больших значениях u Slide by S. Lazebnik
  • 30. М-оценки Результат: Равный вклад в целевую функцию
  • 31. М-оценки Часто используемые варианты функции  :    2 3   K 2 1  1       |  | K Тьюки  6  K    ( )          2  K |  | K  6 c2    2  Коши  ( )  log 1    ; 2  c    Настроечные константы: K  4.685; c  2.385;
  • 32. М-оценки Вопрос: • Как найти минимум целевой функции? – Это может быть весьма непростой задачей при определенных функциях ρ Используется метод последовательных приближений – итеративно перевзвешиваемые наименьшие квадраты
  • 33. Взвешенные наименьшие квадраты Обычные наименьшие квадраты (ordinary LS): ( a, b)  arg min  wi  yi  axi  b  2 ( a ,b) i Полные наименьшие квадраты (Total LS): (a, b, c)  arg min 2 2  wi (axi  byi  c ) 2 ( a ,b ):a  b 1 i w i i 1
  • 34. Взвешенные НК Максимальный собственный вектор матрицы   wi  xi   x 2  w x   y    i i x i y Cov   i  w  x    y    i   w y     2  i i  i x i y i i i   y  Задает направление прямой l , минимальный – направление нормали (a , b) Прямая проходит через среднюю точку ( x ,  y ) w  x i i w x i i x  i ; y  i ; c  (a x  b y ) w i i w i i
  • 35. Итеративный МНК Итеративно перевзвешиваемые наименьшие квадраты: 1. Получить начальное приближение методом наименьших квадратов – Θ(0)=(ρ(0), θ(0)) 2. Номер итерации t=1 3. Для Θ(t-1) посчитать текущую оценку шума σ(t) 4. Рассчитать веса точек wi(t) с учетом функции ρ 5. Используя взвешенные МНК получить Θi 6. Если вектор параметров существенно изменяется ||Θ(t) − Θ(t-1)||> ε’ - перейти на шаг 3
  • 36. Оценка масштаба σ (шума) • Как рассчитать уровень шума σ ? – Нужна устойчивая к выбросам оценка Несмещенная (для нормального распределения) робастная оценка средней ошибки
  • 37. Влияние константы Первый шаг C = 1.5 C = 3.5
  • 38. Веса • Как связаны веса точек и функция ρ ?  ' ( i  ) wi  i     2   1   |   | K Тьюки w(  )       K        0 |   | K  1 Коши w(  )  2 ;  x  1    c  
  • 39. М-оценки Недостатки: • Необходимость хорошего первого приближения • Баланс весов – точность vs устойчивость
  • 40. RANSAC • Идея – проведение оценки не по всем данным, а по выборке, не содержащей выбросов • Поскольку выбросы заранее неизвестны, такую выборку пытаемся получить случайным образом за несколько попыток • Для снижения вероятности включения выбросов, выборка содержит минимальное количество точек, необходимых для оценки параметров модели • Random sample consensus (RANSAC) M. A. Fischler, R. C. Bolles. Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography. Comm. of the ACM, Vol 24, pp 381-395, 1981.
  • 41. Выборка как основа схемы • Основой рассматриваемых схем является оценка модели по небольшой выборке S  x • Проблема- количество таких выборок огромно
  • 42. Базовая схема RANSAC Повторяем N раз: (i) Построение выборки S  X (ii) Построение гипотезы  по выборке S (iii) Оценка степени согласия гипотезы  и набора исходных данных X (iv) Выбор наилучшей гипотезы (v) Уточнение гипотезы по всем «хорошим» данным Для заданной доли выбросов  можно рассчитать количество итераций N, необходимое для получения модели построенной без выбросов с заданной вероятностью P
  • 43. Функции оценки гипотезы (1) RANSAC 1  i 2  T 2 R ( )   p( i ( ) 2 ), p( i2 )   2 2 , i  1,n i 0  i  T  i ( ) - невязка i-ой точки и оцениваемой гипотезы LMS (Least median squares) R ( )  median( i ( ) 2 ), i  1,n
  • 44. Пример RANSAC 11 «голосов» 4 «голосов»
  • 45. Выбор параметров • Размер выборки s • Обычно, минимальное количество, дочтаточное для оценки параметров • Порог T • Выбираем T так, чтобы вероятность инлаера (inlier) была p (пр. 0.95) • Обычно гауссова модель шума с нулевым матожиданием и σ: t2=3.84σ2 • Количество выборок N • Выбираем N так, чтобы вероятность выбрать хотя бы одну выборку без выбросов была не ниже заданной (например, 0.99) • Зависит от доли выбросов в данных (доля выбросов: e) Source: M. Pollefeys
  • 46. Сколько гипотез нужно проверить? 1  1  e  s N  1 p  s N  log1  p  / log 1  1  e   • N – количество выборок • p – вероятность получить хорошую выборку за N итераций; • s – количество элементов в выборке • ε – процент хороших точек в наборе
  • 47. Количество итераций proportion of outliers e s 5% 10% 20% 25% 30% 40% 50% 2 2 3 5 6 7 11 17 3 3 4 7 9 11 19 35 4 3 5 9 13 17 34 72 5 4 6 12 17 26 57 146 6 4 7 16 24 37 97 293 7 4 8 20 33 54 163 588 8 5 9 26 44 78 272 1177 • Количество выборок быстро растет с ростом размера выборки и доли выбросов Source: M. Pollefeys
  • 48. Адаптивное завершение алгоритма • Доля e обычно заранее неизвестна, поэтому начинаем с грубой оценки (пр.: 50%), затем вычисляем оценку хороших точек для каждой гипотезы • Процедура: • N=∞, sample_count =0 • While N >sample_count – Строим выборку, гипотезу, оцениваем кол-во inliers – Set e = 1 – (number of inliers)/(total number of points) – Recompute N from e:  N  log 1  p  / log 1  1  e  s  – Increment the sample_count by 1 Source: M. Pollefeys
  • 49. Функции оценки гипотезы (2) RANSAC • сильно зависит от выбора порога T LMS • Не работает при >50% выбросов • Может выбрать ложную гипотезу
  • 50. Большой порог – проблема!
  • 51. Большой порог – проблема! Верное решение…
  • 52. Большой порог – проблема! …эквивалентно неверному
  • 54. Проблема LMS Медиана ошибки одинакова для обоих решений
  • 55. Con: LMS, subspace problem Нет хорошего решения, если выбросов >50%
  • 56. Функции оценки гипотезы (3) • M-SAC • Возьмём M-оценку в качестве целевой функции:  i 2 2 i  T 2 R ( )   p( i ( ) 2 ), p ( i2 )   2 2 2 , i  1,n i T i  T • M-SAC дает более точную оценку без увеличения вычислительной сложности
  • 57. M-SAC Верное решение…
  • 58. M-SAC Лучше неверного
  • 59. Обобщение на окружности • Берем три точки • Проводим через них окружность • Все остальное – точно так же! • Аналогично применяется для всех других моделей. Отличия только в функции оценки параметров модели, размере выборки
  • 60. Сопоставление изображений Сопоставление по дескрипторам – много ложных
  • 61. Фильтрация ложных соответствий  (m,m’) – пары соответствующих точек  Как отделить правильные соответствия от неправильных?  Используем модель преобразования H из M в M’ для фильтрации точек  Оценим модель с помощью RANSAC  Отфильтруем выбросы по модели  Уточним модель по всем оставшимся точкам  Iterative least-squares  Non-linear minimization
  • 62. Ложные соответствия 500 особенностей Соответствия (268) Выбросы (117) Хороших соответствий (151)
  • 63. Модели преобразований в 2D • Подобие (перенос, масштаб, поворот) • Афинное • Проективное (гомография) Slide by S. Lazebnik
  • 64. Оценка афинного преобразования • Как вычислить преобразование по известным соответствиям? ( xi , yi ) ( xi, yi)  m1       m2   x 1 0  m3   xi   xi   m1 m2   xi   t1   i yi 0 0       y   m   y   t  m4   i   2  0 0 xi yi 0 1 m4   yi   i  3         t1     t 2Slide by S. Lazebnik   
  • 65. Оценка афинного преобразования  m1   m     2    x yi 0 0 1 0  m3   xi   i      0 0 xi yi 0 1 m4   yi          t1     t2    • Линейная система с 6ю неизвестными • Каждое соответствие дает нам 2 линейно- независимых уравнения • Нужно 3+ соответствий для оценки преобразования Slide by S. Lazebnik
  • 66. Гомография • Перспективное преобразование плоскости • Переводит четырехугольник в другой произвольный четырехугольник Slide by S. Lazebnik
  • 67. Гомография • Преобразование между 2мя разными видами одной и той же плоскости • Преобразование между видами с повернутой камеры (центр проекции общий) Slide by S. Lazebnik
  • 68. Однородные координаты • Однородные координаты Перевод в однородные Перевод из однородных координаты координат Удобнее представлять себе так: wx wy w  x T y 1  x T y T Подробнее будет в лекциях про геометрические свойства камер!
  • 69. Оценка гомографии  xi   h11 h12 h13   xi    yi   h21    h22 h23   yi    x '  Hy  1   h31    h32 h33   1    Уравнение гомографии • Каждая пара соответствующих точек {(x,y),(x’,y’)} даёт 2 линейно-независимых уравнения на параметры H • H определена с точностью до масштаба • Можем поставить ограничение ||H||=1 или h33=1 • 4х пар соответствующих точек достаточно для составления системы уравнений • Задача сводится к задаче наименьших квадратов
  • 70. Ректификация изображения • Выбираем 4 точки, которые являются вершинами прямоугольника с известными размерами • Вычисляем гомографию (4е точки -> прямоугольник) • Развертываем изображение • Можем измерять расстояния на плоскости!
  • 72. Распознавание панорам • Из неупорядоченного набора фотографий определить, какие относятся к какой панораме и сшить их M. Brown and D. Lowe, “Recognizing Panoramas,” ICCV 2003. http://www.cs.ubc.ca/~mbrown/panorama/panorama.html Slide by S. Lazebnik
  • 73. RANSAC pros and cons • Плюсы • Простой и общий метод • Применим для множества задач • Хорошо работает на практике • Минусы • Много настраиваемых параметров • Не всегда удается хорошо оценить параметры по минимальной выборке • Иногда требуется слишком много итераций • Не срабатывает при очень высокой доле выбросов • Часто есть лучший способ, нежели равновероятно выбирать точки
  • 74. Схемы голосования • Пусть каждый признак голосует за все модели, которым он удовлетворяет • Модели, за которые проголосовало наибольшее количество признаков, считаем результатом • Надеемся, выбросы/шум не будут голосовать согласованно за определенные модели • Пропущенные данные не играют большой роли до тех пор, пока оставшихся данных достаточно для голосования за правильные модели Slide by S. Lazebnik
  • 75. Преобразование Хафа • Hough transform: • Дискретизируем пространство параметров (разделим его на ячейки) • Для каждого признака (точки) на изображении, голосуем за все ячейки в пространстве параметров, которые могут породить этот признак (точку) • Найдем ячейки с максимум голосов Image space Hough parameter space P.V.C. Hough, Machine Analysis of Bubble Chamber Pictures, Proc. Int. Conf. High Energy Accelerators and Instrumentation, 1959 Slide by S. Lazebnik
  • 76. Фазовое пространство • Пример для линий • Каждая линия на изображении соответствует точке в пространстве параметров (фазовом пространстве) • Необходимо, что всевозможные линии на изображении соответствовали ограниченной области в фазовом пространстве Image space Hough parameter space Source: S. Seitz
  • 77. Параметризация линий Прямую на плоскости можно задать следующим образом: x cos + y sin = R, • R - длина перпендикуляра опущенного на прямую из начала координат • R ограничено размерами входного изображения. •  - угол между перпендикуляром к прямой и осью OX •  изменяется в пределах от 0 до 2
  • 78. Фазовое пространство Через одну точку можно провести Каждой прямой пространства (x, несколько прямых. Учитывая y) соответствует точка фазового дискретность их будет конечное число. пространства (R,  ). Прямые с левого рисунка образуют синусоиду.
  • 79. Дискретизация Переводим непрерывное фазовое пространство в дискретное: • введем сетку на пространстве (R, ) Счетчик ставится в соответствие каждой ячейке сетки [Ri, Ri+1] x [i,i+1] За эту ячейку «голосуют» точки (x, y), удовлетворяющие: x cos + y sin = R, где i ≤  ≤ i+1, Ri ≤ R ≤ Ri+1
  • 80. Иллюстрация features votes Slide by S. Lazebnik
  • 81. Демонстрация Как заполняется аккумулятор Анимация со страницы Amos Storkey
  • 82. Схема алгоритма • Инициализируем аккумулятор H нулями ρ • Для каждой точки края(x,y) на изображении For θ = 0 to 180 ρ = x cos θ + y sin θ θ H(θ, ρ) = H(θ, ρ) + 1 end end • Найти значения (θ, ρ) где H(θ, ρ) достигает локального максимума • Найденные линии задаются формулой ρ = x cos θ + y sin θ Slide by S. Lazebnik
  • 83. Пример работы метода Исходное изображение Выделенные края Найденные прямые Фазовое пространство
  • 84. Недостатки метода Хафа  Ручной выбор дискретизации фазового пространства  Шум приводит к «размытию» максимумов Slide by S. Lazebnik
  • 85. Эффект шума • Количество голосов за линию из 20 точек с увеличением шума: Slide by S. Lazebnik
  • 86. Случайные точки (выбросы) features votes Равномерно распределенные точки могут приводит к случайным пикам в аккумуляторе Slide by S. Lazebnik
  • 87. Неполнота данных Пропущенные данные также приводят к размытию значений в аккумуляторе
  • 88. Преобразование Радона Преобразование Хафа (Hough transform) • Перебрать все точки на изображении • Для каждой выбрать все прямые, через нее проходящие – Увеличить счетчик точек для каждой из этих прямых Преобразование Радона (Radon transform) • Перебрать все возможные прямые на изображении • Для каждой посчитать кол-во точек, на ней лежащих Доказано, что эти подходы эквивалентны в дискретном случае
  • 89. Преобразование Радона Используется та же параметризация, что и для Хафа • R - определяется размерами изображения, 0 ≤  ≤ 2 • Рассчитывается следующая величина: R,     I R cos   s sin  , R sin   s cos  ds H
  • 90. Преобразование Радона R R, i  H qi R,    I R cos   s sin  , R sin   s cos  ds H
  • 91. Пример поиска прямых Пример взят из помощи к MatLab Исходное Найденны изображение е края
  • 92. Пример фазового пространства Большой пик  = 1, R = -80 R q
  • 93. Соответствующая прямая Большой пик  = 1, R = -80 R q Исходное  R ,  i  изображение
  • 94. Радон и Хаф Доказано, что эти преобразования эквивалентны для дискретного случая • Преобразование Радона пришло из томографии, изначально формулируется непрерывно • Преобразование Хафа придумано специально для поиска фигур на изображениях, дискретно изначально Когда что лучше применять? • Хаф эффективнее когда на изображении мало точек • Радон эффективнее, когда возможных конфигураций прямых немного
  • 95. Практические вопросы • Отфильтроваить лишние признаки • Для линий, стоит брать точки на краях только с большим градиентом • Выбор правильной сетки • Слишком грубая: несколько близких линий будут голосовать за одну ячейку • Слишком мелкая: можно пропустить линии, т.к. зашумленные точки будут голосовать за разные ячейки • Для поиска максимумов можно сглаживать значения в аккумуляторе • Какая точка соответствует какой линии? • Помечаем голоса Slide by S. Lazebnik
  • 96. Расширение: учет градиента • Когда мы находим края, мы знаем также градиент • Это значит, что направление линии уже определено! • Усовершенствованный метод: For each edge point (x,y) θ = gradient orientation at (x,y) ρ = x cos θ + y sin θ H(θ, ρ) = H(θ, ρ) + 1 end Slide by S. Lazebnik
  • 97. Обобщение на другие кривые Рассмотрим семейство кривых на плоскости, заданное параметрическим уравнением: F(a1, a2, …, an, x, y) = 0; где F - некоторая функция, a1, a2, ..., an - параметры семейства кривых, x, y - координаты на плоскости. Параметры семейства кривых образуют фазовое пространство, каждая точка которого (конкретные значения параметров a1, a2, ..., an) соответствует некоторой кривой.
  • 98. Преобразование Хафа: За и Против • За • Может работать в условиях перекрытий • Поиск нескольких экземпляров объектов за один проход • Некоторая устойчивость к шуму: выбросы обычно голосуют за разные ячейки • Против • Сложность алгоритма резко растет с увеличением количества параметров • Сложно выбрать правильный шаг сетки
  • 99. Поиск окружностей • Как применить преобразование Хафа для окружностей? • Размерность нашего фазового пространства? • Если дана точка ориентированного края, за какие точки в фазовом пространстве она будет голосовать? Slide by S. Lazebnik
  • 100. Поиск окружностей image space Hough parameter space y r ( x, y )  rf ( x, y ) (x,y) x ( x, y )  rf ( x, y) x y Slide by S. Lazebnik
  • 101. Поиск окружностей • Преобразование Радона для окружностей • Для каждого (x,y,r), рисуем окружность на изображении и вычисляем «поддержку» r x y Какое преобразование эффективнее? Slide by S. Lazebnik
  • 102. Применение для распознавания F. Jurie and C. Schmid, Scale-invariant shape features for recognition of object categories, CVPR 2004 Slide by S. Lazebnik
  • 103. Hough circles vs. Laplacian blobs Original images Устойчивость к шуму и фону Laplacian circles Hough-like circles F. Jurie and C. Schmid, Scale-invariant shape features for recognition of object categories, CVPR 2004 Slide by S. Lazebnik
  • 105. Сопоставление по SIFT • Идея: • Возьмем несколько изображений объекта с разных ракурсов • Найдем на нём особые точки, вычислим дескриптор • То же самое сделаем с тестовым изображением • Будем сопоставлять все изображения из базы с тестовым изображением • Ищем «группы» совпадающих особенностей – Достаточно хорошо работает при 3х особенностях David G. Lowe. "Distinctive image features from scale-invariant keypoints.” IJCV 60 (2), pp. 91-110, 2004.
  • 106. Шаг 1 • Найдем ближайшие по дескриптору пары (м.б. тысячи) • Отфильтруем ложные по эвристике: • Сравним расстояния до ближайшей особенности с второй ближайшей по метрики • Отношения будет большим для не очень «выделенных» особенностей • Порог 0.8 дает неплохое разделение
  • 107. Шаг 2 • Используем схему голосования (Хаф) • Каждое соответствие голосует за преобразование – X, Y, Масштаб, ориентация • Находим ячейки не менее чем с 3мя голосами • Уточняем преобразование • Считаем аффинное преобразование по 3м соответствиям • Используем для поиска соответствий по другим точкам, фильтруем ложные, итеративно уточняем преобразование • Классифицируем объект • Если не менее 3х соответствий • Используем Байесовский классификатор
  • 109. Обобщенное преобразование Хафа • Мы хотим найти форму, заданную своим контуром и центром a D. Ballard, Generalizing the Hough Transform to Detect Arbitrary Shapes, Pattern Recognition 13(2), 1981, pp. 111-122. Slide by S. Lazebnik
  • 110. Обобщенное преобразование Хафа • Для каждой точки контура p, вычислим вектор смещения r = a – p как функцию ориентации градиента θ a θ r(θ) p D. Ballard, Generalizing the Hough Transform to Detect Arbitrary Shapes, Pattern Recognition 13(2), 1981, pp. 111-122. Slide by S. Lazebnik
  • 111. Обобщенное преобразование Хафа • Для модели формы: построим таблицу, идексируемую по θ, хранящую вектора смещения r как функцию от ориентации градиента • Поиск: Для каждой точки края p с ориентацией градиента θ: • Извлечь все r индексированные по θ • Для каждого r(θ), проголосовать в аккумуляторе за точку p + r(θ) • Пики в фазовом пространстве соответствуют опорным точкам с наибольшей поддержкой • Используется предположение о фиксированном размере и ориентации! Source: K. Grauman
  • 112. Пример model shape Slide by S. Lazebnik
  • 113. Пример displacement vectors for model points Slide by S. Lazebnik
  • 114. Пример range of voting locations for test point Slide by S. Lazebnik
  • 115. Пример range of voting locations for test point Slide by S. Lazebnik
  • 116. Пример votes for points with θ = Slide by S. Lazebnik
  • 117. Пример displacement vectors for model points Slide by S. Lazebnik
  • 118. Пример range of voting locations for test point Slide by S. Lazebnik
  • 119. Пример votes for points with θ = Slide by S. Lazebnik
  • 120. Применение в распознавании • Вместо индексирования смещений по ориентации градиента индексируем по «кодовым словам» Кодовое слово с векторами смещения Тренировочное изображение B. Leibe, A. Leonardis, and B. Schiele, Combined Object Categorization and Segmentation with an Implicit Shape Model, ECCV Workshop on Statistical Learning in Computer Vision 2004 Slide by S. Lazebnik
  • 121. Применение в распознавании • Вместо индексирования смещений по ориентации градиента индексируем по фрагментам изображения Тестовое изображение B. Leibe, A. Leonardis, and B. Schiele, Combined Object Categorization and Segmentation with an Implicit Shape Model, ECCV Workshop on Statistical Learning in Computer Vision 2004 Slide by S. Lazebnik
  • 122. Неявные модели формы 1. Строим словарь фрагментов по окрестностям выделенных особых точек с помощью кластеризации (подробнее дальше) Slide by S. Lazebnik
  • 123. Неявные модели формы 1. Строим словарь фрагментов по окрестностям выделенных особых точек с помощью кластеризации 2. Сопоставляем каждый фрагмент вокруг особой точки с ближайшим значением из словаря Slide by S. Lazebnik
  • 124. Неявные модели формы 1. Строим словарь фрагментов по окрестностям выделенных особых точек с помощью кластеризации 2. Сопоставляем каждый фрагмент вокруг особой точки с ближайшим значением из словаря 3. Для каждой записи в словаре, сохраняем все вектора смещения (к центру объекта от фрагмента) Slide by S. Lazebnik
  • 125. Неявные модели формы 1. Извлекаем фрагменты из тестового изображения, ищем соответствия в словаре 2. Голосуем за все центры объекта по словарю 3. Ищем максимумы в фазовом пространстве 4. Строим взвешенную маску сегментации по маскам из словаря Slide by S. Lazebnik
  • 126. Неявные модели формы • Обучение с учителем • Нужно знать положение объекта и маску сегментации для каждого тренировочного изображения • Фазовое пространство непрерывное • Нужно применять методы кластеризации для поиска максимумов • Как искать объекты на разных масштабах? • Вариант 1: проводить поиск для нескольких масштабов • Вариант 2: использовать особые точки, инвариантные к масштабу • Этап верификации очень важен • Когда гипотеза о положении объекта получена, накладываем детальный шаблон, проводим попиксельное сравнение и т.д. Slide by S. Lazebnik
  • 127. Резюме • Метод наименьших квадратов • Он же Direct Linear Transform • Базовый метод оценки параметров модели по избыточным данным • Робастные методы • М-оценки, итеративное уточнение • Рандомизированные методы – RANSAC • Широкое применение при сопоставлении изображений • Схемы голосования • Поиск объектов на изображении – линии, окружности, распознавание
  • 128. На следующей лекции • Классификация изображений • Машинное обучение • Метод опорных векторов • Мешок слов