SlideShare a Scribd company logo
1 of 51
Download to read offline
Использование графического
оборудования для обработки
       видеоданных

                   Марат Арсаев
                    Video Group
             CS MSU Graphics & Media Lab




19.05.2010                                 1
Only for
 Maxus 



                Содержание доклада
          Введение
          Обзор архитектуры графического
           оборудования
          Использование на практике
          Мои цели и задачи




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     2
Only for
 Maxus 



                Введение




                                                     “A Survey of General-Purpose Computation on Graphics
                                                   Hardware”, John D. Owens, David Luebke, Naga Govindaraju,
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video            Computer Graphics Forum, 2007
                                                                                                             3
Only for
 Maxus 



                Введение

      Чем обусловлено преимущество?
            •   до 160(ATI)/240(NVIDIA)
                программируемых процессоров
            •   высокая степень распараллеливания
            •   наличие специфических операций




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     4
Only for
 Maxus 



                Содержание доклада
          Введение
          Обзор средств программирования
           и архитектуры GPU
          Использование на практике
          Мои цели и задачи




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     5
Only for
 Maxus 



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

                                  Вершинный                 Сборка     Растеризация
                                  процессор               примитивов

            Видео                          Видеопамять
            Фильтр                                                        Тесты


                                                                       Фрагментный
                                                                        процессор
                                               Текстуры


            CPU                                            GPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                                      6
Only for
 Maxus         Перенос задачи на
                GPU
         Основные концепции:
          Массив данных – текстура
          Вычисления – шейдерная программа
          Запуск вычислений – рисование в
           буфер кадров




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     7
Only for
 Maxus 



                Вершинный процессор
         •   На вход – вершины с атрибуты
         •   Добавление, изменение аттрибутов
         •   На последнем оборудовании - медленный
             доступ к текстурам




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     8
Only for
 Maxus 



                Сборка
         •    На вход - преобразованные вершины и
              информацию о их связях
         •    Формирование фигур




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     9
Only for
 Maxus 



                Растеризация
         •    Формирует фрагменты и координаты
              конечных пикселей
         •    Интерполирует атрибуты вершин




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     10
Only for
 Maxus 



                Тесты
         •    Тест глубины
         •    Тест по шаблону
         •    Позволяют разбить или избежать
              ненужных вычислений




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     11
Only for
 Maxus         Фрагментный
                процессор
        •    На вход - пиксель с атрибутами
        •    Формирование цвета
        •    Одновременное вычисление нескольких
             наборов данных




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     12
Only for
 Maxus 



                   Видеопамять
         •   Текстура – место хранения промежуточных
             и конечных результатов вычислений
         •   Параметры текстуры:
               •   Texture target
               •   Texture format
               •   Render target




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     13
Вычисления в несколько
 Only for
 Maxus 



                проходов

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

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


           Применение:
             редукция
             вычисление сложных алгоритмов




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                        14
Only for
 Maxus 



                Редукция

           Производится для вычислений по некоторой
            области
           Рисование производится в 4 раза меньшую
            область
     47 2    3 57 5 12 7       8         47 57 15 17                 64 68   71
     10 20 6 13 14 15 16 17              38 64 68 35                 71 70
     19 11 21 22 23 68 25 26             46 49 61 52
     38 29 64 31 32 33 35 34             71 67 69 70
     37 28 39 49 53 42 41 52
     46 1 48 40 61 51 44 43
     55 71 4 58 69 62 50 60
     30 65 66 67 24 59 70 56


CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                                  15
Only for
 Maxus         Обзор средств
                программирования
                ARB
                High         level languages
                     HLSLCg
                     GLSL
                     other        – Brook+, Lib Sh…
                CUDA,             AMD Stream



CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     16
Only for
 Maxus 



             ARB
        •   Ассемблерный язык
        •   Не поддерживает контроль программы
        •   Используется для совместимости на
            низком уровне
                                                     !!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
                                                                                         17
Only for
 Maxus 



                HLSL
         •   С-подобный язык программирования
         •   Пользовательские функции
         •   Типы данных – bool, fixed, half
         •   Работает под DirectX начиная с
             версии 9.0
                           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
                                                                                 18
Only for
 Maxus 



                Cg
         •   Практически идентичен HLSL
         •   Работает через OpenGL или DirectX
         •   Расширение структур
         •   Использование профайлов




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     19
Only for
 Maxus 



                GLSL
         •   С-подобный язык программирования
         •   Часть спецификации OpenGL 2.0
         •   Некоторые отличия от HLSL в
             производительности
                           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
                                                                                20
Only for
 Maxus 



                CUDA
         •   Расширение языка С
         •   Не требует знания архитектуры
             видеокарты
         •   Доступен только на последнем
             оборудовании NVIDIA




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     21
Only for
 Maxus 



                AMD Stream
         •   Расширение языка Brook
         •   SDK содержит оптимизированные
             библиотеки основных функций для ATI
         •   Поддерживает OpenCL
         •   Совместим только с потоковыми GPU
             ATI



CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     22
Only for
 Maxus 
                Обзор средств
                программирования

                    Доступ к             Набор                 Поддержка       Абстракция
                    данным             инструкций                 GPU
     ARB            текстура             суженный            практически все    на уровне
                                                                                  языка
     GLSL           текстура               полный              зависит от       на уровне
                                                            версии шейдеров     шейдера

     Cg             текстура               полный              зависит от       на уровне
   (HLSL)                                                   версии шейдеров     шейдера
   CUDA прямой доступ                   С-подобный              NVidia (ATI)   на уровне
   (AMD                                  (Brook+)               последних       основной
  Stream)                                                       поколений      программы



CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                                            23
Only for
 Maxus 



                Содержание доклада
          Введение
          Обзор архитектуры графического
           оборудования
          Использование на практике
          Мои цели и задачи




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     24
Only for
 Maxus 



                GPU-KLT feature tracking




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     25
Only for
  Maxus 



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

            цель – нахождение смещения d с целью
             минимизации ошибки r
                                                                                  x – текущая точка
                                                                                        d - смещение
                                                                                    I - изображение
                                                                                 - вектор градиента
                                                                                 изображения в т. х
            нахождение точек интереса



                                                 “Feature Tracking and Matching in Video Using Programmable
                                                Graphics Hardware” Sudipta N. Sinha, Jan-Michael Frahm, Marc
                                                                                       Pollefeys, Yakup Genc    26
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video Machine Vision and Applications, July 2006
                                                       submitted to
Only for
 Maxus 



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

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




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




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     27
Only for
 Maxus 



                GPU-KLT feature tracking




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     28
Only for
 Maxus 



                Build-Pyramid
           Используемые данные :
               2 входных изображения
               набор текстур для пирамиды формата
                RGBA
           Размытие для градиента




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     29
Only for
 Maxus 



                Track
           Используемые данные:
               набор текстур для представления точек
                   кол-во итераций * макс.                     * кол-во уровней
                   кол-во точек

                              I(x0, y0, x1, y1)

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


CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                                  30
Only for
 Maxus 



                Track
           4 прохода :
               интерполяция яркости и градиента вокруг
                каждой следующей точки (7х7)
               вычисление матрицы А и вектора b
               решение уравнения
           после каждой итерации проверка и
            выгрузка результатов в следующую
            строку текстуры
           выгрузка на CPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     31
Only for
 Maxus 



                GPU-KLT feature tracking




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     32
Only for
 Maxus 



                Feature re-select
           использование ранней фильтрации для
            определения шаблона поиска
           2 прохода
               вычисление элементов матрицы окна 7х7
               подсчет минимального хар. значения
           результат – 8битовая текстура



CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     33
Only for
 Maxus 



                Feature re-select
           фильтрация алгоритмом подавления в
            точках отсутствия максимума
      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
                                                                     34
Only for
 Maxus 



                Feature re-select
      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
                                                                              35
Only for
 Maxus 



                Feature re-select
           результат выгружается на CPU
                         CPU


                      feature list


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




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     36
Only for
 Maxus 
                GPU-KLT feature tracking:
                производительность

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




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     37
Only for
 Maxus 
                Fast and efficient dense
                variational stereo on GPU
        Цель – построение 3D модели по 2-м
         изображениям
        Увеличение точности за счет 3-ей камеры
        Построение видео 3D модели




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     38
Only for
 Maxus 
                Fast and efficient dense
                variational stereo on GPU
        Цель – построение 3D модели по стерео-изображению




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     39
Only for
 Maxus 



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

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

                                                                           Т – отдельный
                                                                             треугольник

                                                                          I – изображение
                                                                          П(m) – проекция
                                                                        точки m на фигуру

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

CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                                            40
Only for
  Maxus 



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

             2) Подсчет градиента:
             М – точка
             V(M) – ее соседи
             d – расстояние до камеры


             сводится к вычислению величины



                                                           “Fast and efficient dense variational stereo on GPU”
                                                          Julien Mairal, Renaud Keriven and Alexandre Chariot
                                                  Proceedings of the Third International Symposium on 3D Data     41
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video Visualization, and Transmission (3DPVT'06)
                                                       Processing,
Only for
 Maxus 



                Алгоритм на GPU

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



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




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



CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     42
Only for
 Maxus 



                Алгоритм на GPU


                             Шаг 2                             Шаг 3




                     Шаг 1                                     Шаг 4




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                       43
Only for
 Maxus 
                Fast and efficient dense
                variational stereo on GPU




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     44
Only for
 Maxus 



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




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     45
Only for
 Maxus 



                Три камеры

           Классификация треугольников
             Отбрасывание невидимых частей
             Принцип ближнего

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




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     46
Only for
 Maxus 



                Три камеры

                        2                        3
                                                                     4




      1

                   7                                 6
                                                                     5




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                         47
Only for
 Maxus 



                Результаты




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     48
Only for
 Maxus 



                Содержание доклада
          Введение
          Обзор архитектуры графического
           оборудования
          Использование на практике
          Мои цели и задачи




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     49
Only for
 Maxus 



                 Список литературы
           “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
                                                                                                      50
Лаборатория компьютерной
 Only for
 Maxus 



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

      Видеогруппа это:
       Выпускники в аспирантурах Англии,
        Франции, Швейцарии (в России в МГУ и
        ИПМ им. Келдыша)
       Выпускниками защищено 5 диссертаций
       Наиболее популярные в мире сравнения
        видеокодеков
       Более 3 миллионов скачанных фильтров
        обработки видео
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
                                                                     51

More Related Content

What's hot

Исправление различий резкости в 3D видео
Исправление различий резкости в 3D видеоИсправление различий резкости в 3D видео
Исправление различий резкости в 3D видеоMSU GML VideoGroup
 
Методы повышения визуального качества восстановленного фона (часть 2)
Методы повышения визуального качества восстановленного фона (часть 2)Методы повышения визуального качества восстановленного фона (часть 2)
Методы повышения визуального качества восстановленного фона (часть 2)MSU GML VideoGroup
 
Обзор методов сравнения фильмов
Обзор методов сравнения фильмовОбзор методов сравнения фильмов
Обзор методов сравнения фильмовMSU GML VideoGroup
 
Обработка границ объектов при генерации стерео
Обработка границ объектов при генерации стереоОбработка границ объектов при генерации стерео
Обработка границ объектов при генерации стереоMSU GML VideoGroup
 
Некоторые методы матирования видео
Некоторые методы матирования видеоНекоторые методы матирования видео
Некоторые методы матирования видеоMSU GML VideoGroup
 
Некоторые методы обнаружения артефактов 3D-видео
Некоторые методы обнаружения артефактов 3D-видеоНекоторые методы обнаружения артефактов 3D-видео
Некоторые методы обнаружения артефактов 3D-видеоMSU GML VideoGroup
 
Способы построения и оценки карт салиентности
Способы построения и оценки карт салиентностиСпособы построения и оценки карт салиентности
Способы построения и оценки карт салиентностиMSU GML VideoGroup
 
Использование областей перекрытия в задаче сегментации видео
Использование областей перекрытия в задаче сегментации видеоИспользование областей перекрытия в задаче сегментации видео
Использование областей перекрытия в задаче сегментации видеоMSU GML VideoGroup
 
Точное выделение границ объектов
Точное выделение границ объектовТочное выделение границ объектов
Точное выделение границ объектовMSU GML VideoGroup
 
Обзор методов сопоставления шаблона и изображения
Обзор методов сопоставления шаблона и изображенияОбзор методов сопоставления шаблона и изображения
Обзор методов сопоставления шаблона и изображенияMSU GML VideoGroup
 
Некоторые методы сопоставления и трекинга границ во времени
Некоторые методы сопоставления и трекинга границ во времениНекоторые методы сопоставления и трекинга границ во времени
Некоторые методы сопоставления и трекинга границ во времениMSU GML VideoGroup
 
Обзор методов оценки True-motion
Обзор методов оценки True-motionОбзор методов оценки True-motion
Обзор методов оценки True-motionMSU GML VideoGroup
 
Цветонезависимое сопоставление стерео
Цветонезависимое сопоставление стереоЦветонезависимое сопоставление стерео
Цветонезависимое сопоставление стереоMSU GML VideoGroup
 
Некоторые методы генерации многоракурсных изображений на основе карты глубины
Некоторые методы генерации многоракурсных изображений на основе карты глубиныНекоторые методы генерации многоракурсных изображений на основе карты глубины
Некоторые методы генерации многоракурсных изображений на основе карты глубиныMSU GML VideoGroup
 
Сегментация видео на основе Mean-shift
Сегментация видео на основе Mean-shiftСегментация видео на основе Mean-shift
Сегментация видео на основе Mean-shiftMSU GML VideoGroup
 
Некоторые алгоритмы многомерной обработки изображений
Некоторые алгоритмы многомерной обработки изображенийНекоторые алгоритмы многомерной обработки изображений
Некоторые алгоритмы многомерной обработки изображенийMSU GML VideoGroup
 
Алгоритмы для задачи матирования
Алгоритмы для задачи матированияАлгоритмы для задачи матирования
Алгоритмы для задачи матированияMSU GML VideoGroup
 
Обзор алгоритмов генерации ракурсов для многоракурсных видео
Обзор алгоритмов генерации ракурсов для многоракурсных видеоОбзор алгоритмов генерации ракурсов для многоракурсных видео
Обзор алгоритмов генерации ракурсов для многоракурсных видеоMSU GML VideoGroup
 
Метрики оценки качества конвертированного стерео
Метрики оценки качества конвертированного стереоМетрики оценки качества конвертированного стерео
Метрики оценки качества конвертированного стереоMSU GML VideoGroup
 

What's hot (20)

Исправление различий резкости в 3D видео
Исправление различий резкости в 3D видеоИсправление различий резкости в 3D видео
Исправление различий резкости в 3D видео
 
Методы повышения визуального качества восстановленного фона (часть 2)
Методы повышения визуального качества восстановленного фона (часть 2)Методы повышения визуального качества восстановленного фона (часть 2)
Методы повышения визуального качества восстановленного фона (часть 2)
 
Обзор методов сравнения фильмов
Обзор методов сравнения фильмовОбзор методов сравнения фильмов
Обзор методов сравнения фильмов
 
Обработка границ объектов при генерации стерео
Обработка границ объектов при генерации стереоОбработка границ объектов при генерации стерео
Обработка границ объектов при генерации стерео
 
Некоторые методы матирования видео
Некоторые методы матирования видеоНекоторые методы матирования видео
Некоторые методы матирования видео
 
Некоторые методы обнаружения артефактов 3D-видео
Некоторые методы обнаружения артефактов 3D-видеоНекоторые методы обнаружения артефактов 3D-видео
Некоторые методы обнаружения артефактов 3D-видео
 
Способы построения и оценки карт салиентности
Способы построения и оценки карт салиентностиСпособы построения и оценки карт салиентности
Способы построения и оценки карт салиентности
 
Использование областей перекрытия в задаче сегментации видео
Использование областей перекрытия в задаче сегментации видеоИспользование областей перекрытия в задаче сегментации видео
Использование областей перекрытия в задаче сегментации видео
 
Точное выделение границ объектов
Точное выделение границ объектовТочное выделение границ объектов
Точное выделение границ объектов
 
Обзор методов сопоставления шаблона и изображения
Обзор методов сопоставления шаблона и изображенияОбзор методов сопоставления шаблона и изображения
Обзор методов сопоставления шаблона и изображения
 
Некоторые методы сопоставления и трекинга границ во времени
Некоторые методы сопоставления и трекинга границ во времениНекоторые методы сопоставления и трекинга границ во времени
Некоторые методы сопоставления и трекинга границ во времени
 
Обзор методов оценки True-motion
Обзор методов оценки True-motionОбзор методов оценки True-motion
Обзор методов оценки True-motion
 
Цветонезависимое сопоставление стерео
Цветонезависимое сопоставление стереоЦветонезависимое сопоставление стерео
Цветонезависимое сопоставление стерео
 
Некоторые методы генерации многоракурсных изображений на основе карты глубины
Некоторые методы генерации многоракурсных изображений на основе карты глубиныНекоторые методы генерации многоракурсных изображений на основе карты глубины
Некоторые методы генерации многоракурсных изображений на основе карты глубины
 
Сегментация видео на основе Mean-shift
Сегментация видео на основе Mean-shiftСегментация видео на основе Mean-shift
Сегментация видео на основе Mean-shift
 
Некоторые алгоритмы многомерной обработки изображений
Некоторые алгоритмы многомерной обработки изображенийНекоторые алгоритмы многомерной обработки изображений
Некоторые алгоритмы многомерной обработки изображений
 
Алгоритмы для задачи матирования
Алгоритмы для задачи матированияАлгоритмы для задачи матирования
Алгоритмы для задачи матирования
 
Обзор алгоритмов генерации ракурсов для многоракурсных видео
Обзор алгоритмов генерации ракурсов для многоракурсных видеоОбзор алгоритмов генерации ракурсов для многоракурсных видео
Обзор алгоритмов генерации ракурсов для многоракурсных видео
 
Deringing Cartoons
Deringing CartoonsDeringing Cartoons
Deringing Cartoons
 
Метрики оценки качества конвертированного стерео
Метрики оценки качества конвертированного стереоМетрики оценки качества конвертированного стерео
Метрики оценки качества конвертированного стерео
 

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

Применение современных графических процессоров для обработки видео
Применение современных графических процессоров для обработки видеоПрименение современных графических процессоров для обработки видео
Применение современных графических процессоров для обработки видеоMSU GML VideoGroup
 
Обзор открытых библиотек в области обработки изображений и компьютерного зрения
Обзор открытых библиотек в области обработки изображений и компьютерного зренияОбзор открытых библиотек в области обработки изображений и компьютерного зрения
Обзор открытых библиотек в области обработки изображений и компьютерного зренияMSU GML VideoGroup
 
Обзор новинок в области GPGPU
Обзор новинок в области GPGPUОбзор новинок в области GPGPU
Обзор новинок в области GPGPUMSU GML VideoGroup
 
Декодирование видео на GPU
Декодирование видео на GPUДекодирование видео на GPU
Декодирование видео на GPUMSU GML VideoGroup
 
Генерация текстур
Генерация текстурГенерация текстур
Генерация текстурMSU GML VideoGroup
 
Расширения h264 и предобзор h265
Расширения h264 и предобзор h265Расширения h264 и предобзор h265
Расширения h264 и предобзор h265MSU GML VideoGroup
 
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камерБыстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камерMSU GML VideoGroup
 
Некоторые методы проектирования и оптимизации кода
Некоторые методы проектирования и оптимизации кодаНекоторые методы проектирования и оптимизации кода
Некоторые методы проектирования и оптимизации кодаMSU GML VideoGroup
 
Распознавание и удаление субтитров
Распознавание и удаление субтитровРаспознавание и удаление субтитров
Распознавание и удаление субтитровMSU GML VideoGroup
 
Методы оптимизации вычислений на CPU
Методы оптимизации вычислений на CPUМетоды оптимизации вычислений на CPU
Методы оптимизации вычислений на CPUMSU GML VideoGroup
 
Новые тенденции в области автостереоскопических дисплеев, съемки и отображени...
Новые тенденции в области автостереоскопических дисплеев, съемки и отображени...Новые тенденции в области автостереоскопических дисплеев, съемки и отображени...
Новые тенденции в области автостереоскопических дисплеев, съемки и отображени...MSU GML VideoGroup
 
Обзор подходов к измерению качества 3D видео
Обзор подходов к измерению качества 3D видеоОбзор подходов к измерению качества 3D видео
Обзор подходов к измерению качества 3D видеоMSU GML VideoGroup
 
Обзор процессоров Phillips Nexperia
Обзор процессоров Phillips NexperiaОбзор процессоров Phillips Nexperia
Обзор процессоров Phillips NexperiaMSU GML VideoGroup
 
Обзор библиотеки Boost
Обзор библиотеки BoostОбзор библиотеки Boost
Обзор библиотеки BoostMSU GML VideoGroup
 
Управление разработкой программного обеспечения
Управление разработкой программного обеспеченияУправление разработкой программного обеспечения
Управление разработкой программного обеспеченияMSU GML VideoGroup
 
Вычисление глубины по одному изображению
Вычисление глубины по одному изображениюВычисление глубины по одному изображению
Вычисление глубины по одному изображениюMSU GML VideoGroup
 
Обзор методов обнаружения ошибок в видео
Обзор методов обнаружения ошибок в видеоОбзор методов обнаружения ошибок в видео
Обзор методов обнаружения ошибок в видеоMSU GML VideoGroup
 
Обзор некоторОбзор методов поиска и сопровождения особых точек
Обзор некоторОбзор методов поиска и сопровождения особых точекОбзор некоторОбзор методов поиска и сопровождения особых точек
Обзор некоторОбзор методов поиска и сопровождения особых точекMSU GML VideoGroup
 
Исправление стерео видео
Исправление стерео видеоИсправление стерео видео
Исправление стерео видеоMSU GML VideoGroup
 

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

Применение современных графических процессоров для обработки видео
Применение современных графических процессоров для обработки видеоПрименение современных графических процессоров для обработки видео
Применение современных графических процессоров для обработки видео
 
Обзор открытых библиотек в области обработки изображений и компьютерного зрения
Обзор открытых библиотек в области обработки изображений и компьютерного зренияОбзор открытых библиотек в области обработки изображений и компьютерного зрения
Обзор открытых библиотек в области обработки изображений и компьютерного зрения
 
Обзор новинок в области GPGPU
Обзор новинок в области GPGPUОбзор новинок в области GPGPU
Обзор новинок в области GPGPU
 
Декодирование видео на GPU
Декодирование видео на GPUДекодирование видео на GPU
Декодирование видео на GPU
 
Генерация текстур
Генерация текстурГенерация текстур
Генерация текстур
 
Расширения h264 и предобзор h265
Расширения h264 и предобзор h265Расширения h264 и предобзор h265
Расширения h264 и предобзор h265
 
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камерБыстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
Быстрое начало работы с VTune. Обзор новинок DSP.Super-Resolution для ToF-камер
 
Обзор OpenCL
Обзор OpenCLОбзор OpenCL
Обзор OpenCL
 
Некоторые методы проектирования и оптимизации кода
Некоторые методы проектирования и оптимизации кодаНекоторые методы проектирования и оптимизации кода
Некоторые методы проектирования и оптимизации кода
 
Распознавание и удаление субтитров
Распознавание и удаление субтитровРаспознавание и удаление субтитров
Распознавание и удаление субтитров
 
Методы оптимизации вычислений на CPU
Методы оптимизации вычислений на CPUМетоды оптимизации вычислений на CPU
Методы оптимизации вычислений на CPU
 
Новые тенденции в области автостереоскопических дисплеев, съемки и отображени...
Новые тенденции в области автостереоскопических дисплеев, съемки и отображени...Новые тенденции в области автостереоскопических дисплеев, съемки и отображени...
Новые тенденции в области автостереоскопических дисплеев, съемки и отображени...
 
Обзор подходов к измерению качества 3D видео
Обзор подходов к измерению качества 3D видеоОбзор подходов к измерению качества 3D видео
Обзор подходов к измерению качества 3D видео
 
Обзор процессоров Phillips Nexperia
Обзор процессоров Phillips NexperiaОбзор процессоров Phillips Nexperia
Обзор процессоров Phillips Nexperia
 
Обзор библиотеки Boost
Обзор библиотеки BoostОбзор библиотеки Boost
Обзор библиотеки Boost
 
Управление разработкой программного обеспечения
Управление разработкой программного обеспеченияУправление разработкой программного обеспечения
Управление разработкой программного обеспечения
 
Вычисление глубины по одному изображению
Вычисление глубины по одному изображениюВычисление глубины по одному изображению
Вычисление глубины по одному изображению
 
Обзор методов обнаружения ошибок в видео
Обзор методов обнаружения ошибок в видеоОбзор методов обнаружения ошибок в видео
Обзор методов обнаружения ошибок в видео
 
Обзор некоторОбзор методов поиска и сопровождения особых точек
Обзор некоторОбзор методов поиска и сопровождения особых точекОбзор некоторОбзор методов поиска и сопровождения особых точек
Обзор некоторОбзор методов поиска и сопровождения особых точек
 
Исправление стерео видео
Исправление стерео видеоИсправление стерео видео
Исправление стерео видео
 

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

  • 1. Использование графического оборудования для обработки видеоданных Марат Арсаев Video Group CS MSU Graphics & Media Lab 19.05.2010 1
  • 2. Only for Maxus  Содержание доклада  Введение  Обзор архитектуры графического оборудования  Использование на практике  Мои цели и задачи CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 2
  • 3. Only for Maxus  Введение “A Survey of General-Purpose Computation on Graphics Hardware”, John D. Owens, David Luebke, Naga Govindaraju, CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video Computer Graphics Forum, 2007 3
  • 4. Only for Maxus  Введение Чем обусловлено преимущество? • до 160(ATI)/240(NVIDIA) программируемых процессоров • высокая степень распараллеливания • наличие специфических операций CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 4
  • 5. Only for Maxus  Содержание доклада  Введение  Обзор средств программирования и архитектуры GPU  Использование на практике  Мои цели и задачи CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 5
  • 6. Only for Maxus  Архитектура GPU Вершинный Сборка Растеризация процессор примитивов Видео Видеопамять Фильтр Тесты Фрагментный процессор Текстуры CPU GPU CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 6
  • 7. Only for Maxus  Перенос задачи на GPU Основные концепции:  Массив данных – текстура  Вычисления – шейдерная программа  Запуск вычислений – рисование в буфер кадров CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 7
  • 8. Only for Maxus  Вершинный процессор • На вход – вершины с атрибуты • Добавление, изменение аттрибутов • На последнем оборудовании - медленный доступ к текстурам CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 8
  • 9. Only for Maxus  Сборка • На вход - преобразованные вершины и информацию о их связях • Формирование фигур CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 9
  • 10. Only for Maxus  Растеризация • Формирует фрагменты и координаты конечных пикселей • Интерполирует атрибуты вершин CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 10
  • 11. Only for Maxus  Тесты • Тест глубины • Тест по шаблону • Позволяют разбить или избежать ненужных вычислений CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 11
  • 12. Only for Maxus  Фрагментный процессор • На вход - пиксель с атрибутами • Формирование цвета • Одновременное вычисление нескольких наборов данных CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 12
  • 13. Only for Maxus  Видеопамять • Текстура – место хранения промежуточных и конечных результатов вычислений • Параметры текстуры: • Texture target • Texture format • Render target CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 13
  • 14. Вычисления в несколько Only for Maxus  проходов  Используется метод пинг-понга Вывод Текстура 1 Текстура 2  Применение:  редукция  вычисление сложных алгоритмов CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 14
  • 15. Only for Maxus  Редукция  Производится для вычислений по некоторой области  Рисование производится в 4 раза меньшую область 47 2 3 57 5 12 7 8 47 57 15 17 64 68 71 10 20 6 13 14 15 16 17 38 64 68 35 71 70 19 11 21 22 23 68 25 26 46 49 61 52 38 29 64 31 32 33 35 34 71 67 69 70 37 28 39 49 53 42 41 52 46 1 48 40 61 51 44 43 55 71 4 58 69 62 50 60 30 65 66 67 24 59 70 56 CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 15
  • 16. Only for Maxus  Обзор средств программирования  ARB  High level languages  HLSLCg  GLSL  other – Brook+, Lib Sh…  CUDA, AMD Stream CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 16
  • 17. Only for Maxus  ARB • Ассемблерный язык • Не поддерживает контроль программы • Используется для совместимости на низком уровне !!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 17
  • 18. Only for Maxus  HLSL • С-подобный язык программирования • Пользовательские функции • Типы данных – bool, fixed, half • Работает под DirectX начиная с версии 9.0 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 18
  • 19. Only for Maxus  Cg • Практически идентичен HLSL • Работает через OpenGL или DirectX • Расширение структур • Использование профайлов CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 19
  • 20. Only for Maxus  GLSL • С-подобный язык программирования • Часть спецификации OpenGL 2.0 • Некоторые отличия от HLSL в производительности 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 20
  • 21. Only for Maxus  CUDA • Расширение языка С • Не требует знания архитектуры видеокарты • Доступен только на последнем оборудовании NVIDIA CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 21
  • 22. Only for Maxus  AMD Stream • Расширение языка Brook • SDK содержит оптимизированные библиотеки основных функций для ATI • Поддерживает OpenCL • Совместим только с потоковыми GPU ATI CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 22
  • 23. Only for Maxus  Обзор средств программирования Доступ к Набор Поддержка Абстракция данным инструкций GPU ARB текстура суженный практически все на уровне языка GLSL текстура полный зависит от на уровне версии шейдеров шейдера Cg текстура полный зависит от на уровне (HLSL) версии шейдеров шейдера CUDA прямой доступ С-подобный NVidia (ATI) на уровне (AMD (Brook+) последних основной Stream) поколений программы CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 23
  • 24. Only for Maxus  Содержание доклада  Введение  Обзор архитектуры графического оборудования  Использование на практике  Мои цели и задачи CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 24
  • 25. Only for Maxus  GPU-KLT feature tracking CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 25
  • 26. Only for Maxus  Необходимые вычисления  цель – нахождение смещения d с целью минимизации ошибки r x – текущая точка d - смещение I - изображение - вектор градиента изображения в т. х  нахождение точек интереса “Feature Tracking and Matching in Video Using Programmable Graphics Hardware” Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, Yakup Genc 26 CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video Machine Vision and Applications, July 2006 submitted to
  • 27. Only for Maxus  Необходимые вычисления  трекинг реализуется решением уравнения  G – градиент в точке х, представляется в симметрическом виде: CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 27
  • 28. Only for Maxus  GPU-KLT feature tracking CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 28
  • 29. Only for Maxus  Build-Pyramid  Используемые данные :  2 входных изображения  набор текстур для пирамиды формата RGBA  Размытие для градиента CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 29
  • 30. Only for Maxus  Track  Используемые данные:  набор текстур для представления точек кол-во итераций * макс. * кол-во уровней кол-во точек I(x0, y0, x1, y1)  временные текстуры для решения уравнения CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 30
  • 31. Only for Maxus  Track  4 прохода :  интерполяция яркости и градиента вокруг каждой следующей точки (7х7)  вычисление матрицы А и вектора b  решение уравнения  после каждой итерации проверка и выгрузка результатов в следующую строку текстуры  выгрузка на CPU CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 31
  • 32. Only for Maxus  GPU-KLT feature tracking CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 32
  • 33. Only for Maxus  Feature re-select  использование ранней фильтрации для определения шаблона поиска  2 прохода  вычисление элементов матрицы окна 7х7  подсчет минимального хар. значения  результат – 8битовая текстура CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 33
  • 34. Only for Maxus  Feature re-select  фильтрация алгоритмом подавления в точках отсутствия максимума 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 34
  • 35. Only for Maxus  Feature re-select 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 35
  • 36. Only for Maxus  Feature re-select  результат выгружается на CPU CPU feature list  сортировка и добавление лучших точек CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 36
  • 37. Only for Maxus  GPU-KLT feature tracking: производительность Real-time обработка видео 1024х768 – 30fps CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 37
  • 38. Only for Maxus  Fast and efficient dense variational stereo on GPU  Цель – построение 3D модели по 2-м изображениям  Увеличение точности за счет 3-ей камеры  Построение видео 3D модели CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 38
  • 39. Only for Maxus  Fast and efficient dense variational stereo on GPU  Цель – построение 3D модели по стерео-изображению CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 39
  • 40. Only for Maxus  Необходимые вычисления 1) Подсчет энергии: S – 3D модель Т – отдельный треугольник I – изображение П(m) – проекция точки m на фигуру A – площадь тр-ка CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 40
  • 41. Only for Maxus  Необходимые вычисления 2) Подсчет градиента: М – точка V(M) – ее соседи d – расстояние до камеры сводится к вычислению величины “Fast and efficient dense variational stereo on GPU” Julien Mairal, Renaud Keriven and Alexandre Chariot Proceedings of the Third International Symposium on 3D Data 41 CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video Visualization, and Transmission (3DPVT'06) Processing,
  • 42. Only for Maxus  Алгоритм на GPU Вычисление градиента: После прямого вычисления : i = 1, 2; k = 1,2,3; CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 42
  • 43. Only for Maxus  Алгоритм на GPU Шаг 2 Шаг 3 Шаг 1 Шаг 4 CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 43
  • 44. Only for Maxus  Fast and efficient dense variational stereo on GPU CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 44
  • 45. Only for Maxus  Две камеры - неточности CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 45
  • 46. Only for Maxus  Три камеры  Классификация треугольников  Отбрасывание невидимых частей  Принцип ближнего  Последовательный просчет модели CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 46
  • 47. Only for Maxus  Три камеры 2 3 4 1 7 6 5 CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 47
  • 48. Only for Maxus  Результаты CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 48
  • 49. Only for Maxus  Содержание доклада  Введение  Обзор архитектуры графического оборудования  Использование на практике  Мои цели и задачи CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 49
  • 50. Only for Maxus  Список литературы  “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 50
  • 51. Лаборатория компьютерной Only for Maxus  графики и мультимедиа Видеогруппа это:  Выпускники в аспирантурах Англии, Франции, Швейцарии (в России в МГУ и ИПМ им. Келдыша)  Выпускниками защищено 5 диссертаций  Наиболее популярные в мире сравнения видеокодеков  Более 3 миллионов скачанных фильтров обработки видео CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video 51