Получение и фильтрация карт глубин
description
Transcript of Получение и фильтрация карт глубин
Получение и фильтрация карт
глубин
Дмитрий Ватолин
Video Group
CS MSU Graphics & Media Lab
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Современный 3D-контентКарты глубин
Многокамерные системы – слишком дорогостоящий инструмент создания 3D
Альтернатива – создание 3D-контента из 2D
Основной шаг – вычисление пространственного представления сцены
Для этого строятся карты глубины кадров
2
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Содержание
Способы получения карт глубины Карты глубин (задание) Фильтрация карт глубины
3
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Карты глубин
Способы получения
Ручная разметка кадров
4Исходный рисунок - http://retouchpro.com
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Карты глубин
Способы получения
Автоматические способы с использованием depth cues
5CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Карты глубин
Способы получения
Автоматические способы с использованием depth cues
6CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Карты глубин
Способы получения
Автоматические способы с использованием depth cues
7CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Карты глубин
Способы получения
Автоматические способы с использованием сенсоров глубины
8http://userpage.fu-berlin.de/~latotzky/wheelchair/?p=58
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Карты глубин
Сенсоры глубины
9http://www.microsoft-careers.com/go/Kinect-for-Windows/308299/
Microsoft Kinect: Разрешение 640×480 Разрешение камеры глубины:
320×240 30 fps
Планируемое обновление (Kinect 2.0): Разрешение 1920×1080 Разрешение камеры глубины: 512×424 30 fps
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Отсутствие информации о глубине для некоторых точек
Случайный шум Различие глубины для точек одного
уровня Нестабильность во времени Сильный шум на границах объектов
10
Карты глубинНедостатки сенсоров глубины (1)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Карта глубиныИнформация о глубине для
красных областей отсутствует
11
M. Camplani, L. Salgado, and G. de Imagenes, “Efficient spatio-temporal hole filling strategy for Kinect depth maps,” SPIE, 2012
Цветное изображение
Карты глубинНедостатки сенсоров глубины (2)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Карты глубин
Недостатки сенсоров глубины (3)
12
Улучшение качества карты глубины с сенсора:
Качественная обработка областей перекрытия
Фильтрация карты глубины во времени
Существующие методы: Cross-Bilateral Filtering Weighted Mode Filtering Graph-Based Filtering
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Содержание
Способы получения карт глубины Карты глубин (задание) Фильтрация карт глубины
13
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus ME: Блоки 4х4
4 модификации кадров
Исходный без изменений14
CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus ME: Блоки 4х4
4 модификации кадров
Сдвиг вправо на 4 пикселя15
CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus ME: Блоки 4х4
4 модификации кадров
Сдвиг вправо и вниз на 4 пикселя16
CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus ME: Блоки 4х4
4 модификации кадров
Сдвиг вниз на 4 пикселя17
CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
ME: Блоки 4х4
Запуск ME8х8для каждойиз модификацийкадров
Запись полученных векторовдля соответствующих блоков
18
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
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) www.compression.ru/video/
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) www.compression.ru/video/
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) www.compression.ru/video/
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
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus ME: Блоки 4х4
Результат
Depth 4x4 blocks full search (0.04 fps)24
CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus ME: Блоки 4х4
Результат
Original frame25
CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
ME: Упрощение шаблона
Ограничение на движение камеры – только горизонтальное параномирование
Ограничиваем шаблон поиском по горизонтали
26
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus ME: Упрощение шаблона
Результат
Depth 4x4 blocks simple template (1.55 fps)27
CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus ME: Упрощение шаблона
Результат
Original frame28
CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
ME: Кандидаты
Ограничение на движение камеры – только горизонтальное параномирование
Движение равномерное поступательное – использование соседних блоков в качестве кандидатов становится эффективней
29
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus ME: Кандидаты
Результат
Depth 4x4 blocks candidates (2.71 fps)30
CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus ME: Кандидаты
Результат
Original frame31
CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
Содержание
Способы получения карт глубины Карты глубин (задание) Фильтрация карт глубины
32
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Карты глубин
Фильтрация
Даже при ручной разметке кадров возникают неточности карты глубины: «Картонки» (отсутствие
рельефа и объема) Неправильные границы Несогласованность
глубины соседних кадров
33Burazerovic et al., “Automatic depth profiling of 2d cinema- and photographic images”, ICIP 2009
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Введение в линейную фильтрацию
34
Применение линейного оператора сверткик изображению – замена пикселя взвешенным средним по окрестности
Веса определяютядро свертки –числовую матрицу
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Введение в линейную фильтрацию
35
f – изображение M*N, g – ядро K*L Свертка f с помощью g – изображение (f *
g):
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Введение в линейную фильтрацию
36
Поведение на границе:
Черный фон Зеркалирование Дублирование
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Введение в линейную фильтрацию
37
Фильтр Гаусса: Веса в ядре рассчитываются
из нормального распределения N(0, σ2)
Параметры фильтрации –размер ядра d,дисперсия σ2
Эмпирически – d ~ 6σ
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Билатеральная фильтрация
38
Билатеральная – два параметра для расчета весов
Веса исходного фильтра Гаусса модифицируемс учетом цветовой разницы центрального пикселя и пикселя окрестности
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Билатеральная фильтрация глубины
39
D(x, y) – глубина точки (x, y)
I(x, y) – цвет точки (x, y)
Ω – область ядра свертки
σs – параметр пространственного усреднения
σc – параметр цветового усреднения
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
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) www.compression.ru/video/
Only for Maxus Пространственная
Билатеральная фильтрация: результат
фильтрация карты глубины на основе исходного кадра41Burazerovic et al., “Automatic depth profiling of 2d
cinema- and photographic images”, ICIP 2009
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
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) www.compression.ru/video/
Only for Maxus Пространственная
Результаты
43CS MSU Graphics & Media Lab (Video Group)
Original
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Результаты
44CS MSU Graphics & Media Lab (Video Group)
Filtered
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Результаты
45CS MSU Graphics & Media Lab (Video Group)
Original
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Результаты
46CS MSU Graphics & Media Lab (Video Group)
Filtered
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Результаты
47CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Результаты
48CS MSU Graphics & Media Lab (Video Group)
Original
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Пространственная
Результаты
49CS MSU Graphics & Media Lab (Video Group)
Filtered
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Временная фильтрация
Схема работы
50
Сглаживание изменения глубины во времени Нормализация,
устранение «мерцания»
Удаление «артефактов»
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Временная фильтрация
Spatio-Temporal Filtering
51
Пиксель определяется тремя координатами –(x, y, t) положение в пространстве и времени
Рассматриваем окрестность по всем трем координатам, с учетом компенсации движения
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
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) www.compression.ru/video/
Only for Maxus Временная фильтрация
Результаты
53CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Временная фильтрация
Сравнение
54CS MSU Graphics & Media Lab (Video Group)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus Временная фильтрация
Сравнение
55CS MSU Graphics & Media Lab (Video Group)
Original
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
56CS MSU Graphics & Media Lab (Video Group)
Spatial
Временная фильтрацияСравнение
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
57CS MSU Graphics & Media Lab (Video Group)
Spatio-temporal
Временная фильтрацияСравнение
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
Only for Maxus
58CS MSU Graphics & Media Lab (Video Group)
Original
Временная фильтрацияСравнение
КОНЕЦ ЛЕКЦИИ 4.