Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. UNISINOS - PUC/RS RBV - Rede Brasileira de Visualização / FINEP HP Brasil Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. Thiago Kehl Fernando S. Osório Cláudio R. Jung Soraia R. Musse 1 30 May 2007 Apresentado por: Prof. Dr. Fernando S. OSÓRIO - PPG Computação Aplicada / Unisinos Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. Agenda 1. 2. 3. 4. 5. 6. 2 30 May 2007 Motivação / Histórico Objetivos > Interface Homem-Máquina > Visão Geral do Projeto Visão Computacional > Reconhecimento de Posturas > Extração de Atributos > Aprendizado e Classificação Neural (ANN) > Resultados: Rede Neural Simulação com Humanos Virtuais > Modelos de Comportamento (ações) Arquitetura do Sistema Conclusões e Perspectivas Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 1. Motivação / Histórico SVR 2000 3 30 May 2007 Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 2. Objetivos IHC - Interface Homem-Máquina • Interface usando dispositivos diferentes... Convencionais => Teclado, Mouse, Joystick Novos dispositivos => Interação Gestual - Uso de data-gloves - Uso de sensores de movimento (encoders, acelerômetros) - Uso de câmeras • Diferencial: - Custo - Facilidade de uso / Simplicidade da Interação 4 30 May 2007 Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 2. Objetivos Visão Computacional Pré-processar imagens de posturas de mãos coletadas através de uma Webcam Construir um classificador capaz de identificar tais posturas Simulação com Humanos Virtuais 5 30 May 2007 Servir como entrada para sistemas de simulação de comportamento de humanos virtuais em ambientes povoados Definir para cada classe de postura uma ação selecionada dentro de uma série de comportamentos estruturados Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 2. Objetivos Visão Computacional Pré-processar imagens de posturas de mãos coletadas através de uma Webcam Construir um classificador capaz de identificar tais posturas Simulação com Humanos Virtuais 6 30 May 2007 Servir como entrada para sistemas de simulação de comportamento de humanos virtuais em ambientes povoados Definir para cada classe de postura uma ação selecionada dentro de uma série de comportamentos estruturados Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 2. Objetivos - Visão Geral do Projeto Visão Computacional WebCam: Processamento de Imagens Rede Neural: Treino / Uso na classificação Simulação com Humanos Virtuais Ações: Grupos de Humanos Virtuais 7 30 May 2007 Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 2. Objetivos - Visão Geral do Projeto Integração: Aquisição das Imagens, Classificação, Ações Treinamento RNA [SNNS/C++] Matlab Aquisição, procesamento e medidas Aplicação de multidões de humanos virtuais [C++] Classificador RNA [C++] 8 30 May 2007 = Sockets e Memória Compartilhada Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 3. Visão Computacional 3.1 Reconhecimento de Posturas 3.2 Extração de Atributos 3.3 Aprendizado e Classificação Neural (ANN) 3.4 Resultados: Rede Neural Posturas escolhidas para utilização no experimento • • • • • 9 30 May 2007 • 5 dedos (mão aberta) 0 dedos (mão fechada) 1 dedo (indicador) 1 dedo (polegar) 2 dedos (v – vitória) 1 dedo (mínimo) Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 3. Visão Computacional 3.1 Reconhecimento de Posturas 3.2 Extração de Atributos 3.3 Aprendizado e Classificação Neural (ANN) 3.4 Resultados: Rede Neural Posturas escolhidas para utilização no experimento • • • • • 10 30 May 2007 • 5 dedos (mão aberta) 0 dedos (mão fechada) 1 dedo (indicador) 1 dedo (polegar) 2 dedos (v – vitória) 1 dedo (mínimo) Posturas Gestos Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 3. Visão Computacional 3.1 Reconhecimento de Posturas 3.2 Extração de Atributos 3.3 Aprendizado e Classificação Neural (ANN) 3.4 Resultados: Rede Neural Posturas escolhidas para utilização no experimento • • • • • 11 30 May 2007 • 5 dedos (mão aberta) 0 dedos (mão fechada) 1 dedo (indicador) 1 dedo (polegar) 2 dedos (v – vitória) 1 dedo (mínimo) Aquisição das imagens: - Aquisição das imagens a partir da Webcam - Pré-processamento das imagens no MATLAB - A limiarização e segmentação das imagens - Extração das referência (métricas/atributos) Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 3. Visão Computacional 3.1 Reconhecimento de Posturas 3.2 Extração de Atributos 3.3 Aprendizado e Classificação Neural (ANN) 3.4 Resultados: Rede Neural Exemplo de extração de atributos: (a) Intensidade do canal azul. (b) Resultado da binarização. (c) Resultado do fechamento morfológico. (d) Imagem binária final restrita ou bounding box. 12 30 May 2007 Aquisição das imagens: - Aquisição das imagens a partir da Webcam - Pré-processamento das imagens no MATLAB - A limiarização e segmentação das imagens - Extração das referência (métricas/atributos) Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 3. Visão Computacional 3.1 Reconhecimento de Posturas 3.2 Extração de Atributos 3.3 Aprendizado e Classificação Neural (ANN) 3.4 Resultados: Rede Neural 13 30 May 2007 Extração de Atributos (feições): Procedimentos que, aplicados a uma imagem retornam um valor numérico capaz de diferenciar os tipos de imagens - Histograma Vertical - Histograma Horizontal - Densidade de P/B - Alternância de P/B - Bounding Box Aquisição das imagens: - Aquisição das imagens a partir da Webcam - Pré-processamento das imagens no MATLAB - A limiarização e segmentação das imagens - Extração das referência (métricas/atributos) Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 3. Visão Computacional 3.1 Reconhecimento de Posturas 3.2 Extração de Atributos 3.3 Aprendizado e Classificação Neural (ANN) 3.4 Resultados: Rede Neural 14 30 May 2007 Extração de Atributos (feições): Procedimentos que, aplicados a uma imagem retornam um valor numérico capaz de diferenciar os tipos de imagens - Histograma Vertical - Histograma Horizontal - Densidade de P/B - Alternância de P/B - Bounding Box Histograma Horizontal Aquisição das imagens: - Aquisição das imagens a partir da Webcam - Pré-processamento das imagens no MATLAB - A limiarização e segmentação das imagens - Extração das referência (métricas/atributos) Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 3. Visão Computacional 3.1 Reconhecimento de Posturas 3.2 Extração de Atributos 3.3 Aprendizado e Classificação Neural (ANN) 3.4 Resultados: Rede Neural 15 30 May 2007 Extração de Atributos (feições): Procedimentos que, aplicados a uma imagem retornam um valor numérico capaz de diferenciar os tipos de imagens - Histograma Vertical - Histograma Horizontal - Densidade de P/B - Alternância de P/B - Bounding Box Histograma Vertical Aquisição das imagens: - Aquisição das imagens a partir da Webcam - Pré-processamento das imagens no MATLAB - A limiarização e segmentação das imagens - Extração das referência (métricas/atributos) Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 3. Visão Computacional 3.1 Reconhecimento de Posturas 3.2 Extração de Atributos 3.3 Aprendizado e Classificação Neural (ANN) 3.4 Resultados: Rede Neural Entradas adotadas: Atributos das imagens 10 projeções verticais 10 projeções horizontais Dimensões da largura e altura do bounding box Softwares: JavaNNS SNNS Analyze SNNS2C Base de treinamento e teste/validação do classificador: 22 entradas e 1 saída (a sua respectiva classe (1 dentre as 6 posturas) 600 exemplos (imagens) - 420 de treino (70%) e 180 de validação (30%) 70 exemplos de cada classe = 70 x 6 = 420 exemplos na base de treino 16 30 May 2007 Rede Neural: 22-22-6 (22 Input, 22 Hidden, 6 Output) Aprendizado: RProp (Resilent Propagation ~ BackProp acelerado) Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 3. Visão Computacional 3.1 Reconhecimento de Posturas 3.2 Extração de Atributos 3.3 Aprendizado e Classificação 3.4 Resultados: Rede Neural Taxa média de acertos - aprendizado : 99,95% Taxa média de erro - abaixo de 0,05%. Taxa de acertos (treino/teste): muito próxima a 100% 17 30 May 2007 Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 3. Visão Computacional 3.1 Reconhecimento de Posturas 3.2 Extração de Atributos 3.3 Aprendizado e Classificação 3.4 Resultados: Rede Neural Taxa média de acertos - aprendizado : 99,95% Taxa média de erro - abaixo de 0,05%. Taxa de acertos (treino/teste): muito próxima a 100% 18 30 May 2007 Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 4. Simulação com Humanos Virtuais Simulação de grupos - "Crowds" Aplicação de simulação militar: - Formação: Linha, Quadrado, Divisão de grupo, Junção - Agrupamento: Denso, Esparso Comando das tropas através de gestos - Reconhecimento de posturas - Associação da postura às ações 19 30 May 2007 Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 5. Arquitetura do Sistema – Exportação da rede com o melhor resultado – Utilização do SNNS2C para exportar a rede que apresentou o melhor resultado dentre todos os testes Integração das aplicações via sockets e memória compartilhada 20 30 May 2007 Aquisição da Imagem Pré-Processamento: extração de atributos Classificação com a rede (snns2c) Classe identificada gera código da ação Geração das ações => Animação do Humanos Virtuais Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. 6. Conclusões e Perspectivas Tópicos abordados: - Interface Humano-Computador - Aprendizado e Reconhecimento de Posturas - Aplicação em Tempo Real - Visão Computacional - Simulação de Humanos Virtuais Trabalhos Futuros: - Reconhecimento de GESTOS (dinâmica do movimento) - Explorar mais o uso de interfaces gestuais Trabalhos relacionados... 21 30 May 2007 A tool for teaching musical metrics based on computer vision - CGI2007 Rodrigo Schramm e Claudio Jung Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais Nelson F. Souza Jr. et al. Proc. Imagens / Visualização 3D 22 30 May 2007