Фильтрация карт глубины

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