Luis Felipe de Araujo Zeni 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 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 Processamento de Sinais Processamento de Imagens Visão Computacional 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 Usualmente 30 quadros por segundo 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
Vídeo: https://www.youtube.com/watch?v=P-QEnnMHYt0 Zed Vídeo: https://www.youtube.com/watch?v=P-QEnnMHYt0
Structure From Motion Recuperar a profundidade utilizando o movimento da câmera Vídeo: https://www.youtube.com/watch?v=R1xvrYu592Q Vídeo: https://www.youtube.com/watch?v=i7ierVkXYa8
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=dTKlNGSH9Po
Outros Tópicos Filtragem de Imagens Detectores de Formas Descritores Suavização Bordas Detectores de Formas Pontos (Cantos) Linhas Círculos Descritores Detecção de Objetos Segmentação de Objetos Subtração do Fundo
Aplicações Contagem Vídeo: https://www.youtube.com/watch?v=Jdu-cfxZXBA Rastreamento Vídeo: https://www.youtube.com/watch?v=3BJFxnap0AI Vídeo: https://www.youtube.com/watch?v=Z9X3IhHytrQ
Aplicações Reconhecimento de Caracteres Vídeo: Indisponível Vídeo: https://www.youtube.com/watch?v=h2OfQdYrHRs Biometria Vídeo: https://www.youtube.com/watch?v=C39zOFvXflI
Vídeo: https://www.youtube.com/watch?v=Wn9yUZm1fqY Aplicações Realidade Aumentada Vídeo: https://www.youtube.com/watch?v=Wn9yUZm1fqY 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: luisfelipezeni@gmail.com