SlideShare a Scribd company logo
Многовидовая реконструкция




                 Антон Конушин
       http://courses.graphicon.ru/vision2
Этот курс подготовлен
при поддержке Microsoft
       Research
Благодарности

• В презентации использованы слайды курса «3d
  Shape Reconstruction from Photographs: a Multi-
  View Stereo Approach» от Carlos Hernandez,
  George Vogiatzis and Yasutaka Furukawa
План лекции

• Введение
• Многовидовое пассивное стерео
  • Воксельные подходы
  • Подход на основе объединения сеток
  • Разрастание регионов
• Приложение: реконструкция головы человека
План лекции

• Введение
• Многовидовое пассивное стерео
  • Воксельные подходы
  • Подход на основе объединения сеток
  • Разрастание регионов
• Приложение: реконструкция головы человека
Реконструкция по фотографиям
       «Оценить 3D форму, которая при
     визуализации совпадает с исходными
      изображениями, при условии тех же
      материалов, ракурсов и освещения»
                          ракурс




   ?
   геометрия   материал        освщение   изображение
Реконструкция по фотографиям
      «Оценить 3D форму, которая при
    визуализации совпадает с исходными
     изображениями, при условии тех же
    материалов, ракурсов и освещения»




  Реальный                   Реплика
   объект
Реконструкция по фотографиям
Внешность объекта сильно зависит от материалов и
освещения



                    с текстурой



      жесткий                     деформирующийся




                   без текстуры
Реконструкция по фотографиям
Внешность объекта сильно зависит от материалов и
освещения
                         
       Нет единого алгоритма для всех типов сцен

                      с текстурой



      жесткий                       деформирующийся




                     без текстуры
Фото-согласование

                    Фотосогласованная точка




                    
Фото-согласование
                    Нефотосогласованная точка




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


• Видимость камеры



• Ошибки метрики
  – Повтор текстуры

  – Отсутствие текстуры

  – Блики
Многовидовое стерео

• Сравнения и оценки:
  •   A Comparison and Evaluation of Multi-View Stereo Reconstruction Algorithms,
      S. Seitz et al., CVPR 2006, vol. 1, pages 519-526.


• История алгоритмов:
  •   Representing stereo data with the Delaunay triangulation,
      O. Faugeras et al., Artificial Intelligence, 44(1-2):41-87, 1990.

  •   A multiple-baseline stereo,
      M. Okutomi and T. Kanade, TPAMI, 15(4):353-363, 1993.

  •   Object-centered surface reconstruction: Combining multi-image stereo and shading,
      P. Fua, Y. Leclerc, International Journal of Computer Vision, vol. 16:35-56, 1995.

  •   A portable three-dimensional digitizer,
      Y. Matsumoto et al., Int. Conf. on Recent Advances in 3D Imaging and Modeling, 197-205, 1997.

  •   Photorealistic Scene Reconstruction by Voxel Coloring,
      S. M. Seitz and C. R. Dyer, CVPR., 1067-1073, 1997.

  •   Variational principles, surface evolution, PDE's, level set methods and the stereo problem,
      O. Faugeras and R. Keriven, IEEE Trans. on Image Processing, 7(3):336-344, 1998.
Многовидовое стерео
• Сравнения и оценки:
  •   A Comparison and Evaluation of Multi-View Stereo
      Reconstruction Algorithms,
      S. Seitz et al., CVPR 2006, vol. 1, pages 519-526.

  •   http://vision.middlebury.edu/mview/


• Недавно много новых алгоритмов
  появилось

• Высокая точность

• Почти все работают с небольшим
  количеством изображений (~100)
  основное исключение exception
  [Pollefeys08]

• Оффлайн-методы
Воксельные объёмы

1. Инициализация воксельного
   объема сцены



2. Итеративная проверка всех
   векселей на
   фотосогласованность

3. Повторяем до сходимости, пока
   все воксели на поверхности не
   станут фотосогласованными
Схема объединения карт глубины


1.   Вычисляем карту глубины



2.   Объединяем карты глубины в
     объеме



3.   Извлекаем 3д поверхность
Схема роста регионов

1.   Этап подгонки
     Локальный фрагмент
     поверхности подгоняется, с
     учётом видимости

2.   Этап фильтрации
     Жестко обеспечивается
     видимость

3. Этап расширения
   Удачные фрагменты
   используются для
   инициализации активной
   границы
Лучшие алгоритмы

                      Рост регионов              Объединение карт глубины


               Начинает с облака 3д точек,      Объединяем набор карт глубины,
pros summary



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

               Обеспечивает наилучшие           Элегантный подход
               результаты за счет               Подключаемые блоки
               фотосогласования с опорой на     Легко распараллеливается
               плоскости
               Много настраиваемых              Метрика фотосогласования
cons




               параметров, трудно подогнать к   простая и не оптимальная.
               оптимуму                         Метрика ошибается, когда нет
                                                текстуры или низкое разрешение
План лекции

• Введение
• Многовидовое пассивное стерео
  • Воксельные подходы
  • Подход на основе объединения сеток
  • Разрастание регионов
• Приложение: реконструкция головы человека
Алгоритмы раскраски вокселей

1. Цветов=2 (Силуэты)
  •   Пересечение объемов


2. Кол-во цветов не ограничено
  •   ограничение на точки обзора


3. Общий случай
Реконструкция по силуэтам




  Бинарные
 Изображения
   (2 цвета)

Подход
  • Построить конус видимости по каждому силуэту
  • Пересечь конусы видимости
Пересечение объемов




Результат содержит исходную сцену
   • В общем случае не совпадает с исходной сценой
   • В пределе (по всевозможным изображениям) результат называется
     видимой оболочкой (Visual Hull)
Воксельный алгоритм




• Раскрасим воксель черным, если он проецируется внутрь
  силуэта на каждом изображении
• Удалим воксель, если он попадает вне силуэта хотя бы на
  1-м изображении
Свойства пересечения объемов

Преимущества
  • Легок в реализации
  • Быстрый
  • Можно ускорить с помощью окто-деревьев


Недостатки
  • Невозможно моделировать полости объекта
  • Реконструкция не согласована по цветам
  • Необходимо определить силуэты объекта
Алгоритмы раскраски вокселей

1. Цветов=2 (Силуэты)
  •   Пересечение объемов


2. Кол-во цветов не ограничено
  •   ограничение на точки обзора


3. Общий случай
Раскраска вокселей




1. Выбрать воксель
2. Спроецировать и сравнить
3. Раскрасить, если согласован
   (разница меньше порога)




Проблема видимости:
На каких изображениях воксель виден?
Упорядоченный обход по глубине

                                          Слои




         Обход
         сцены




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

 • Камеры направленные в разные стороны
 • Плоский порядок обхода по глубине не подходит
Порядок обхода для панорам




Слои расходятся по направлению «от центра»
Порядок обхода для панорам




Слои расходятся по направлению «от центра»
Порядок обхода для панорам




Слои расходятся по направлению «от центра»
Возможные конфигурации камер

Ограничение
  • Сцена расположена вне выпуклой оболочки камеры




   Камеры направлены           Камеры направлены
         внутрь                       вовне
    Камеры выше сцены           Камеры внутри сцены
Раскраска вокселей




        Динозавр                      Цветов
72 K вокселей раскрашено      70 K вокселей раскрашено
   7.6 M вокселей проверено    7.6 M вокселей проверено
       7 мин вычислений            7 мин вычислений
         на 250MHz SGI               на 250MHz SGI
Ограничения подхода
 Может не существовать порядка обхода вокселей по
   глубине для всех изображений!

                       p    q


Требуется более общий алгоритм
  • Без ограничений на положение камеры
  • Без ограничений на топологию сцены
Алгоритмы раскраски вокселей

 1. Цветов=2 (Силуэты)
   •   Пересечение объемов


 2. Кол-во цветов не ограничено
   •   ограничение на точки обзора


 3. Общий случай
   •   Space carving [Kutulakos & Seitz 98]
Алгоритм Space Carving

Изображение 1
                                               Изображение N



                              …...



      •   Инициализация объема V содержащего в себе сцену
      •   Выбрать любой воксель на текущей поверхности
      •   Спроецировать на все видимые изображения
      •   Удалить, если он не согласован по цветам
      •   Повторить до сходимости
Фотооболочка



          V                          V




        Истинная сцена             Фотооболочка

Фотооболочка это объединение всех фото-согласованных сцен в V
   • Согласованная по цветам реконструкция сцены
   • Наименьшая фото-согласованная реконструкция
Алгоритм Space Carving
Базовый алгоритм неудобен
  • Сложная процедура обхода


Многопроходное «заметание» плоскостей
  • «Эффективный», можно использовать алгоритмы
    наложения текстуры
  • Быстро сходится
«Заметание плоскости»




• Рассматривает воксели на 1-ой плоскости
• Рассматриваем только камеры по одну сторону от
  плоскости
«Заметание плоскости»




• Берем пересечение плоскости П и текущей модели V
• Для каждого вокселя v из пересечения
  • Проецируем его на изображения
  • Если соответствующие пиксели не помечены
     – Проверяем фотосогласованность
        » Если не согласован – удаляем
        » Если согласован – помечаем пиксель
«Заметание плоскости»




• Двигаем плоскость вдоль объема
  • Постепенно добавляем новые камеры
• Можем проецировать всю плоскость целиком
  • Используя GPU или просто визуализируя плоскость с текстурой
Результаты




  Изображение (1 of 45)   Реконструкция




      Реконструкция       Реконструкция
План лекции

• Введение
• Многовидовое пассивное стерео
  • Воксельные подходы
  • Подход на основе объединения сеток
  • Разрастание регионов
• Приложение: реконструкция головы человека
Схема объединения карт глубины


1. Вычисляем карту глубины



2. Объединяем карты глубины в
   объеме



3. Извлекаем 3д поверхность
Проблема регуляризации

• Почему бы не использовать самые продвинутые
  методы бинокулярного стерео?
  • На основе функционалов энергии и на основе сегментов
• Проблема регуляризации:
  • В сложных областях метод интерполирует значения за
    счёт использования регуляризации
  • Регуляризировать приходится из-за предположения, что
    дополнительных данных нет
  • В случае многовидового стерео дополнительная
    информация есть!
Ранняя регуляризация
Ранняя регуляризация




      Регуляризация каждой карты глубины по
                   отдельности
Объединение оценок




      Объединяем две оценки карты глубины
Ранняя регуляризация




      Объединяем две карты глубины, а затем
                регуляризируем
Ранняя регуляризация
Общий подход
• Вычисляем бинокулярные карты глубины для
  каждого вида строго без регуляризации

• Затем объединяем наблюдения
Вычисление стерео




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




• Объединим кривые корреляции
Простое усреднение
Простое усреднение
Пики




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




• Окна Парзена – непараметрическая оценка
  количества локальных максимумов по окну
Максимальный отклик
Ошибки

• Повторяющаяся текстура



• Ошибки сопоставления
  • Отсутствие текстуры
  • Шум в изображении и т.д.
Регуляризация




• Любой локальный пик может быть соответствием
• Используем избыточность данных и свойство
  непрерывности поверхности
  • У соседних пикселей должно быть похожая глубина!
Схема MRF
• Выберем k самых сильных пиков как гипотезы глубины
  для пикселя. Дополним U - неизвестной

• Зададим функционал энергии:



• Унарный потенциал пенализирует малые пики
• Парный потенциал пенализирует резкие изменения
  глубины
• Метка U нужна, чтобы добавить устойчивость к шуму
  • Небольшое пенальти за U
  • Небольшое константное пенальти за cоседство с U
Схема
Ранняя регуляризация?

• Да, но с оговорками…

  • Мы фильтруем ненадежные данные
  • Если для глубины пикселя нет хороших
    гипотез, мы записываем как «неизвестное
    значение»
  • Мы не интерполируем промежуточные
    значения
Пример
Пример
Пример
Пример
Пример
Результат
Пример
Пример
Пример
Карты глубины
Извлечение поверхности




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




•   Каждому пикселю изображения сопоставляется вершина
•   Соседние вершины объединяются
•   Глубина вершины берется из карты глубины
•   Слишком узкие и наклоненные треугольники отбрасываются
Объединение сеток

• Воксельный подход
  • Строим сетку для каждой
    карты глубины (кроме
    дырок)
  • Пространство разбивается
    на воксели
  • Все сетки помещаются в
    воксельное пространство
  • Если несколько сеток
    попадают в один воксель –
    они объединяются
Деформируемые поверхности




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

• Введение
• Многовидовое пассивное стерео
  • Воксельные подходы
  • Подход на основе объединения сеток
  • Разрастание регионов
• Приложение: реконструкция головы человека
Методы на основе фрагментов




[Lhuillier and Quan,   [Furukawa and Ponce,   [Habbecke and Kobbelt,
     PAMI 05]               CVPR 07]                CVPR 07]
Определение фрагмента

• Фрагмент p определен
  • Положением c(p)
  • Нормалью n(p)                  Нормаль n(p)
  • Видимыми
    изображениями V(p)
• Размер выбирается так,        Положение c(p)
  чтобы p был примерно     Размер
  9x9 пикселей в V(p)




                             Видимые изображения
                             V(p)
Фотосогласованность


• Фотосогласованность N(I, J, p) фрагмента p между
  изображениями I и J

                            Ixy: цвет в изображении I

       I12
      I11
  I

  J
Фотосогласованность


• Фотосогласованность N(I, J, p) фрагмента p между
  изображениями I и J

                            Ixy: цвет в изображении I
                            Jxy: цвет в изображении J


  I
      J11
  J         J12
Фотосогласованность


• Фотосогласованность N(I, J, p) фрагмента p между
  изображениями I и J

                            Ixy: цвет в изображении I
                            Jxy: цвет в изображении J
                       Фотосогласованность N(p)
                       фрагмента p с видимыми
  I
                       изображениями V(p) = {I1, I2, …,
      J11              In}
  J         J12
Реконструкция фрагмента p


• Даны начальные приближения
   • Положения c(p)
   • Нормали n(p)                      c(p)
   • Видимых изображений V(p)
                                          n(p)
• Утончим c(p) и n(p)

  {c( p ), n ( p )}  arg max N ( p)
                   {c ( p ),n ( p )}
Реконструкция фрагмента p

• Даны начальные
  приближения
   • Положения c(p)
   • Нормали n(p)
   • Видимых изображений               1 DOF
     V(p)
• Утончим c(p) и n(p)
  {c( p ), n ( p )}  arg max N ( p)
                   {c ( p ),n ( p )}
Реконструкция фрагмента p

• Даны начальные
  приближения
   • Положения c(p)
   • Нормали n(p)
   • Видимых изображений
     V(p)                             2 DOF
• Утончим c(p) и n(p)
 {c( p ), n ( p )}  arg max N ( p)
                  {c ( p ),n ( p )}
Подтверждение фрагмента
• Текстура может случайно совпасть
• Фотосогласованность может быть высокой

• Проверка
  • Оставляем только изображения с высокой
    фотосогласованностью в V(p)
  • Принимаем фрагмент при |V(p)|≥3
Обновление V(p)


      V(p)={Image1, Image2, Image3, Image4}


     Image1                                   Image2




                                                       Зеркальный
                                                       блик!



     Image4                                   Image3
Обновление V(p)


      V(p)={Image1, Image2, Image3, Image4}


                N(Image1, Image2, p)=0.75
     Image1                                   Image2




     0.83                                   0.52       Зеркальный
                                                       блик!



                          0.45
     Image4                                   Image3
Обновление V(p)


      V(p)={Image1, Image2, Image3, Image4}
     Sum = 2.16
                N(Image1, Image2, p)=0.75
      Image1                                Image2




     0.83                                            Зеркальный
                                                     блик!



     Image4                                 Image3
Обновление V(p)


      V(p)={Image1, Image2, Image3, Image4}
     Sum = 2.16                            Sum = 1.98
                  N(Image1, Image2, p)=0.75 Image2
      Image1




                                           0.52      Зеркальный
                                                     блик!



     Image4                                 Image3
Обновление V(p)


      V(p)={Image1, Image2, Image3, Image4}

     Sum = 2.16                           Sum = 1.98
      Image1                               Image2




                                          0.52         Зеркальный
                                                       блик!



     Image4               0.45                Image3
                                              Sum = 1.55
Обновление V(p)


       V(p)={Image1, Image2, Image3, Image4}

     Sum = 2.16                            Sum = 1.98
      Image1                                 Image2




     0.83                                                Зеркальный
                                                         блик!



      Image4               0.45                 Image3
     Sum = 1.99                                Sum = 1.55
Обновление V(p)


       V(p)={Image1, Image2, Image3, Image4}
     Sum = 2.16                       Sum = 1.98
      Image1                           Image2




                                                Зеркальный
                                                блик!



      Image4                           Image3
     Sum = 1.99                       Sum = 1.55
Обновление V(p)


       V(p)={Image1, Image2, Image3, Image4}

     Sum = 2.16
      Image1                                   Image2




                                                        Зеркальный
                                                        блик!



      Image4                                   Image3
Обновление V(p)


       V(p)={Image1, Image2, Image3, Image4}

     Sum = 2.16
                  N(Image1, Image2, p)=0.75
      Image1                                   Image2
               Add Image2, because > 0.7



                                                        Зеркальный
                                                        блик!



      Image4                                   Image3
Обновление V(p)


       V(p)={Image1, Image2, Image3, Image4}

     Sum = 2.16
      Image1                                   Image2



            Remove Image3, because < 0.7

                                                        Зеркальный
                                                        блик!



      Image4                                   Image3
Обновление V(p)


       V(p)={Image1, Image2, Image3, Image4}

     Sum = 2.16
      Image1                                   Image2



               Add Image4, because > 0.7
     0.83                                               Зеркальный
                                                        блик!
                                                        !


      Image4                                   Image3
Обновление V(p)


      V(p)={Image1, Image2, Image4}

     Image1                           Image2




                                               Зеркальный
                                               блик!



     Image4                           Image3
Алгоритм на основе фрагментов
#1. Поиск особых точек
#2. Инициализация точек
#3. Расширение патчей и фильтрация




  Input image   #1          #2       #3
Алгоритм на основе фрагментов
#1. Поиск особых точек
#2. Инициализация точек
#3. Расширение патчей и фильтрация




  Input image   #1          #2       #3
Поиск точек
  • Harris corner detector (corners)
  • Difference of Gaussian (blobs)
Алгоритм на основе фрагментов
#1. Поиск особых точек
#2. Инициализация точек
#3. Расширение патчей и фильтрация




  Input image   #1          #2       #3
Инициализация точек

        c(p): триангуляция
        n(p):
        V(p):
              p
Инициализация точек

        c(p): триангуляция
        n(p): параллельно к Image1
        V(p): {Image1, Image2}
              p
Инициализация точек

        c(p): triangulation
        n(p): parallel to Image1
        V(p): {Image1, Image2}Image3}
                         Image2,
              p
                             Add visible images
                             If N ( Image1, Image3, p )  0.5
Инициализация точек

        c(p): triangulation
        n(p): parallel to Image1
        V(p): {Image1, Image2, Image3}
              p
Инициализация точек

        c(p): refine
        n(p): refine
        V(p): {Image1, Image2, Image3}
                      {c( p ), n( p)}  arg max N ( p)
              p                       { c( p ), n ( p )}
Инициализация точек

        c(p): refine
        n(p): refine
        V(p): {Image1, Image2, Image3}
                      {c( p ), n( p)}  arg max N ( p)
              p                       { c( p ), n ( p )}
Инициализация точек


     Верификация
     (обновим V(p) и проверим |V(p)|≥3)

                   p
Инициализация точек




            p

Занята
Инициализация точек




Занята
Инициализация точек




Занята
Инициализация точек




Occupied
Инициализация точек
• Повторяем для всех найденных точек




Занята
Алгоритм на основе фрагментов
#1. Поиск особых точек
#2. Инициализация точек
#3. Расширение патчей и фильтрация




  Input image   #1          #2       #3
Расширение фрагментов




Занятый пиксель
Расширение фрагментов
     Выбираем фрагмент
Расширение фрагментов




Ищем пустых                Ничего не
соседей
              Все заняты   делаем
Расширение фрагментов

  Выбираем фрагмент   p
Расширение фрагментов

                 p



Ищем
пустых
соседей
Расширение фрагментов

                 p   q   c(q): {пересечение
Реконструируем           касательной
фрагменты во             плоскости и луча}

всех соседних            n(q):
пикселях                 V(q):
Расширение фрагментов

                p   q   c(q): уточняем
                    q
                        n(q): уточняем
                        V(q): V(p)
Расширение фрагментов

                p   q


                        Проверяем фрагмент!
Расширение фрагментов

                p   q


                        Проверяем фрагмент!
Расширение фрагментов

                           p    q

Повторяем
• Для каждого фрагмента
• Для каждого соседнего пустого пикселя
Фильтрация патчей
• Согласование видимости


                                                     p3    p4    p5        p6
                                             p2

Убираем p1 если
                            6
 | V ( p1 ) | N ( p1 )  i  2 N ( pi )
                                                                p1




                                           Image1                          Image5
                                                    Image2 Image3 Image4
Алгоритм на основе фрагментов
#1. Поиск особых точек
#2. Инициализация точек
#3. Расширение патчей и фильтрация




  Input image   #1          #2       #3
33
Резюме алгоритма
34
Резюме алгоритма




                      Поиск
                   особенностей
35
Резюме алгоритма




                   Сопоставление
                    особенностей
36
Резюме алгоритма




                   Расширение
37
Резюме алгоритма




                   Фильтрация
38
Резюме алгоритма




                   Расширение
Примеры
Видео
План лекции

• Введение
• Многовидовое пассивное стерео
  • Воксельные подходы
  • Подход на основе объединения сеток
  • Разрастание регионов
• Приложение: реконструкция головы человека
ЗД захват лица




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




D. Bradley, W. Heidrich, T. Popa, A. Sheffer High Resolution Passive Facial
Performance Capture , SIGGRAPH 2010
Устройство системы




•   7 стереопар высокого разрешения Sony HDR-
    SR7
•   Система подстветки на основе LED
•   Каждая стереопара видит свою зону на лице
Разрешение изображений




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




BRADLEY, D., BOUBEKEUR, T., AND HEIDRICH, W. Accurate multi-view
reconstruction using robust binocular stereo and surface meshing. CVPR. 2008.
Пассивное стерео и обработка




• Каждая стереопара даёт карту глубины и облако
  точек (шумное)
• Итеративное сглаживание и вычисление порогов
  для отброса шумов
Результат по 1 кадру
Отслеживание




• Выбирают базовую модель и прослеживают её на
  протяжении всего видео
Текстурирование




• Участки текстуры копируются со своих камер
• Поскольку камеры без цветовой калибровки, при
  прямом копировании текстуры видны резкие
  цветовые переходы (артефакты)
• Для обработки используется композиция по
  Пуассону
Результат
Моментальное 3Д




    • Построение высокодетализированной 3Д модели
      лица человека
    • От одной стереокамеры до нескольих
      стереокамер



T. Beeler, B. Bickel, P. Beardsley, R. Sumner, M. Gross High-Quality Single-Shot
Capture of Facial Geometry, SIGGRAPH 2010
Схема системы




• Иерархическое стереосопоставление с итеративным
  уточнением
  • От разрешения 160*160 до 1280*1280
  • Локальные методы - без использования глобальной
    оптимизации, сегментации и т.д.
Результат стерео




• Последовательное уточнение геометрии модели
• Субпиксельное уточнение диспаритета
Mesoscopic Augmentation




• Вычисляем высокочастотную составляющую
  изображения
• Высокие частоты соответствуют мелким деталям
  на коже человека
• «Искажаем» геометрию согласно специальной
  формуле
Результат
Применение в жизни
Резюме
• Методы 3Д реконструкции на основе активного
  стерео уже давно вошли в коммерческое
  использование
• Появление дешевых активных сенсоров (Kinect)
  открывает возможности по массовому их
  внедрению
• Методы на основе пассивного стерео по качеству
  начали приближаться к методам активного стерео
  и тоже начинают находить практическое
  применение

More Related Content

What's hot

CV2011-2. Lecture 02. Photomontage and graphical models.
CV2011-2. Lecture 02.  Photomontage and graphical models.CV2011-2. Lecture 02.  Photomontage and graphical models.
CV2011-2. Lecture 02. Photomontage and graphical models.
Anton Konushin
 
CV2011-2. Lecture 05. Video segmentation.
CV2011-2. Lecture 05.  Video segmentation.CV2011-2. Lecture 05.  Video segmentation.
CV2011-2. Lecture 05. Video segmentation.
Anton Konushin
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrieval
Anton Konushin
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03
Computer Science Club
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time vision
Anton Konushin
 
20120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture0420120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture04
Computer Science Club
 
CV2011 Lecture 12. Action recognition
CV2011 Lecture 12. Action recognitionCV2011 Lecture 12. Action recognition
CV2011 Lecture 12. Action recognition
Anton Konushin
 
CV2011-2. Lecture 03. Photomontage, part 2.
CV2011-2. Lecture 03.  Photomontage, part 2.CV2011-2. Lecture 03.  Photomontage, part 2.
CV2011-2. Lecture 03. Photomontage, part 2.
Anton Konushin
 
CV2011-2. Lecture 06. Structure from motion.
CV2011-2. Lecture 06.  Structure from motion.CV2011-2. Lecture 06.  Structure from motion.
CV2011-2. Lecture 06. Structure from motion.
Anton Konushin
 
CV2011 Lecture 5. Features
CV2011 Lecture 5. FeaturesCV2011 Lecture 5. Features
CV2011 Lecture 5. Features
Anton Konushin
 
CV2011 Lecture 8. Detection
CV2011 Lecture 8. DetectionCV2011 Lecture 8. Detection
CV2011 Lecture 8. Detection
Anton Konushin
 
CV2011 Lecture 3. Basic image analysis
CV2011 Lecture 3. Basic image analysisCV2011 Lecture 3. Basic image analysis
CV2011 Lecture 3. Basic image analysis
Anton Konushin
 
20120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture0520120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture05
Computer Science Club
 
Лекция 07 Обработка видео
Лекция 07 Обработка видеоЛекция 07 Обработка видео
Лекция 07 Обработка видео
Victor Kulikov
 
20100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture0220100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture02
Computer Science Club
 
CV2011 Lecture 6. Fitting
CV2011 Lecture 6. FittingCV2011 Lecture 6. Fitting
CV2011 Lecture 6. Fitting
Anton Konushin
 

What's hot (20)

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.
 
CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.CV2015. Лекция 6. Нейросетевые алгоритмы.
CV2015. Лекция 6. Нейросетевые алгоритмы.
 
CV2011-2. Lecture 05. Video segmentation.
CV2011-2. Lecture 05.  Video segmentation.CV2011-2. Lecture 05.  Video segmentation.
CV2011-2. Lecture 05. Video segmentation.
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrieval
 
CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.
 
CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.
 
CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.CV2015. Лекция 5. Выделение объектов.
CV2015. Лекция 5. Выделение объектов.
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time vision
 
20120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture0420120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture04
 
CV2011 Lecture 12. Action recognition
CV2011 Lecture 12. Action recognitionCV2011 Lecture 12. Action recognition
CV2011 Lecture 12. Action recognition
 
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 06. Structure from motion.
CV2011-2. Lecture 06.  Structure from motion.CV2011-2. Lecture 06.  Structure from motion.
CV2011-2. Lecture 06. Structure from motion.
 
CV2011 Lecture 5. Features
CV2011 Lecture 5. FeaturesCV2011 Lecture 5. Features
CV2011 Lecture 5. Features
 
CV2011 Lecture 8. Detection
CV2011 Lecture 8. DetectionCV2011 Lecture 8. Detection
CV2011 Lecture 8. Detection
 
CV2011 Lecture 3. Basic image analysis
CV2011 Lecture 3. Basic image analysisCV2011 Lecture 3. Basic image analysis
CV2011 Lecture 3. Basic image analysis
 
20120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture0520120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture05
 
Лекция 07 Обработка видео
Лекция 07 Обработка видеоЛекция 07 Обработка видео
Лекция 07 Обработка видео
 
20100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture0220100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture02
 
CV2011 Lecture 6. Fitting
CV2011 Lecture 6. FittingCV2011 Lecture 6. Fitting
CV2011 Lecture 6. Fitting
 

Viewers also liked (7)

Andrew Zisserman Talk - Part 1a
Andrew Zisserman Talk - Part 1aAndrew Zisserman Talk - Part 1a
Andrew Zisserman Talk - Part 1a
 
Classifier evaluation and comparison
Classifier evaluation and comparisonClassifier evaluation and comparison
Classifier evaluation and comparison
 
Writing a computer vision paper
Writing a computer vision paperWriting a computer vision paper
Writing a computer vision paper
 
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
 
CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.
CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.
CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.
 
Статистическое сравнение классификаторов
Статистическое сравнение классификаторовСтатистическое сравнение классификаторов
Статистическое сравнение классификаторов
 

Similar to CV2011-2. Lecture 08. Multi-view stereo.

20120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture0120120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture01
Computer Science Club
 
Presentation Diplom
Presentation DiplomPresentation Diplom
Presentation Diplom
guestc80a581
 
радуга за стеклом
радуга за стекломрадуга за стеклом
радуга за стеклом
AnatoliyR
 
радуга за стеклом
радуга за стекломрадуга за стеклом
радуга за стеклом
AnatoliyR
 
Сегментация
СегментацияСегментация
Сегментация
LiloSEA
 
Презентация ученика
Презентация ученикаПрезентация ученика
Презентация ученика
AlenaSamsonova
 
Презентация ученика.
Презентация ученика.Презентация ученика.
Презентация ученика.
AlenaSamsonova
 
Методы видеонавигации
Методы видеонавигацииМетоды видеонавигации
Методы видеонавигации
simplicio1
 

Similar to CV2011-2. Lecture 08. Multi-view stereo. (20)

Лекция по Трёхмерной графике
Лекция по Трёхмерной графикеЛекция по Трёхмерной графике
Лекция по Трёхмерной графике
 
20120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture0120120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture01
 
Presentation Diplom
Presentation DiplomPresentation Diplom
Presentation Diplom
 
3D-графика. ЗИЛ
3D-графика. ЗИЛ3D-графика. ЗИЛ
3D-графика. ЗИЛ
 
Создание коллажа в PhotoShop
Создание коллажа в PhotoShopСоздание коллажа в PhotoShop
Создание коллажа в PhotoShop
 
коллаж в фотошоп
коллаж в фотошопколлаж в фотошоп
коллаж в фотошоп
 
коллаж в фотошоп
коллаж в фотошопколлаж в фотошоп
коллаж в фотошоп
 
радуга за стеклом
радуга за стекломрадуга за стеклом
радуга за стеклом
 
радуга за стеклом
радуга за стекломрадуга за стеклом
радуга за стеклом
 
Сегментация
СегментацияСегментация
Сегментация
 
Презентация ученика
Презентация ученикаПрезентация ученика
Презентация ученика
 
Презентация ученика.
Презентация ученика.Презентация ученика.
Презентация ученика.
 
CG Presentation
CG PresentationCG Presentation
CG Presentation
 
Астрофотография-2
Астрофотография-2Астрофотография-2
Астрофотография-2
 
V ray2
V ray2V ray2
V ray2
 
Matchmoving Supervision
Matchmoving SupervisionMatchmoving Supervision
Matchmoving Supervision
 
Методы видеонавигации
Методы видеонавигацииМетоды видеонавигации
Методы видеонавигации
 
Kirill Rozin - Computer Vision. Alchemy of Modeling
Kirill Rozin - Computer Vision. Alchemy of ModelingKirill Rozin - Computer Vision. Alchemy of Modeling
Kirill Rozin - Computer Vision. Alchemy of Modeling
 
Астрофотография-1
Астрофотография-1Астрофотография-1
Астрофотография-1
 
CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.
 

CV2011-2. Lecture 08. Multi-view stereo.

  • 1. Многовидовая реконструкция Антон Конушин http://courses.graphicon.ru/vision2
  • 2. Этот курс подготовлен при поддержке Microsoft Research
  • 3. Благодарности • В презентации использованы слайды курса «3d Shape Reconstruction from Photographs: a Multi- View Stereo Approach» от Carlos Hernandez, George Vogiatzis and Yasutaka Furukawa
  • 4. План лекции • Введение • Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов • Приложение: реконструкция головы человека
  • 5. План лекции • Введение • Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов • Приложение: реконструкция головы человека
  • 6. Реконструкция по фотографиям «Оценить 3D форму, которая при визуализации совпадает с исходными изображениями, при условии тех же материалов, ракурсов и освещения» ракурс ? геометрия материал освщение изображение
  • 7. Реконструкция по фотографиям «Оценить 3D форму, которая при визуализации совпадает с исходными изображениями, при условии тех же материалов, ракурсов и освещения» Реальный Реплика объект
  • 8. Реконструкция по фотографиям Внешность объекта сильно зависит от материалов и освещения с текстурой жесткий деформирующийся без текстуры
  • 9. Реконструкция по фотографиям Внешность объекта сильно зависит от материалов и освещения  Нет единого алгоритма для всех типов сцен с текстурой жесткий деформирующийся без текстуры
  • 10. Фото-согласование Фотосогласованная точка 
  • 11. Фото-согласование Нефотосогласованная точка 
  • 12. Проблемы фото-согласования • Видимость камеры • Ошибки метрики – Повтор текстуры – Отсутствие текстуры – Блики
  • 13. Многовидовое стерео • Сравнения и оценки: • A Comparison and Evaluation of Multi-View Stereo Reconstruction Algorithms, S. Seitz et al., CVPR 2006, vol. 1, pages 519-526. • История алгоритмов: • Representing stereo data with the Delaunay triangulation, O. Faugeras et al., Artificial Intelligence, 44(1-2):41-87, 1990. • A multiple-baseline stereo, M. Okutomi and T. Kanade, TPAMI, 15(4):353-363, 1993. • Object-centered surface reconstruction: Combining multi-image stereo and shading, P. Fua, Y. Leclerc, International Journal of Computer Vision, vol. 16:35-56, 1995. • A portable three-dimensional digitizer, Y. Matsumoto et al., Int. Conf. on Recent Advances in 3D Imaging and Modeling, 197-205, 1997. • Photorealistic Scene Reconstruction by Voxel Coloring, S. M. Seitz and C. R. Dyer, CVPR., 1067-1073, 1997. • Variational principles, surface evolution, PDE's, level set methods and the stereo problem, O. Faugeras and R. Keriven, IEEE Trans. on Image Processing, 7(3):336-344, 1998.
  • 14. Многовидовое стерео • Сравнения и оценки: • A Comparison and Evaluation of Multi-View Stereo Reconstruction Algorithms, S. Seitz et al., CVPR 2006, vol. 1, pages 519-526. • http://vision.middlebury.edu/mview/ • Недавно много новых алгоритмов появилось • Высокая точность • Почти все работают с небольшим количеством изображений (~100) основное исключение exception [Pollefeys08] • Оффлайн-методы
  • 15. Воксельные объёмы 1. Инициализация воксельного объема сцены 2. Итеративная проверка всех векселей на фотосогласованность 3. Повторяем до сходимости, пока все воксели на поверхности не станут фотосогласованными
  • 16. Схема объединения карт глубины 1. Вычисляем карту глубины 2. Объединяем карты глубины в объеме 3. Извлекаем 3д поверхность
  • 17. Схема роста регионов 1. Этап подгонки Локальный фрагмент поверхности подгоняется, с учётом видимости 2. Этап фильтрации Жестко обеспечивается видимость 3. Этап расширения Удачные фрагменты используются для инициализации активной границы
  • 18. Лучшие алгоритмы Рост регионов Объединение карт глубины Начинает с облака 3д точек, Объединяем набор карт глубины, pros summary растим небольшие фрагменты полученных с помощью поверхности, максимизируя бинокулярного стерео фотосогласованность Обеспечивает наилучшие Элегантный подход результаты за счет Подключаемые блоки фотосогласования с опорой на Легко распараллеливается плоскости Много настраиваемых Метрика фотосогласования cons параметров, трудно подогнать к простая и не оптимальная. оптимуму Метрика ошибается, когда нет текстуры или низкое разрешение
  • 19. План лекции • Введение • Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов • Приложение: реконструкция головы человека
  • 20. Алгоритмы раскраски вокселей 1. Цветов=2 (Силуэты) • Пересечение объемов 2. Кол-во цветов не ограничено • ограничение на точки обзора 3. Общий случай
  • 21. Реконструкция по силуэтам Бинарные Изображения (2 цвета) Подход • Построить конус видимости по каждому силуэту • Пересечь конусы видимости
  • 22. Пересечение объемов Результат содержит исходную сцену • В общем случае не совпадает с исходной сценой • В пределе (по всевозможным изображениям) результат называется видимой оболочкой (Visual Hull)
  • 23. Воксельный алгоритм • Раскрасим воксель черным, если он проецируется внутрь силуэта на каждом изображении • Удалим воксель, если он попадает вне силуэта хотя бы на 1-м изображении
  • 24. Свойства пересечения объемов Преимущества • Легок в реализации • Быстрый • Можно ускорить с помощью окто-деревьев Недостатки • Невозможно моделировать полости объекта • Реконструкция не согласована по цветам • Необходимо определить силуэты объекта
  • 25. Алгоритмы раскраски вокселей 1. Цветов=2 (Силуэты) • Пересечение объемов 2. Кол-во цветов не ограничено • ограничение на точки обзора 3. Общий случай
  • 26. Раскраска вокселей 1. Выбрать воксель 2. Спроецировать и сравнить 3. Раскрасить, если согласован (разница меньше порога) Проблема видимости: На каких изображениях воксель виден?
  • 27. Упорядоченный обход по глубине Слои Обход сцены Аналогично расчету видимости в визуализации! • Воксели на следующих плоскостях могут быть закрыты только вокселями предыдущих плоскостей
  • 28. Порядок обхода для панорам • Камеры направленные в разные стороны • Плоский порядок обхода по глубине не подходит
  • 29. Порядок обхода для панорам Слои расходятся по направлению «от центра»
  • 30. Порядок обхода для панорам Слои расходятся по направлению «от центра»
  • 31. Порядок обхода для панорам Слои расходятся по направлению «от центра»
  • 32. Возможные конфигурации камер Ограничение • Сцена расположена вне выпуклой оболочки камеры Камеры направлены Камеры направлены внутрь вовне Камеры выше сцены Камеры внутри сцены
  • 33. Раскраска вокселей Динозавр Цветов 72 K вокселей раскрашено 70 K вокселей раскрашено 7.6 M вокселей проверено 7.6 M вокселей проверено 7 мин вычислений 7 мин вычислений на 250MHz SGI на 250MHz SGI
  • 34. Ограничения подхода Может не существовать порядка обхода вокселей по глубине для всех изображений! p q Требуется более общий алгоритм • Без ограничений на положение камеры • Без ограничений на топологию сцены
  • 35. Алгоритмы раскраски вокселей 1. Цветов=2 (Силуэты) • Пересечение объемов 2. Кол-во цветов не ограничено • ограничение на точки обзора 3. Общий случай • Space carving [Kutulakos & Seitz 98]
  • 36. Алгоритм Space Carving Изображение 1 Изображение N …... • Инициализация объема V содержащего в себе сцену • Выбрать любой воксель на текущей поверхности • Спроецировать на все видимые изображения • Удалить, если он не согласован по цветам • Повторить до сходимости
  • 37. Фотооболочка V V Истинная сцена Фотооболочка Фотооболочка это объединение всех фото-согласованных сцен в V • Согласованная по цветам реконструкция сцены • Наименьшая фото-согласованная реконструкция
  • 38. Алгоритм Space Carving Базовый алгоритм неудобен • Сложная процедура обхода Многопроходное «заметание» плоскостей • «Эффективный», можно использовать алгоритмы наложения текстуры • Быстро сходится
  • 39. «Заметание плоскости» • Рассматривает воксели на 1-ой плоскости • Рассматриваем только камеры по одну сторону от плоскости
  • 40. «Заметание плоскости» • Берем пересечение плоскости П и текущей модели V • Для каждого вокселя v из пересечения • Проецируем его на изображения • Если соответствующие пиксели не помечены – Проверяем фотосогласованность » Если не согласован – удаляем » Если согласован – помечаем пиксель
  • 41. «Заметание плоскости» • Двигаем плоскость вдоль объема • Постепенно добавляем новые камеры • Можем проецировать всю плоскость целиком • Используя GPU или просто визуализируя плоскость с текстурой
  • 42. Результаты Изображение (1 of 45) Реконструкция Реконструкция Реконструкция
  • 43. План лекции • Введение • Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов • Приложение: реконструкция головы человека
  • 44. Схема объединения карт глубины 1. Вычисляем карту глубины 2. Объединяем карты глубины в объеме 3. Извлекаем 3д поверхность
  • 45. Проблема регуляризации • Почему бы не использовать самые продвинутые методы бинокулярного стерео? • На основе функционалов энергии и на основе сегментов • Проблема регуляризации: • В сложных областях метод интерполирует значения за счёт использования регуляризации • Регуляризировать приходится из-за предположения, что дополнительных данных нет • В случае многовидового стерео дополнительная информация есть!
  • 47. Ранняя регуляризация Регуляризация каждой карты глубины по отдельности
  • 48. Объединение оценок Объединяем две оценки карты глубины
  • 49. Ранняя регуляризация Объединяем две карты глубины, а затем регуляризируем
  • 51. Общий подход • Вычисляем бинокулярные карты глубины для каждого вида строго без регуляризации • Затем объединяем наблюдения
  • 52. Вычисление стерео • Для каждого пикселя на базовом изображении вычислим кривую корреляции от глубины точки для всех дополнительных изображений
  • 56. Пики • Ключевое предположение • правильная глубина соответствует одному из локальных пиков одной из локальных кривых
  • 57. Непараметрическая оценка • Окна Парзена – непараметрическая оценка количества локальных максимумов по окну
  • 59. Ошибки • Повторяющаяся текстура • Ошибки сопоставления • Отсутствие текстуры • Шум в изображении и т.д.
  • 60. Регуляризация • Любой локальный пик может быть соответствием • Используем избыточность данных и свойство непрерывности поверхности • У соседних пикселей должно быть похожая глубина!
  • 61. Схема MRF • Выберем k самых сильных пиков как гипотезы глубины для пикселя. Дополним U - неизвестной • Зададим функционал энергии: • Унарный потенциал пенализирует малые пики • Парный потенциал пенализирует резкие изменения глубины • Метка U нужна, чтобы добавить устойчивость к шуму • Небольшое пенальти за U • Небольшое константное пенальти за cоседство с U
  • 63. Ранняя регуляризация? • Да, но с оговорками… • Мы фильтруем ненадежные данные • Если для глубины пикселя нет хороших гипотез, мы записываем как «неизвестное значение» • Мы не интерполируем промежуточные значения
  • 74. Извлечение поверхности • Простые подходы • Деформируемые модели • Оптимизация на основе разрезов графов
  • 75. Триангуляция карты глубины • Каждому пикселю изображения сопоставляется вершина • Соседние вершины объединяются • Глубина вершины берется из карты глубины • Слишком узкие и наклоненные треугольники отбрасываются
  • 76. Объединение сеток • Воксельный подход • Строим сетку для каждой карты глубины (кроме дырок) • Пространство разбивается на воксели • Все сетки помещаются в воксельное пространство • Если несколько сеток попадают в один воксель – они объединяются
  • 77. Деформируемые поверхности • Строим сетку-приближение • Оптимизируем сетку, добиваясь фото- согласованности поверхности • Очень медленно, бывают локальные минимумы
  • 79. План лекции • Введение • Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов • Приложение: реконструкция головы человека
  • 80. Методы на основе фрагментов [Lhuillier and Quan, [Furukawa and Ponce, [Habbecke and Kobbelt, PAMI 05] CVPR 07] CVPR 07]
  • 81. Определение фрагмента • Фрагмент p определен • Положением c(p) • Нормалью n(p) Нормаль n(p) • Видимыми изображениями V(p) • Размер выбирается так, Положение c(p) чтобы p был примерно Размер 9x9 пикселей в V(p) Видимые изображения V(p)
  • 82. Фотосогласованность • Фотосогласованность N(I, J, p) фрагмента p между изображениями I и J Ixy: цвет в изображении I I12 I11 I J
  • 83. Фотосогласованность • Фотосогласованность N(I, J, p) фрагмента p между изображениями I и J Ixy: цвет в изображении I Jxy: цвет в изображении J I J11 J J12
  • 84. Фотосогласованность • Фотосогласованность N(I, J, p) фрагмента p между изображениями I и J Ixy: цвет в изображении I Jxy: цвет в изображении J Фотосогласованность N(p) фрагмента p с видимыми I изображениями V(p) = {I1, I2, …, J11 In} J J12
  • 85. Реконструкция фрагмента p • Даны начальные приближения • Положения c(p) • Нормали n(p) c(p) • Видимых изображений V(p) n(p) • Утончим c(p) и n(p) {c( p ), n ( p )}  arg max N ( p) {c ( p ),n ( p )}
  • 86. Реконструкция фрагмента p • Даны начальные приближения • Положения c(p) • Нормали n(p) • Видимых изображений 1 DOF V(p) • Утончим c(p) и n(p) {c( p ), n ( p )}  arg max N ( p) {c ( p ),n ( p )}
  • 87. Реконструкция фрагмента p • Даны начальные приближения • Положения c(p) • Нормали n(p) • Видимых изображений V(p) 2 DOF • Утончим c(p) и n(p) {c( p ), n ( p )}  arg max N ( p) {c ( p ),n ( p )}
  • 88. Подтверждение фрагмента • Текстура может случайно совпасть • Фотосогласованность может быть высокой • Проверка • Оставляем только изображения с высокой фотосогласованностью в V(p) • Принимаем фрагмент при |V(p)|≥3
  • 89. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Image1 Image2 Зеркальный блик! Image4 Image3
  • 90. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} N(Image1, Image2, p)=0.75 Image1 Image2 0.83 0.52 Зеркальный блик! 0.45 Image4 Image3
  • 91. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 N(Image1, Image2, p)=0.75 Image1 Image2 0.83 Зеркальный блик! Image4 Image3
  • 92. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 Sum = 1.98 N(Image1, Image2, p)=0.75 Image2 Image1 0.52 Зеркальный блик! Image4 Image3
  • 93. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 Sum = 1.98 Image1 Image2 0.52 Зеркальный блик! Image4 0.45 Image3 Sum = 1.55
  • 94. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 Sum = 1.98 Image1 Image2 0.83 Зеркальный блик! Image4 0.45 Image3 Sum = 1.99 Sum = 1.55
  • 95. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 Sum = 1.98 Image1 Image2 Зеркальный блик! Image4 Image3 Sum = 1.99 Sum = 1.55
  • 96. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 Image1 Image2 Зеркальный блик! Image4 Image3
  • 97. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 N(Image1, Image2, p)=0.75 Image1 Image2 Add Image2, because > 0.7 Зеркальный блик! Image4 Image3
  • 98. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 Image1 Image2 Remove Image3, because < 0.7 Зеркальный блик! Image4 Image3
  • 99. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 Image1 Image2 Add Image4, because > 0.7 0.83 Зеркальный блик! ! Image4 Image3
  • 100. Обновление V(p) V(p)={Image1, Image2, Image4} Image1 Image2 Зеркальный блик! Image4 Image3
  • 101. Алгоритм на основе фрагментов #1. Поиск особых точек #2. Инициализация точек #3. Расширение патчей и фильтрация Input image #1 #2 #3
  • 102. Алгоритм на основе фрагментов #1. Поиск особых точек #2. Инициализация точек #3. Расширение патчей и фильтрация Input image #1 #2 #3
  • 103. Поиск точек • Harris corner detector (corners) • Difference of Gaussian (blobs)
  • 104. Алгоритм на основе фрагментов #1. Поиск особых точек #2. Инициализация точек #3. Расширение патчей и фильтрация Input image #1 #2 #3
  • 105. Инициализация точек c(p): триангуляция n(p): V(p): p
  • 106. Инициализация точек c(p): триангуляция n(p): параллельно к Image1 V(p): {Image1, Image2} p
  • 107. Инициализация точек c(p): triangulation n(p): parallel to Image1 V(p): {Image1, Image2}Image3} Image2, p Add visible images If N ( Image1, Image3, p )  0.5
  • 108. Инициализация точек c(p): triangulation n(p): parallel to Image1 V(p): {Image1, Image2, Image3} p
  • 109. Инициализация точек c(p): refine n(p): refine V(p): {Image1, Image2, Image3} {c( p ), n( p)}  arg max N ( p) p { c( p ), n ( p )}
  • 110. Инициализация точек c(p): refine n(p): refine V(p): {Image1, Image2, Image3} {c( p ), n( p)}  arg max N ( p) p { c( p ), n ( p )}
  • 111. Инициализация точек Верификация (обновим V(p) и проверим |V(p)|≥3) p
  • 116. Инициализация точек • Повторяем для всех найденных точек Занята
  • 117. Алгоритм на основе фрагментов #1. Поиск особых точек #2. Инициализация точек #3. Расширение патчей и фильтрация Input image #1 #2 #3
  • 119. Расширение фрагментов Выбираем фрагмент
  • 120. Расширение фрагментов Ищем пустых Ничего не соседей Все заняты делаем
  • 121. Расширение фрагментов Выбираем фрагмент p
  • 122. Расширение фрагментов p Ищем пустых соседей
  • 123. Расширение фрагментов p q c(q): {пересечение Реконструируем касательной фрагменты во плоскости и луча} всех соседних n(q): пикселях V(q):
  • 124. Расширение фрагментов p q c(q): уточняем q n(q): уточняем V(q): V(p)
  • 125. Расширение фрагментов p q Проверяем фрагмент!
  • 126. Расширение фрагментов p q Проверяем фрагмент!
  • 127. Расширение фрагментов p q Повторяем • Для каждого фрагмента • Для каждого соседнего пустого пикселя
  • 128. Фильтрация патчей • Согласование видимости p3 p4 p5 p6 p2 Убираем p1 если 6 | V ( p1 ) | N ( p1 )  i  2 N ( pi ) p1 Image1 Image5 Image2 Image3 Image4
  • 129. Алгоритм на основе фрагментов #1. Поиск особых точек #2. Инициализация точек #3. Расширение патчей и фильтрация Input image #1 #2 #3
  • 131. 34 Резюме алгоритма Поиск особенностей
  • 132. 35 Резюме алгоритма Сопоставление особенностей
  • 133. 36 Резюме алгоритма Расширение
  • 134. 37 Резюме алгоритма Фильтрация
  • 135. 38 Резюме алгоритма Расширение
  • 138. План лекции • Введение • Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов • Приложение: реконструкция головы человека
  • 139. ЗД захват лица • Пассивная многокамерная система (14 камер) D. Bradley, W. Heidrich, T. Popa, A. Sheffer High Resolution Passive Facial Performance Capture , SIGGRAPH 2010
  • 140. Устройство системы • 7 стереопар высокого разрешения Sony HDR- SR7 • Система подстветки на основе LED • Каждая стереопара видит свою зону на лице
  • 141. Разрешение изображений • При таком высоком разрешении и равномерной подсветке поры на коже дают достаточно текстуры для вычисления пассивного стерео BRADLEY, D., BOUBEKEUR, T., AND HEIDRICH, W. Accurate multi-view reconstruction using robust binocular stereo and surface meshing. CVPR. 2008.
  • 142. Пассивное стерео и обработка • Каждая стереопара даёт карту глубины и облако точек (шумное) • Итеративное сглаживание и вычисление порогов для отброса шумов
  • 144. Отслеживание • Выбирают базовую модель и прослеживают её на протяжении всего видео
  • 145. Текстурирование • Участки текстуры копируются со своих камер • Поскольку камеры без цветовой калибровки, при прямом копировании текстуры видны резкие цветовые переходы (артефакты) • Для обработки используется композиция по Пуассону
  • 147. Моментальное 3Д • Построение высокодетализированной 3Д модели лица человека • От одной стереокамеры до нескольих стереокамер T. Beeler, B. Bickel, P. Beardsley, R. Sumner, M. Gross High-Quality Single-Shot Capture of Facial Geometry, SIGGRAPH 2010
  • 148. Схема системы • Иерархическое стереосопоставление с итеративным уточнением • От разрешения 160*160 до 1280*1280 • Локальные методы - без использования глобальной оптимизации, сегментации и т.д.
  • 149. Результат стерео • Последовательное уточнение геометрии модели • Субпиксельное уточнение диспаритета
  • 150. Mesoscopic Augmentation • Вычисляем высокочастотную составляющую изображения • Высокие частоты соответствуют мелким деталям на коже человека • «Искажаем» геометрию согласно специальной формуле
  • 153. Резюме • Методы 3Д реконструкции на основе активного стерео уже давно вошли в коммерческое использование • Появление дешевых активных сенсоров (Kinect) открывает возможности по массовому их внедрению • Методы на основе пассивного стерео по качеству начали приближаться к методам активного стерео и тоже начинают находить практическое применение