Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TDC2016SP - Trilha Linux Embarcado

138 views

Published on

Processamento de Imagem em GPU com OpenGL

Published in: Education
  • Be the first to comment

  • Be the first to like this

TDC2016SP - Trilha Linux Embarcado

  1. 1. Processamento de Imagem em GPU com OpenGL Prof. André Márcio de Lima Curvello contato@andrecurvello.com.br
  2. 2. Sobre mim André Márcio de Lima Curvello ◈ Engenheiro de Computação – USP São Carlos ◈ MBA em Gestão de TI - UNIFRAN ◈ Mestrado em Processamento de Sinais e Instrumentação – USP São Carlos ◈ Articulista do Portal Embarcados
  3. 3. “ Computação não se relaciona mais a computadores. Relaciona-se a viver. Nicholas Negroponte
  4. 4. Processamento de Imagens Vamos ver do que se trata E por quê isso é importante… 1
  5. 5. Processamento de Imagens ◈ Modificar as informações contidas numa imagem sob vários aspectos, de modo que o resultado seja uma imagem ou informações extraídas dela.
  6. 6. Visão Computacional ◈ Análise de imagens e vídeos a fim de obter resultados similares àqueles dos humanos.
  7. 7. Fluxo do Processo
  8. 8. Mercado Dispositivos com interação visual!
  9. 9. OpenCV ◈ Biblioteca de Processamento de Imagens e de visão computacional ◈ Código aberto ◈ Grande gama de funções implementadas ◈ C, C++, Java, Python e outras. ◈ Estrutura modular ◈ Interface gráfica ◈ Processamento de imagens ◈ Processamento de vídeo ◈ Dentre outras.
  10. 10. DESAFIO
  11. 11. Usando a GPU Um parceiro de peso!
  12. 12. Inspiração
  13. 13. ◈ Conjunto de Rotinas para Computação Gráfica ◈ Sistemas Embarcados ◈ Execução na GPU ◈ Programas ⬥ Vertex Shader ⬥ Fragment Shader OpenGL ES 2.0
  14. 14. OpenGL ES 2.0 Fonte: www.nxp.com Fonte: www.nxp.com
  15. 15. Abordagem Tradicional Usando somente CPU!
  16. 16. Abordagem Tradicional
  17. 17. Usando a GPU com OpenGL ES 2.0 Fonte: www.apple.com Como tratar a imagem? • Cubo • Textura • Shaders
  18. 18. WandBoard Quad ◈ SoC i.MX6Q ◈ Quatro núcleos ARM Cortex-A9 - 1,2 GHz ◈ 2 GB de memória RAM ◈ GPU Vivante GC2000 ▸ Driver Vivante GC2000 - GAL
  19. 19. GPU Vivante GC2000 ◈ GC2000: OpenGL ES / OpenCL / OpenCL EP 1.1 ◈ GC355: OpenVG ◈ GC320: Composition
  20. 20. Modelo Fonte: http://homepages.inf.ed.ac.uk • 320x240 • 640x480 • 800x600 • 1280x720
  21. 21. Medida de Tempo ◈getTickCount - OpenCV ⬥Retorna o número de pulsos de operação (ticks) ◈getTickFrequency - OpenCV ⬥Retorna o número de pulsos de operação (ticks) do sistema em segundos.
  22. 22. Execução OpenCV – CPU OpenGL - GPU
  23. 23. Resultados? 2,44x 6,16x 7,2x 9,45x 0 1 2 3 4 5 6 7 8 9 10 320x240 640x480 800x600 1280x720 GANHO RESOLUÇÃO Ganho de Desempenho com OpenGL em GPU vs OpenCV em CPU
  24. 24. Observação! Recuperação de dados – Read Back Fonte: http://vgl-ait.orgFonte: http://vgl-ait.org • glReadPixels() • FrameBuffer • OpenCV – Mat • Flip
  25. 25. Observação! Recuperação de dados – Read Back 2,1x 3,6x 3,8x 4,21x 0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 320x240 640x480 800x600 1280x720 GANHO RESOLUÇÃO Ganho de Desempenho Total com GPU com OpenGL VS CPU com OpenCV
  26. 26. Ganho de 9xOperando Diretamente em GPU Real - 4x Considerando a Recuperação do Quadro de imagem da GPU! Desempenho?
  27. 27. OpenGL - 670 linhas ◈ Inicialização de OpenGL ◈ Compilação e loading de Shaders ◈ Operação direta em GPU OpenCV - 70 linhas ◈ Uso de Bibliotecas Prontas – OpenCV ◈ Execução na CPU (+NEON)
  28. 28. Comparando com Solução Comercial Fonte: http://www.itseez.com
  29. 29. Pouca documentação sobre Processamento de Imagens em GPU Application Note 4629 da Freescale Resultados podem ser aprimorados…? Técnica de recuperação dos quadros da GPU Programação da GPU via Shaders Podem ser aplicados mais filtros! Dependência de Drivers para acesso a recursos da GPU via OpenGL! Ponto a ser observado na plataforma-alvo Fabricante disponibiliza drivers?
  30. 30. Demonstração Raspberry Pi 2 com LapDock usando a Raspberry Pi Camera Board Acesso a GPU com drivers da Broadcom
  31. 31. Obrigado! Perguntas?
  32. 32. Contato @andremlcurvello http://youtube.com/profandrecurvello http://andrecurvello.com.br contato@andrecurvello.com.br http://facebook.com/profandrecurvello

×