SlideShare a Scribd company logo
1 of 131
Структура из движения




                   http://courses.graphicon.ru/vision2

Many slides adopted from Svetlana Lazebnik, Steve Seitz, Richard Hartley and Noah Snavely
Этот курс подготовлен
при поддержке Microsoft
       Research
Большая задача




Коллекция изображений      Трёхмерная модель
     из интернета


                  В 24 часа…
План лекции

• Цифровой фотоаппарат
• Модель перспективной проекции
• Калибровка камеры
• Гомография
• Геометрия двух камер
• Структура из движения
• Структура из движения для больших коллекций
изображений
Модель камеры-обскуры




Модель:
  • В преграде отверстие размеров в одну точку
  • Все лучи проходят через одну точку
  • Эта точка называется Центром Проекции (ЦП)
  • Реальный размер отверстия – Апертура
  • Изображение формируется на Картинной плоскости
  • Фокусным расстоянием f называется расстояние от ЦП
  до Картинной плоскости
Линза!

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




Линза позволяет увеличить поток света от каждой точки
Линза
                           -F’                    F’          2F’
А

                                     О           F’     B’
B
                                                         А’



• Лучи от одной точки объекта, преломляясь линзой, фокусируются
в одной точке позади линзы
• Луч, проходящий через центр линзы не преломляется
• Система точно как камера-обскура, но собирает больше света
    • О – центр проекции (центр линзы)
Фотоаппарат




  Figure from US Navy M anual of Basic
  Optics and Optical Instruments,
  prepared by Bureau of
  Naval Personnel. Reprinted by Dover
  Publications, Inc., 1969.


Все фотоаппараты устроены на описанном принципе
  • Вместо линзы более сложная оптическая система (объектив)
  • Изображение формируется на плёнке или матрице
Пиксельное изображение




•   Спроецированное изображение
    непрерывное, с гладкими границами
•   На матрице оно дискретизируется
    •   По пространству (пиксельная решетка)
    •   По цвету
Угол обзора (Field of View)




         ff




• Размер матрицы ограничен – ограничен угол обзора
• Больше фокусное расстояние – меньше угол обзора
• Меньше фокусное расстояние – больше угол обзора
Трансфокация (Zoom)
Трансфокация (Zoom)
Забавные эффекты




http://www.hash.com/users/jsherwood/tutes/focal/Zoomin.mov
Радиальная дисторсия




 Прямые линии по краям изображения превращаются в кривые
Радиальная дисторсия




    Нет дисторсии   «Подушка» (положительная)   Бочкообразная


•   Идеально тонких линз не бывает!
•   Нарушается допущение sin(x) ~ x
•   Искажения наиболее заметны по краям изображения
•   Приходится отдельно моделировать и устранять
План лекции

• Цифровой фотоаппарат
• Модель перспективной проекции
• Калибровка камеры
• Гомография
• Геометрия двух камер
• Структура из движения
• Структура из движения для больших коллекций
изображений
Модель


                   О             •   Камера-обскура
                                 •   Изображение позади фокуса
                                 •   Изображение перевернутое



           Фокусное расстояние
                                                 Фокусное
                                                 расстояние
•   Модель перспективной
    проекции
•   Перенесем объект на
    противоположенную сторону                                 О
•   То же самое фокусное
    расстояние!
•   Изображение нормальное, не
    перевернутое
Модель камеры-обскуры




                                Тогда простейшее уравнение
С = (0,0,0) – центр               перспективной проекции:
камеры (проекции)

X=(X,Y,Z) – точка в 3х                 X      Y
мерном пространстве               x f   y f
                                       Z      Z
x=(x,y) – проекция X            Перспективная проекция –
на изображении
                                нелинейное преобразование!
С, x, X лежат на одной прямой
В линейном виде

• Хотелось бы записать всё в виде векторов и
  линейных преобразований

• Для этого придётся воспользоваться
  представлением в однородных координатах
Однородные координаты
     Рассмотрим прямые на плоскости:

    ax  by  c  0            (ka ) x  (kb) y  (kc)  0
                                                      T
    Вектор            T
             a, b, c           Вектор   ka, kb, kc 
• Два вектора, отличающихся масштабом, можно считать
  эквивалентными
• Однородным (homogenous) вектором назовём класс
  эквивалентности, по указанному отношению
  эквивалентности
            T
• a, b, c  - экземпляр однородного вектора

• Множество классов эквивалентности векторов в 3  0,0,0 T
  образуют проективное пространство P 2
Однородные координаты
              T                                     T
•Точка  x, y    лежит на линии l  a , b, c  если        ax  by  c  0
                    ( x, y,1)( a, b, c)T  0
•Отметим, что     ( kx, ky, k )l  0   , только при ( x , y ,1)l   0
                           T
•Тогда пусть ( kx, ky, k ) - представление точки             ( x, y )T в
однородных координатах пространства P 2
Однородные координаты
Перевод из обычных в однородных:




   Однородные координаты   Однородные координаты
   точки изображения       точки сцены


Перевод из однородных в обычные:
Базовая геометрия
• Точка x лежит на линии l тогда и только тогда      xT l  0

• Пересечение двух двух линий можно описать как векторное
произведение двух линий x  l  l
                                  i       j

• Пример: линии x = 1, y=1

 1x  1  0     (1,0,1)   T
                                       1y  1  0     (0,1,1)T
                              i  j k  1
                                        
               x  l1  l2   1 0 1   1
                              0  1 0  1
                                        
• Линию можно задать как векторное произведение двух точек

                      lineij  xi  x j
Идеальные точки
•Рассмотрим параллельные линии:
   ax  by  c  0              ax  by  c'  0

•Точка пересечения будет: (b,a ,0)T
•Точки вида ( x, y,0)T - идеальные точки в
«бесконечности)

• Пример: x=1, x=2
               i  j k  0
                                Точка в бесконечности, в
x  l1  l2   1 0 1   1 
                                  направлении y-оси
               1 0 2  0
                         
Проективное преобразование
•Проективность (projectivity) – это такое
обратимое преобразование h из P2, при котором
точки x1, x2, x3 лежат на одной прямой тогда и
только тогда, когда h(x1), h(x2), h(x3) – лежат на
одной прямой

•Отображение h в P2 – проективность тогда и
только тогда, когда существует невырожденная
матрица H размером 3x3, когда для любой точки x
верно h(x)=Hx

               
            x1  h11 h12      h13   x1 
            x    h   h22   h23  *  x2 
             2      21             
            x  h31 h12
            3                h33   x3 
                                      
Аффинные преобразования

           X   AX  Tx


  aX  Tx  a     0 0 Tx   X 
   bY  T   0            Y 
                    b 0 Ty   
         y
                          *
   cZ  Tz   0   0 c Tz   Z 
                          
   1  0          0 0 1  1
P в матричной форме
Запишем теперь перспективную проекцию в
матричном виде:
                      X 
                                                     X
   x  1 0 0 0           X     X / Z     x
   y   0 1 0 0 *  Y    Y    Y / Z       Z
                Z                    
   1  0 0 1 0  
                1         Z
                                     1 
                                                   Y
                                                y
                                                     Z
                       P  I | 0
                       x  PX
Внутренняя калибровка (f)


                                       X      Y
                                  x f   y f
                                       Z      Z

                          X 
x  f      0   0   0            f   0   0 1 0 0 0
 y   0             * Y 
  
             f   0   0
                       Z      P  0   f   0 0 1 0 0
                                                      
1  0
          0   f   0  
                       1            0
                                         0   1 0 0 1 0
                                                       
                           

                                          K       I | 0
Внутренняя калибровка
                                           u
                    u                v
                v
                            p
                                x                      p
                        y
  С
        Z   f                                        y      x
  Y     X



• p – основание перпендикуляра из С на картинную плоскость
(принципиальная точка)
• p = (0,0, f) в мировых координатах, центр системы координат в
картинной плоскости
• В картинной области расположена матрица (изображение)
• Нужно преобразовать из мировых координат в пиксельные
Внутренняя калибровка
                          u
                   v

                                         p
                                        y      x



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

( x, y)  ( sx  cx , sy  c y )  ( x / pix  cx , y / pix  c y )
  Где pix – размер пикселя,   c , c  - принципиальная точка в координатах
                                x   y
                                            изображения
Внутренняя калибровка
( x, y )  (sx  c x , sy  c y )  ( x / pix  cx , y / pix  c y )
     u  1 / pix    0    c x   x   x / pix  c x 
     v    0    1 / pix c y  *  y    y / pix  c y 
                                                    
     1   0
                   0    1  1  
                                              1        
                                                           

1 / pix     0   cx   f      0    0  f / pix        0    cx 
 0      1 / pix c y  *  0   f    0   0         f / pix c y 
                                                            
 0
            0   1  0
                             0    1  0
                                                      0    1  
Внутренняя калибровка
Или матрица калибровки камеры (camera calibration
matrix), internal calibration
        a x   s    cx   f / pix     s     cx 
     K 0     ay   cy    0       f / pix c y 
                                              
        0
              0    1  0
                                      0    1  

  • a – масштабирующие коэффициенты
  • s – наклон, угол между осями x и y
  изображения
  • c – положение принципиальной точки
  изображения (в пикселях)
  • f, pix – фокусное расстояние, размер пиксела
Полезно

                                     1
                                 K                     b


                             K                                 x
                                              Z            y
                                          O

                                                  X
                                          Y

•   Внутренняя калибровка K отображает точки с картинной
    плоскости на изображение
•   Обратная матрица K-1отображает точки с изображения на
    картинную плоскость, с f=1
    •   Координаты в пространстве с центром в C будут (x,y,1,1)
    •   Отображение точек на изображении в лучи
Из мировой в координаты камеры
                                      1
       YC                         C
                                                   XW     OW
XC
                                   C              YW
                 ZC                                         ZW
            OC


     R      T
  C          
    [0,0,0] 1 
• Положение и ориентация камеры в мировых координатах задается
евклидовым преобразованием С
• Обратное преобразование
     •Из мировых координат в координаты камеры
     •Обратное к C преобразование! – Inverse(C)
Внешняя калибровка
• Матрица преобразования из мировой системы координат в систему
координат камеры называется матрицей внешней калибровки


                           1
           R      T     RT      RT T 
   C 1              
           [0,0,0] 1                     
                       [0,0,0]   1 

• Внешняя калибровка определяется положением и ориентацией
камеры в пространстве
Конечная проективная камера


                                              1
  P  K  [I | 0]  C
Матрица     Внутренняя          Центральная          Внешняя
проекции    калибровка          проекция             калибровка
 камеры

• Матрица P размером 3x4, которую можно факторизовать
вышеуказанным образом, где K – верхнетреугольная, называется
конечной проективной камерой (finite projective camera)
• У неё 11 степеней свободы (5 внутренних параметров, 3
параметра поворота и 3 параметра положения центра проекции)
Обобщенная проективная камера
• Произвольная однородная матрица ранга 3
  называется обобщенной проективной камерой
  (general projective camera)
                                     X 
    x   p11   p12   p13   p14   
    y   p    p22   p23   p24  * Y 
      21                       Z      x  PX
    1   p31
              p12   p33   p34   
                                  1
                                      

  • У P в общем случае также 11 степеней свободы
  (неизвестных параметров)
  • Если ранг <3, тогда всё проецируется в линию или
  точку, а не плоскость, т.е. изображения не
  получается
План лекции

• Устройство фотоаппарата
• Модель перспективной проекции
• Калибровка камеры
• Гомография
• Геометрия двух камер
• Структура из движения
• Структура из движения для больших коллекций
изображений
Калибровка камеры
• Даны n точек с известными 3D координатами X i
и известными проекциями xi, оценить параметры
камеры


                                        Xi


                                xi




                          P?
DLT-метод
  • Direct Linear Transformation (прямое линейное
  преобразование)
                                       T
                           xi   P1 
                                    
 x i  PX i              yi    P2T X i         x i  PX i  0
                                     T
                           wi   P3 
                             

                                     T          T
           0            wi X       i    yi X  P1 
                                                i
                 T                             T
                                                    
           wi X i           0            xi X i  P2   0
            yi X T
                   i     xi X   T
                                 i           0  P3 
                                                   
• Два линейно независимых уравнения (берут
обычно первые два)
Калибровка камеры

   0T    T
         X1          T
                y1X1 
   T                T 
   X1   0T     x1X1   P1        Ap  0
                           
                 P2   0
   T                 T 
                                      p 1
  0     XT
           n
                           P3 
                yn X n  
  XT    0T
                xn X T 
   n                 n


• У P 11 степеней свободы (12 параметров, но
масштаб произвольный)
• Каждая пара (x,X) даёт нам уравнения
• 6 соответствий необходимо для решения
• Однородные наименьшие квадраты
SVD-разложение
 • Singular Value Decomposition: A = UDVT, где
   • U, V - ортогональные
   • D – диагональная (м.б. упорядочены столбцы по
   убыванию элементов)
   • D – состоит из сингулярных чисел
 • Одно из самых важных разложений
 • Связь с собственными значениями:
                       AT A  VDU T UDV T
A  UDV T
                     AT A  VDDVT  VD2 VT
 • Сингулярные значения – корни квадратные
 собственных значений матрицы ATA
Наименьшие квадраты
• Имеем уравнение   Ap  0   при   p 1
                                                  T
• Решим с помощью SVD-разложения:       A  UDV
• Нужно минимизировать UDV T p
• Однако: UDV T p  DVT p    VT p  p
• Тогда нам нужно минимизировать DVT p при VT p  1
• Обозначим y = VTp
• Тогда нам нужно минимизировать Dy при y  1
• y=(0,….,0,1)T , тогда x=Vy – последний столбец V
Калибровка камеры

   0T    T
         X1          T
                y1X1 
   T                T 
   X1   0T     x1X1   P1 
                           
                 P2   0   Ap  0
   T                 T 
  0     XT
           n
                           P3 
                yn X n         p 1
  XT    0T
                xn X T 
   n                 n


•Для копланарных точек, удовлетворяющих
уравнению ΠTX=0, получим вырожденные
решения (Π,0,0), (0,Π,0),или (0,0,Π)
Калибровка камеры
• Когда мы получили матрицу проекции, нам
необходимо извлечь из неё внутренние и
внешние параметры калибровки
• Представим матрицу проецирования в
следующем виде:

  P  KR I | T   M |  MT 
            T


• Для разложения M в KRT воспользуемся RQ-
факторизацией
  • Q – ортогональная матрица
  • К – верхнетреугольная
• Потом найдем T
“Gold Standard”

 • Метод «Золотого стандарта» – метод,
 оптимизирующий параметры по наиболее
 корректной, оптимальной метрике
 • В случае калибровки камеры, это расстояния от
 проекций 3D точек до их измеренных значений
 (ошибка репроекции):
                     2
          min  d ( xi , P X i )
            P
                i
 • Требует использования нелинейных методов
 оптимизации (градиентный спуск и т.д.)
Схема калибровки камеры

• DLT-метод для получения матрицы
  проецирования
• RQ-факторизация для извлечения матрицы
  внутренней калибровки K и внешней калибровки
  RиT
• Уточнение параметров калибровки с помощью
  нелинейной оптимизации ошибки репроекции:

             min  d 2 ( xi , P X i )
              P
                   i
План лекции

• Цифровой фотоаппарат
• Модель перспективной проекции
• Калибровка камеры
• Гомография
• Геометрия двух камер
• Структура из движения
• Структура из движения для больших коллекций
изображений
Гомография




• Перспективное преобразование плоскости (гомография)
• Пусть точка X лежит на плоскости
• Выберем специальную мировую систему координат
                                        X 
       u   p11   p12   p13   p14     p11       p12   p14   X 
       v   p                         Y
                    p22   p23   p24  *     p21   p22   p24  *  Y 
         21                       0                        
       w  p31
                 p12   p33   p34     p31
                                     1              p12   p34   1 
                                                                  
                                         
Гомография

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

• 8 степеней свободы
                        u   h11 h12    h13   x 
                        v   h   h22   h23  *  y 
                                 21
                                             
                        w h31 h12
                                       h33   1 
                                                
Вычисление гомографии (DLT)
• (x, x’) – известные соответствия на 2х
изображениях
• Линейный (DLT) метод:
• Составим систему линейных уравнений           x'  Hx
  •   Каждое соответствие даст 2 уравнения на параметры H
  •   4 соответствия дадут 8 уравнений на 8 неизвестных
  •   Никакие 3 не должны лежать на одной прямой!
  •   Можем взять и больше соответствий…
• Сведем к однородной задаче наименьших
квадратов
  • Уже знаем, как решать!
Вычисление гомографии (Gold)
 • Критерий получше (transfer error)

      d 2 ( xi, Hxi )  d 2 ( H 1xi, xi )
       i
   • Вычислить достаточно просто


 • Оптимальный критерий (distance error)
            d 2 ( x, xi)  d 2 ( xi , xi )
            iˆ                         ˆ
            i
     где xi  H xi - идеальное соответствие
          ˆ      ˆ
   • Нужно вычислять «идеальные соответствия», это
   сложно
Использование гомографии

• 4 соответствия (x,x’), из которых никакие 3 не
лежат на одной прямой, определяют гомографию H

• Значит, любые 4 точки в общей позиции можно
преобразовать в любые 4 другие точки в общей
позиции

• Это можно использовать
Ректификация изображения




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




Если центр камеры не изменился, то одно изображение
в другое преобразуется гомографией
Построение мозаики (панорамы)




Проецируем все изображения на общую плоскость
Плоская сцена




• Если наблюдаемая сцена – плоская, тогда
преобразование точек между изображениями
можно тоже описать гомографией
• Это результат используется в дальнейшем
План лекции

• Цифровой фотоаппарат
• Модель перспективной проекции
• Калибровка камеры
• Гомография
• Геометрия двух камер
• Структура из движения
• Структура из движения для больших коллекций
изображений
Геометрия 2х камер




Рассмотрим случай, когда два снимка одной и той же сцены получены
           с разных ракурсов (разные центры проекций)
Задачи многовидовой геометрии
•     Геометрия сцены (структура) : Пусть даны
      соответствующие точки в 2D на 2х и более
      изображениях, определить координаты
      соответствующих точек в 3D

•     Соответствие (стерео-сопоставление) : Дана
      точка в одном изображении, как мы можем
      ограничить положение соответствующей точки
      на втором изображении?

•     Калибровка камер (движение): Дан набор
      соответствующих точек в 2х и более
      изображениях, определить матрицы калибровки
      камер для этих изображений (видов)
Триангуляция (геометрия сцены)
• Даны проекции x1, x2 точки X=(X,Y,Z) на 2 или
более изображения (с известными матрицами
калибровки), найти координаты точки



                        X?



            x1                      x2



    C1                                     C2
Триангуляция
• Можно найти пересечение лучей,
соответствующих точкам x1 и x2, однако из-за
ошибок измерения и оценки они не пересекаются


                R2     R1
                     X?



           x1                   x2



   С1                                 С2
Геометрический подход
•Найдем кратчайший отрезок, соединяющий два
луча и пусть X будет средней точкой на этом
отрезке
•Алгоритм средней точки (midpoint)


                     X



                x1                    x2



         С1                                  С2


   R. I. Hartley and P. Sturm, Triangulation, СVIU, 1997
Линейный подход

  1 x 1  P1X      x 1  P1X  0         [x1 ]P1X  0
  2 x 2  P2 X     x 2  P2X  0        [x 2 ]P2 X  0

Проекция на каждую камеру даст    x1 ( p1 T X )  ( p1 T X )  0
                                        3            1


2 уравнения на X                  y 2 ( p1 T X )  ( p1 T X )  0
                                         3            2



                                  x1 p13T  p1 T 
                                               1

Проекция на обе камеры                           
приведет к знакомой задаче на     y1 p1 T  p12T 
                                        3
                                                        AX  0
                              A                    x0
однородные наименьшие                   3T
                                  x2 p2  p2 1T
                                                        X 1
квадраты                               3T     2T 
                                  y2 p2  p2 
Нелинейный подход
•Найти X, минимизирующий ошибку d 2 ( x1 , P X )  d 2 ( x2 , P2 X )
                                            1



                       X?


            x’1
                  x1                            x2
                                          x’2


      O1                                                 O2

• Требует применение нелинейной оптимизации
• Результат DLT используем как начальное приближение
Эпиполярная геометрия
                                X




               x                                x’




• Базовая линия (Baseline) – линия, соединяющая центры камер
• Эпиполярная плоскость (Epipolar Plane) – плоскость, проходящая
через базовую линию (пучок плоскостей))
• Эпиполи/Эпиполяры (Epipoles)
= пересечение базовой линии с картинными плоскостями
= проекции центра проекций второй камеры
• Эпиполярные линии (Epipolar Lines) – пересечение эпиполярной
плоскости с картинной плоскостью (дают соответствующие пары)
Эпиполярное ограничение
                                     X

                              X

                        X

                    x                                    x’

                                                     x’

                                                    x’




• Пусть даны изображения I и I’ с центрами проекции O и О’, и
проекция x точки X (неизвестной) на изображение I.
• Что мы можем сказать про точку x’ – проекцию X на I’?
   • x’ должна лежать на эпиполярной линии l’
• Эпиполярное ограничение:
   • Проекции x и x’ точки сцены X на изображения I и I’ должны лежать на
   соответствующих эпиполярных линиях l и l’
Пример: Сближающиеся камеры
Пример: стереопара




  Движение, параллельное картинной плоскости
Пример: движение вперед


                           e’




                            e

                 У эпиполей одинаковые
                 координаты в обоих
                 изображениях.
                 Точки движутся вдоль линий,
                 исходящих из e – «фокуса
                 расширения»
Эпиполярное ограничение

                           X

                      X

                  x

                                             x’




• Интересный вывод:
    • Линия l’ не зависит от X, если x и калибровка камер известна
    • Линия l не зависит от X, если x’ и калибровка камер известна
    • Между x, x’ и калибровкой камер существует зависимость
    • Попробуем её вывести
Калиброванный случай
                                X



                 x                             x’




• Совместим глобальную систему координат с координатной
системой первой камеры
• Допустим, известны внутренние калибровки камер K, K’ и
внешняя калибровка второй камеры R и T
• Умножим матрицу проекции каждой камеры на обратную
матрицу калибровки K-1, K’-1
   • Также отобразим точки x, x’ с изображения на картинную
   плоскость
Калиброванный случай
                          X = RX’ + t



               x                        x’




                          t

                         R
Матрица камеры [I|0]          Матрица камеры: [RT | –RTt]
X = (u, v, w, 1)T             Вектор x’ во второй
x = (u, v, w)T                системе координат имеет
                              координаты Rx’ в первой
         Вектора x, t, и Rx’ копланарны
Калиброванный случай
                              X



                    x                     x’




x  [t  ( R x)]  0       xT E x   0 где   E  [t ]R

                          Существенная матрица
                              (Essential Matrix)
                           (Longuet-Higgins, 1981)
             Вектора x, t, и Rx’ копланарны
Свойства существенной матрицы
                           X



                    x                 x’




x  [t  ( R x)]  0   x T E x   0 где E  [t ]R
 •E x’ - эпиполярная линия, соответствующая x’ (l = E x’)
 •ETx - эпиполярная линия, соответствующая x (l’ = ETx)
 •E e’ = 0 и ETe = 0
 •E вырождена (ранг 2)
 •E имеет 5 степеней свободы
Некалиброванный случай
                     X



           x                     x’




•Пусть матрицы калибровки K и K’ для обеих
камер неизвестны
•Запишем эпиполярное ограничение через
неизвестные нормализованные координаты:

  ˆ T E x  0
  x ˆ                    x  K x, x  K x
                               ˆ          ˆ
Некалиброванный случай
                      X



             x                       x’




 T                T
x E x  0
ˆ ˆ              x Fx  0 где F  K  T E K 1

 x  Kx ˆ
                 Фундаментальная матрица
x  K x
        ˆ        (Fundamental Matrix)
                 (Faugeras and Luong, 1992)
Свойства
                                X



                  x                          x’




     T                      T
    x E x  0
    ˆ ˆ                   x Fx  0 где F  K  T E K 1
•   F x - эпиполярная линия, соответствующая x’ (l = F x’)
•   FTx - эпиполярная линия, соответствующая x (l’ = FTx)
•   F e’ = 0 и FTe = 0
•   F вырождена (ранг 2)
•   F имеет семь степеней свободы
8-и точечный алгоритм
• Фундаментальная матрица накладывает ограничения на пары
соответствующих точек
• Попробуем её вычислить напрямую из соответствий, без
калибровки камеры

• Даны соответствия (x,x’): x = (u, v, 1)T, x’ = (u’, v’, 1)T




• 1 cоответствие даёт 1 уравнение на F

• Если точек много, можем свести к обычной задаче
однородных наименьших квадратов
8-и точечный алгоритм




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

 ( xiT F xi) 2
 i 1
При условии
 |F|2 = 1
Приведение к рангу 2
• Фундаментальная матрица F имеет ранг 2
• В общем случае, результат DLT-оценки F имеет
ранг 3 (из-за влияния шума)
• Необходимо привести к рангу 2
• Найдем F’, минимизирующую норму
Фробениуса:
       F  F  , где rang(F' )  2

• Воспользуемся SVD-разложением:
• F=UDVT, или F = Udiag(r,s,t)VT, где r  s  t
• F’= = Udiag(r,s,0)VT
Недостатки 8и точечного метода
Недостатки 8и точечного метода




•Плохая численная обусловленность
•Можно поправить масштабированием данных
Нормализованный 8-точечный
              (Hartley, 1995)
•Переносим центр данных с изображения в
начало координат, и масштабируем так, чтобы
среднее квадратичное расстояние от точек до
начала координат было 2 пикселя
•Применяем 8и точечный метод для вычисления F
из нормализованных точек
•Приводим ранг матрицы F к 2
•Преобразуем матрицу к нормальным единицам:
если T и T’ нормализующие преобразования,
тогда фундаментальная матрица в исходных
координатах равна TT F T’
“Gold standard”
                  N
 • Ошибка  ( xiT F xi) 2 - алгебраическая
               i 1

   • Не имеет физического смысла


 • «Оптимальная» ошибка:
       N

       
       i1
                                       
             d ( x, xi)  d 2 ( xi , xi ) , где
              2
                  i
                     ˆ                 ˆ            ( xi)T Fxi  0
                                                      ˆ      ˆ

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




              8-point       Normalized 8-point   Nonlinear least squares

Av. Dist. 1   2.33 pixels   0.92 pixel           0.86 pixel
Av. Dist. 2   2.18 pixels   0.85 pixel           0.80 pixel
Если данные зашумлены?
• В соответствиях могут быть ошибки!
  • Ложные соответствия


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

• Обычно используют метод RANSAC c ошибкой:
       N

       d ( x,Fx )  d ( x , F
      i 1
             2
                 i   i
                          2
                              i
                                   T
                                       ˆ
                                       xi )   
• Затем уточняют по всем найденным корректным
соответствиям
Зачем нужны?




•   При сопоставлении локальных особенностей возникает много
    ошибок
•   Можем робастно оценить фундаментальную матрицу по
    множеству соответствий
•   Используем фундаментальную матрицу для фильтрации
    ложных соответствий
    •   Если ошибка переноса/репроекции больше порог - выброс
                     N

                     d ( x, Fx )  d ( x , F
                    i 1
                           2
                               i   i
                                       2
                                           i
                                                  T
                                                      ˆ
                                                      xi )   
Калибровка камер

• Вычисление фундаментальной матрицы еще
называют «слабая калибровка»
• Если известны матрицы калибровки двух камер,
тогда мы можем вычислить существенную
матрицу: E = KTFK’
• Существенная матрица дает относительный
сдвиг и поворот камеры (внешнюю калибровку)

               E  [t ]R
Упрощение сопоставления




Зная существенную матрицу, можно для любой точки на
изображении вычислить соответствующую эпиполярную линию на
другом изображении, и искать соответствие только на линии
План лекции

• Цифровой фотоаппарат
• Модель перспективной проекции
• Калибровка камеры
• Гомография
• Геометрия двух камер
• Структура из движения
• Структура из движения для больших коллекций
изображений
Структура из движения
Структура из движения
•Дано: m изображений n фиксированных 3D точек
     •xij = Pi Xj ,         i = 1, … , m,   j = 1, … , n
•Задача: оценить m матриц проекции Pi и
n 3D точек Xj из mn соответствий xij
                       Xj




         x1j
                                               x3j
                      x2j
       P1
                                                P3
                             P2
Неоднозначность решения
•Если мы умножим всю сцену на некоторый
коэффициент k и в то же время умножим матрицы
камер на 1/k, проекции точек сцены на
изображения не изменятся:

                    1 
           x  PX   P (k X )
                    k 

Вывод: оценить абсолютный масштаб (размеры)
сцены только по изображениям невозможно!

Нужна дополнительная информация
Фотограмметрия




Чтобы провести измерения по изображениям (задача
фотограмметрии), необходимо знать расстояние между
минимум 2мя точками и внутреннюю калибровку камеры
Последовательный SFM
• Инициализируем движение
через существенную матрицу
двух камер
• Инициализируем структуру                points
•Для каждого вида:
     •Оцениваем матрицу
     проекции новой камеры по




                                cameras
     всем известным 3D
     точкам, видимым на этом
     изображении – калибровка
Последовательный SFM
•Инициализируем движение
через существенную матрицу
двух камер
• Инициализируем структуру                points
•Для каждого вида:
     •Оцениваем матрицу
     проекции новой камеры по




                                cameras
     всем известным 3D
     точкам, видимым на этом
     изображении – калибровка
     •Уточняем и дополняем
     структуру, вычисляем
     новые 3D точки, уточняем
     существующие точки,
     видимые на камере -
     триангуляция
Последовательный SFM
• Инициализируем движение
через существенную матрицу
двух камер
• Инициализируем структуру                points
• Для каждого вида:
     •Оцениваем матрицу
     проекции новой камеры по




                                cameras
     всем известным 3D
     точкам, видимым на этом
     изображении – калибровка
     •Уточняем и дополняем
     структуру, вычисляем
     новые 3D точки, уточняем
     существующие точки,
     видимые на камере -
     триангуляция
  •Уточняем структуру и в
  движение методом связок
Метод связок (Bundle adjustment)
•Нелинейный метод для уточнения структуры и движения
•Минимизируем сумму ошибок проекций всех точек на все
камеры:
                        m      n                  2

          E ( P, X)   Dx ij , Pi X j 
                        i 1 j 1

                            Xj




          P1Xj
                 x 1j                             x 3j
                                           P3Xj
                        P2Xj        x 2j
         P1
                                                         P3
                                    P2
Итеративная оптимизация
•   Имеем задачу X  f (P ) , где X – вектор измерений, P –
    параметры, f() – функция
•   Есть начальное приближение e0  f ( P )  X
                                         0


•   Предположим, что можно приблизить      f ( P0  )  f ( P0 )  J

•   Ищем P1, минимизирующее

      f ( P )  X  f ( P0 )  J  X  e0  J
           1

•   Задача, найти минимум      e0  J   по 

•   Или   e0  J T e0  J 
•   Нужно решить нормальные уравнения      J T J   J T e0
Блочная структура матриц




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

• Цифровой фотоаппарат
• Модель перспективной проекции
• Калибровка камеры
• Гомография
• Геометрия двух камер
• Структура из движения
• Структура из движения для больших коллекций
изображений
Большая задача




Коллекция изображений      Трёхмерная модель
     из интернета


                  В 24 часа…
Коллекции изображений




Несколько миллионов изображений по тегу
«Rome»
Обычные фотографии
• Получены разными пользователями с разных
фотоаппаратов




   iPhone 3G                    Nikon D3
Обычные фотографии




•Разное время года, разное время суток
•Случайный порядок изображений
Загрузим из интернета




http://graphics.cs.cmu.edu/projects/im2gps/flickr_code.html
Найдем соответствующие точки
Поиск особых точек (SIFT)
Найденные особые точки
Сопоставление изображений
 • Сопоставляем точки по дескрипторам SIFT

 • Фильтруем ложные соответствия по
 эпиполярной геометрии

 • Для этого будем с помощью RANSAC вычислять
 фундаментальную матрицу
Граф связанности изображений
Объем задачи

•250К изображений -> 31М пар изображений

•2 пары изображений в секунду
  •1 год на 500 машинах


•1М изображений -> 500 000М пар изображений
  •15 лет на 500 машинах
Поиск похожих изображений
• Метод «Мешок слов»
  •Обучаем словарь визуальных слов размером 100К
  •Строим гистограмму частот для каждого изображения:




  • Для каждого изображения ищем 40 наиболее похожих
  • Сопоставляем точки между этими парами изображений
  • Выбираем хорошие пары
Результат сопоставлений




            Мощность SIFT!
Граф связанности изображений
Построение «следов»




• Объединяем соответствия в «следы»
  •Отбрасываем незамкнутные следы, как потенциальные
  ошибки
• Пример (3000 изображений), всего 1.5М+ следов
  •79% длины 2
  •90% длины <=3
  •98% длины <= 10
  •Cамый длинный след 385 точек
Граф связанности изображений




Исходные        После построения следов
соответствия
«Скелет» графа




 Фильтруем изображения, оставляя только «ключевые» для
         упрощения последующей реконструкции
Стандартная схема

•Выбор опорных пар изображений
•Вычисление структуры по паре изображений
  •Построение матрицы внутренней калибровки
  •Вычисление фундаментальной и существенной
  матрицы
  •Триангуляция точек
  •Уточнение методом связок
•Добавление новых изображений
  •Калибровка камеры по известным 2D/3D соответствиям
  •Триангуляция новых точек
  •Уточнение методом связок
Выбор опорной пары
Выбор опорной пары




                         (+) большая база
                         (-) мало точек




(+) много точек
(-) малая база
                     (+) много точек
                     (+) большая база
Выбор опорной пары
•Возможны разные эвристики
•Гомография плохо описывает сцену, когда сцена
не плоская, и существенный параллакс (большая
база)
•Пример:
  • Возьмем пары, в которых > 100 соответствий
  • Вычислим гомографию и фундаментальную матрицу
  • Выберем пару изображений, минимизирующее
  отношение:
Внутренняя калибровка




         Структура EXIF-данных
Параметры камеры
Дубровник
Photosynth
Коды

• Pedagogical Bundle
  •http://www.maths.lth.se/matematiklth/personal/nicolas/bundl
  e.html


•SBA
  • http://www.ics.forth.gr/~lourakis/sba/


• Bundler
  • http://phototour.cs.washington.edu/bundler
На следующих лекциях

• Стереореконструкция

• Многовидовое и активное стерео

• Реконструкция по 1 изображению

More Related Content

Similar to CV2011-2. Lecture 06. Structure from motion.

CV2011-2. Lecture 03. Photomontage, part 2.
CV2011-2. Lecture 03.  Photomontage, part 2.CV2011-2. Lecture 03.  Photomontage, part 2.
CV2011-2. Lecture 03. Photomontage, part 2.Anton Konushin
 
CV2011-2. Lecture 02. Photomontage and graphical models.
CV2011-2. Lecture 02.  Photomontage and graphical models.CV2011-2. Lecture 02.  Photomontage and graphical models.
CV2011-2. Lecture 02. Photomontage and graphical models.Anton Konushin
 
CV2011 Lecture 5. Features
CV2011 Lecture 5. FeaturesCV2011 Lecture 5. Features
CV2011 Lecture 5. FeaturesAnton 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 4. Image representation
CV2011 Lecture 4. Image representationCV2011 Lecture 4. Image representation
CV2011 Lecture 4. Image representationAnton Konushin
 
CV2011 Lecture 6. Fitting
CV2011 Lecture 6. FittingCV2011 Lecture 6. Fitting
CV2011 Lecture 6. FittingAnton Konushin
 
Фибоначи
ФибоначиФибоначи
ФибоначиKottyshock
 
Объем тел вращения
Объем тел вращенияОбъем тел вращения
Объем тел вращенияMenzer Bagirova
 
интегралы
интегралыинтегралы
интегралыtomik1044
 
CV2011-2. Lecture 05. Video segmentation.
CV2011-2. Lecture 05.  Video segmentation.CV2011-2. Lecture 05.  Video segmentation.
CV2011-2. Lecture 05. Video segmentation.Anton Konushin
 
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"Yandex
 
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"Yandex
 
Задачи Пятой олимпиады Эйлера учителей Санкт-Петербурга
Задачи Пятой олимпиады Эйлера учителей Санкт-ПетербургаЗадачи Пятой олимпиады Эйлера учителей Санкт-Петербурга
Задачи Пятой олимпиады Эйлера учителей Санкт-Петербургаeekdiary
 

Similar to CV2011-2. Lecture 06. Structure from motion. (16)

CV2011-2. Lecture 03. Photomontage, part 2.
CV2011-2. Lecture 03.  Photomontage, part 2.CV2011-2. Lecture 03.  Photomontage, part 2.
CV2011-2. Lecture 03. Photomontage, part 2.
 
CV2011-2. Lecture 02. Photomontage and graphical models.
CV2011-2. Lecture 02.  Photomontage and graphical models.CV2011-2. Lecture 02.  Photomontage and graphical models.
CV2011-2. Lecture 02. Photomontage and graphical models.
 
презентация к уроку2
презентация к уроку2презентация к уроку2
презентация к уроку2
 
CV2011 Lecture 5. Features
CV2011 Lecture 5. FeaturesCV2011 Lecture 5. Features
CV2011 Lecture 5. Features
 
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 4. Image representation
CV2011 Lecture 4. Image representationCV2011 Lecture 4. Image representation
CV2011 Lecture 4. Image representation
 
CV2011 Lecture 6. Fitting
CV2011 Lecture 6. FittingCV2011 Lecture 6. Fitting
CV2011 Lecture 6. Fitting
 
Фибоначи
ФибоначиФибоначи
Фибоначи
 
геом
геомгеом
геом
 
Объем тел вращения
Объем тел вращенияОбъем тел вращения
Объем тел вращения
 
геом
геомгеом
геом
 
интегралы
интегралыинтегралы
интегралы
 
CV2011-2. Lecture 05. Video segmentation.
CV2011-2. Lecture 05.  Video segmentation.CV2011-2. Lecture 05.  Video segmentation.
CV2011-2. Lecture 05. Video segmentation.
 
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"К.В. Воронцов "Регрессивный анализ и метод главных компонент"
К.В. Воронцов "Регрессивный анализ и метод главных компонент"
 
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
К.В. Воронцов "Нелинейная регрессия. Многослойные нейронные сети"
 
Задачи Пятой олимпиады Эйлера учителей Санкт-Петербурга
Задачи Пятой олимпиады Эйлера учителей Санкт-ПетербургаЗадачи Пятой олимпиады Эйлера учителей Санкт-Петербурга
Задачи Пятой олимпиады Эйлера учителей Санкт-Петербурга
 

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. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.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 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.CV2011-2. Lecture 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.Anton Konushin
 
CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.Anton Konushin
 
CV2011-2. Lecture 10. Pose estimation.
CV2011-2. Lecture 10.  Pose estimation.CV2011-2. Lecture 10.  Pose estimation.
CV2011-2. Lecture 10. Pose estimation.Anton Konushin
 
CV2011-2. Lecture 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
 
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 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.Anton 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
 

More from Anton Konushin (20)

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. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.
 
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 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.CV2011-2. Lecture 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.
 
CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.
 
CV2011-2. Lecture 10. Pose estimation.
CV2011-2. Lecture 10.  Pose estimation.CV2011-2. Lecture 10.  Pose estimation.
CV2011-2. Lecture 10. Pose estimation.
 
CV2011-2. Lecture 04. Semantic image segmentation
CV2011-2. Lecture 04.  Semantic image segmentationCV2011-2. Lecture 04.  Semantic image segmentation
CV2011-2. Lecture 04. Semantic image segmentation
 
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 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. 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
 

CV2011-2. Lecture 06. Structure from motion.

  • 1. Структура из движения http://courses.graphicon.ru/vision2 Many slides adopted from Svetlana Lazebnik, Steve Seitz, Richard Hartley and Noah Snavely
  • 2. Этот курс подготовлен при поддержке Microsoft Research
  • 3. Большая задача Коллекция изображений Трёхмерная модель из интернета В 24 часа…
  • 4. План лекции • Цифровой фотоаппарат • Модель перспективной проекции • Калибровка камеры • Гомография • Геометрия двух камер • Структура из движения • Структура из движения для больших коллекций изображений
  • 5. Модель камеры-обскуры Модель: • В преграде отверстие размеров в одну точку • Все лучи проходят через одну точку • Эта точка называется Центром Проекции (ЦП) • Реальный размер отверстия – Апертура • Изображение формируется на Картинной плоскости • Фокусным расстоянием f называется расстояние от ЦП до Картинной плоскости
  • 6. Линза! • Линза: диск из прозрачного однородного материала, ограниченный двумя полированными сферическими, или плоской и сферической, поверхностями Линза позволяет увеличить поток света от каждой точки
  • 7. Линза -F’ F’ 2F’ А О F’ B’ B А’ • Лучи от одной точки объекта, преломляясь линзой, фокусируются в одной точке позади линзы • Луч, проходящий через центр линзы не преломляется • Система точно как камера-обскура, но собирает больше света • О – центр проекции (центр линзы)
  • 8. Фотоаппарат Figure from US Navy M anual of Basic Optics and Optical Instruments, prepared by Bureau of Naval Personnel. Reprinted by Dover Publications, Inc., 1969. Все фотоаппараты устроены на описанном принципе • Вместо линзы более сложная оптическая система (объектив) • Изображение формируется на плёнке или матрице
  • 9. Пиксельное изображение • Спроецированное изображение непрерывное, с гладкими границами • На матрице оно дискретизируется • По пространству (пиксельная решетка) • По цвету
  • 10. Угол обзора (Field of View) ff • Размер матрицы ограничен – ограничен угол обзора • Больше фокусное расстояние – меньше угол обзора • Меньше фокусное расстояние – больше угол обзора
  • 14. Радиальная дисторсия Прямые линии по краям изображения превращаются в кривые
  • 15. Радиальная дисторсия Нет дисторсии «Подушка» (положительная) Бочкообразная • Идеально тонких линз не бывает! • Нарушается допущение sin(x) ~ x • Искажения наиболее заметны по краям изображения • Приходится отдельно моделировать и устранять
  • 16. План лекции • Цифровой фотоаппарат • Модель перспективной проекции • Калибровка камеры • Гомография • Геометрия двух камер • Структура из движения • Структура из движения для больших коллекций изображений
  • 17. Модель О • Камера-обскура • Изображение позади фокуса • Изображение перевернутое Фокусное расстояние Фокусное расстояние • Модель перспективной проекции • Перенесем объект на противоположенную сторону О • То же самое фокусное расстояние! • Изображение нормальное, не перевернутое
  • 18. Модель камеры-обскуры Тогда простейшее уравнение С = (0,0,0) – центр перспективной проекции: камеры (проекции) X=(X,Y,Z) – точка в 3х X Y мерном пространстве x f y f Z Z x=(x,y) – проекция X Перспективная проекция – на изображении нелинейное преобразование! С, x, X лежат на одной прямой
  • 19. В линейном виде • Хотелось бы записать всё в виде векторов и линейных преобразований • Для этого придётся воспользоваться представлением в однородных координатах
  • 20. Однородные координаты Рассмотрим прямые на плоскости: ax  by  c  0 (ka ) x  (kb) y  (kc)  0 T Вектор T a, b, c  Вектор ka, kb, kc  • Два вектора, отличающихся масштабом, можно считать эквивалентными • Однородным (homogenous) вектором назовём класс эквивалентности, по указанному отношению эквивалентности T • a, b, c  - экземпляр однородного вектора • Множество классов эквивалентности векторов в 3  0,0,0 T образуют проективное пространство P 2
  • 21. Однородные координаты T T •Точка  x, y  лежит на линии l  a , b, c  если ax  by  c  0 ( x, y,1)( a, b, c)T  0 •Отметим, что ( kx, ky, k )l  0 , только при ( x , y ,1)l 0 T •Тогда пусть ( kx, ky, k ) - представление точки ( x, y )T в однородных координатах пространства P 2
  • 22. Однородные координаты Перевод из обычных в однородных: Однородные координаты Однородные координаты точки изображения точки сцены Перевод из однородных в обычные:
  • 23. Базовая геометрия • Точка x лежит на линии l тогда и только тогда xT l  0 • Пересечение двух двух линий можно описать как векторное произведение двух линий x  l  l i j • Пример: линии x = 1, y=1  1x  1  0 (1,0,1) T  1y  1  0 (0,1,1)T i j k  1   x  l1  l2   1 0 1   1 0  1 0  1   • Линию можно задать как векторное произведение двух точек lineij  xi  x j
  • 24. Идеальные точки •Рассмотрим параллельные линии: ax  by  c  0 ax  by  c'  0 •Точка пересечения будет: (b,a ,0)T •Точки вида ( x, y,0)T - идеальные точки в «бесконечности) • Пример: x=1, x=2 i j k  0   Точка в бесконечности, в x  l1  l2   1 0 1   1  направлении y-оси  1 0 2  0  
  • 25. Проективное преобразование •Проективность (projectivity) – это такое обратимое преобразование h из P2, при котором точки x1, x2, x3 лежат на одной прямой тогда и только тогда, когда h(x1), h(x2), h(x3) – лежат на одной прямой •Отображение h в P2 – проективность тогда и только тогда, когда существует невырожденная матрица H размером 3x3, когда для любой точки x верно h(x)=Hx   x1  h11 h12 h13   x1   x    h h22 h23  *  x2   2  21     x  h31 h12  3  h33   x3    
  • 26. Аффинные преобразования X   AX  Tx aX  Tx  a 0 0 Tx   X   bY  T   0  Y  b 0 Ty     y  *  cZ  Tz   0 0 c Tz   Z         1  0 0 0 1  1
  • 27. P в матричной форме Запишем теперь перспективную проекцию в матричном виде: X  X  x  1 0 0 0   X  X / Z x  y   0 1 0 0 *  Y    Y    Y / Z  Z     Z       1  0 0 1 0       1 Z    1    Y   y Z P  I | 0 x  PX
  • 28. Внутренняя калибровка (f) X Y x f y f Z Z X  x  f 0 0 0   f 0 0 1 0 0 0  y   0  * Y     f 0 0  Z  P  0 f 0 0 1 0 0    1  0    0 f 0    1 0  0 1 0 0 1 0     K I | 0
  • 29. Внутренняя калибровка u u v v p x p y С Z f y x Y X • p – основание перпендикуляра из С на картинную плоскость (принципиальная точка) • p = (0,0, f) в мировых координатах, центр системы координат в картинной плоскости • В картинной области расположена матрица (изображение) • Нужно преобразовать из мировых координат в пиксельные
  • 30. Внутренняя калибровка u v p y x • Для перевода в координаты изображения в пикселях нужно сделать масштабирование и сдвиг ( x, y)  ( sx  cx , sy  c y )  ( x / pix  cx , y / pix  c y ) Где pix – размер пикселя, c , c  - принципиальная точка в координатах x y изображения
  • 31. Внутренняя калибровка ( x, y )  (sx  c x , sy  c y )  ( x / pix  cx , y / pix  c y ) u  1 / pix 0 c x   x   x / pix  c x  v    0 1 / pix c y  *  y    y / pix  c y          1   0    0 1  1       1   1 / pix 0 cx   f 0 0  f / pix 0 cx   0 1 / pix c y  *  0 f 0   0 f / pix c y         0  0 1  0   0 1  0   0 1 
  • 32. Внутренняя калибровка Или матрица калибровки камеры (camera calibration matrix), internal calibration a x s cx   f / pix s cx  K 0 ay cy    0 f / pix c y      0  0 1  0   0 1  • a – масштабирующие коэффициенты • s – наклон, угол между осями x и y изображения • c – положение принципиальной точки изображения (в пикселях) • f, pix – фокусное расстояние, размер пиксела
  • 33. Полезно 1 K b K x Z y O X Y • Внутренняя калибровка K отображает точки с картинной плоскости на изображение • Обратная матрица K-1отображает точки с изображения на картинную плоскость, с f=1 • Координаты в пространстве с центром в C будут (x,y,1,1) • Отображение точек на изображении в лучи
  • 34. Из мировой в координаты камеры 1 YC C XW OW XC C YW ZC ZW OC  R T C  [0,0,0] 1  • Положение и ориентация камеры в мировых координатах задается евклидовым преобразованием С • Обратное преобразование •Из мировых координат в координаты камеры •Обратное к C преобразование! – Inverse(C)
  • 35. Внешняя калибровка • Матрица преобразования из мировой системы координат в систему координат камеры называется матрицей внешней калибровки 1  R T   RT  RT T  C 1        [0,0,0] 1     [0,0,0] 1  • Внешняя калибровка определяется положением и ориентацией камеры в пространстве
  • 36. Конечная проективная камера 1 P  K  [I | 0]  C Матрица Внутренняя Центральная Внешняя проекции калибровка проекция калибровка камеры • Матрица P размером 3x4, которую можно факторизовать вышеуказанным образом, где K – верхнетреугольная, называется конечной проективной камерой (finite projective camera) • У неё 11 степеней свободы (5 внутренних параметров, 3 параметра поворота и 3 параметра положения центра проекции)
  • 37. Обобщенная проективная камера • Произвольная однородная матрица ранга 3 называется обобщенной проективной камерой (general projective camera) X   x   p11 p12 p13 p14     y   p p22 p23 p24  * Y     21  Z  x  PX  1   p31    p12 p33 p34     1   • У P в общем случае также 11 степеней свободы (неизвестных параметров) • Если ранг <3, тогда всё проецируется в линию или точку, а не плоскость, т.е. изображения не получается
  • 38. План лекции • Устройство фотоаппарата • Модель перспективной проекции • Калибровка камеры • Гомография • Геометрия двух камер • Структура из движения • Структура из движения для больших коллекций изображений
  • 39. Калибровка камеры • Даны n точек с известными 3D координатами X i и известными проекциями xi, оценить параметры камеры Xi xi P?
  • 40. DLT-метод • Direct Linear Transformation (прямое линейное преобразование) T  xi   P1     x i  PX i   yi    P2T X i x i  PX i  0   T  wi   P3      T T  0  wi X i yi X  P1  i  T T    wi X i 0  xi X i  P2   0   yi X T  i xi X T i 0  P3    • Два линейно независимых уравнения (берут обычно первые два)
  • 41. Калибровка камеры  0T T X1 T  y1X1   T T   X1 0T  x1X1   P1  Ap  0        P2   0  T T  p 1 0 XT n P3   yn X n   XT 0T  xn X T   n n • У P 11 степеней свободы (12 параметров, но масштаб произвольный) • Каждая пара (x,X) даёт нам уравнения • 6 соответствий необходимо для решения • Однородные наименьшие квадраты
  • 42. SVD-разложение • Singular Value Decomposition: A = UDVT, где • U, V - ортогональные • D – диагональная (м.б. упорядочены столбцы по убыванию элементов) • D – состоит из сингулярных чисел • Одно из самых важных разложений • Связь с собственными значениями: AT A  VDU T UDV T A  UDV T AT A  VDDVT  VD2 VT • Сингулярные значения – корни квадратные собственных значений матрицы ATA
  • 43. Наименьшие квадраты • Имеем уравнение Ap  0 при p 1 T • Решим с помощью SVD-разложения: A  UDV • Нужно минимизировать UDV T p • Однако: UDV T p  DVT p VT p  p • Тогда нам нужно минимизировать DVT p при VT p  1 • Обозначим y = VTp • Тогда нам нужно минимизировать Dy при y  1 • y=(0,….,0,1)T , тогда x=Vy – последний столбец V
  • 44. Калибровка камеры  0T T X1 T  y1X1   T T   X1 0T  x1X1   P1         P2   0 Ap  0  T T  0 XT n P3   yn X n   p 1 XT 0T  xn X T   n n •Для копланарных точек, удовлетворяющих уравнению ΠTX=0, получим вырожденные решения (Π,0,0), (0,Π,0),или (0,0,Π)
  • 45. Калибровка камеры • Когда мы получили матрицу проекции, нам необходимо извлечь из неё внутренние и внешние параметры калибровки • Представим матрицу проецирования в следующем виде: P  KR I | T   M |  MT  T • Для разложения M в KRT воспользуемся RQ- факторизацией • Q – ортогональная матрица • К – верхнетреугольная • Потом найдем T
  • 46. “Gold Standard” • Метод «Золотого стандарта» – метод, оптимизирующий параметры по наиболее корректной, оптимальной метрике • В случае калибровки камеры, это расстояния от проекций 3D точек до их измеренных значений (ошибка репроекции): 2 min  d ( xi , P X i ) P i • Требует использования нелинейных методов оптимизации (градиентный спуск и т.д.)
  • 47. Схема калибровки камеры • DLT-метод для получения матрицы проецирования • RQ-факторизация для извлечения матрицы внутренней калибровки K и внешней калибровки RиT • Уточнение параметров калибровки с помощью нелинейной оптимизации ошибки репроекции: min  d 2 ( xi , P X i ) P i
  • 48. План лекции • Цифровой фотоаппарат • Модель перспективной проекции • Калибровка камеры • Гомография • Геометрия двух камер • Структура из движения • Структура из движения для больших коллекций изображений
  • 49. Гомография • Перспективное преобразование плоскости (гомография) • Пусть точка X лежит на плоскости • Выберем специальную мировую систему координат X   u   p11 p12 p13 p14     p11 p12 p14   X   v   p Y p22 p23 p24  *     p21 p22 p24  *  Y     21  0      w  p31    p12 p33 p34     p31  1  p12 p34   1      
  • 50. Гомография • Для произвольной плоскости аналогично (домножим на матрицу евклидова преобразования) • 8 степеней свободы  u   h11 h12 h13   x   v   h h22 h23  *  y  21        w h31 h12    h33   1    
  • 51. Вычисление гомографии (DLT) • (x, x’) – известные соответствия на 2х изображениях • Линейный (DLT) метод: • Составим систему линейных уравнений x'  Hx • Каждое соответствие даст 2 уравнения на параметры H • 4 соответствия дадут 8 уравнений на 8 неизвестных • Никакие 3 не должны лежать на одной прямой! • Можем взять и больше соответствий… • Сведем к однородной задаче наименьших квадратов • Уже знаем, как решать!
  • 52. Вычисление гомографии (Gold) • Критерий получше (transfer error)  d 2 ( xi, Hxi )  d 2 ( H 1xi, xi ) i • Вычислить достаточно просто • Оптимальный критерий (distance error) d 2 ( x, xi)  d 2 ( xi , xi )  iˆ ˆ i где xi  H xi - идеальное соответствие ˆ ˆ • Нужно вычислять «идеальные соответствия», это сложно
  • 53. Использование гомографии • 4 соответствия (x,x’), из которых никакие 3 не лежат на одной прямой, определяют гомографию H • Значит, любые 4 точки в общей позиции можно преобразовать в любые 4 другие точки в общей позиции • Это можно использовать
  • 54. Ректификация изображения • Выбираем 4 точки, которые являются вершинами прямоугольника с известными размерами • Вычисляем гомографию (4е точки -> прямоугольник) • Развертываем изображение • Можем измерять расстояния на плоскости!
  • 55. Стационарная камера Если центр камеры не изменился, то одно изображение в другое преобразуется гомографией
  • 56. Построение мозаики (панорамы) Проецируем все изображения на общую плоскость
  • 57. Плоская сцена • Если наблюдаемая сцена – плоская, тогда преобразование точек между изображениями можно тоже описать гомографией • Это результат используется в дальнейшем
  • 58. План лекции • Цифровой фотоаппарат • Модель перспективной проекции • Калибровка камеры • Гомография • Геометрия двух камер • Структура из движения • Структура из движения для больших коллекций изображений
  • 59. Геометрия 2х камер Рассмотрим случай, когда два снимка одной и той же сцены получены с разных ракурсов (разные центры проекций)
  • 60. Задачи многовидовой геометрии • Геометрия сцены (структура) : Пусть даны соответствующие точки в 2D на 2х и более изображениях, определить координаты соответствующих точек в 3D • Соответствие (стерео-сопоставление) : Дана точка в одном изображении, как мы можем ограничить положение соответствующей точки на втором изображении? • Калибровка камер (движение): Дан набор соответствующих точек в 2х и более изображениях, определить матрицы калибровки камер для этих изображений (видов)
  • 61. Триангуляция (геометрия сцены) • Даны проекции x1, x2 точки X=(X,Y,Z) на 2 или более изображения (с известными матрицами калибровки), найти координаты точки X? x1 x2 C1 C2
  • 62. Триангуляция • Можно найти пересечение лучей, соответствующих точкам x1 и x2, однако из-за ошибок измерения и оценки они не пересекаются R2 R1 X? x1 x2 С1 С2
  • 63. Геометрический подход •Найдем кратчайший отрезок, соединяющий два луча и пусть X будет средней точкой на этом отрезке •Алгоритм средней точки (midpoint) X x1 x2 С1 С2 R. I. Hartley and P. Sturm, Triangulation, СVIU, 1997
  • 64. Линейный подход 1 x 1  P1X x 1  P1X  0 [x1 ]P1X  0 2 x 2  P2 X x 2  P2X  0 [x 2 ]P2 X  0 Проекция на каждую камеру даст x1 ( p1 T X )  ( p1 T X )  0 3 1 2 уравнения на X y 2 ( p1 T X )  ( p1 T X )  0 3 2  x1 p13T  p1 T  1 Проекция на обе камеры   приведет к знакомой задаче на  y1 p1 T  p12T  3 AX  0 A x0 однородные наименьшие 3T  x2 p2  p2 1T X 1 квадраты  3T 2T   y2 p2  p2 
  • 65. Нелинейный подход •Найти X, минимизирующий ошибку d 2 ( x1 , P X )  d 2 ( x2 , P2 X ) 1 X? x’1 x1 x2 x’2 O1 O2 • Требует применение нелинейной оптимизации • Результат DLT используем как начальное приближение
  • 66. Эпиполярная геометрия X x x’ • Базовая линия (Baseline) – линия, соединяющая центры камер • Эпиполярная плоскость (Epipolar Plane) – плоскость, проходящая через базовую линию (пучок плоскостей)) • Эпиполи/Эпиполяры (Epipoles) = пересечение базовой линии с картинными плоскостями = проекции центра проекций второй камеры • Эпиполярные линии (Epipolar Lines) – пересечение эпиполярной плоскости с картинной плоскостью (дают соответствующие пары)
  • 67. Эпиполярное ограничение X X X x x’ x’ x’ • Пусть даны изображения I и I’ с центрами проекции O и О’, и проекция x точки X (неизвестной) на изображение I. • Что мы можем сказать про точку x’ – проекцию X на I’? • x’ должна лежать на эпиполярной линии l’ • Эпиполярное ограничение: • Проекции x и x’ точки сцены X на изображения I и I’ должны лежать на соответствующих эпиполярных линиях l и l’
  • 69. Пример: стереопара Движение, параллельное картинной плоскости
  • 70. Пример: движение вперед e’ e У эпиполей одинаковые координаты в обоих изображениях. Точки движутся вдоль линий, исходящих из e – «фокуса расширения»
  • 71. Эпиполярное ограничение X X x x’ • Интересный вывод: • Линия l’ не зависит от X, если x и калибровка камер известна • Линия l не зависит от X, если x’ и калибровка камер известна • Между x, x’ и калибровкой камер существует зависимость • Попробуем её вывести
  • 72. Калиброванный случай X x x’ • Совместим глобальную систему координат с координатной системой первой камеры • Допустим, известны внутренние калибровки камер K, K’ и внешняя калибровка второй камеры R и T • Умножим матрицу проекции каждой камеры на обратную матрицу калибровки K-1, K’-1 • Также отобразим точки x, x’ с изображения на картинную плоскость
  • 73. Калиброванный случай X = RX’ + t x x’ t R Матрица камеры [I|0] Матрица камеры: [RT | –RTt] X = (u, v, w, 1)T Вектор x’ во второй x = (u, v, w)T системе координат имеет координаты Rx’ в первой Вектора x, t, и Rx’ копланарны
  • 74. Калиброванный случай X x x’ x  [t  ( R x)]  0 xT E x   0 где E  [t ]R Существенная матрица (Essential Matrix) (Longuet-Higgins, 1981) Вектора x, t, и Rx’ копланарны
  • 75. Свойства существенной матрицы X x x’ x  [t  ( R x)]  0 x T E x   0 где E  [t ]R •E x’ - эпиполярная линия, соответствующая x’ (l = E x’) •ETx - эпиполярная линия, соответствующая x (l’ = ETx) •E e’ = 0 и ETe = 0 •E вырождена (ранг 2) •E имеет 5 степеней свободы
  • 76. Некалиброванный случай X x x’ •Пусть матрицы калибровки K и K’ для обеих камер неизвестны •Запишем эпиполярное ограничение через неизвестные нормализованные координаты: ˆ T E x  0 x ˆ x  K x, x  K x ˆ ˆ
  • 77. Некалиброванный случай X x x’ T T x E x  0 ˆ ˆ x Fx  0 где F  K  T E K 1 x  Kx ˆ Фундаментальная матрица x  K x ˆ (Fundamental Matrix) (Faugeras and Luong, 1992)
  • 78. Свойства X x x’ T T x E x  0 ˆ ˆ x Fx  0 где F  K  T E K 1 • F x - эпиполярная линия, соответствующая x’ (l = F x’) • FTx - эпиполярная линия, соответствующая x (l’ = FTx) • F e’ = 0 и FTe = 0 • F вырождена (ранг 2) • F имеет семь степеней свободы
  • 79. 8-и точечный алгоритм • Фундаментальная матрица накладывает ограничения на пары соответствующих точек • Попробуем её вычислить напрямую из соответствий, без калибровки камеры • Даны соответствия (x,x’): x = (u, v, 1)T, x’ = (u’, v’, 1)T • 1 cоответствие даёт 1 уравнение на F • Если точек много, можем свести к обычной задаче однородных наименьших квадратов
  • 80. 8-и точечный алгоритм Минимизируем: N  ( xiT F xi) 2 i 1 При условии |F|2 = 1
  • 81. Приведение к рангу 2 • Фундаментальная матрица F имеет ранг 2 • В общем случае, результат DLT-оценки F имеет ранг 3 (из-за влияния шума) • Необходимо привести к рангу 2 • Найдем F’, минимизирующую норму Фробениуса: F  F  , где rang(F' )  2 • Воспользуемся SVD-разложением: • F=UDVT, или F = Udiag(r,s,t)VT, где r  s  t • F’= = Udiag(r,s,0)VT
  • 83. Недостатки 8и точечного метода •Плохая численная обусловленность •Можно поправить масштабированием данных
  • 84. Нормализованный 8-точечный (Hartley, 1995) •Переносим центр данных с изображения в начало координат, и масштабируем так, чтобы среднее квадратичное расстояние от точек до начала координат было 2 пикселя •Применяем 8и точечный метод для вычисления F из нормализованных точек •Приводим ранг матрицы F к 2 •Преобразуем матрицу к нормальным единицам: если T и T’ нормализующие преобразования, тогда фундаментальная матрица в исходных координатах равна TT F T’
  • 85. “Gold standard” N • Ошибка  ( xiT F xi) 2 - алгебраическая i 1 • Не имеет физического смысла • «Оптимальная» ошибка: N  i1  d ( x, xi)  d 2 ( xi , xi ) , где 2 i ˆ ˆ ( xi)T Fxi  0 ˆ ˆ • Т.е. сумма квадратов расстояний от измеренных точек, до «идеальных» • Требует нелинейной оптимизации
  • 86. Сравнение алгоритмов 8-point Normalized 8-point Nonlinear least squares Av. Dist. 1 2.33 pixels 0.92 pixel 0.86 pixel Av. Dist. 2 2.18 pixels 0.85 pixel 0.80 pixel
  • 87. Если данные зашумлены? • В соответствиях могут быть ошибки! • Ложные соответствия • Нужно использовать робастные методы • Обычно используют метод RANSAC c ошибкой: N  d ( x,Fx )  d ( x , F i 1 2 i i 2 i T ˆ xi )  • Затем уточняют по всем найденным корректным соответствиям
  • 88. Зачем нужны? • При сопоставлении локальных особенностей возникает много ошибок • Можем робастно оценить фундаментальную матрицу по множеству соответствий • Используем фундаментальную матрицу для фильтрации ложных соответствий • Если ошибка переноса/репроекции больше порог - выброс N  d ( x, Fx )  d ( x , F i 1 2 i i 2 i T ˆ xi ) 
  • 89. Калибровка камер • Вычисление фундаментальной матрицы еще называют «слабая калибровка» • Если известны матрицы калибровки двух камер, тогда мы можем вычислить существенную матрицу: E = KTFK’ • Существенная матрица дает относительный сдвиг и поворот камеры (внешнюю калибровку) E  [t ]R
  • 90. Упрощение сопоставления Зная существенную матрицу, можно для любой точки на изображении вычислить соответствующую эпиполярную линию на другом изображении, и искать соответствие только на линии
  • 91. План лекции • Цифровой фотоаппарат • Модель перспективной проекции • Калибровка камеры • Гомография • Геометрия двух камер • Структура из движения • Структура из движения для больших коллекций изображений
  • 93. Структура из движения •Дано: m изображений n фиксированных 3D точек •xij = Pi Xj , i = 1, … , m, j = 1, … , n •Задача: оценить m матриц проекции Pi и n 3D точек Xj из mn соответствий xij Xj x1j x3j x2j P1 P3 P2
  • 94. Неоднозначность решения •Если мы умножим всю сцену на некоторый коэффициент k и в то же время умножим матрицы камер на 1/k, проекции точек сцены на изображения не изменятся: 1  x  PX   P (k X ) k  Вывод: оценить абсолютный масштаб (размеры) сцены только по изображениям невозможно! Нужна дополнительная информация
  • 95. Фотограмметрия Чтобы провести измерения по изображениям (задача фотограмметрии), необходимо знать расстояние между минимум 2мя точками и внутреннюю калибровку камеры
  • 96. Последовательный SFM • Инициализируем движение через существенную матрицу двух камер • Инициализируем структуру points •Для каждого вида: •Оцениваем матрицу проекции новой камеры по cameras всем известным 3D точкам, видимым на этом изображении – калибровка
  • 97. Последовательный SFM •Инициализируем движение через существенную матрицу двух камер • Инициализируем структуру points •Для каждого вида: •Оцениваем матрицу проекции новой камеры по cameras всем известным 3D точкам, видимым на этом изображении – калибровка •Уточняем и дополняем структуру, вычисляем новые 3D точки, уточняем существующие точки, видимые на камере - триангуляция
  • 98. Последовательный SFM • Инициализируем движение через существенную матрицу двух камер • Инициализируем структуру points • Для каждого вида: •Оцениваем матрицу проекции новой камеры по cameras всем известным 3D точкам, видимым на этом изображении – калибровка •Уточняем и дополняем структуру, вычисляем новые 3D точки, уточняем существующие точки, видимые на камере - триангуляция •Уточняем структуру и в движение методом связок
  • 99. Метод связок (Bundle adjustment) •Нелинейный метод для уточнения структуры и движения •Минимизируем сумму ошибок проекций всех точек на все камеры: m n 2 E ( P, X)   Dx ij , Pi X j  i 1 j 1 Xj P1Xj x 1j x 3j P3Xj P2Xj x 2j P1 P3 P2
  • 100. Итеративная оптимизация • Имеем задачу X  f (P ) , где X – вектор измерений, P – параметры, f() – функция • Есть начальное приближение e0  f ( P )  X 0 • Предположим, что можно приблизить f ( P0  )  f ( P0 )  J • Ищем P1, минимизирующее f ( P )  X  f ( P0 )  J  X  e0  J 1 • Задача, найти минимум e0  J по  • Или e0  J T e0  J  • Нужно решить нормальные уравнения J T J   J T e0
  • 101. Блочная структура матриц • Огромный размер матриц, но блочная структура • Специальные реализация методов оптимизации для матриц такой формы • Методы улучшения структуры матриц для повышения производительности
  • 102. План лекции • Цифровой фотоаппарат • Модель перспективной проекции • Калибровка камеры • Гомография • Геометрия двух камер • Структура из движения • Структура из движения для больших коллекций изображений
  • 103. Большая задача Коллекция изображений Трёхмерная модель из интернета В 24 часа…
  • 105. Обычные фотографии • Получены разными пользователями с разных фотоаппаратов iPhone 3G Nikon D3
  • 106. Обычные фотографии •Разное время года, разное время суток •Случайный порядок изображений
  • 111. Сопоставление изображений • Сопоставляем точки по дескрипторам SIFT • Фильтруем ложные соответствия по эпиполярной геометрии • Для этого будем с помощью RANSAC вычислять фундаментальную матрицу
  • 113. Объем задачи •250К изображений -> 31М пар изображений •2 пары изображений в секунду •1 год на 500 машинах •1М изображений -> 500 000М пар изображений •15 лет на 500 машинах
  • 114. Поиск похожих изображений • Метод «Мешок слов» •Обучаем словарь визуальных слов размером 100К •Строим гистограмму частот для каждого изображения: • Для каждого изображения ищем 40 наиболее похожих • Сопоставляем точки между этими парами изображений • Выбираем хорошие пары
  • 117. Построение «следов» • Объединяем соответствия в «следы» •Отбрасываем незамкнутные следы, как потенциальные ошибки • Пример (3000 изображений), всего 1.5М+ следов •79% длины 2 •90% длины <=3 •98% длины <= 10 •Cамый длинный след 385 точек
  • 118. Граф связанности изображений Исходные После построения следов соответствия
  • 119. «Скелет» графа Фильтруем изображения, оставляя только «ключевые» для упрощения последующей реконструкции
  • 120. Стандартная схема •Выбор опорных пар изображений •Вычисление структуры по паре изображений •Построение матрицы внутренней калибровки •Вычисление фундаментальной и существенной матрицы •Триангуляция точек •Уточнение методом связок •Добавление новых изображений •Калибровка камеры по известным 2D/3D соответствиям •Триангуляция новых точек •Уточнение методом связок
  • 122. Выбор опорной пары (+) большая база (-) мало точек (+) много точек (-) малая база (+) много точек (+) большая база
  • 123. Выбор опорной пары •Возможны разные эвристики •Гомография плохо описывает сцену, когда сцена не плоская, и существенный параллакс (большая база) •Пример: • Возьмем пары, в которых > 100 соответствий • Вычислим гомографию и фундаментальную матрицу • Выберем пару изображений, минимизирующее отношение:
  • 124. Внутренняя калибровка Структура EXIF-данных
  • 126.
  • 127.
  • 130. Коды • Pedagogical Bundle •http://www.maths.lth.se/matematiklth/personal/nicolas/bundl e.html •SBA • http://www.ics.forth.gr/~lourakis/sba/ • Bundler • http://phototour.cs.washington.edu/bundler
  • 131. На следующих лекциях • Стереореконструкция • Многовидовое и активное стерео • Реконструкция по 1 изображению