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

advertisement
Стерео-реконструкция
Антон Конушин,
Ольга Баринова, Вадим Конушин,
Антон Якубенко, Александр Велижев
МГУ ВМК, Graphics & Media Lab,
Весна 2008
15.05.2008
http://courses.graphicon.ru
1
Подсказки
На какие подсказки мы опираемся при вычислении
формы наблюдаемых объектов?
•
•
•
•
Затенение
Текстура
Фокус
Движение
15.05.2008
http://courses.graphicon.ru
2
Движение
• При движении камеры разные точки сцены
передвигаются на разное расстояние
15.05.2008
http://courses.graphicon.ru
3
Стерео
Точка сцены
изображение
изображение
Центр проекции
Центр проекции
•
•
Два (и более) изображения одной и той же сцены
• Два изображения называются «стереопарой»
• Отрезок между оптическими центрами называется
стереобазой
Определяются проекции одной и той же точки сцены на оба
(все) изображения
15.05.2008
http://courses.graphicon.ru
4
Виды стерео
• Пассивное стерео
• Используются обычные изображения, полученные в
естественных условиях освещения
• Активное стерео
• Объект подсвечивается специально структурированным
светом
– Лазер
– Проектор
15.05.2008
http://courses.graphicon.ru
5
Стерео
Основной подход - триангуляция
• Точка сцена находится как пересечение двух лучей
– Луч проходит через оптический центр и точку изображения
• Требуется
– Калибровка камеры
– Пара соответствующих точек
15.05.2008
http://courses.graphicon.ru
6
Метод средней точки
• В общем случае лучи не пересекаются
• Ошибки в калибровке камеры
• Ошибки в измерении координат проекции
• Общий перпендикуляр к лучам
• Средняя точка
15.05.2008
http://courses.graphicon.ru
7
Линейный метод
A
m1
m2
P2
P1
• Исходные данные
• Калибровки камер P1 и P2
• Известные проекции m1 и m2
• Надо найти:
• Точку А
15.05.2008
http://courses.graphicon.ru
8
Линейная триангуляция
X 
 wu 
Y 
 wv  ≅ P  
 
Z 
 w 
 
1
wu = p A
T
1
wv = p2T A
w= p A
T
3
X 
 p  
 Y 
= p 
Z 
 p  
  1
 
T
1
T
2
T
3
 p1T 
 T
=  p2  A
 p3T 
 
up A = p A
T
3
T
1
vp3T A = p2T A
2 уравнения на 3-и неизвестные координаты A
15.05.2008
http://courses.graphicon.ru
9
Варианты стерео-реконструкции
Исходное уравнение для
каждой точки на
изображении
m=P·A
P = K⋅ I ⋅ C
Матрица
проекции
Внутренняя
калибровка
−1
Внешняя
калибровка
У каждого изображения
своя матрица проекции
В общем случае все параметры в
уравнении неизвестны!
15.05.2008
http://courses.graphicon.ru
10
Поиск соответствующих точек
• «Соответствующие точки» (point match)
• Пара (и более) точек на 2-х (и более) изображениях,
которые соответствуют одной и той же точке сцены
• Соответствующие пиксели
• Задача поиска соответствующих точек
• Для пикселей изображений N*M
• В общем случае N*N*M*M вариантов
• Одна из самых сложных задач в области
машинного зрения
15.05.2008
http://courses.graphicon.ru
11
Эпиполярная геометрия
Эпиполярная
линия
Эпиполярная
плоскость
Эпиполярная линия
• Два центра проекций и точка сцены – эпиполярная
плоскость
• Эпиполярные линии – пересечение эпиполярной
плоскости и плоскости изображений
15.05.2008
http://courses.graphicon.ru
12
Эпиполярная геометрия
Эпиполярная
линия
Эпиполярная
плоскость
Эпиполярная линия
Эпиполярное ограничение
• Соответствующая точка на втором изображении должна лежать на
эпиполярной линии
• Снижает размерность задачи по поиску соответствующих точек
• Вместо 2-х мерного поиска по всему изображению
• 1-мерный поиск вдоль соответствующих эпиполярных линий
15.05.2008
http://courses.graphicon.ru
13
Общий случай
• Два изображения
обычно произвольным
образом
располагаются друг
относительно друга
• Эпиполярные линии
проходят под
произвольным углом в
изображении
• Поиск даже вдоль
линии достаточно
сложен
15.05.2008
http://courses.graphicon.ru
14
Ректификация стерео пары
• Проецируем оба
изображения на одну
плоскость, параллельную
стереобазе
• Строки изображений
параллельны стереобазы
• Эпиполярные линии
теперь совпадают со
строчками изображения
• Соответствующие точки лежат на
одной и той же строчке изображения!
15.05.2008
http://courses.graphicon.ru
15
Пример ректификации стереопары
15.05.2008
http://courses.graphicon.ru
16
Алгоритмы поиска соответствий
Поиск соответствий (stereo matching) на
соответствующих эпиполярных линиях
• Предполагается постоянная яркость всех точек сцены
• Очень сложная задача
• Множество подходов и алгоритмов
– Хороший обзор доступен по адресу
15.05.2008
http://courses.graphicon.ru
http://www.middlebury.edu/stereo/
17
Подсказка «движение»
X
y
Рассмотрим задачу
на плоскости
Y
x
z
f
C
f
baseline
C’
x,y – cмещение
проекции от
принципиальной
точки
• Чем дальше точка от камеры, тем ее смещение – меньше
• Разница между смещением точки на обоих кадрах
называется «диспаритетом»
15.05.2008
http://courses.graphicon.ru
18
Диспаритет
X
• (x – x’) – диспаритет
• x, x’ – разных знаков на примере!
z • Чем больше диспаритет – тем
x
x’
f
меньше глубина (z)
f
baseline
C
C’
X
z
x
f b1 b2
C
X’
x’
f
C’
Вывести формулу просто
Baseline = b1 + b2
19
Результаты стерео сопоставления
• Данные из университета Цукубы
• Яркость пикселя задает диспаритет
– Чем ярче – тем больше диспаритет
– Можно записывать просто смещение
Сцена
15.05.2008
Контрольные данные
http://courses.graphicon.ru
20
(ground truth)
Простейшие стерео-алгоритм
Для каждой эпиполярной линии
Для каждого пикселя в левом изображении
• Сопоставим его с каждым пикселем правого изображения
• Выберем наиболее похожий пиксель (по некоторой мере)
Развитие метода – сравнение окон (регионов)
•
•
Окна должны быть похожими в некоторой метрике
Обычно перебираются всевозможные варианты
21
Размер окна поиска – первый параметр!
W=3
W = 20
Размер влияет на качество
• Маленькое окно
+ Много шума
– Высокая детализация
• Большое окно
+ Мало шума
– Низкая детализация
22
Результаты простейшего метода
Сопоставление окон
(лучший размер окна)
15.05.2008
http://courses.graphicon.ru
Ground truth
23
Существуют методы получше
Лучший результат
Ground truth
Boykov et al., Fast Approximate Energy Minimization via Graph Cuts,
International Conference on Computer Vision, September 1999.
Обзор и рейтинг методов: http://www.middlebury.edu/stereo/
24
Карта глубины
• Матрица, в каждой ячейке
которой записано
расстояние от фокуса до
поверхности объекта
• Описывает только одну
сторону поверхности
модели!
15.05.2008
http://courses.graphicon.ru
25
Глубина из диспаритета
Изображение (1 of 2)
Карта глубины
[Szeliski & Kang ‘95]
3D-вид
X
z
x
x’
f
C
f
baseline
C’
• Чем больше диспаритет – тем
меньше глубина (z)
26
Выбор стереобазы
Все точки из этой
области
проецируются
в один пиксель
Размер
пикселя
Большая стереобаза
Маленькая стереобаза
Какая стереобаза будет оптимальной?
• Слишком маленькая: низкая точность
• Слишком большая: сложная проблема поиска соответствий
15.05.2008
http://courses.graphicon.ru
27
Карта глубины
• Низкая точность реконструкции сцены
• Сцена лишь разделяется на слои по глубине
15.05.2008
http://courses.graphicon.ru
28
Стерео по более чем 2-м кадрам
Основной подход
• Выбираем опорный кадр
• Используем практически
любой метод поиска
соответствий
– Заменяем меру ошибки
сопоставления 2-х кадров на
меру по всем кадрам
Ограничения
• Должны выбирать опорный
кадр
• Проблема видимости
15.05.2008
http://courses.graphicon.ru
29
Проблема видимости (visibility)
Какие точки сцены видны на каких изображениях?
Известная сцена
Неизвестная сцена
Прямая задача
Обратная задача
Известная сцена
Известные изображения
15.05.2008
http://courses.graphicon.ru
30
Стерео по более чем 2-м кадрам
• Невозможно сразу определить, виден пиксель или
нет
• Приходится использовать оценку
«достоверности» соответствия точек
• Порог на «похожесть» окон
– Если наиболее похожие пикселы слишком непохожи –
отбрасываем соответствие
• Порог на изменение положения точки
– Если при добавлении нового кадра координаты точки
слишком сильно изменяются – отбрасываем соответствие
• Специальные фильтры (например, фильтр Кальмана )
15.05.2008
http://courses.graphicon.ru
31
Стерео по более чем 2-м кадрам
• Pk – опорный кадр, P(k+1), Pn – используются для уточнения
15.05.2008
http://courses.graphicon.ru
32
Стерео по более чем 2-м кадрам
• Pk – опорный кадр
• При использовании кадра P(k+2) смещение выходит за порог
Общая схема алгоритма
Этапы
•
•
•
•
Откалибровать камеры
Ректифицировать изображения
Вычислить диспаритет (стерео-сопоставление)
Оценить глубину
Что вызывает ошибки?
Ошибки калибровки камеры
Низкое разрешение изображений
Перекрытия
Нарушения предположения о постоянной яркости
пикселей (отражения)
• Движущиеся объекты
• Области изображения с низким контрастом
•
•
•
•
15.05.2008
http://courses.graphicon.ru
34
Стерео в реальном времени
Робот «Кочевник» ищет метиориты в Антарктиде
http://www.frc.ri.cmu.edu/projects/meteorobot/index.html
Стерео используется для навигации роботов
• Существует несколько программных реализаций стереореконструкции в реальном времени (опираются на простейший
перебор)
35
Активное стерео (структурированный свет)
Стерео по одному кадру
Камера 1
Проектор
Камера 1
Проектор
Камера 2
С помощью проектора специальный шаблон проецируется на
объект («структурированный свет»)
• Это упрощает проблему поиска соответствий
36
Активное стерео
Объект
Лазер
Камера
Лазер проецирует на объект полоску света (или точку)
15.05.2008
http://courses.graphicon.ru
37
Активное стерео
Объект
Лазер
(x,y)
Камера
• Глубину каждой точки линии можно вычислить с
помощью триангуляции
• Как пересечение луча и плоскости
15.05.2008
http://courses.graphicon.ru
38
Лазерное сканирование
Object
Direction of travel
Laser sheet
CCD image plane
Cylindrical lens
Laser
CCD
Digital Michelangelo Project
http://graphics.stanford.edu/projects/mich/
• С помощью лазера на объект проецируется полоска
• Полоска «сканирует» всю поверхность объекта
• Одна из наиболее точных схем на базе
структурированного света
39
Лазерное сканирование
Специальные приборы,
сканирующие поверхность путем
непосредственного измерения
координат каждой точки на
поверхности сцены.
Достоинства:
Не зависят от освещения
Скорость >10 000 точек/сек
Сканируют сцены разного
размера
Высокая точность
Недостатки
Высокая цена
40
Совмещение облаков точек
• С каждой точки зрения получается карта глубины объекта
• Модель только видимой части поверхности!
• Карта глубины – облако точек
• Для построения всей модели объекта необходимо
• Объединить карты глубины в общую модель
• Построить сеточную модель
• Вычислить текстуру
15.05.2008
41
Два подхода к построению модели
• Первый подход
• Совмещение карт глубины в одно большое облако точек
• Построение сеточной модели по облаку
• Второй подход
• Построение сеток для каждой карты глубины
• Совмещение сеток в одну большую сеточную модель
15.05.2008
http://courses.graphicon.ru
42
Совмещение облаков точек
• Пусть взаимное расположение карт глубины
неизвестно
• Если известны соответствия точек, тогда можно
совместить карты глубины
• Вычисление относительного поворота и сдвига
• Кватернионы!
15.05.2008
http://courses.graphicon.ru
43
Совмещение облаков точек
Если нет известных соответствий?
Предположение
• Пусть ближайшие точки соответствуют друг другу
• Вычислить наилучшее преобразование
15.05.2008
http://courses.graphicon.ru
44
Совмещение облаков точек
… повторяем процесс до тех пор, пока облака не
совместятся
• Iterated Closest Points (ICP)
Сходится, если начальное положение достаточно
близко к истинному результату
15.05.2008
http://courses.graphicon.ru
45
Совмещение облаков точек
Недостатки
• Требуется хорошее начальное приближение
• Очень долго искать ближайшую точку
• Выбросы (ошибки сканирования)
• Существуют различные подходы к ускорению
алгоритма
Хороший обзор методов ускорения:
http://www.cs.princeton.edu/~smr/papers/fasticp/
15.05.2008
http://courses.graphicon.ru
46
Поиск начального приближения
• Если известно положение всех
исходных камер
–
Элементарно!
• Точное измерение положения
камер специальными устройствами
• Специальные контрастные метки
или шаблоны
• «Общие подходы» - исследуются в настоящий момент
• Поиск и сопоставление «характерных особенностей» в
картах глубины
15.05.2008
http://courses.graphicon.ru
47
Построение сеточной модели
J. C. Carr et al. Reconstruction and Representation of 3D Objects
with Radial Basis Functions, Siggraph 2001
15.05.2008
http://courses.graphicon.ru
48
Триангуляция карты глубины
•
•
•
•
Каждому пикселю изображения сопоставляется вершина
Соседние вершины объединяются
Глубина вершины берется из карты глубины
Слишком узкие и наклоненные треугольники отбрасываются
15.05.2008
http://courses.graphicon.ru
49
Пример
Текстурированная по одной карте глубины сетка
15.05.2008
http://courses.graphicon.ru
50
Объединение сеток
• Воксельный подход
• Пространство разбивается на
воксели
• Все сетки помещаются в
воксельное пространство
• Если несколько сеток
попадают в один воксель –
они объединяются
15.05.2008
http://courses.graphicon.ru
51
Текстурирование
Входные данные:
• Трехмерная полигональная
модель
• Набор изображений с
калиброванных камер
Выходные данные
• Текстурированная модель
• Изображение-текстура
• Каждой вершине назначаются
текстурные координаты
15.05.2008
http://courses.graphicon.ru
52
Модели, полученные лазерным сканером
15.05.2008
The Digital Michelangelo Project, Levoy et al.
53
Модели, полученные лазерным сканером
15.05.2008
The Digital Michelangelo Project, Levoy et al.
54
Модели, полученные лазерным сканером
15.05.2008
The Digital Michelangelo Project, Levoy et al.
55
Модели, полученные лазерным сканером
15.05.2008
The Digital Michelangelo Project, Levoy et al.
56
Модели, полученные лазерным сканером
15.05.2008
The Digital Michelangelo Project, Levoy et al.
57
Движущиеся объекты
15.05.2008
http://courses.graphicon.ru
58
Пространственно-временное стерео
Черно-белые камеры
Цветные камеры
Видео-проекторы
15.05.2008
http://courses.graphicon.ru
59
15.05.2008
http://courses.graphicon.ru
60
время
15.05.2008
http://courses.graphicon.ru
61
время
поверхность
62
время
63
время
стерео
64
время
стерео
Активное стерео
65
время
стерео
Активное стерео
«spacetime» стерео
время
движение
time=1
67
время
движение
time=2
68
время
движение
time=3
69
время
движение
time=4
70
время
движение
time=5
71
время
движение
time
Преимущества
• разрешение
• стабильность
во времени 72
Пример стерео-реконструкции
Исходные видео-потоки
15.05.2008
http://courses.graphicon.ru
Реконструкция
73
Пример стерео-реконструкции
Исходные видео-потоки
15.05.2008
http://courses.graphicon.ru
Реконструкция
74
Объемное стерео
Объем сцены
V
Калиброванные
изображения
Цель::
Цель
Определить «занятость» и «цвет» точек в V
http://courses.graphicon.ru
75
Дискретный алгоритм: Расскраска вокселей
Дискретизированный
Воксельный
объем
Калиброванные
изображения
Цель:
Назначить цвет и прозрачность каждому вокселю в V
так, чтобы он был согласован по цветам с изображениями
15.05.2008
http://courses.graphicon.ru
76
Фото-согласование
Условие согласования по цветам (фото-согласование)
- Воксель согласован по цвету, если он виден на всех
изображениях под одним цветом
?
15.05.2008
http://courses.graphicon.ru
77
Согласованные по цветам сцены
Дискретизированный
Воксельный
объем
N 3 вокселей
C цветов
Истинная
сцена
15.05.2008
Фото--согласованные
Фото
сцены
3
N
Все сцены (C )
78
Алгоритмы раскраски вокселей
1. Цветов=2 (Силуэты)
•
Пересечение объемов
2. Кол-во цветов не ограничено
•
ограничение на точки обзора
3. Общий случай
15.05.2008
http://courses.graphicon.ru
79
Реконструкция по силуэтам (Цветов 2)
Бинарные
изображения
Подход
• Построить конус видимости по каждому силуэту
• Пересечь конусы видимости
15.05.2008
http://courses.graphicon.ru
80
Пересечение объемов
Результат содержит исходную сцену
• В общем случае не совпадает с исходной сценой
• В пределе (по всевозможным изображениям) результат называется
видимой оболочкой
15.05.2008
http://courses.graphicon.ru
81
Воксельный алгоритм пересечения объемов
• Раскрасим воксель черным, если он проецируется внутрь
силуэта на каждом изображении
• Удалим воксель, если он попадает вне силуэта хотя бы на
1-м изображении
http://courses.graphicon.ru
82
Свойства пересечения объемов
Преимущества
• Легок в реализации
• Быстрый
• Можно ускорить с помощью окто-деревьев
Недостатки
• Невозможно моделировать полости объекта
• Реконструкция не согласована по цветам
• Необходимо определить силуэты объекта
15.05.2008
http://courses.graphicon.ru
83
Алгоритмы раскраски вокселей
1. Цветов=2 (Силуэты)
•
Пересечение объемов
2. Кол-во цветов не ограничено
•
ограничение на точки обзора
3. Общий случай
15.05.2008
http://courses.graphicon.ru
84
Раскраска вокселей
1. Выбрать воксель
2. Спроецировать и сравнить
3. Раскрасить, если согласован
(разница меньше порога)
Проблема видимости:
На каких изображениях воксель виден?
85
Упорядоченный обход по глубине
Слои
Обход
сцены
Аналогично расчету видимости в визуализации!
• Воксели на следующих плоскостях могут быть
закрыты только вокселями предыдущих плоскостей
86
Порядок обхода для панорам
• Камеры направленные в разные стороны
• Плоский порядок обхода по глубине не подходит
15.05.2008
http://courses.graphicon.ru
87
Порядок обхода для панорам
Слои расходятся по направлению «от центра» 88
Порядок обхода для панорам
Слои
направлению «от центра» 89
15.05.2008расходятся по
http://courses.graphicon.ru
Порядок обхода для панорам
Слои
направлению «от центра» 90
15.05.2008расходятся по
http://courses.graphicon.ru
Возможные конфигурации камер
Ограничение
• Сцена расположена вне выпуклой оболочки камеры
Камеры направлены
внутрь
Камеры направлены
вовне
Камеры выше сцены
Камеры внутри сцены
15.05.2008
http://courses.graphicon.ru
91
Получение калиброванных изображений
Динозавр
Поворотный стол
360°(21 фотка)
15.05.2008
http://courses.graphicon.ru
Цветок
92
Раскраска вокселей
Динозавр
Цветов
70 K вокселей раскрашено
72 K вокселей раскрашено
7.6 M вокселей проверено
7.6 M вокселей проверено
7 мин вычислений
7
мин
вычислений
15.05.2008
http://courses.graphicon.ru на 250MHz SGI
93
на 250MHz SGI
Ограничения подхода
Может не существовать порядка обхода вокселей по
глубине для всех изображений!
p
q
Требуется более общий алгоритм
• Без ограничений на положение камеры
• Без ограничений на топологию сцены
15.05.2008
http://courses.graphicon.ru
94
Алгоритмы раскраски вокселей
1. Цветов=2 (Силуэты)
•
Пересечение объемов
2. Кол-во цветов не ограничено
•
ограничение на точки обзора
3. Общий случай
• Space carving [Kutulakos & Seitz 98]
15.05.2008
http://courses.graphicon.ru
95
Алгоритм Space Carving
Изображение 1
Изображение N
…...
•
•
•
•
•
Инициализация объема V содержащего в себе сцену
Выбрать любой воксель на текущей поверхности
Спроецировать на все видимые изображения
Удалить, если он не согласован по цветам
Повторить до сходимости
96
Фотооболочка
V
V
Истинная сцена
Фотооболочка
Фотооболочка это объединение всех фото-согласованных сцен в V
• Согласованная по цветам реконструкция сцены
• Наименьшая фото-согласованная реконструкция
15.05.2008
http://courses.graphicon.ru
97
Алгоритм Space Carving
Базовый алгоритм неудобен
• Сложная процедура обхода
Многопроходное «заметание» плоскостей
• «Эффективный», можно использовать алгоритмы
наложения текстуры
• Быстро сходится
15.05.2008
http://courses.graphicon.ru
98
«Заметание плоскости»
• Рассматривает воксели на 1-ой плоскости
• Рассматриваем только камеры по одну сторону от
плоскости
15.05.2008
http://courses.graphicon.ru
99
«Заметание плоскости»
• Берем пересечение плоскости П и текущей модели V
• Для каждого вокселя v из пересечения
• Проецируем его на изображения
• Если соответствующие пиксели не помечены
– Проверяем фотосогласованность
» Если не согласован – удаляем
» Если согласован – помечаем пиксель
100
«Заметание плоскости»
• Двигаем плоскость вдоль объема
• Постепенно добавляем новые камеры
• Можем проецировать всю плоскость целиком
• Используя GPU или просто визуализируя плоскость с текстурой
15.05.2008
http://courses.graphicon.ru
101
Многопроходное заметание плоскостей
•
•
15.05.2008
«Заметаем» плоскости в каждом из 6и основных
направлений
Рассматриваем камеры, лежащие по одну сторону от
плоскости
True Scene
http://courses.graphicon.ru
Reconstruction
102
Многопроходное заметание плоскостей
•
•
15.05.2008
«Заметаем» плоскости в каждом из 6и основных
направлений
Рассматриваем камеры, лежащие по одну сторону от
плоскости
http://courses.graphicon.ru
103
Многопроходное заметание плоскостей
•
•
15.05.2008
«Заметаем» плоскости в каждом из 6и основных
направлений
Рассматриваем камеры, лежащие по одну сторону от
плоскости
http://courses.graphicon.ru
104
Многопроходное заметание плоскостей
•
•
15.05.2008
«Заметаем» плоскости в каждом из 6и основных
направлений
Рассматриваем камеры, лежащие по одну сторону от
плоскости
http://courses.graphicon.ru
105
Многопроходное заметание плоскостей
•
•
15.05.2008
«Заметаем» плоскости в каждом из 6и основных
направлений
Рассматриваем камеры, лежащие по одну сторону от
плоскости
http://courses.graphicon.ru
106
Многопроходное заметание плоскостей
• После заметания во всех 6-и направлениях
• Проверяем воксели, согласованность которых
проверялась более чем на 1-м проходе
• Проверяем их фотосогласование по всем изображениям,
использовавшихся хотя бы на 1-м проходе
• Если хотя бы 1 воксель дополнительный был
удален – повторяем процесс с начала
15.05.2008
http://courses.graphicon.ru
107
Результаты
Изображение (1 of 45)
Реконструкция
108
Реконструкция
Реконструкция
Недостатки методов
• Требуется постоянная освещенность
• Проекция вокселя – не пиксель
• Как ее правильно считать?
• Сложно вычислить само согласование цветов
15.05.2008
http://courses.graphicon.ru
109
Download