220 likes | 293 Views
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. Apresentado por:
E N D
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 Apresentado por: Prof. Dr. Fernando S. OSÓRIO -PPG Computação Aplicada / Unisinos 1
Agenda • 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 2
1. Motivação / Histórico SVR 2000 3
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
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 • Servir como entrada para sistemas de simulação de comportamento de humanos virtuais em ambientes povoados • Definir para cada classe de posturauma ação selecionada dentro de uma série de comportamentos estruturados 5
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 • Servir como entrada para sistemas de simulação de comportamento de humanos virtuais em ambientes povoados • Definir para cada classe de posturauma ação selecionada dentro de uma série de comportamentos estruturados 6
2. Objetivos - Visão Geral do Projeto Visão Computacional Simulação com Humanos Virtuais WebCam: Processamento de Imagens Rede Neural: Treino / Uso na classificação Ações: Grupos de Humanos Virtuais 7
Treinamento RNA [SNNS/C++] Aplicaçãode multidões de humanos virtuais [C++] Matlab Aquisição, procesamento e medidas Classificador RNA [C++] = Sockets e Memória Compartilhada 2. Objetivos - Visão Geral do Projeto Integração: Aquisição das Imagens, Classificação, Ações 8
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 • 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) 9
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 • 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 10
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 • 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) 11
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. 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) 12
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 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) 13
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 Histograma Horizontal 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) 14
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 Histograma Vertical 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) 15
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 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 Rede Neural: 22-22-6 (22 Input, 22 Hidden, 6 Output) Aprendizado: RProp (Resilent Propagation ~ BackProp acelerado) Softwares: JavaNNS SNNS Analyze SNNS2C 16
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
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
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
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 • 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 20
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... A tool for teaching musical metrics based on computer vision - CGI2007 Rodrigo Schramm e Claudio Jung 21