590 likes | 828 Views
Получение и фильтрация карт глубин. Дмитрий Ватолин Video Group CS MSU Graphics & Media Lab. Современный 3 D- контент Карты глубин. Многокамерные системы – слишком дорогостоящий инструмент создания 3 D Альтернатива – создание 3 D- контента из 2 D
E N D
Получениеи фильтрация карт глубин Дмитрий Ватолин Video GroupCS MSU Graphics & Media Lab
Современный 3D-контентКарты глубин • Многокамерные системы – слишком дорогостоящий инструмент создания 3D • Альтернатива – создание 3D-контента из 2D • Основной шаг – вычисление пространственного представления сцены • Для этого строятся карты глубины кадров
Содержание • Способы получения карт глубины • Карты глубин (задание) • Фильтрация карт глубины
Карты глубинСпособы получения Ручная разметка кадров Исходный рисунок - http://retouchpro.com
Карты глубинСпособы получения Автоматические способы с использованием depth cues CS MSU Graphics & Media Lab (Video Group)
Карты глубинСпособы получения Автоматические способы с использованием depth cues CS MSU Graphics & Media Lab (Video Group)
Карты глубинСпособы получения Автоматические способы с использованием depth cues CS MSU Graphics & Media Lab (Video Group)
Карты глубинСпособы получения Автоматические способы с использованием сенсоров глубины http://userpage.fu-berlin.de/~latotzky/wheelchair/?p=58
Карты глубинСенсоры глубины Microsoft Kinect: • Разрешение 640×480 • Разрешение камеры глубины:320×240 • 30 fps Планируемое обновление (Kinect 2.0): • Разрешение 1920×1080 • Разрешение камеры глубины: 512×424 • 30 fps http://www.microsoft-careers.com/go/Kinect-for-Windows/308299/
Карты глубинНедостатки сенсоров глубины (1) • Отсутствие информации о глубине для некоторых точек • Случайный шум • Различие глубины для точек одного уровня • Нестабильность во времени • Сильный шум на границах объектов
Карты глубинНедостатки сенсоров глубины (2) Карта глубины Информация о глубине для красных областей отсутствует Цветное изображение M. Camplani, L. Salgado,and G. de Imágenes, “Efficient spatio-temporal hole filling strategy for Kinect depth maps,” SPIE, 2012
Карты глубинНедостатки сенсоров глубины (3) Улучшение качества карты глубины с сенсора: • Качественная обработка областей перекрытия • Фильтрация карты глубины во времени Существующие методы: • Cross-Bilateral Filtering • Weighted Mode Filtering • Graph-Based Filtering
Содержание • Способы получения карт глубины • Карты глубин (задание) • Фильтрация карт глубины
ME: Блоки 4х44 модификации кадров Исходный без изменений CS MSU Graphics & Media Lab (Video Group)
ME: Блоки 4х44 модификации кадров Сдвиг вправо на 4 пикселя CS MSU Graphics & Media Lab (Video Group)
ME: Блоки 4х44 модификации кадров Сдвиг вправо и вниз на 4 пикселя CS MSU Graphics & Media Lab (Video Group)
ME: Блоки 4х44 модификации кадров Сдвиг вниз на 4 пикселя CS MSU Graphics & Media Lab (Video Group)
ME: Блоки 4х4 • Запуск ME8х8для каждойиз модификацийкадров • Запись полученных векторовдля соответствующих блоков
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]; }
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]; }
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]; }
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]; }
ME: Блоки 4х4Результат Depth 4x4 blocks full search (0.04 fps) CS MSU Graphics & Media Lab (Video Group)
ME: Блоки 4х4Результат Original frame CS MSU Graphics & Media Lab (Video Group)
ME: Упрощение шаблона • Ограничение на движение камеры – только горизонтальное параномирование • Ограничиваем шаблон поиском по горизонтали
ME: Упрощение шаблонаРезультат Depth 4x4 blocks simple template (1.55 fps) CS MSU Graphics & Media Lab (Video Group)
ME: Упрощение шаблонаРезультат Original frame CS MSU Graphics & Media Lab (Video Group)
ME: Кандидаты • Ограничение на движение камеры – только горизонтальное параномирование • Движение равномерное поступательное – использование соседних блоков в качестве кандидатов становится эффективней
ME: КандидатыРезультат Depth 4x4 blocks candidates (2.71 fps) CS MSU Graphics & Media Lab (Video Group)
ME: КандидатыРезультат Original frame CS MSU Graphics & Media Lab (Video Group)
Содержание • Способы получения карт глубины • Карты глубин (задание) • Фильтрация карт глубины
Карты глубинФильтрация Даже при ручной разметке кадров возникают неточности карты глубины: • «Картонки» (отсутствие рельефа и объема) • Неправильные границы • Несогласованность глубины соседних кадров Burazerovic et al., “Automatic depth profiling of 2d cinema- and photographic images”, ICIP 2009
ПространственнаяВведение в линейную фильтрацию • Применение линейного оператора сверткик изображению – замена пикселя взвешенным средним по окрестности • Веса определяютядро свертки –числовую матрицу
ПространственнаяВведение в линейную фильтрацию • f – изображениеM*N, g – ядроK*L • Свертка fс помощью g– изображение (f * g):
ПространственнаяВведение в линейную фильтрацию Поведение на границе: Черный фон Зеркалирование Дублирование
ПространственнаяВведение в линейную фильтрацию Фильтр Гаусса: • Веса в ядре рассчитываютсяиз нормального распределения N(0, σ2) • Параметры фильтрации –размер ядра d,дисперсия σ2 • Эмпирически – d ~ 6σ
ПространственнаяБилатеральная фильтрация • Билатеральная – два параметра для расчета весов • Веса исходного фильтра Гаусса модифицируемс учетом цветовой разницы центрального пикселя и пикселя окрестности
ПространственнаяБилатеральная фильтрация глубины D(x, y) – глубина точки (x, y) I(x, y) – цвет точки (x, y) Ω – область ядра свертки σs – параметр пространственного усреднения σc – параметр цветового усреднения
ПространственнаяБилатеральная фильтрация глубины 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; }
ПространственнаяБилатеральная фильтрация: результат фильтрация карты глубины на основе исходного кадра Burazerovic et al., “Automatic depth profiling of 2d cinema- and photographic images”, ICIP 2009
ПространственнаяБилатеральная фильтрация • Сглаживание глубиныровных по цвету областей • Подчеркивание разницына цветовых границах Burazerovic et al., “Automatic depth profiling of 2d cinema- and photographic images”, ICIP 2009
ПространственнаяРезультаты Original CS MSU Graphics & Media Lab (Video Group)
ПространственнаяРезультаты Filtered CS MSU Graphics & Media Lab (Video Group)
ПространственнаяРезультаты Original CS MSU Graphics & Media Lab (Video Group)
ПространственнаяРезультаты Filtered CS MSU Graphics & Media Lab (Video Group)
ПространственнаяРезультаты CS MSU Graphics & Media Lab (Video Group)
ПространственнаяРезультаты Original CS MSU Graphics & Media Lab (Video Group)
ПространственнаяРезультаты Filtered CS MSU Graphics & Media Lab (Video Group)
Временная фильтрацияСхема работы Сглаживание изменения глубины во времени • Нормализация, устранение «мерцания» • Удаление «артефактов»
Временная фильтрацияSpatio-Temporal Filtering • Пиксель определяется тремя координатами –(x, y, t)положение в пространстве и времени • Рассматриваем окрестность по всем трем координатам, с учетом компенсации движения