Upload
msu-gml-videogroup
View
54
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Some basics of GPGPU and GPU usage in CV problems
Citation preview
Использование графического оборудования для обработки
видеоданных
Марат Арсаев
Video GroupCS MSU Graphics & Media Lab
19.05.2010 1
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Содержание доклада
Введение
Обзор архитектуры графического
оборудования
Использование на практике
Мои цели и задачи
2
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
“A Survey of General-Purpose Computation on Graphics
Hardware”, John D. Owens, David Luebke, Naga Govindaraju,
Computer Graphics Forum, 2007
Введение
3
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Введение
Чем обусловлено преимущество?
• до 160(ATI)/240(NVIDIA)
программируемых процессоров
• высокая степень распараллеливания
• наличие специфических операций
4
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Содержание доклада
Введение
Обзор средств программирования
и архитектуры GPU
Использование на практике
Мои цели и задачи
5
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Архитектура GPU
6
Видео
Фильтр
CPU GPU
Вершинный
процессор
Сборка
примитивов
Растеризация
Видеопамять
Фрагментный
процессорТекстуры
Тесты
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus Перенос задачи на
GPU
Основные концепции:
Массив данных – текстура
Вычисления – шейдерная программа
Запуск вычислений – рисование в
буфер кадров
7
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Вершинный процессор
• На вход – вершины с атрибуты
• Добавление, изменение аттрибутов
• На последнем оборудовании - медленный
доступ к текстурам
8
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Сборка
• На вход - преобразованные вершины и
информацию о их связях
• Формирование фигур
9
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Растеризация
• Формирует фрагменты и координаты
конечных пикселей
• Интерполирует атрибуты вершин
10
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Тесты
• Тест глубины
• Тест по шаблону
• Позволяют разбить или избежать
ненужных вычислений
11
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus Фрагментный
процессор
• На вход - пиксель с атрибутами
• Формирование цвета
• Одновременное вычисление нескольких
наборов данных
12
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Видеопамять
• Текстура – место хранения промежуточных
и конечных результатов вычислений
• Параметры текстуры:
• Texture target
• Texture format
• Render target
13
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus Вычисления в несколько
проходов
14
Используется метод пинг-понга
Применение:
редукция
вычисление сложных алгоритмов
Текстура 1 Текстура 2Вывод
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Редукция
15
Производится для вычислений по некоторой
области
Рисование производится в 4 раза меньшую
область
47
10
19
38
37
46
55
30
2
20
11
29
28
1
71
65
3
6
21
64
39
48
4
66
57
13
22
31
49
40
58
67
5
14
23
32
53
61
69
24
12
15
68
33
42
51
62
59
7
16
25
35
41
44
50
70
8
17
26
34
52
43
60
56
47
38
46
71
57
64
49
67
15
68
61
69
17
35
52
70
64
71
68
70
71
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus Обзор средств
программирования
ARB
High level languages
HLSL\Cg
GLSL
other – Brook+, Lib Sh…
CUDA, AMD Stream
16
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
ARB
• Ассемблерный язык
• Не поддерживает контроль программы
• Используется для совместимости на
низком уровне
17
!!ARBfp1.0
TEMP color;
MUL color, fragment.texcoord[0].y
, 2.0;
ADD color, 1.0, -color;
ABS color, color;
ADD result.color, 1.0, -color;
MOV result.color.a, 1.0;
END
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
HLSL
• С-подобный язык программирования
• Пользовательские функции
• Типы данных – bool, fixed, half
• Работает под DirectX начиная с
версии 9.0
18
void main( in v2p IN, out p2f OUT )
{
float4 color = tex2D(tex0, IN.Texcoord0);
OUT.Color = brightness * IN.Color * color; }
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Cg
• Практически идентичен HLSL
• Работает через OpenGL или DirectX
• Расширение структур
• Использование профайлов
19
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
GLSL
• С-подобный язык программирования
• Часть спецификации OpenGL 2.0
• Некоторые отличия от HLSL в
производительности
20
varying vec2 texture_coordinate;
uniform sampler2D my_color_texture;
void main()
{
gl_FragColor = texture2D(my_color_texture,
texture_coordinate); }
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
CUDA
• Расширение языка С
• Не требует знания архитектуры
видеокарты
• Доступен только на последнем
оборудовании NVIDIA
21
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
AMD Stream
• Расширение языка Brook
• SDK содержит оптимизированные
библиотеки основных функций для ATI
• Поддерживает OpenCL
• Совместим только с потоковыми GPU
ATI
22
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus Обзор средств
программирования
Доступ к данным
Наборинструкций
ПоддержкаGPU
Абстракция
ARB текстура суженный практически все на уровне языка
GLSL текстура полный зависит от версии шейдеров
на уровне шейдера
Cg(HLSL)
текстура полный зависит от версии шейдеров
на уровне шейдера
CUDA(AMDStream)
прямой доступ С-подобный(Brook+)
NVidia (ATI) последних поколений
на уровнеосновной
программы
23
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Содержание доклада
Введение
Обзор архитектуры графического
оборудования
Использование на практике
Мои цели и задачи
24
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
GPU-KLT feature tracking
25
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
цель – нахождение смещения d с целью
минимизации ошибки r
нахождение точек интереса
Необходимые вычисления
26
“Feature Tracking and Matching in Video Using Programmable
Graphics Hardware” Sudipta N. Sinha, Jan-Michael Frahm, Marc
Pollefeys, Yakup Genc
submitted to Machine Vision and Applications, July 2006
I - изображение
- вектор градиента
изображения в т. х
x – текущая точка
d - смещение
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Необходимые вычисления
трекинг реализуется решением уравнения
G – градиент в точке х, представляется в
симметрическом виде:
27
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
GPU-KLT feature tracking
28
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Build-Pyramid
29
Используемые данные :
2 входных изображения
набор текстур для пирамиды формата
RGBA
Размытие для градиента
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Track
30
Используемые данные:
набор текстур для представления точек
временные текстуры для решения
уравнения
кол-во итераций * макс. кол-во точек
I(x0, y0, x1, y1)
* кол-во уровней
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Track
31
4 прохода :
интерполяция яркости и градиента вокруг
каждой следующей точки (7х7)
вычисление матрицы А и вектора b
решение уравнения
после каждой итерации проверка и
выгрузка результатов в следующую
строку текстуры
выгрузка на CPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
GPU-KLT feature tracking
32
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Feature re-select
33
использование ранней фильтрации для
определения шаблона поиска
2 прохода
вычисление элементов матрицы окна 7х7
подсчет минимального хар. значения
результат – 8битовая текстура
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Feature re-select
34
фильтрация алгоритмом подавления в
точках отсутствия максимумаvoid main(uniform sampler2D src_tex : TEXUNIT0,
float2 st0 : TEXCOORD0,
uniform float2 ds,
out float4 color : COLOR)
{
float maxCornerness = pack_4ubyte(tex2D(src_tex, st0));
…
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Feature re-select
35
for (int i = -MIN_DIST; i < 0; ++i)
{
float cornerness = abs(pack_4ubyte(tex2D(src_tex, st0 + i*ds)));
maxCornerness = (cornerness >= abs(maxCornerness)) ?
(-cornerness) : maxCornerness;
}
…
color = unpack_4ubyte(maxCornerness);
}
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Feature re-select
36
результат выгружается на CPU
сортировка и добавление лучших точек
CPU
feature list
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus GPU-KLT feature tracking:
производительность
Real-time обработка видео 1024х768 – 30fps
37
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus Fast and efficient dense
variational stereo on GPU
38
Цель – построение 3D модели по 2-м
изображениям
Увеличение точности за счет 3-ей камеры
Построение видео 3D модели
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus Fast and efficient dense
variational stereo on GPU
39
Цель – построение 3D модели по стерео-изображению
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
1) Подсчет энергии:S – 3D модель
Т – отдельный
треугольник
I – изображение
П(m) – проекция
точки m на фигуру
A – площадь тр-ка
Необходимые вычисления
40
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Необходимые вычисления
2) Подсчет градиента:М – точка
V(M) – ее соседи
d – расстояние до камеры
сводится к вычислению величины
41
“Fast and efficient dense variational stereo on GPU”
Julien Mairal, Renaud Keriven and Alexandre Chariot
Proceedings of the Third International Symposium on 3D Data
Processing, Visualization, and Transmission (3DPVT'06)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Алгоритм на GPU
Вычисление градиента:
После прямого вычисления :
i = 1, 2; k = 1,2,3;
42
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Алгоритм на GPU
43
Шаг 1
Шаг 3Шаг 2
Шаг 4
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus Fast and efficient dense
variational stereo on GPU
44
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Две камеры - неточности
45
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Три камеры
Классификация треугольников
Отбрасывание невидимых частей
Принцип ближнего
Последовательный просчет модели
46
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Три камеры
47
1
24
3
57 6
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Результаты
48
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Содержание доклада
Введение
Обзор архитектуры графического
оборудования
Использование на практике
Мои цели и задачи
49
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus
Список литературы
50
“A Survey of General-Purpose Computation on Graphics Hardware”, John D. Owens,
David Luebke, Naga Govindaraju, Computer Graphics Forum, 2007
“Feature Tracking and Matching in Video Using Programmable Graphics Hardware”
Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, Yakup Genc, submitted to Machine
Vision and Applications, July 2006
“Fast and efficient dense variational stereo on GPU”, Julien Mairal, Renaud Keriven and
Alexandre Chariot, Proceedings of the Third International Symposium on 3D Data
Processing, Visualization, and Transmission (3DPVT'06)
“High-Level GPU Programming, Domain-specific optimization and inference” Calle
Lejdfors, Doctoral dissertation, Department of Computer Science, Lund University, 2008
“The GPU and Graphic Algorithms” , Ivo Hanak, State of the Art and Concept of PhD
Thesis, 2005
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
Only for
Maxus Лаборатория компьютерной
графики и мультимедиа
Видеогруппа это:
Выпускники в аспирантурах Англии,
Франции, Швейцарии (в России в МГУ и
ИПМ им. Келдыша)
Выпускниками защищено 5 диссертаций
Наиболее популярные в мире сравнения
видеокодеков
Более 3 миллионов скачанных фильтров
обработки видео
51