51
Использование графического оборудования для обработки видеоданных Марат Арсаев Video Group CS MSU Graphics & Media Lab 19.05.2010 1

Применение современных графических процессоров в области компьютерного зрения

Embed Size (px)

DESCRIPTION

Some basics of GPGPU and GPU usage in CV problems

Citation preview

Page 1: Применение современных графических процессоров в области компьютерного зрения

Использование графического оборудования для обработки

видеоданных

Марат Арсаев

Video GroupCS MSU Graphics & Media Lab

19.05.2010 1

Page 2: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Содержание доклада

Введение

Обзор архитектуры графического

оборудования

Использование на практике

Мои цели и задачи

2

Page 3: Применение современных графических процессоров в области компьютерного зрения

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

Page 4: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Введение

Чем обусловлено преимущество?

• до 160(ATI)/240(NVIDIA)

программируемых процессоров

• высокая степень распараллеливания

• наличие специфических операций

4

Page 5: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Содержание доклада

Введение

Обзор средств программирования

и архитектуры GPU

Использование на практике

Мои цели и задачи

5

Page 6: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Архитектура GPU

6

Видео

Фильтр

CPU GPU

Вершинный

процессор

Сборка

примитивов

Растеризация

Видеопамять

Фрагментный

процессорТекстуры

Тесты

Page 7: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus Перенос задачи на

GPU

Основные концепции:

Массив данных – текстура

Вычисления – шейдерная программа

Запуск вычислений – рисование в

буфер кадров

7

Page 8: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Вершинный процессор

• На вход – вершины с атрибуты

• Добавление, изменение аттрибутов

• На последнем оборудовании - медленный

доступ к текстурам

8

Page 9: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Сборка

• На вход - преобразованные вершины и

информацию о их связях

• Формирование фигур

9

Page 10: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Растеризация

• Формирует фрагменты и координаты

конечных пикселей

• Интерполирует атрибуты вершин

10

Page 11: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Тесты

• Тест глубины

• Тест по шаблону

• Позволяют разбить или избежать

ненужных вычислений

11

Page 12: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus Фрагментный

процессор

• На вход - пиксель с атрибутами

• Формирование цвета

• Одновременное вычисление нескольких

наборов данных

12

Page 13: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Видеопамять

• Текстура – место хранения промежуточных

и конечных результатов вычислений

• Параметры текстуры:

• Texture target

• Texture format

• Render target

13

Page 14: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus Вычисления в несколько

проходов

14

Используется метод пинг-понга

Применение:

редукция

вычисление сложных алгоритмов

Текстура 1 Текстура 2Вывод

Page 15: Применение современных графических процессоров в области компьютерного зрения

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

Page 16: Применение современных графических процессоров в области компьютерного зрения

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

Page 17: Применение современных графических процессоров в области компьютерного зрения

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

Page 18: Применение современных графических процессоров в области компьютерного зрения

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; }

Page 19: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Cg

• Практически идентичен HLSL

• Работает через OpenGL или DirectX

• Расширение структур

• Использование профайлов

19

Page 20: Применение современных графических процессоров в области компьютерного зрения

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); }

Page 21: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

CUDA

• Расширение языка С

• Не требует знания архитектуры

видеокарты

• Доступен только на последнем

оборудовании NVIDIA

21

Page 22: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

AMD Stream

• Расширение языка Brook

• SDK содержит оптимизированные

библиотеки основных функций для ATI

• Поддерживает OpenCL

• Совместим только с потоковыми GPU

ATI

22

Page 23: Применение современных графических процессоров в области компьютерного зрения

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

Page 24: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Содержание доклада

Введение

Обзор архитектуры графического

оборудования

Использование на практике

Мои цели и задачи

24

Page 25: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

GPU-KLT feature tracking

25

Page 26: Применение современных графических процессоров в области компьютерного зрения

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 - смещение

Page 27: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Необходимые вычисления

трекинг реализуется решением уравнения

G – градиент в точке х, представляется в

симметрическом виде:

27

Page 28: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

GPU-KLT feature tracking

28

Page 29: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Build-Pyramid

29

Используемые данные :

2 входных изображения

набор текстур для пирамиды формата

RGBA

Размытие для градиента

Page 30: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Track

30

Используемые данные:

набор текстур для представления точек

временные текстуры для решения

уравнения

кол-во итераций * макс. кол-во точек

I(x0, y0, x1, y1)

* кол-во уровней

Page 31: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Track

31

4 прохода :

интерполяция яркости и градиента вокруг

каждой следующей точки (7х7)

вычисление матрицы А и вектора b

решение уравнения

после каждой итерации проверка и

выгрузка результатов в следующую

строку текстуры

выгрузка на CPU

Page 32: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

GPU-KLT feature tracking

32

Page 33: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Feature re-select

33

использование ранней фильтрации для

определения шаблона поиска

2 прохода

вычисление элементов матрицы окна 7х7

подсчет минимального хар. значения

результат – 8битовая текстура

Page 34: Применение современных графических процессоров в области компьютерного зрения

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));

Page 35: Применение современных графических процессоров в области компьютерного зрения

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);

}

Page 36: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Feature re-select

36

результат выгружается на CPU

сортировка и добавление лучших точек

CPU

feature list

Page 37: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus GPU-KLT feature tracking:

производительность

Real-time обработка видео 1024х768 – 30fps

37

Page 38: Применение современных графических процессоров в области компьютерного зрения

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 модели

Page 39: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus Fast and efficient dense

variational stereo on GPU

39

Цель – построение 3D модели по стерео-изображению

Page 40: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

1) Подсчет энергии:S – 3D модель

Т – отдельный

треугольник

I – изображение

П(m) – проекция

точки m на фигуру

A – площадь тр-ка

Необходимые вычисления

40

Page 41: Применение современных графических процессоров в области компьютерного зрения

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)

Page 42: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Алгоритм на GPU

Вычисление градиента:

После прямого вычисления :

i = 1, 2; k = 1,2,3;

42

Page 43: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Алгоритм на GPU

43

Шаг 1

Шаг 3Шаг 2

Шаг 4

Page 44: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus Fast and efficient dense

variational stereo on GPU

44

Page 45: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Две камеры - неточности

45

Page 46: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Три камеры

Классификация треугольников

Отбрасывание невидимых частей

Принцип ближнего

Последовательный просчет модели

46

Page 47: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Три камеры

47

1

24

3

57 6

Page 48: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Результаты

48

Page 49: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus

Содержание доклада

Введение

Обзор архитектуры графического

оборудования

Использование на практике

Мои цели и задачи

49

Page 50: Применение современных графических процессоров в области компьютерного зрения

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

Page 51: Применение современных графических процессоров в области компьютерного зрения

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video

Only for

Maxus Лаборатория компьютерной

графики и мультимедиа

Видеогруппа это:

Выпускники в аспирантурах Англии,

Франции, Швейцарии (в России в МГУ и

ИПМ им. Келдыша)

Выпускниками защищено 5 диссертаций

Наиболее популярные в мире сравнения

видеокодеков

Более 3 миллионов скачанных фильтров

обработки видео

51