Получение и фильтрация карт глубин Дмитрий Ватолин Video Group CS MSU Graphics & Media Lab.

Презентация:



Advertisements
Похожие презентации
1. Определить последовательность проезда перекрестка
Advertisements

Урок повторения по теме: «Сила». Задание 1 Задание 2.
Рисуем параллелепипед Известно, что параллельная проекция тетраэдра, без учета пунктирных линий, однозначно определяется заданием проекций его вершин (рис.

1 Знаток математики Тренажер Таблица умножения 2 класс Школа 21 века ®м®м.
Масштаб 1 : 5000 Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
Развивающая викторина для детей "Самый-самый " Муниципальное общеобразовательное учреждение средняя общеобразовательная школа 7 ст. Беломечётской.
Школьная форма Презентация для родительского собрания.
Ребусы Свириденковой Лизы Ученицы 6 класса «А». 10.
Типовые расчёты Растворы
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.
Таблица умножения на 8. Разработан: Бычкуновой О.В. г.Красноярск год.
Настоящее и будущее 3D Дмитрий Ватолин Благодарности Автор выражает благодарность Дмитрию Акимову, Денису Сумину и Антону Зачесову за помощь в подготовке.
Разработал: Учитель химии, биологии высшей квалификационной категории Баженов Алексей Анатольевич.
20 феврвля 2003Компьютерная графика Лекция 3 Астана 1 Цифровая обработка сигналов Лекция 3 Астана, 20 февраля 2003 Исползуются материалы из лекции А. Ван.
Тем, кто учит математику, Тем, кто учит математике, Тем, кто любит математику, Тем, кто ещё не знает, Что может полюбить математику Посвящается…
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.
Флористические оформления. Композиции до 6000 руб
дней и ночей 27 миллионов жизней советских людей 3.
1 Знаток математики Тренажер Таблица умножения 3 класс Школа России Масько Любовь Георгиевна Муниципальное общеобразовательное учреждение средняя общеобразовательная.
Транксрипт:

Получение и фильтрация карт глубин Дмитрий Ватолин Video Group CS MSU Graphics & Media Lab

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Современный 3D-контент Карты глубин Многокамерные системы – слишком дорогостоящий инструмент создания 3D Альтернатива – создание 3D-контента из 2D Основной шаг – вычисление пространственного представления сцены Для этого строятся карты глубины кадров 2

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Содержание Способы получения карт глубины Карты глубин (задание) Фильтрация карт глубины 3

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Карты глубин Способы получения Ручная разметка кадров 4 Исходный рисунок -

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Карты глубин Способы получения Автоматические способы с использованием depth cues 5 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Карты глубин Способы получения Автоматические способы с использованием depth cues 6 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Карты глубин Способы получения Автоматические способы с использованием depth cues 7 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Карты глубин Способы получения Автоматические способы с использованием сенсоров глубины 8

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Карты глубин Сенсоры глубины 9 Windows/308299/ Microsoft Kinect: Разрешение 640×480 Разрешение камеры глубины: 320× fps Планируемое обновление (Kinect 2.0): Разрешение 1920×1080 Разрешение камеры глубины: 512× fps

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Отсутствие информации о глубине для некоторых точек Случайный шум Различие глубины для точек одного уровня Нестабильность во времени Сильный шум на границах объектов 10 Карты глубин Недостатки сенсоров глубины (1)

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Карта глубины Информация о глубине для красных областей отсутствует 11 M. Camplani, L. Salgado, and G. de Imágenes, Efficient spatio- temporal hole filling strategy for Kinect depth maps, SPIE, 2012 Цветное изображение Карты глубин Недостатки сенсоров глубины (2)

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Карты глубин Недостатки сенсоров глубины (3) 12 Улучшение качества карты глубины с сенсора: Качественная обработка областей перекрытия Фильтрация карты глубины во времени Существующие методы: Cross-Bilateral Filtering Weighted Mode Filtering Graph-Based Filtering

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Содержание Способы получения карт глубины Карты глубин (задание) Фильтрация карт глубины 13

CS MSU Graphics & Media Lab (Video Group) Only for Maxus ME: Блоки 4х4 4 модификации кадров Исходный без изменений 14 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus ME: Блоки 4х4 4 модификации кадров Сдвиг вправо на 4 пикселя 15 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus ME: Блоки 4х4 4 модификации кадров Сдвиг вправо и вниз на 4 пикселя 16 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus ME: Блоки 4х4 4 модификации кадров Сдвиг вниз на 4 пикселя 17 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus ME: Блоки 4х4 Запуск ME8х8 для каждой из модификаций кадров Запись полученных векторов для соответствующих блоков 18

CS MSU Graphics & Media Lab (Video Group) Only for Maxus ME: Блоки 4х4 Алгоритм Левый верхний блок 4х4: MEFunction8x8(cur_frame, prev_frame, temp_vectors); for (each vector in temp_vectors) { MEVectors[i*2*num_blocks_4x4_hor + 2*j] = temp_vectors[i*num_blocks_8x8_hor + j]; } 19

CS MSU Graphics & Media Lab (Video Group) Only for Maxus ME: Блоки 4х4 Алгоритм Правый верхний блок 4х4: 4PixelShiftHor(cur_frame, cur_shifted); 4PixelShiftHor(prev_frame, prev_shifted); MEFunction8x8(cur_shifted, prev_shifted, temp_vectors); for (each vector in temp_vectors) { MEVectors[i*2*num_blocks_4x4_hor + 2*j + 1] = temp_vectors[i*num_blocks_8x8_hor + j]; } 20

CS MSU Graphics & Media Lab (Video Group) Only for Maxus ME: Блоки 4х4 Алгоритм Правый нижний блок 4х4: 4PixelShiftHorVert(cur_frame, cur_shifted); 4PixelShiftHorVert(prev_frame, prev_shifted); MEFunction8x8(cur_shifted, prev_shifted, temp_vectors); for (each vector in temp_vectors) { MEVectors[(i+1)*2*num_blocks_4x4_hor + 2*j + 1] = temp_vectors[i*num_blocks_8x8_hor + j]; } 21

CS MSU Graphics & Media Lab (Video Group) Only for Maxus ME: Блоки 4х4 Алгоритм Левый нижний блок 4х4: 4PixelShiftVert(cur_frame, cur_shifted); 4PixelShiftVert(prev_frame, prev_shifted); MEFunction8x8(cur_shifted, prev_shifted, temp_vectors); for (each vector in temp_vectors) { MEVectors[(i+1)*2*num_blocks_4x4_hor + 2*j] = temp_vectors[i*num_blocks_8x8_hor + j]; } 22

MEFunction8x8(cur_frame, prev_frame, temp_vectors); // without shift for (each vector in temp_vectors) MEVectors[i*2*num_blocks_4x4_hor + 2*j] = temp_vectors[i*num_blocks_8x8_hor + j]; 4PixelShiftHor(cur_frame, cur_shifted); 4PixelShiftHor(prev_frame, prev_shifted); MEFunction8x8(cur_shifted, prev_shifted, temp_vectors); // shift 4 pixels right for (each vector in temp_vectors) MEVectors[i*2*num_blocks_4x4_hor + 2*j + 1] = temp_vectors[i*num_blocks_8x8_hor + j]; 4PixelShiftHorVert(cur_frame, cur_shifted); 4PixelShiftHorVert(prev_frame, prev_shifted); MEFunction8x8(cur_shifted, prev_shifted, temp_vectors); // shift 4 pixels right-down for (each vector in temp_vectors) MEVectors[(i+1)*2*num_blocks_4x4_hor + 2*j + 1] = temp_vectors[i*num_blocks_8x8_hor + j]; 4PixelShiftVert(cur_frame, cur_shifted); 4PixelShiftVert(prev_frame, prev_shifted); MEFunction8x8(cur_shifted, prev_shifted, temp_vectors); // shift 4 pixels down for (each vector in temp_vectors) MEVectors[(i+1)*2*num_blocks_4x4_hor + 2*j] = temp_vectors[i*num_blocks_8x8_hor + j]; 23

CS MSU Graphics & Media Lab (Video Group) Only for Maxus ME: Блоки 4х4 Результат Depth 4x4 blocks full search (0.04 fps) 24 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus ME: Блоки 4х4 Результат Original frame 25 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus ME: Упрощение шаблона Ограничение на движение камеры – только горизонтальное параномирование Ограничиваем шаблон поиском по горизонтали 26

CS MSU Graphics & Media Lab (Video Group) Only for Maxus ME: Упрощение шаблона Результат Depth 4x4 blocks simple template (1.55 fps) 27 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus ME: Упрощение шаблона Результат Original frame 28 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus ME: Кандидаты Ограничение на движение камеры – только горизонтальное параномирование Движение равномерное поступательное – использование соседних блоков в качестве кандидатов становится эффективней 29

CS MSU Graphics & Media Lab (Video Group) Only for Maxus ME: Кандидаты Результат Depth 4x4 blocks candidates (2.71 fps) 30 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus ME: Кандидаты Результат Original frame 31 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Содержание Способы получения карт глубины Карты глубин (задание) Фильтрация карт глубины 32

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Карты глубин Фильтрация Даже при ручной разметке кадров возникают неточности карты глубины: «Картонки» (отсутствие рельефа и объема) Неправильные границы Несогласованность глубины соседних кадров 33 Burazerovic et al., Automatic depth profiling of 2d cinema- and photographic images, ICIP 2009

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Пространственная Введение в линейную фильтрацию 34 Применение линейного оператора свертки к изображению – замена пикселя взвешенным средним по окрестности Веса определяют ядро свертки – числовую матрицу

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Пространственная Введение в линейную фильтрацию 35 f – изображение M*N, g – ядро K*L Свертка f с помощью g – изображение ( f * g ) :

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Пространственная Введение в линейную фильтрацию 36 Поведение на границе: Черный фонЗеркалированиеДублирование

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Пространственная Введение в линейную фильтрацию 37 Фильтр Гаусса: Веса в ядре рассчитываются из нормального распределения N(0, σ 2 ) Параметры фильтрации – размер ядра d, дисперсия σ 2 Эмпирически – d ~ 6σ

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Пространственная Билатеральная фильтрация 38 Билатеральная – два параметра для расчета весов Веса исходного фильтра Гаусса модифицируем с учетом цветовой разницы центрального пикселя и пикселя окрестности

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Пространственная Билатеральная фильтрация глубины 39 D(x, y) – глубина точки (x, y) I(x, y) – цвет точки (x, y) Ω – область ядра свертки σ s – параметр пространственного усреднения σ c – параметр цветового усреднения

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Пространственная Билатеральная фильтрация глубины 40 for (each pixel in image) {sum = koef = 0; for (each neighbour_pixel in kernel window) {cur_koef = gaus_weight(cur_pixel.pos, neighbour_pixel.pos, sigma_spatial) * gaus_weight(cur_pixel.value, neighbour_pixel.value, sigma_color); sum += neighbour_pixel.value * cur_koef; koef += cur_koef; } new_pixel.value = sum / koef; }

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Пространственная Билатеральная фильтрация: результат фильтрация карты глубины на основе исходного кадра 41 Burazerovic et al., Automatic depth profiling of 2d cinema- and photographic images, ICIP 2009

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Пространственная Билатеральная фильтрация 42 Сглаживание глубины ровных по цвету областей Подчеркивание разницы на цветовых границах Burazerovic et al., Automatic depth profiling of 2d cinema- and photographic images, ICIP 2009

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Пространственная Результаты 43 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Пространственная Результаты 44 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Пространственная Результаты 45 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Пространственная Результаты 46 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Пространственная Результаты 47 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Пространственная Результаты 48 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Пространственная Результаты 49 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Временная фильтрация Схема работы 50 Сглаживание изменения глубины во времени Нормализация, устранение «мерцания» Удаление «артефактов»

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Временная фильтрация Spatio-Temporal Filtering 51 Пиксель определяется тремя координатами – (x, y, t) положение в пространстве и времени Рассматриваем окрестность по всем трем координатам, с учетом компенсации движения

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Временная фильтрация Spatio-Temporal Filtering 52 for (each pixel in cur_frame) {sum = koef = 0; for (each neighbour_pixel in kernel window) { for (each neighbour_frame in temporal window) { cur_koef = gaus_weight(cur_pixel.pos, neighbour_pixel.pos, sigma_spatial) * gaus_weight(cur_pixel.value, neighbour_pixel.value, sigma_color) * gaus_weight(cur_frame.count, neighbour_frame.count, sigma_temporal); sum += neighbour_pixel.value * cur_koef; koef += cur_koef; } new_pixel.value = sum / koef; }

CS MSU Graphics & Media Lab (Video Group) Only for Maxus Временная фильтрация Результаты 53 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Временная фильтрация Сравнение 54 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus Временная фильтрация Сравнение 55 CS MSU Graphics & Media Lab (Video Group)

Only for Maxus 56 CS MSU Graphics & Media Lab (Video Group) Временная фильтрация Сравнение

CS MSU Graphics & Media Lab (Video Group) Only for Maxus 57 CS MSU Graphics & Media Lab (Video Group) Временная фильтрация Сравнение

CS MSU Graphics & Media Lab (Video Group) Only for Maxus 58 CS MSU Graphics & Media Lab (Video Group) Временная фильтрация Сравнение

КОНЕЦ ЛЕКЦИИ 4.