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