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]