Campus Party - Computer Vision

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Campus Party - Computer Vision - Presentation Transcript

    1. Daniel Lélis Baggio [email_address] TORP – The Open Robot Project Módulo de Visão Computacional
    2. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    3. Usos de visão computacional
      • Reconhecimento
        • Objetos, classes de objetos
          • Ex: Reconhecimento facial, veículos
      • Imagens médicas
        • IVUS, tomografia computacional
      • Visão estéreo
      • Detecção de movimento, tracking
      • Augmented Reality
      • Reconstrução de cenas: SLAM
    4. SLAM – Simultaneous Localization and Mapping http://www.youtube.com/watch?v=bq5HZzGF3vQ
    5. SLAM – Simultaneous Localization and Mapping
      • The Mobile Robot Programming Toolkit (MRPT) http://babel.isa.uma.es/mrpt/index.php/Main_Page
    6. Visão Estéreo
      • Profundidade
    7. Visão Estéreo
      • Profundidade
    8. Visão Estéreo
    9. Visão Estéreo
    10. Visão Estéreo
    11. Visão Estéreo – mapa de profundidade
    12. Augmented Reality http://www.youtube.com/watch?v=enXTKvhE7yk
    13. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    14. Como os computadores veem?
    15. Como os computadores veem?
    16. O que é uma imagem?
      • Vetor 2d de pixels
      • Imagens binárias:
        • Pixels são bits
      • Imagens em tom de cinza:
        • Pixels são escalares
      • Imagens coloridas:
        • Pixels são vetores
        • A ordem pode variar (RGB, BGR, HSV, YUV)‏
        • Podem conter um canal alpha para sobreposições
    17. O que é uma imagem?
      • Vetor 2d de pixels
      • Imagens binárias:
        • Pixels são bits
      • Imagens em tom de cinza:
        • Pixels são escalares
      • Imagens coloridas:
        • Pixels são vetores
        • A ordem pode variar (RGB, BGR, HSV, YUV)‏
        • Podem conter um canal alpha para sobreposições
    18. O que é uma imagem?
      • Vetor 2d de pixels
      • Imagens binárias:
        • Pixels são bits
      • Imagens em tom de cinza:
        • Pixels são escalares
      • Imagens coloridas:
        • Pixels são vetores
        • A ordem pode variar (RGB, BGR, HSV, YUV)‏
        • Podem conter um canal alpha para sobreposições
    19. O que é uma imagem?
      • Vetor 2d de pixels
      • Imagens binárias:
        • Pixels são bits
      • Imagens em tom de cinza:
        • Pixels são escalares
      • Imagens coloridas:
        • Pixels são vetores
        • A ordem pode variar (RGB, BGR, HSV, YUV)‏
        • Podem conter um canal alpha para sobreposições
    20. O que é uma imagem?
      • Vetor 2d de pixels
      • Imagens binárias:
        • Pixels são bits
      • Imagens em tom de cinza:
        • Pixels são escalares
      • Imagens coloridas:
        • Pixels são vetores
        • A ordem pode variar (RGB, BGR, HSV, YUV)‏
        • Podem conter um canal alpha para sobreposições
    21. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    22. Imagens ruidosas e filtros: Gaussian Blur
    23. Imagens ruidosas e filtros: Gaussian Blur
      • Gaussian Blur
      • Blur simples (convolução 3x3): 1 2 1 2 4 2 1 2 1
      • Como filtrar uma imagem no GIMP?
    24. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    25. OpenCV
      • Biblioteca open source de visão computacional http://sourceforge.net/projects/opencvlibrary/
      • Desenvolvida e mantida pela Intel
      • Escrita em C e C++, roda em Linux, Windows e Mac OS X com interfaces para Python, Ruby, Matlab e outras linguagens. Otimizada para aplicações em tempo real (> 15 fps)‏
      • Prover infra-estrutura para aplicações de visão computacional de fácil utilização: mais de 500 funções
    26. OpenCV
      • Composta por 4 sub-módulos:
      CV Processamento de imagens Algoritmos de visão MLL Classificadores estatísticos Ferramentas de clusterização HighGUI GUI, entrada e saída de imagens e vídeos CXCore estruturas básicas e algoritmos, suporte a XML, funções de desenho
    27. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    28. Camshift - Continuously Adaptive Mean Shift Algorithm
    29. Camshift - Continuously Adaptive Mean Shift Algorithm
    30. Camshift
      • Demonstração
      • Onde encontrar o software?
        • Programas de demonstração da biblioteca OpenCv
          • /usr/local/share/opencv/samples/c/camshiftdemo
    31. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    32. Detecção de movimentos - Diferença absoluta
      • cvAbsDiff(frame1gray,frame2gray,result) cvShowImage("res",result) cvThreshold(result,result,30,255,CV_THRESH_BINARY) cvShowImage("res1",result)‏
    33. Detecção de movimentos - Diferença absoluta Importante: desabilitar ganho automático da webcam
    34. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    35. Cascata de classificadores – Viola Jones
      • Detecção de feições
      • Face tracking
    36. Features
      • Retângulos
      • Fáceis de serem calculados
        • Áreas brancas são subtraídas das áreas pretas
        • Integral Image – Representação especial que torna a extração da feature mais rápida
    37. Cálculo das Features – Integral Image
      • Soma dos valores de cada pixel (x,y)‏
        • Pode ser rapidamente computada com somente uma passagem pela imagem
    38. Cálculo das Features
      • Soma no interior de um Retângulo
        • Sejam A, B, C e D os valores dos retângulos considerando-se o canto superior esquerdo da imagem
        • Logo, a soma dos valores do retângulo ABCD é dada por:
          • SOMA = A – B – C + D
        • Somente três adições são necessárias para qualquer tamanho de retângulo!
    39. AdaBoost: Super Efficient Features Selector
      • Classificadores fracos = Features
      • A cada iteração:
        • Calculam-se os valores de cada feature em cada exemplar
        • Ordenam-se os exemplares pelos valores dos features
        • Seleciona-se o melhor feature / threshold
        • Recalculam-se os pesos dos exemplar
    40. Principais features identificadas
    41. Principais features identificadas
      • Classificador extremamente rápido (60 microinstruções)‏
      • Ajustado para detectar 100% das faces, com 40% de falsos positivos no primeiro estágio
    42. Cascata de classificadores: visando tempo-real
      • Prioridade de rejeição de background nos estágios iniciais
      • Imagem em escala de cinza (8 bits), 320x240, 500 mil janelas
      • Tempo de deteção ~ 10ms (1 face) ~20 ms (nenhuma face)‏
      • 25 estágios, 2912 features, menor janela 24x24
      • Otimizado para encontrar apenas a maior face
      • 70% a 80% das janelas são rejeitadas nos 2 primeiros estágios
    43. Pré processamento
      • Conversão para escala de cinza
        • cvCvtColor( img, cinza, CV_BGR2GRAY );
          • RGB[A]->Gray: Y<-0.299*R + 0.587*G + 0.114*B
      • Redimensionamento
        • cvResize( cinza, imagem_reduzida, CV_INTER_LINEAR );
      • Normalização de brilho
        • cvEqualizeHist( imagem_reduzida, imagem_reduzida );
          • 1. calcular histograma H para src.
          • 2. normalizar histograma, de forma que a soma seja 255.
          • 3. computar a integral do histograma:
          • H’(i) = somatório0≤j≤iH(j)‏
          • 4. transformar a imagem usando H’ como look-up table: dst(x,y)=H’(src(x,y))‏
    44. Face Tracker
      • Onde encontrar o software?
        • Programas de demonstração da biblioteca OpenCv
          • /usr/local/share/opencv/samples/c/facedetect
    45. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    46. Optical Flow
      • Objetivo: recuperar vetores de movimento aparente entre um par de imagens
      • Pode-se utilizar o algoritmo de Lucas-Kanade para verificar a velocidade de cada feição
      • Método diferencial de dois frames
      I(x,y,z,t) = I(x + δx,y + δy,z + δz,t + δt)‏
    47. Lucas-Kanade
    48. Lucas-Kanade
      • Demostração do Lucas Kanade
      • Onde encontrar o software?
        • Programas de demonstração da biblioteca OpenCv
          • /usr/local/share/opencv/samples/c/lkdemo
    49. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    50. POSIT: “Pose from Orthography and Scaling with Iteration”
      • Estimar posicionamento e rotação 3D de um objeto conhecido
    51. POSIT - “Model-based object pose in 25 lines of code” D. DeMenthon and L. S. Davis
      • Solução iterativa para o problema de encontrar o vetor de translação e a matriz de rotação (6 graus de liberdade)‏
      • Supor inicialmente que todos os pontos têm a mesma profundidade
      • Solução de sistema linear super-determinado. Decomposição SVD e cálculo de pseudo-inversa
    52. EHCI – Enhanced Human Computer Interaction
      • Utilização do algoritmo Posit para obter head tracking com 6 graus de liberdade
    53. EHCI – Enhanced Human Computer Interaction
      • http://code.google.com/p/ehci/
      • Demonstração EHCI
    54. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    55. Reconhecimento de Caracteres - OCR
      • Bibliotecas:
        • OCR Opus http://code.google.com/p/ocropus/
        • Tesseract http://code.google.com/p/tesseract-ocr/
    56. Reconhecimento de Caracteres - OCR
    57. Tópicos
      • O que é a visão computacional?
      • Como os computadores veem?
      • Filtros
      • OpenCV
      • Algoritmos
        • Segmentação por cor
        • Detecção de movimento por diferença absoluta
        • Classificadores: detecção de faces
        • Fluxo óptico
        • Estimativa de posição e rotação 3D
        • Leitura de caracteres
      • Módulo de visão computacional do TORP
    58. Arquitetura de visão computacional do TORP
    59. Instalação de drivers – UVC PWC
      • USB Video Device Class - Linux
        • http://linux-uvc.berlios.de/
      • Philips USB Webcam driver for Linux
        • http://www.saillard.org/linux/pwc/
      • Instalação dos drivers para Gumstix
        • http://www.theopenrobotproject.org/tiki-index.php?page=Installation+Instructions
      • V4L, V4L2: APIs para captura de vídeo para Linux
        • http://linuxtv.org/v4lwiki/index.php/Main_Page
    60. Mjpeg streamer
      • Servidor http + obtenção frames UVC
      • ./mjpg_streamer -o &quot;output_http.so -w ./www&quot;
      • http://sourceforge.net/projects/mjpg-streamer/
    61. Referências
      • Gary Bradsky & Adrian Kaehler “Learning OpenCV”
      • D. DeMenthon and L. S. Davis “Model-based object pose in 25 lines of code”
      • Jean-Yves Bouguet. “Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the algorithm”
    62. Referências
      • Rainer Lienhart and Jochen Maydt. “ An Extended Set of Haar-like Features for Rapid Object Detection.” Submitted to ICIP2002
      • Viola, P; Jones, M. “ Rapid Object Detection Using a Boosted Cascade of Simple Features – (2004)‏”
      • Alexander Kuranov, Rainer Lienhart, and Vadim Pisarevsky. “ An Empirical Analysis of Boosting Algorithms for Rapid Objects With an Extended Set of Haar-like Features” . Intel Technical Report MRL-TR-July02-01, 2002
    63. Agradecimentos
    64. Agradecimentos
    65. Dúvidas, sugestões e contribuições
        • Daniel Lélis Baggio
          • [email_address]

    + dannyxyz22dannyxyz22, 9 months ago

    custom

    1340 views, 1 favs, 0 embeds more stats

    This was the vision lecture I've presented in Campu more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1340
      • 1340 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 35
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories