Стерео-реконструкция На прошлой лекции • Свойства и параметры камеры • Модель линзы, фокусировка, Zoom • Геометрическая модель камеры • Внутренняя и внешняя матрицы калибровки • Полная матрица проекции • Калибровка камеры • Гомография План лекции • • • • • Введение в стерео реконструкцию Пассивное стерео Активное стерео Объемное стерео Лазерное сканирование Задача стерео-реконструкции • При фотографировании мы получаем 2D проекцию сцены на плоскость изображения • Нужно восстановить трехмерную форму сцены по набору изображений • В общем случае для реконструкции нужно два изображения Подсказки На какие подсказки мы опираемся при вычислении формы наблюдаемых объектов? • • • • Затенение Текстура Фокус Движение Движение • При движении камеры разные точки сцены передвигаются на разное расстояние Стерео Точка сцены изображение изображение Центр проекции • • Центр проекции Два (и более) изображения одной и той же сцены • Два изображения называются «стереопарой» • Отрезок между оптическими центрами называется стереобазой Определяются проекции одной и той же точки сцены на оба (все) изображения Стерео Основной подход - триангуляция • Точка сцена находится как пересечение двух лучей – Луч проходит через оптический центр и точку изображения • Требуется – Калибровка камеры – Пара соответствующих точек Метод средней точки • В общем случае лучи не пересекаются • Ошибки в калибровке камеры • Ошибки в измерении координат проекции • Общий перпендикуляр к лучам • Средняя точка Линейный метод A m1 P1 • Исходные данные • Калибровки камер P1 и P2 • Известные проекции m1 и m2 • Надо найти: • Точку А m2 P2 Линейная триангуляция 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 Поиск соответствующих точек • «Соответствующие точки» (point match) • Пара (и более) точек на 2-х (и более) изображениях, которые соответствуют одной и той же точке сцены • Соответствующие пиксели • Задача поиска соответствующих точек • Для пикселей изображений N*M • В общем случае N*N*M*M вариантов • Одна из самых сложных задач в области машинного зрения Эпиполярная геометрия Эпиполярная линия Эпиполярная плоскость Эпиполярная линия • Два центра проекций и точка сцены – эпиполярная плоскость • Эпиполярные линии – пересечение эпиполярной плоскости и плоскости изображений Эпиполярная геометрия Эпиполярная линия Эпиполярная плоскость Эпиполярная линия Эпиполярное ограничение • Соответствующая точка на втором изображении должна лежать на эпиполярной линии • Снижает размерность задачи по поиску соответствующих точек • Вместо 2-х мерного поиска по всему изображению • 1-мерный поиск вдоль соответствующих эпиполярных линий Общий случай • Два изображения обычно произвольным образом располагаются друг относительно друга • Эпиполярные линии проходят под произвольным углом в изображении • Поиск даже вдоль линии достаточно сложен Ректификация стерео пары • Проецируем оба изображения на одну плоскость, параллельную стереобазе • Строки изображений параллельны стереобазе • Эпиполярные линии теперь совпадают со строчками изображения • Соответствующие точки лежат на одной и той же строчке изображения! Пример ректификации стереопары Алгоритмы поиска соответствий Поиск соответствий (stereo matching) на соответствующих эпиполярных линиях • Предполагается постоянная яркость всех точек сцены • Очень сложная задача • Множество подходов и алгоритмов – Хороший обзор доступен по адресу http://www.middlebury.edu/stereo/ Подсказка «движение» X y Рассмотрим задачу на плоскости Y x z f C f baseline C’ x,y – cмещение проекции от принципиальной точки • Чем дальше точка от камеры, тем ее смещение – меньше • Разница между смещением точки на обоих кадрах называется «диспаритетом» Диспаритет 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 Результаты стерео сопоставления • Данные из университета Цукубы • Яркость пикселя задает диспаритет – Чем ярче – тем больше диспаритет – Можно записывать просто смещение Сцена Контрольные данные (ground truth) Виды стерео • Пассивное стерео • Используются обычные изображения, полученные в естественных условиях освещения • Активное стерео • Объект подсвечивается специально структурированным светом – Лазер – Проектор План лекции • • • • • Введение в стерео реконструкцию Пассивное стерео Активное стерео Объемное стерео Лазерное сканирование Простейшие стерео-алгоритм Для каждой эпиполярной линии Для каждого пикселя в левом изображении • Сопоставим его с каждым пикселем правого изображения • Выберем наиболее похожий пиксель (по некоторой мере) Развитие метода – сравнение окон (регионов) • • Окна должны быть похожими в некоторой метрике Обычно перебираются всевозможные варианты Размер окна поиска – первый параметр! W=3 Размер влияет на качество • Маленькое окно + Много шума – Высокая детализация • Большое окно + Мало шума – Низкая детализация W = 20 Результаты простейшего метода Сопоставление окон (лучший размер окна) Ground truth Существуют методы получше Лучший результат на текущий момент Ground truth Обзор и рейтинг методов: http://vision.middlebury.edu/stereo/ Основные трудности сопоставления • Цветовые несоответствия • • • • Шум Различные условия освещения Различные характеристики камер Зеркальные отражения • Плохо текстурированные области • Перекрытия • Соответствия нет вообще Основные подходы • Локальные методы • Независимое вычисление диспаритета • Стратегия Winner-take-all • Глобальные методы • Диспаритет также зависит от соседних значений • Динамическое программирования • Марковские сети Карта глубины • Матрица, в каждой ячейке которой записано расстояние от фокуса до поверхности объекта • Описывает только одну сторону поверхности модели! • Иногда называют 2.5D представлением Глубина из диспаритета Изображение (1 of 2) Карта глубины [Szeliski & Kang ‘95] 3D-вид X z x x’ f C f baseline C’ • Чем больше диспаритет – тем меньше глубина (z) Выбор стереобазы Размер пикселя Большая стереобаза Все точки из этой области проецируются в один пиксель Маленькая стереобаза Какая стереобаза будет оптимальной? • Слишком маленькая: низкая точность • Слишком большая: сложная проблема поиска соответствий Карта глубины • Низкая точность реконструкции сцены • Сцена лишь разделяется на слои по глубине Стерео по более чем 2-м кадрам Основной подход • Выбираем опорный кадр • Используем практически любой метод поиска соответствий – Заменяем меру ошибки сопоставления 2-х кадров на меру по всем кадрам Ограничения • Должны выбирать опорный кадр • Проблема видимости Проблема видимости (visibility) Какие точки сцены видны на каких изображениях? Известная сцена Неизвестная сцена Прямая задача Обратная задача Известная сцена Известные изображения Стерео по более чем 2-м кадрам • Невозможно сразу определить, виден пиксель или нет • Приходится использовать оценку «достоверности» соответствия точек • Порог на «похожесть» окон – Если наиболее похожие пикселы слишком непохожи – отбрасываем соответствие • Порог на изменение положения точки – Если при добавлении нового кадра координаты точки слишком сильно изменяются – отбрасываем соответствие • Специальные фильтры (например, фильтр Кальмана ) Стерео по более чем 2-м кадрам • Pk – опорный кадр, P(k+1), Pn – используются для уточнения Стерео по более чем 2-м кадрам • Pk – опорный кадр • При использовании кадра P(k+2) смещение выходит за порог Общая схема алгоритма Этапы • • • • Откалибровать камеры Ректифицировать изображения Вычислить диспаритет (стерео-сопоставление) Оценить глубину Что вызывает ошибки? Ошибки калибровки камеры Низкое разрешение изображений Перекрытия Нарушения предположения о постоянной яркости пикселей (отражения) • Движущиеся объекты • Области изображения с низким контрастом • • • • Стерео в реальном времени Робот «Кочевник» ищет метиориты в Антарктиде http://www.frc.ri.cmu.edu/projects/meteorobot/index.html Стерео используется для навигации роботов • Существует несколько программных реализаций стереореконструкции в реальном времени (опираются на простейший перебор) План лекции • • • • • Введение в стерео реконструкцию Пассивное стерео Активное стерео Объемное стерео Лазерное сканирование Активное стерео (структурированный свет) Камера 1 Проектор Камера 2 С помощью проектора специальный шаблон проецируется на объект («структурированный свет») • Это упрощает проблему поиска соответствий Движущиеся объекты Пространственно-временное стерео Черно-белые камеры Цветные камеры Видео-проекторы время время поверхность время время стерео время стерео Активное стерео время стерео Активное стерео «spacetime» стерео время движение time=1 время движение time=2 время движение time=3 время движение time=4 время движение time=5 время движение Преимущества • разрешение • стабильность во времени time Пример стерео-реконструкции Исходные видео-потоки Реконструкция Пример стерео-реконструкции Исходные видео-потоки Реконструкция План лекции • • • • • Введение в стерео реконструкцию Пассивное стерео Активное стерео Объемное стерео Лазерное сканирование Подходы к стерео-реконструкции • Прямой подход (активное и пассивное стерео) • Находим все возможные пары соответствующих точек • Для каждой пары находим 3D точку • Обратный подход (объемное стерео) • Все наоборот! Объемное стерео Объем сцены V Калиброванные изображения Цель:: Цель Определить «занятость» и «цвет» точек в V Дискретный алгоритм: Расскраска вокселей Дискретизированный Воксельный объем Калиброванные изображения Цель: Назначить цвет и прозрачность каждому вокселю в V так, чтобы он был согласован по цветам с изображениями Фото-согласование Условие согласования по цветам (фото-согласование) - Воксель согласован по цвету, если он виден на всех изображениях под одним цветом ? Согласованные по цветам сцены Дискретизированный Воксельный объем N 3 вокселей C цветов Истинная сцена Фото--согласованные Фото сцены 3 N Все сцены (C ) Алгоритмы раскраски вокселей 1. Цветов=2 (Силуэты) • Пересечение объемов 2. Кол-во цветов не ограничено • ограничение на точки обзора 3. Общий случай Реконструкция по силуэтам (Цветов 2) Бинарные изображения Подход • Построить конус видимости по каждому силуэту • Пересечь конусы видимости Пересечение объемов Результат содержит исходную сцену • В общем случае не совпадает с исходной сценой • В пределе (по всевозможным изображениям) результат называется видимой оболочкой Воксельный алгоритм пересечения объемов • Раскрасим воксель черным, если он проецируется внутрь силуэта на каждом изображении • Удалим воксель, если он попадает вне силуэта хотя бы на 1-м изображении Свойства пересечения объемов Преимущества • Легок в реализации • Быстрый • Можно ускорить с помощью окто-деревьев Недостатки • Невозможно моделировать полости объекта • Реконструкция не согласована по цветам • Необходимо определить силуэты объекта Алгоритмы раскраски вокселей 1. Цветов=2 (Силуэты) • Пересечение объемов 2. Кол-во цветов не ограничено • ограничение на точки обзора 3. Общий случай Раскраска вокселей 1. Выбрать воксель 2. Спроецировать и сравнить 3. Раскрасить, если согласован (разница меньше порога) Проблема видимости: На каких изображениях воксель виден? Упорядоченный обход по глубине Слои Обход сцены Аналогично расчету видимости в визуализации! • Воксели на следующих плоскостях могут быть закрыты только вокселями предыдущих плоскостей Порядок обхода для панорам • Камеры направленные в разные стороны • Плоский порядок обхода по глубине не подходит Порядок обхода для панорам Слои расходятся по направлению «от центра» Порядок обхода для панорам Слои расходятся по направлению «от центра» Порядок обхода для панорам Слои расходятся по направлению «от центра» Возможные конфигурации камер Ограничение • Сцена расположена вне выпуклой оболочки камеры Камеры направлены внутрь Камеры направлены вовне Камеры выше сцены Камеры внутри сцены Получение калиброванных изображений Динозавр Поворотный стол 360°(21 фотка) Цветок Раскраска вокселей Динозавр Цветов 72 K вокселей раскрашено 7.6 M вокселей проверено 7 мин вычислений на 250MHz SGI 70 K вокселей раскрашено 7.6 M вокселей проверено 7 мин вычислений на 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) Реконструкция Реконструкция Реконструкция Недостатки методов • Требуется постоянная освещенность • Проекция вокселя – не пиксель • Как ее правильно считать? • Сложно вычислить само согласование цветов План лекции • • • • • Введение в стерео реконструкцию Пассивное стерео Активное стерео Объемное стерео Лазерное сканирование Методы сканирования • Подсветка лазерным лучом • Прямое измерение глубины • Лазерные сканеры • Time-Of-Flight камеры Лазерное сканирование Объект Лазер Камера Лазер проецирует на объект полоску света (или точку) Лазерное сканирование Объект Лазер (x,y) Камера • Глубину каждой точки линии можно вычислить с помощью триангуляции • Как пересечение луча и плоскости Лазерное сканирование • От 2D изображения к трехмерной форме! • http://www.vision.caltech.edu/bouguetj/ICCV98/index.html Лазерное сканирование Object Direction of travel Laser sheet CCD image plane Cylindrical lens Laser CCD Digital Michelangelo Project http://graphics.stanford.edu/projects/mich/ • С помощью лазера на объект проецируется полоска • Полоска «сканирует» всю поверхность объекта • Одна из наиболее точных схем на базе структурированного света Совмещение облаков точек • С каждой точки зрения получается карта глубины объекта • Модель только видимой части поверхности! • Карта глубины – облако точек • Для построения всей модели объекта необходимо • Объединить карты глубины в общую модель • Построить сеточную модель • Вычислить текстуру Два подхода к построению модели • Первый подход • Совмещение карт глубины в одно большое облако точек • Построение сеточной модели по облаку • Второй подход • Построение сеток для каждой карты глубины • Совмещение сеток в одну большую сеточную модель Совмещение облаков точек • Пусть взаимное расположение карт глубины неизвестно • Если известны соответствия точек, тогда можно совместить карты глубины • Вычисление относительного поворота и сдвига • Кватернионы! Совмещение облаков точек Если нет известных соответствий? Используем алгоритм «Iterated Closest Points» (ICP) Предположение • Пусть ближайшие точки соответствуют друг другу • Вычислить наилучшее преобразование Совмещение облаков точек … повторяем процесс до тех пор, пока облака не совместятся Сходится, если начальное положение достаточно близко к истинному результату Совмещение облаков точек Недостатки • Требуется хорошее начальное приближение • Очень долго искать ближайшую точку • Выбросы (ошибки сканирования) • Существуют различные подходы к ускорению алгоритма Хороший обзор методов ускорения: http://www.cs.princeton.edu/~smr/papers/fasticp/ Поиск начального приближения • Если известно положение всех исходных камер – Элементарно! • Точное измерение положения камер специальными устройствами • Специальные контрастные метки или шаблоны Построение сеточной модели J. C. Carr et al. Reconstruction and Representation of 3D Objects with Radial Basis Functions, Siggraph 2001 Триангуляция карты глубины • • • • Каждому пикселю изображения сопоставляется вершина Соседние вершины объединяются Глубина вершины берется из карты глубины Слишком узкие и наклоненные треугольники отбрасываются Пример Текстурированная по одной карте глубины сетка Объединение сеток • Воксельный подход • Пространство разбивается на воксели • Все сетки помещаются в воксельное пространство • Если несколько сеток попадают в один воксель – они объединяются Текстурирование Входные данные: • Трехмерная полигональная модель • Набор изображений с калиброванных камер Выходные данные • Текстурированная модель • Изображение-текстура • Каждой вершине назначаются текстурные координаты Модели, полученные лазерным сканером The Digital Michelangelo Project, Levoy et al. Модели, полученные лазерным сканером The Digital Michelangelo Project, Levoy et al. Модели, полученные лазерным сканером The Digital Michelangelo Project, Levoy et al. Модели, полученные лазерным сканером The Digital Michelangelo Project, Levoy et al. Модели, полученные лазерным сканером The Digital Michelangelo Project, Levoy et al. Лазерные сканеры Достоинства: • Непосредственное измерение 3D модели • Высокая точность/надежность Недостатки: • Измеряют только форму объекта без цвета • Скорость работы ниже, чем у фотографирования Как устроен сканер ? Сканер Луч Объект • Измерение времени отражения лазерного луча t • Вычисление расстояния: D=V·t V – скорость света D – расстояние от сканера до объекта Пример Видео Пример Видео Time-Of-Flight камеры • Измерение глубины выполняется одновременно для каждого пикселя матрицы • Сейчас имеют небольшое разрешение • Порядка 100х100 пикселей Пример Видео Еще один пример Видео Time-Of-Flight камеры • Области применения: • • • • Для управления компьютером Компьютерные игры Движение роботов И др. На следующих лекциях • Single-view reconstruction • Линии схода и их вычисление • Интерактивные методы реконструкции