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

1,168 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,168
On SlideShare
0
From Embeds
0
Number of Embeds
228
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Многовидовая реконструкция Антон Конушин http://courses.graphicon.ru/vision2
  2. 2. Этот курс подготовленпри поддержке Microsoft Research
  3. 3. Благодарности• В презентации использованы слайды курса «3d Shape Reconstruction from Photographs: a Multi- View Stereo Approach» от Carlos Hernandez, George Vogiatzis and Yasutaka Furukawa
  4. 4. План лекции• Введение• Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов• Приложение: реконструкция головы человека
  5. 5. План лекции• Введение• Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов• Приложение: реконструкция головы человека
  6. 6. Реконструкция по фотографиям «Оценить 3D форму, которая при визуализации совпадает с исходными изображениями, при условии тех же материалов, ракурсов и освещения» ракурс ? геометрия материал освщение изображение
  7. 7. Реконструкция по фотографиям «Оценить 3D форму, которая при визуализации совпадает с исходными изображениями, при условии тех же материалов, ракурсов и освещения» Реальный Реплика объект
  8. 8. Реконструкция по фотографиямВнешность объекта сильно зависит от материалов иосвещения с текстурой жесткий деформирующийся без текстуры
  9. 9. Реконструкция по фотографиямВнешность объекта сильно зависит от материалов иосвещения  Нет единого алгоритма для всех типов сцен с текстурой жесткий деформирующийся без текстуры
  10. 10. Фото-согласование Фотосогласованная точка 
  11. 11. Фото-согласование Нефотосогласованная точка 
  12. 12. Проблемы фото-согласования• Видимость камеры• Ошибки метрики – Повтор текстуры – Отсутствие текстуры – Блики
  13. 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, PDEs, level set methods and the stereo problem, O. Faugeras and R. Keriven, IEEE Trans. on Image Processing, 7(3):336-344, 1998.
  14. 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. 15. Воксельные объёмы1. Инициализация воксельного объема сцены2. Итеративная проверка всех векселей на фотосогласованность3. Повторяем до сходимости, пока все воксели на поверхности не станут фотосогласованными
  16. 16. Схема объединения карт глубины1. Вычисляем карту глубины2. Объединяем карты глубины в объеме3. Извлекаем 3д поверхность
  17. 17. Схема роста регионов1. Этап подгонки Локальный фрагмент поверхности подгоняется, с учётом видимости2. Этап фильтрации Жестко обеспечивается видимость3. Этап расширения Удачные фрагменты используются для инициализации активной границы
  18. 18. Лучшие алгоритмы Рост регионов Объединение карт глубины Начинает с облака 3д точек, Объединяем набор карт глубины,pros summary растим небольшие фрагменты полученных с помощью поверхности, максимизируя бинокулярного стерео фотосогласованность Обеспечивает наилучшие Элегантный подход результаты за счет Подключаемые блоки фотосогласования с опорой на Легко распараллеливается плоскости Много настраиваемых Метрика фотосогласованияcons параметров, трудно подогнать к простая и не оптимальная. оптимуму Метрика ошибается, когда нет текстуры или низкое разрешение
  19. 19. План лекции• Введение• Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов• Приложение: реконструкция головы человека
  20. 20. Алгоритмы раскраски вокселей1. Цветов=2 (Силуэты) • Пересечение объемов2. Кол-во цветов не ограничено • ограничение на точки обзора3. Общий случай
  21. 21. Реконструкция по силуэтам Бинарные Изображения (2 цвета)Подход • Построить конус видимости по каждому силуэту • Пересечь конусы видимости
  22. 22. Пересечение объемовРезультат содержит исходную сцену • В общем случае не совпадает с исходной сценой • В пределе (по всевозможным изображениям) результат называется видимой оболочкой (Visual Hull)
  23. 23. Воксельный алгоритм• Раскрасим воксель черным, если он проецируется внутрь силуэта на каждом изображении• Удалим воксель, если он попадает вне силуэта хотя бы на 1-м изображении
  24. 24. Свойства пересечения объемовПреимущества • Легок в реализации • Быстрый • Можно ускорить с помощью окто-деревьевНедостатки • Невозможно моделировать полости объекта • Реконструкция не согласована по цветам • Необходимо определить силуэты объекта
  25. 25. Алгоритмы раскраски вокселей1. Цветов=2 (Силуэты) • Пересечение объемов2. Кол-во цветов не ограничено • ограничение на точки обзора3. Общий случай
  26. 26. Раскраска вокселей1. Выбрать воксель2. Спроецировать и сравнить3. Раскрасить, если согласован (разница меньше порога)Проблема видимости:На каких изображениях воксель виден?
  27. 27. Упорядоченный обход по глубине Слои Обход сценыАналогично расчету видимости в визуализации!• Воксели на следующих плоскостях могут бытьзакрыты только вокселями предыдущих плоскостей
  28. 28. Порядок обхода для панорам • Камеры направленные в разные стороны • Плоский порядок обхода по глубине не подходит
  29. 29. Порядок обхода для панорамСлои расходятся по направлению «от центра»
  30. 30. Порядок обхода для панорамСлои расходятся по направлению «от центра»
  31. 31. Порядок обхода для панорамСлои расходятся по направлению «от центра»
  32. 32. Возможные конфигурации камерОграничение • Сцена расположена вне выпуклой оболочки камеры Камеры направлены Камеры направлены внутрь вовне Камеры выше сцены Камеры внутри сцены
  33. 33. Раскраска вокселей Динозавр Цветов72 K вокселей раскрашено 70 K вокселей раскрашено 7.6 M вокселей проверено 7.6 M вокселей проверено 7 мин вычислений 7 мин вычислений на 250MHz SGI на 250MHz SGI
  34. 34. Ограничения подхода Может не существовать порядка обхода вокселей по глубине для всех изображений! p qТребуется более общий алгоритм • Без ограничений на положение камеры • Без ограничений на топологию сцены
  35. 35. Алгоритмы раскраски вокселей 1. Цветов=2 (Силуэты) • Пересечение объемов 2. Кол-во цветов не ограничено • ограничение на точки обзора 3. Общий случай • Space carving [Kutulakos & Seitz 98]
  36. 36. Алгоритм Space CarvingИзображение 1 Изображение N …... • Инициализация объема V содержащего в себе сцену • Выбрать любой воксель на текущей поверхности • Спроецировать на все видимые изображения • Удалить, если он не согласован по цветам • Повторить до сходимости
  37. 37. Фотооболочка V V Истинная сцена ФотооболочкаФотооболочка это объединение всех фото-согласованных сцен в V • Согласованная по цветам реконструкция сцены • Наименьшая фото-согласованная реконструкция
  38. 38. Алгоритм Space CarvingБазовый алгоритм неудобен • Сложная процедура обходаМногопроходное «заметание» плоскостей • «Эффективный», можно использовать алгоритмы наложения текстуры • Быстро сходится
  39. 39. «Заметание плоскости»• Рассматривает воксели на 1-ой плоскости• Рассматриваем только камеры по одну сторону от плоскости
  40. 40. «Заметание плоскости»• Берем пересечение плоскости П и текущей модели V• Для каждого вокселя v из пересечения • Проецируем его на изображения • Если соответствующие пиксели не помечены – Проверяем фотосогласованность » Если не согласован – удаляем » Если согласован – помечаем пиксель
  41. 41. «Заметание плоскости»• Двигаем плоскость вдоль объема • Постепенно добавляем новые камеры• Можем проецировать всю плоскость целиком • Используя GPU или просто визуализируя плоскость с текстурой
  42. 42. Результаты Изображение (1 of 45) Реконструкция Реконструкция Реконструкция
  43. 43. План лекции• Введение• Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов• Приложение: реконструкция головы человека
  44. 44. Схема объединения карт глубины1. Вычисляем карту глубины2. Объединяем карты глубины в объеме3. Извлекаем 3д поверхность
  45. 45. Проблема регуляризации• Почему бы не использовать самые продвинутые методы бинокулярного стерео? • На основе функционалов энергии и на основе сегментов• Проблема регуляризации: • В сложных областях метод интерполирует значения за счёт использования регуляризации • Регуляризировать приходится из-за предположения, что дополнительных данных нет • В случае многовидового стерео дополнительная информация есть!
  46. 46. Ранняя регуляризация
  47. 47. Ранняя регуляризация Регуляризация каждой карты глубины по отдельности
  48. 48. Объединение оценок Объединяем две оценки карты глубины
  49. 49. Ранняя регуляризация Объединяем две карты глубины, а затем регуляризируем
  50. 50. Ранняя регуляризация
  51. 51. Общий подход• Вычисляем бинокулярные карты глубины для каждого вида строго без регуляризации• Затем объединяем наблюдения
  52. 52. Вычисление стерео• Для каждого пикселя на базовом изображении вычислим кривую корреляции от глубины точки для всех дополнительных изображений
  53. 53. Объединение наблюдений• Объединим кривые корреляции
  54. 54. Простое усреднение
  55. 55. Простое усреднение
  56. 56. Пики• Ключевое предположение • правильная глубина соответствует одному из локальных пиков одной из локальных кривых
  57. 57. Непараметрическая оценка• Окна Парзена – непараметрическая оценка количества локальных максимумов по окну
  58. 58. Максимальный отклик
  59. 59. Ошибки• Повторяющаяся текстура• Ошибки сопоставления • Отсутствие текстуры • Шум в изображении и т.д.
  60. 60. Регуляризация• Любой локальный пик может быть соответствием• Используем избыточность данных и свойство непрерывности поверхности • У соседних пикселей должно быть похожая глубина!
  61. 61. Схема MRF• Выберем k самых сильных пиков как гипотезы глубины для пикселя. Дополним U - неизвестной• Зададим функционал энергии:• Унарный потенциал пенализирует малые пики• Парный потенциал пенализирует резкие изменения глубины• Метка U нужна, чтобы добавить устойчивость к шуму • Небольшое пенальти за U • Небольшое константное пенальти за cоседство с U
  62. 62. Схема
  63. 63. Ранняя регуляризация?• Да, но с оговорками… • Мы фильтруем ненадежные данные • Если для глубины пикселя нет хороших гипотез, мы записываем как «неизвестное значение» • Мы не интерполируем промежуточные значения
  64. 64. Пример
  65. 65. Пример
  66. 66. Пример
  67. 67. Пример
  68. 68. Пример
  69. 69. Результат
  70. 70. Пример
  71. 71. Пример
  72. 72. Пример
  73. 73. Карты глубины
  74. 74. Извлечение поверхности• Простые подходы• Деформируемые модели• Оптимизация на основе разрезов графов
  75. 75. Триангуляция карты глубины• Каждому пикселю изображения сопоставляется вершина• Соседние вершины объединяются• Глубина вершины берется из карты глубины• Слишком узкие и наклоненные треугольники отбрасываются
  76. 76. Объединение сеток• Воксельный подход • Строим сетку для каждой карты глубины (кроме дырок) • Пространство разбивается на воксели • Все сетки помещаются в воксельное пространство • Если несколько сеток попадают в один воксель – они объединяются
  77. 77. Деформируемые поверхности• Строим сетку-приближение• Оптимизируем сетку, добиваясь фото- согласованности поверхности• Очень медленно, бывают локальные минимумы
  78. 78. Результат
  79. 79. План лекции• Введение• Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов• Приложение: реконструкция головы человека
  80. 80. Методы на основе фрагментов[Lhuillier and Quan, [Furukawa and Ponce, [Habbecke and Kobbelt, PAMI 05] CVPR 07] CVPR 07]
  81. 81. Определение фрагмента• Фрагмент p определен • Положением c(p) • Нормалью n(p) Нормаль n(p) • Видимыми изображениями V(p)• Размер выбирается так, Положение c(p) чтобы p был примерно Размер 9x9 пикселей в V(p) Видимые изображения V(p)
  82. 82. Фотосогласованность• Фотосогласованность N(I, J, p) фрагмента p между изображениями I и J Ixy: цвет в изображении I I12 I11 I J
  83. 83. Фотосогласованность• Фотосогласованность N(I, J, p) фрагмента p между изображениями I и J Ixy: цвет в изображении I Jxy: цвет в изображении J I J11 J J12
  84. 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. 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. 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. 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. 88. Подтверждение фрагмента• Текстура может случайно совпасть• Фотосогласованность может быть высокой• Проверка • Оставляем только изображения с высокой фотосогласованностью в V(p) • Принимаем фрагмент при |V(p)|≥3
  89. 89. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Image1 Image2 Зеркальный блик! Image4 Image3
  90. 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. 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. 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. 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. 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. 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. 96. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 Image1 Image2 Зеркальный блик! Image4 Image3
  97. 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. 98. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 Image1 Image2 Remove Image3, because < 0.7 Зеркальный блик! Image4 Image3
  99. 99. Обновление V(p) V(p)={Image1, Image2, Image3, Image4} Sum = 2.16 Image1 Image2 Add Image4, because > 0.7 0.83 Зеркальный блик! ! Image4 Image3
  100. 100. Обновление V(p) V(p)={Image1, Image2, Image4} Image1 Image2 Зеркальный блик! Image4 Image3
  101. 101. Алгоритм на основе фрагментов#1. Поиск особых точек#2. Инициализация точек#3. Расширение патчей и фильтрация Input image #1 #2 #3
  102. 102. Алгоритм на основе фрагментов#1. Поиск особых точек#2. Инициализация точек#3. Расширение патчей и фильтрация Input image #1 #2 #3
  103. 103. Поиск точек • Harris corner detector (corners) • Difference of Gaussian (blobs)
  104. 104. Алгоритм на основе фрагментов#1. Поиск особых точек#2. Инициализация точек#3. Расширение патчей и фильтрация Input image #1 #2 #3
  105. 105. Инициализация точек c(p): триангуляция n(p): V(p): p
  106. 106. Инициализация точек c(p): триангуляция n(p): параллельно к Image1 V(p): {Image1, Image2} p
  107. 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. 108. Инициализация точек c(p): triangulation n(p): parallel to Image1 V(p): {Image1, Image2, Image3} p
  109. 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. 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. 111. Инициализация точек Верификация (обновим V(p) и проверим |V(p)|≥3) p
  112. 112. Инициализация точек pЗанята
  113. 113. Инициализация точекЗанята
  114. 114. Инициализация точекЗанята
  115. 115. Инициализация точекOccupied
  116. 116. Инициализация точек• Повторяем для всех найденных точекЗанята
  117. 117. Алгоритм на основе фрагментов#1. Поиск особых точек#2. Инициализация точек#3. Расширение патчей и фильтрация Input image #1 #2 #3
  118. 118. Расширение фрагментовЗанятый пиксель
  119. 119. Расширение фрагментов Выбираем фрагмент
  120. 120. Расширение фрагментовИщем пустых Ничего несоседей Все заняты делаем
  121. 121. Расширение фрагментов Выбираем фрагмент p
  122. 122. Расширение фрагментов pИщемпустыхсоседей
  123. 123. Расширение фрагментов p q c(q): {пересечениеРеконструируем касательнойфрагменты во плоскости и луча}всех соседних n(q):пикселях V(q):
  124. 124. Расширение фрагментов p q c(q): уточняем q n(q): уточняем V(q): V(p)
  125. 125. Расширение фрагментов p q Проверяем фрагмент!
  126. 126. Расширение фрагментов p q Проверяем фрагмент!
  127. 127. Расширение фрагментов p qПовторяем• Для каждого фрагмента• Для каждого соседнего пустого пикселя
  128. 128. Фильтрация патчей• Согласование видимости p3 p4 p5 p6 p2Убираем p1 если 6 | V ( p1 ) | N ( p1 )  i  2 N ( pi ) p1 Image1 Image5 Image2 Image3 Image4
  129. 129. Алгоритм на основе фрагментов#1. Поиск особых точек#2. Инициализация точек#3. Расширение патчей и фильтрация Input image #1 #2 #3
  130. 130. 33Резюме алгоритма
  131. 131. 34Резюме алгоритма Поиск особенностей
  132. 132. 35Резюме алгоритма Сопоставление особенностей
  133. 133. 36Резюме алгоритма Расширение
  134. 134. 37Резюме алгоритма Фильтрация
  135. 135. 38Резюме алгоритма Расширение
  136. 136. Примеры
  137. 137. Видео
  138. 138. План лекции• Введение• Многовидовое пассивное стерео • Воксельные подходы • Подход на основе объединения сеток • Разрастание регионов• Приложение: реконструкция головы человека
  139. 139. ЗД захват лица • Пассивная многокамерная система (14 камер)D. Bradley, W. Heidrich, T. Popa, A. Sheffer High Resolution Passive FacialPerformance Capture , SIGGRAPH 2010
  140. 140. Устройство системы• 7 стереопар высокого разрешения Sony HDR- SR7• Система подстветки на основе LED• Каждая стереопара видит свою зону на лице
  141. 141. Разрешение изображений • При таком высоком разрешении и равномерной подсветке поры на коже дают достаточно текстуры для вычисления пассивного стереоBRADLEY, D., BOUBEKEUR, T., AND HEIDRICH, W. Accurate multi-viewreconstruction using robust binocular stereo and surface meshing. CVPR. 2008.
  142. 142. Пассивное стерео и обработка• Каждая стереопара даёт карту глубины и облако точек (шумное)• Итеративное сглаживание и вычисление порогов для отброса шумов
  143. 143. Результат по 1 кадру
  144. 144. Отслеживание• Выбирают базовую модель и прослеживают её на протяжении всего видео
  145. 145. Текстурирование• Участки текстуры копируются со своих камер• Поскольку камеры без цветовой калибровки, при прямом копировании текстуры видны резкие цветовые переходы (артефакты)• Для обработки используется композиция по Пуассону
  146. 146. Результат
  147. 147. Моментальное 3Д • Построение высокодетализированной 3Д модели лица человека • От одной стереокамеры до нескольих стереокамерT. Beeler, B. Bickel, P. Beardsley, R. Sumner, M. Gross High-Quality Single-ShotCapture of Facial Geometry, SIGGRAPH 2010
  148. 148. Схема системы• Иерархическое стереосопоставление с итеративным уточнением • От разрешения 160*160 до 1280*1280 • Локальные методы - без использования глобальной оптимизации, сегментации и т.д.
  149. 149. Результат стерео• Последовательное уточнение геометрии модели• Субпиксельное уточнение диспаритета
  150. 150. Mesoscopic Augmentation• Вычисляем высокочастотную составляющую изображения• Высокие частоты соответствуют мелким деталям на коже человека• «Искажаем» геометрию согласно специальной формуле
  151. 151. Результат
  152. 152. Применение в жизни
  153. 153. Резюме• Методы 3Д реконструкции на основе активного стерео уже давно вошли в коммерческое использование• Появление дешевых активных сенсоров (Kinect) открывает возможности по массовому их внедрению• Методы на основе пассивного стерео по качеству начали приближаться к методам активного стерео и тоже начинают находить практическое применение

×