Применение современных графических процессоров в...

Preview:

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

Recommended