ݺߣ

ݺߣShare a Scribd company logo
Обзор библиотек обработки
                изображений на GPU


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




19.05.2010
Only for
 Maxus 

               Содержание

           Введение
           Nvidia Perfomance Primitives
           GPU4VISION
           GpuCV
           OpenVIDIA
           Другие



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

               Введение

           С развитием мощностей, компьютерное
            зрение и обработка изображений получили
            широкое применение
           Аппаратная реализация позволяет
            использовать более качественные и
            сложные алгоритмы
           Доступно большое количество библиотек
            примитивов, позволяющих использовать
            возможности видеокарты

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

               Содержание

           Введение
           Nvidia Perfomance Primitives
           GPU4VISION
           GpuCV
           OpenVIDIA
           Другие



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

               Примитивы


                  Простейшие                                           Сложные
                  примитивы                                           примитивы




                                     Криптография
     Теория
    сигналов

                      Сжатие                              Компьютерное        Обработка
                      данных                                 зрение             видео



CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                                          5
Only for
 Maxus        Пример
               Сжатие данных




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                      6
Only for
 Maxus        Пример
               Улучшение качества




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                      7
Only for
 Maxus        Nvidia Perfomance Primitives
               Реализованные функции

           Арифметические операции (суммирование,
            умножение)
           Преобразование цветовых форматов
           Вычисление стандартных разниц изображений (SAD,
            SSD, MAD)
           Сравнение и трешхолдинг изображений
           1D фильтры (линейный фильтр, Window Sum)
           2D фильтры (морфология, медианный фильтр,
            настраиваемые линейные фильтры)


CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                      8
Only for
 Maxus        Nvidia Perfomance Primitives
               Пример




                                                             GPU Technology Conference, Nvidia, 2009
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                                                       9
Only for
 Maxus           Сравнение
                  FilterBox_8u_C4R
      сек
       0,18


       0,16


       0,14


       0,12


        0,1
                                                                         IPP Time
       0,08                                                              NPP Full Time

       0,06
                                                                         NPP Pure Time

       0,04


       0,02


         0
                                                                      Размер изображения,
                                                                      пискелей
              8800 GTS (640mb), Core2Duo 6550, 4GB RAM
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                                            10
Only for
 Maxus         Сравнение
                Mean_StdDev_8u_C1R
      сек
       0,035


        0,03


       0,025


        0,02
                                                                           IPP Time

       0,015                                                               NPP Full Time
                                                                           NPP Pure Time

        0,01


       0,005


            0
                                                                      Размер изображения,
                                                                      пискелей
            8800 GTS (640mb), Core2Duo 6550, 4GB RAM
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                                           11
Only for
 Maxus        Nvidia Perfomance Primitives:
               Резюме

           Реализовано небольшое количество
            примитивов
           Много времени тратится на копирование
            данных
           Подходит для многократной обработки
            данных на NPP




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

               Содержание

           Введение
           Nvidia Perfomance Primitives
           GPU4VISION
           GpuCV
           OpenVIDIA
           Другие



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

                GPU4VISION

           Выкладывают части своих проектов:
               FlowLib (Anisotropic Huber-L1 OpticalFlow)
               VMFLib (Image Denoising & Segmentation)
           Алгоритмы заточены под realtime
           Реализованы интерфейсы к камерам и
            сенсорам




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

               Содержание

           Введение
           Nvidia Perfomance Primitives
           GPU4VISION
           GpuCV
           OpenVIDIA
           Другие



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

                GpuCV

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

               GpuCV

      В состав входят:
       преобразования цветовых форматов

       вычисление краев объектов, морфология

       дискретные преобразования (FFT, DCT)

       геометрические преобразования

       гистограммы




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                      17
Only for
 Maxus        GpuCV
               Оператор Собеля




                                                   http://en.wikipedia.org/wiki/Sobel_operator
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                                                 18
Only for
 Maxus        GpuCV
               Оператор Собеля
      мкс.




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                      19
Only for
 Maxus        GpuCV
               Deriche Filter
    мкс.




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

               Содержание

           Введение
           Nvidia Perfomance Primitives
           GPU4VISION
           GpuCV
           OpenVIDIA
           Другие



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

               OpenVidia

           Open-source проект
           Реализует новейшие алгоритмы
            компьютерного зрения
           Содержит эффективно реализованные и
            отпрофилированные алгоритмы
           На сайте проекта собирается информация об
            алгоритмах компьютерного зрения



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

               OpenVidia

      Включает в себя:
       Optical Flow

       Feature Detection & Tracking

       настраиваемую свертку небольших радиусов

       детектор краев и медианный фильтр

       построение гистограмм

       геометрические и афинные преобразования




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




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

               Пример вызова свертки

   libopenvidiaCUDA::onvImage onvImgF( width, height, 1,
     ONV_FLOAT, src_data );
   libopenvidiaCUDA::convolutionSeparable cs;
   cs.init( width, height, 3 );
   float k[7] = { 0.0132999f, 0.1080111f, 0.2403623f,0.0f,
         0.2403623f, 0.1080111f, 0.0132999f };
   cs.setKernel(k,k);
   …
   cs.convolve( (float*)onvImgF.d_ptr, (float*)
     onvImgTmp.d_ptr );
   cs.convolveCols( (float*)onvImgTmp.d_ptr, (float*)
     onvImgF.d_ptr );

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

               CUDA VisionWorkbench




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                                                       26
                                                http://openvidia.sourceforge.net/index.php/OpenVIDIA
Only for
 Maxus 

               CUDA VisionWorkbench




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                                                       27
                                                http://openvidia.sourceforge.net/index.php/OpenVIDIA
Only for
 Maxus 

               Содержание

           Введение
           Nvidia Perfomance Primitives
           GPU4VISION
           GpuCV
           OpenVIDIA
           Другие



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

      Открытая библиотека алгоритмов-примитивов:
       Префиксная сумма

       Сортировка

       Редукция

       Генерация случайных чисел




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                      29
Only for
 Maxus        CUDPP:
               Сортировка




                                                 “Designing Efficient Sorting Algorithms for.   30
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                 Manycore GPUs”. Nadathur Satish., 2009
Only for
 Maxus        CUDA-based Pedestrian
               Detection

      Проект с открытым кодом, основанный на
      ранних разработках MIT




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                                               31
                                                        http://code.google.com/p/cudapeddet/
Only for
 Maxus 

               GPU Wire

  Проект интерактивной сегментации с открытым
  кодом. Предлагает
  инструмент, схожий с
  лассо Adobe Photoshop




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                                            32
                                                         http://code.google.com/p/gpuwire
Only for
 Maxus 

                Список литературы

      1.    http://gpu4vision.icg.tugraz.at/ GPU4VISION project
      2.    http://www.youtube.com/user/gpu4vision GPU4VISION„s channel
      3.    http://server.cs.ucf.edu/~vision/MinGPU/ MinGPU project
      4.    http://openvidia.sourceforge.net/index.php/OpenVIDIA OpenVIDIA
      5.    http://www.nvidia.com/object/npp.html NVPP project
      6.    http://www.itlab.unn.ru/?dir=174 Сравнение NPP и IPP, проект ITLab
      7.    https://picoforge.int-evry.fr/cgi-bin/twiki/view/Gpucv/Web/GpuCV GpuCV
      8.    http://code.google.com/p/cudapeddet/ CUDA implementation of
            pedestrian detection algorithm, MIT Project
      9.    http://gpgpu.org/developer/cudpp CUDA Data Parallel Primitives Library
      10.   http://code.google.com/p/gpuwire/ Gpu Wire project




CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                                     33
Only for
 Maxus      Лаборатория компьютерной
             графики и мультимедиа

      Видеогруппа это:
       Выпускники в аспирантурах Англии,

        Франции, Швейцарии (в России в МГУ и
        ИПМ им. Келдыша)
       Выпускниками защищено 5 диссертаций

       Наиболее популярные в мире сравнения
        видеокодеков
       Более 3 миллионов скачанных фильтров
        обработки видео
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
                                                                      34

More Related Content

Обзор открытых библиотек в области обработки изображений и компьютерного зрения

  • 1. Обзор библиотек обработки изображений на GPU Арсаев Марат Video Group CS MSU Graphics & Media Lab 19.05.2010
  • 2. Only for Maxus  Содержание  Введение  Nvidia Perfomance Primitives  GPU4VISION  GpuCV  OpenVIDIA  Другие CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 2
  • 3. Only for Maxus  Введение  С развитием мощностей, компьютерное зрение и обработка изображений получили широкое применение  Аппаратная реализация позволяет использовать более качественные и сложные алгоритмы  Доступно большое количество библиотек примитивов, позволяющих использовать возможности видеокарты CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 3
  • 4. Only for Maxus  Содержание  Введение  Nvidia Perfomance Primitives  GPU4VISION  GpuCV  OpenVIDIA  Другие CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 4
  • 5. Only for Maxus  Примитивы Простейшие Сложные примитивы примитивы Криптография Теория сигналов Сжатие Компьютерное Обработка данных зрение видео CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 5
  • 6. Only for Maxus  Пример Сжатие данных CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 6
  • 7. Only for Maxus  Пример Улучшение качества CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 7
  • 8. Only for Maxus  Nvidia Perfomance Primitives Реализованные функции  Арифметические операции (суммирование, умножение)  Преобразование цветовых форматов  Вычисление стандартных разниц изображений (SAD, SSD, MAD)  Сравнение и трешхолдинг изображений  1D фильтры (линейный фильтр, Window Sum)  2D фильтры (морфология, медианный фильтр, настраиваемые линейные фильтры) CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 8
  • 9. Only for Maxus  Nvidia Perfomance Primitives Пример GPU Technology Conference, Nvidia, 2009 CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 9
  • 10. Only for Maxus  Сравнение FilterBox_8u_C4R сек 0,18 0,16 0,14 0,12 0,1 IPP Time 0,08 NPP Full Time 0,06 NPP Pure Time 0,04 0,02 0 Размер изображения, пискелей 8800 GTS (640mb), Core2Duo 6550, 4GB RAM CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 10
  • 11. Only for Maxus  Сравнение Mean_StdDev_8u_C1R сек 0,035 0,03 0,025 0,02 IPP Time 0,015 NPP Full Time NPP Pure Time 0,01 0,005 0 Размер изображения, пискелей 8800 GTS (640mb), Core2Duo 6550, 4GB RAM CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 11
  • 12. Only for Maxus  Nvidia Perfomance Primitives: Резюме  Реализовано небольшое количество примитивов  Много времени тратится на копирование данных  Подходит для многократной обработки данных на NPP CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 12
  • 13. Only for Maxus  Содержание  Введение  Nvidia Perfomance Primitives  GPU4VISION  GpuCV  OpenVIDIA  Другие CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 13
  • 14. Only for Maxus  GPU4VISION  Выкладывают части своих проектов:  FlowLib (Anisotropic Huber-L1 OpticalFlow)  VMFLib (Image Denoising & Segmentation)  Алгоритмы заточены под realtime  Реализованы интерфейсы к камерам и сенсорам CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 14
  • 15. Only for Maxus  Содержание  Введение  Nvidia Perfomance Primitives  GPU4VISION  GpuCV  OpenVIDIA  Другие CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 15
  • 16. Only for Maxus  GpuCV  Задача – реализовать примитивы OpenCV на GPU  Предоставляет CPU, OpenGL, CUDA реализации примитивов  Открытый код и кроссплатформенность  Три варианта выбора реализации:  Принудительный выбор  Выбор наиболее производительной архитектуры  Выбор по статистике CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 16
  • 17. Only for Maxus  GpuCV В состав входят:  преобразования цветовых форматов  вычисление краев объектов, морфология  дискретные преобразования (FFT, DCT)  геометрические преобразования  гистограммы CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 17
  • 18. Only for Maxus  GpuCV Оператор Собеля http://en.wikipedia.org/wiki/Sobel_operator CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 18
  • 19. Only for Maxus  GpuCV Оператор Собеля мкс. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 19
  • 20. Only for Maxus  GpuCV Deriche Filter мкс. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 20
  • 21. Only for Maxus  Содержание  Введение  Nvidia Perfomance Primitives  GPU4VISION  GpuCV  OpenVIDIA  Другие CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 21
  • 22. Only for Maxus  OpenVidia  Open-source проект  Реализует новейшие алгоритмы компьютерного зрения  Содержит эффективно реализованные и отпрофилированные алгоритмы  На сайте проекта собирается информация об алгоритмах компьютерного зрения CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 22
  • 23. Only for Maxus  OpenVidia Включает в себя:  Optical Flow  Feature Detection & Tracking  настраиваемую свертку небольших радиусов  детектор краев и медианный фильтр  построение гистограмм  геометрические и афинные преобразования CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 23
  • 24. Only for Maxus  OpenVidia: Feature Detection & Tracking CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 24
  • 25. Only for Maxus  Пример вызова свертки libopenvidiaCUDA::onvImage onvImgF( width, height, 1, ONV_FLOAT, src_data ); libopenvidiaCUDA::convolutionSeparable cs; cs.init( width, height, 3 ); float k[7] = { 0.0132999f, 0.1080111f, 0.2403623f,0.0f, 0.2403623f, 0.1080111f, 0.0132999f }; cs.setKernel(k,k); … cs.convolve( (float*)onvImgF.d_ptr, (float*) onvImgTmp.d_ptr ); cs.convolveCols( (float*)onvImgTmp.d_ptr, (float*) onvImgF.d_ptr ); CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 25
  • 26. Only for Maxus  CUDA VisionWorkbench CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 26 http://openvidia.sourceforge.net/index.php/OpenVIDIA
  • 27. Only for Maxus  CUDA VisionWorkbench CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 27 http://openvidia.sourceforge.net/index.php/OpenVIDIA
  • 28. Only for Maxus  Содержание  Введение  Nvidia Perfomance Primitives  GPU4VISION  GpuCV  OpenVIDIA  Другие CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 28
  • 29. Only for Maxus  CUDA Data Parallel Primitives Library Открытая библиотека алгоритмов-примитивов:  Префиксная сумма  Сортировка  Редукция  Генерация случайных чисел CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 29
  • 30. Only for Maxus  CUDPP: Сортировка “Designing Efficient Sorting Algorithms for. 30 CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Manycore GPUs”. Nadathur Satish., 2009
  • 31. Only for Maxus  CUDA-based Pedestrian Detection Проект с открытым кодом, основанный на ранних разработках MIT CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 31 http://code.google.com/p/cudapeddet/
  • 32. Only for Maxus  GPU Wire Проект интерактивной сегментации с открытым кодом. Предлагает инструмент, схожий с лассо Adobe Photoshop CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 32 http://code.google.com/p/gpuwire
  • 33. Only for Maxus  Список литературы 1. http://gpu4vision.icg.tugraz.at/ GPU4VISION project 2. http://www.youtube.com/user/gpu4vision GPU4VISION„s channel 3. http://server.cs.ucf.edu/~vision/MinGPU/ MinGPU project 4. http://openvidia.sourceforge.net/index.php/OpenVIDIA OpenVIDIA 5. http://www.nvidia.com/object/npp.html NVPP project 6. http://www.itlab.unn.ru/?dir=174 Сравнение NPP и IPP, проект ITLab 7. https://picoforge.int-evry.fr/cgi-bin/twiki/view/Gpucv/Web/GpuCV GpuCV 8. http://code.google.com/p/cudapeddet/ CUDA implementation of pedestrian detection algorithm, MIT Project 9. http://gpgpu.org/developer/cudpp CUDA Data Parallel Primitives Library 10. http://code.google.com/p/gpuwire/ Gpu Wire project CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 33
  • 34. Only for Maxus  Лаборатория компьютерной графики и мультимедиа Видеогруппа это:  Выпускники в аспирантурах Англии, Франции, Швейцарии (в России в МГУ и ИПМ им. Келдыша)  Выпускниками защищено 5 диссертаций  Наиболее популярные в мире сравнения видеокодеков  Более 3 миллионов скачанных фильтров обработки видео CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ 34