Desenvolvimento de aplicações de visão computacional
para dispositivos móveis baseados em Android.
Luis Felipe de Araujo Zeni
Apresentação

Luis Felipe de Araujo Zeni

Mestre em computação pela UFRGS
Professor @ Centro Universitário Ritter dos Reis
Programador Android @ Compuletra

Cervejeiro Caseiro =)


Programação
1.
2.
3.
4.
5.
Introdução à Visão Computacional
Aplicações
Perfil do Profissional
OpenCV
OpenCV + Android
Visão Computacional

Habilidade dos computares em ver.





Compreensão de imagens
Visão de Maquina
Visão de Robôs
Analise de Imagens
Compreensão de vídeos
Visão Computacional
Processamento de Sinais
Processamento
de Imagens
Aprendizado de Máquina
Uma Imagem, muitos significados
Muitas Imagens, um significado
Imagem



Matriz 2D de números (valores de intensidade de níveis de cinza)
Níveis de cinza entre 0 (preto) até 255 (branco)
Uma imagem colorida é composta de 3 Matrizes 2D




Vermelho
Verde
Azul
Resolução (número de linhas x colunas)




640x480
1280x720
1920x1080
3840x2160
Imagem 2D
Imagem 2D Colorida
=
Vídeo

Sequência de Imagens


Vetor de Matrizes 3D
Usualmente 30 quadros por segundo
Formação de uma Imagem




Fonte de luz
Posição da Câmera e Lentes
Cena (Tipo de superfície)
Perde a informação de profundidade
Fonte da Imagem: http://szeliski.org/Book
Recuperando a profundidade da cena





Visão Estéreo
Movimento
Sombreamento
Textura
Perspectiva
Câmera Estéreo

Com duas imagens podemos recuperar a profundidade com uma triangulação
=
Câmera Estéreo
Zed
Vídeo:
https://www.youtube.
com/watch?v=PQEnnMHYt0
Structure From Motion

Recuperar a profundidade utilizando o movimento da câmera
Vídeo:
https://www.youtube.
com/watch?v=R1xvr
Yu592Q
Vídeo:
https://www.youtube.
com/watch?v=i7ierVk
XYa8
3D from Shadding
3D from Texture
3D from perspective
Fonte da Imagem: http://szeliski.org/Book
Structured Light
Vídeo:
https://www.youtube.
com/watch?v=dTKlN
GSH9Po
Vídeo:
https://www.youtube.
com/watch?v=C9ZCn
aNxNQE
Outros Tópicos

Filtragem de Imagens



Detectores de Formas







Suavização
Bordas
Pontos (Cantos)
Linhas
Círculos
Descritores
Detecção de Objetos
Segmentação de Objetos
Subtração do Fundo
Aplicações
Contagem
Rastreamento
Vídeo:
https://www.youtube.
com/watch?v=z1Cvn
3_4yGo
Vídeo:
https://www.youtube.
com/watch?v=3BJFxn
ap0AI
Vídeo:
https://www.youtube.co
m/watch?v=JducfxZXBA
Vídeo:
https://www.youtube.
com/watch?v=Z9X3I
hHytrQ
Aplicações
Reconhecimento
de Caracteres
Vídeo: Indisponível
Biometria
Vídeo:
https://www.youtube.
com/watch?v=C39zO
FvXflI
Vídeo:
https://www.youtube.
com/watch?v=h2OfQ
dYrHRs
Aplicações
Realidade
Aumentada
Vídeo:
https://www.youtube.
com/watch?v=Wn9y
UZm1fqY
Segurança
Imagens Médicas
Inspeção de Máquinas e Componentes
Conhecimentos do profissional de Visão Computacional

Matemática





Álgebra Linear
Calculo
Probabilidade e Estatística
Modelagem de Dados
Programação




Matlab
Python
C e C++
OpenCV
OpenCV





Open Source Computer Vision
Em desenvolvimento desde 2000
Atualmente na versão 3.0
Multiplataforma
Escrita em C++

Com wrappers para:





Java
C#
Matlab
Android
iOS
Android ou iOS?
Fonte: http://www.idc.com/prodserv/smartphone-os-market-share.jsp
Android + OpenCV Ferramentas Necessárias


ADT Bundle
Android Studio



JDK 7 >
OpenCV4Android
Smartphone com Android
Arquitetura do Android
http://androidteam.googlecode.com/files/Anatomy-Physiology-of-an-Android.pdf
Exemplo Prático
Vamos Programar 
Espaço para interação

Obrigado pela presença 

Contato: [email protected]
Download

Desenvolvimento de aplicações de visão computacional