View
16
Download
0
Category
Preview:
Citation preview
Оглавление
1 Введение
2 Изображение и пространство
3 Игры с камерой
4 Пиксели и воксели
5 Неоднородное пространство
6 Заключение
Изображение и пространство
2 Изображение и пространствоМоделируем камеруПозиционируем камеруОт 2D к 3D
Моделируем камеру
Матрица проекции:⎡⎣q′xq′y1
⎤⎦ ≡ K
⎡⎣qxqyqz
⎤⎦ где K =
⎡⎣fx s c ′x0 fy c ′y0 0 1
⎤⎦ (1)
Обратная проекция:
⎡⎣d ′x
d ′y
d ′z
⎤⎦ ≡ K−1
⎡⎣q′xq′y1
⎤⎦ (2)
⎡⎣dxdydz
⎤⎦ =1
||(d ′x , d
′y , d
′z)
T ||
⎡⎣d ′x
d ′y
d ′z
⎤⎦ (3)
Моделируем камеру
Способы убрать оптические искажения линзы:
Работать с выправленными изображениями
Таблицей соответствий
Моделировать их полиномиальной функцией
. . .
Позиционируем камеру
Определяем две системы координат:
{xw , yw , zw} - система координат мира
{xc , yc , zc} - система координат камеры
Разница между ними определяется вектором и матрицей:
twc - вектор сдвига
Rwc - матрица поворота
Позиция камеры: {Rwc , twc }
Позиционируем камеру
Уравнение проекции:
⎡⎣q′xq′y1
⎤⎦ ≡ KRwTc [I3| − twc ]
⎡⎢⎢⎣qxqyqz1
⎤⎥⎥⎦ (4)
Обратная проекция: ⎡⎣d ′x
d ′y
d ′z
⎤⎦ ≡ RwTc K−1
⎡⎣q′xq′y1
⎤⎦ (5)
Алгоритм SfM
Цель: найти относительные позиции камерфотографировавших каждое изображение.
В этой секции кратко описывается алгоритм:Etienne Mouragnon, Maxime Lhuillier, Michel Dhome, FabienDekeyser and P. Sayd. Generic and real-time structure from motionusing local bundle adjustment. In Image and Vision Computing(IVC), vol. 27(8), pp. 1178–1193, july 2009.
Интересные точки
Принцип работы:
Нет изменений вовсех направлениях:плоский регион
Изменения в одномнаправлении: грань
Изменения во всехнаправлениях: угол
Итеративное обновление
Поддерживаем в памяти:
Позиции камер
Облако точек
Для каждого нового изображения (кроме первых трёх):
1 Рассчитываем позицию камеры
2 Рассчитываем координаты новых точек
Позиция камеры
1 Мы знаем 3D координаты некоторых
2 Мы знаем их 2D координаты в текущем изображении
3 Трех достаточно что-бы рассчитать позицию камеры
⎡⎣q′xq′y1
⎤⎦ ≡ KRwTc [I3| − twc ]
⎡⎢⎢⎣qxqyqz1
⎤⎥⎥⎦ (6)
Добавим надёжность
Используем RANSAC:
Выбираем 3 случайных точки
Рассчитываем позицию камеры
Рассчитываем ошибку для всех 3D точек
Их сумма в квадрате очки этого результата
Повторяем N раз
Оставляем результат с наименьшим количеством очков
Считаем точки и оптимизируем
Считаем координаты 3D точек:
Рассчитываем 3D координаты точек видимых какминимум в 3 кадрах
Используем третий кадр для проверки
Оптимизируем результат при помощи алгоритмаLevenberg-Maquard:
Улучшаем позицию 3 последних камер
Улучшаем точки видимые в 10 последних кадрах
Инициализация процесса
Мы работаем с 3 первыми кадрами
Если мы знаем соответствия между 5 точками в двухкадрах:
Мы можем рассчитать позиции камер
И 3D координаты этих точек
Мы рассчитываем координаты первой и третьей камеры
Потом мы рассчитываем координаты второй
Используем RANSAC для надёжности
Пиксели и воксели
4 Пиксели и вокселиМетод и его ограниченияРазделяем и сортируемКрасим вокселиРезультатыПлюсы и минусы
Voxel coloring
Рассмотрим метод описанный вSteven M. Seitz, Charles R. Dyer. Photorealistic scenereconstruction by voxel coloring. In International Journal ofComputer Vision (IJCV), vol. 35(2), pp. 151–173, november 1999
Сортируем воксели
Сортируем воксели по дальности от камеры:
1111111111
2222222222
3333333333
4444444444
5555555555
6666666666
7777777777
8888888888
9999999999
10101010101010101010
Красим воксели
Обрабатываем слой за слоем:
Для каждого вокселя:Для каждой камеры Ci :
Проецируем воксель в камеру
Проверяем что луч от вокселя к камере не пересекает
заполненных вокселей
Запоминаем цвет ci соответствующего пикселя
Считаем корреляцию между цветами c1,. . . ,cn:Если корреляция > заданного значения:
Помечаем воксель как заполненный
Цвет вокселя, среднее между c1,. . . ,cn
Если меньше: воксель отмечается как пустой
Плюсы и минусы
Плюсы:
Простота реализации
Хорошие результаты
Минусы:
Объект должен быть цветастым
Большое количество вычислений
Огромное потребление памяти с ростом размера модели
Неоднородное пространство
5 Неоднородное пространствоОписание методаДелим пространствоЭкстрагируем поверхностьРезультатыПлюсы и минусы
Space carving
Рассмотрим метод описанный вMaxime Lhuillier, Shuda Yu. Manifold surface reconstruction of anenvironment from sparse Structure-from-Motion data. In ComputerVision and Image Understanding (CVIU), vol. 117(11), pp.1628–1644, november 2013.
На вход он принимает позиции камер и облако точек и связимежду ними
Делим пространство
Этап 2: Сортируем тетраэдры на пустые и полные
00
2
0
20
2
32
0
2
00
0
0
0
0
c1
c2
Экстрагируем поверхность
Если использовать границу между свободным и заполненнымпространством из предыдущего этапа, то поверхность будетнекорректна.
Корректно Артефакт
Экстрагируем поверхность
Этап 4: Наращивание пакетами
Мы хотим добавить два оставшихся тетраэдра
Если добавить один из двух, получим артефактНо можно добавить сразу два
Экстрагируем поверхность
Этап 4: Наращивание пакетами
Мы хотим добавить два оставшихся тетраэдра
Если добавить один из двух, получим артефакт
Но можно добавить сразу два
Экстрагируем поверхность
Этап 4: Наращивание пакетами
Мы хотим добавить два оставшихся тетраэдраЕсли добавить один из двух, получим артефакт
Но можно добавить сразу два
Экстрагируем поверхность
Резюме алгоритма:
1 Добавляем тетраэдры по одному, пока возможно
2 Для каждой вершины поверхности:
1 Пытаемся добавить тетраэдры содержащие вершину
одновременно
2 Если получилось, останавливаем цикл
3 Если пустое пространство увеличилось, goto 1
Плюсы и минусы
Плюсы:
Быстрота вычислений
Возможность работать с большими пространствами
Минусы:
Визуальный результат среднего качества
Recommended