INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO TRIÂNGULO MINEIRO – CAMPUS UBERLÂNDIA CENTRO CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET FERNANDA DE PAULA SILVA Construção de motor para reconhecimento de poses e movimentos humanos usando dispositivo Kinect UBERLÂNDIA, MG 2015 FERNANDA DE PAULA SILVA Construção de motor para reconhecimento de poses e movimentos humanos usando dispositivo Kinect Projeto de pesquisa apresentado ao Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro, Campus Uberlândia Centro, como requisito parcial para conclusão do Curso de Tecnologia em Sistemas para Internet. Orientador: Prof. Dr. Nelio Muniz Mendes Alves UBERLÂNDIA, MG 2015 SUMÁRIO 1. 2. 3. INTRODUÇÃO ...............................................................................................................................4 1.1. TEMA .......................................................................................................................... 5 1.2. PROBLEMA ................................................................................................................ 5 1.3. OBJETIVOS ................................................................................................................ 5 1.3.1. GERAL ................................................................................................................. 5 1.3.2. ESPECÍFICOS ..................................................................................................... 5 1.4. JUSTIFICATIVA ........................................................................................................ 5 1.5. DELIMITAÇÃO .......................................................................................................... 6 REFERENCIAL TEÓRICO ............................................................................................................6 2.1. KINECT ....................................................................................................................... 6 2.2. RECONHECIMENTO DE MOVIMENTOS .............................................................. 7 MATERIAIS E MÉTODOS ............................................................................................................8 3.1. CARACTERIZAÇÃO DA PESQUISA ...................................................................... 8 3.2. PROCEDIMENTOS .................................................................................................... 9 3.3. MÓDULOS A SEREM DESENVOLVIDOS ............................................................. 9 4. CRONOGRAMA ...........................................................................................................................10 5. REFERÊNCIAS .............................................................................................................................10 1. INTRODUÇÃO Muitos esforços tem sido levados a cabo no intuito de se reconhecer a posição e movimentos humanos, com diversas aplicações em Interação Humano-Computador, captura de movimento e reconhecimento de atividades (PATSADU; NUKOOLKIT; WATANAPA, 2012). Vários desafios surgem, entretanto, devido a várias complicações tais como grande área de varredura a ser coberta, vários graus de liberdade envolvidos, variações no ambiente em que o usuário está, parâmetros do corpo do usuário e mudanças na iluminação. Além disso, um sistema que detecta posição e movimentos humanos deve ser capaz de tratar problemas de oclusão de partes do corpo, eliminar posições impossíveis, dentre outros (KAR, 2010). Entretanto, após o lançamento Kinect, dispositivo de leitura de posição humana 3D produzido pela Microsoft (MICROSOFT, 2014a), uma nova etapa de pesquisas nessa área se iniciou, devido ao baixo custo do dispositivo, o que tornou essa tecnologia acessível aos usuários finais e, por conseguinte, abriu um leque de novas possibilidades de aplicações. Em uma pesquisa contemplada pelo Edital PIBIC 04-2012 do IFTM, foi desenvolvido um estudo piloto sobre reconhecimento de padrões de movimentos humanos com Kinect (RIBEIRO; ALVES, 2013). Naquele estudo foi construído um protótipo de um software capaz de gravar sequências de movimentos e também detectar se o usuário realizou alguma sequência de movimento já gravada. Embora o protótipo desempenhasse sua funcionalidade de reconhecimento de movimento, o método utilizado para reconhecimento foi muito limitado, pois fazia o reconhecimento com base em posições absolutas no tempo e espaço 3D, o que não considera questões de normalização tais como a diferença entre pessoas de estaturas distintas e a distância e inclinação da pessoa em relação à câmera. Outra pesquisa, contemplada pelo Edital PIBIC 05-2014 do IFTM, se encontra em andamento no sentido de aprimorar os métodos de reconhecimento de movimento propostos no estudo anterior, de modo a adicionar melhorias tais como a normalização, particularmente investigando mecanismos de reconhecimento de poses baseados na comparação dos ângulos entre os "ossos" do usuário. Diante disso, a pesquisa proposta neste projeto pretende colaborar neste sentido, consistindo da construção do motor para reconhecimento de poses e movimentos humanos usando dispositivo Kinect, ou seja, consiste na elaboração e implementação dos módulos de software responsáveis pelo armazenamento e processamento das poses e movimentos humanos que serão gravados e reconhecidos por meio do Kinect. 1.1.TEMA Reconhecimento de movimentos humanos. 1.2.PROBLEMA O problema que esta pesquisa pretende investigar consiste na seguinte questão: como realizar o reconhecimento normalizado de movimentos humanos com o dispositivo Kinect? 1.3.OBJETIVOS 1.3.1. GERAL Construir um motor para reconhecimento de poses e movimentos humanos usando dispositivo Kinect. 1.3.2. ESPECÍFICOS Construir módulos responsáveis pelo armazenamento e recuperação de poses e movimentos. Construir módulos responsáveis pela reprodução de poses e movimentos. Construir módulos responsáveis pelo reconhecimento de poses e movimentos, verificando se a pose ou movimento executado por um usuário na frente do Kinect correspondem à pose ou movimento previamente armazenados. 1.4.JUSTIFICATIVA Com o surgimento do Kinect e a recente disponibilização do Kit de Desenvolvimento de Software, um novo horizonte se abriu tanto para pesquisa como para inovação na área de reconhecimento de movimentos humanos pois, trata-se de um dispositivo de baixo custo, acessível a usuários finais, além de contar com tecnologia de ponta e processadores poderosos. Além disso, essa pesquisa possui significativa relevância porque o reconhecimento de movimento possui diversas aplicações. Algumas delas são mencionadas a seguir: Interface humano-máquina: é possível manipular máquinas, como televisores, computadores, casas inteligentes, dentre outros, a partir dos movimentos corporais, gestos com as mãos, etc. Acessibilidade: podem ser desenvolvidas alternativas para pessoas com mobilidade reduzida e outras necessidades especiais, por meio de, por exemplo, gestos com as mãos ou cabeça. Segurança e vigilância: movimentos de ameaça ou pânico podem ser detectados de modo a acionar procedimentos e tratativas para incidentes. Robótica: manipulação de robôs, braços mecânicos e demais máquinas com metáforas humanoides. Entretenimento: jogos clássicos, educativos, etc. Fisioterapia e reabilitação: a pessoa pode desempenhar programas de fisioterapia e ser avaliada com auxílio de software especializado. Treinamento físico: suporte e avaliação de movimentos de precisão exigidos por certos esportes, coreografias de dança, dentre outros. 1.5.DELIMITAÇÃO Este estudo se limitará a investigar o reconhecimento de movimentos de uma pessoa com base em seu "esqueleto" corporal baseado na estrutura de dados oferecida pelo Kinect. Não serão examinados outros detalhes como dedos e expressões faciais. 2. REFERENCIAL TEÓRICO 2.1.KINECT O Kinect é um dispositivo de detecção de movimento produzido pela Microsoft para o vídeo game Xbox 360 e para computadores com Windows, e recentemente também em sua nova versão para Xbox One (MICROSOFT, 2014a) (Figura 1). Figura 1 – Visão Frontal do Kinect O Kinect consiste de um dispositivo periférico que permite que o usuário controle e interaja com estes aparelhos sem a necessidade de tocá-los, mas sim utilizando interface natural, por meio de gestos e comandos de voz (Figura 2). Para conseguir este resultado, o dispositivo utiliza um projetor infravermelho, câmera e tecnologias de microchip e software que rastreiam os movimentos dos objetos e pessoas em três dimensões (MICROSOFT, 2014b). Este sistema de scanner 3D é chamado de Light Coding (MICROSOFT, 2014a), que emprega uma variante da tecnologia de reconstrução 3D baseada em imagem. Figura 2 – Usuário interagindo com o Kinect apenas com movimentos do corpo Além do dispositivo, a Microsoft também lançou em 16 de Junho de 2011 o Kit de Desenvolvimento de Software (SDK) para Kinect, o que permitiu que qualquer desenvolvedor de software pudesse criar aplicativos para este dispositivo. 2.2.RECONHECIMENTO DE MOVIMENTOS O dispositivo Kinect, entretanto, possui a funcionalidade básica de informar a posição do corpo em um espaço 3D em tempo real, por meio da detecção de vinte pontos do corpo humano denominados "juntas" (Figura 3). Figura 3 – Juntas detectadas pelo Kinect Entretanto, a simples leitura das posições das juntas não são suficientes para dizer se uma pessoa está em uma determinada posição: é preciso estabelecer métodos de comparação e de tolerância a imprecisões de acordo com o contexto de aplicação desejado, além de tratar questões de "normalização" dos pontos detectados para tolerar diferenças entre pessoas de tamanho e proporções corporais diferentes, e até mesmo inclinação da pessoa em relação à câmera do Kinect. O problema se complica ainda mais quando se trata de comparar um movimento – tema desta pesquisa – uma vez que entram outras questões tais como a diferença no número e distribuição dos quadros (frames) do vídeo no tempo, outras questões de imprecisão, e assim por diante, como mostrado na Figura 4. Figura 4 – Problema básico na área de reconhecimento de movimento 3. MATERIAIS E MÉTODOS 3.1.CARACTERIZAÇÃO DA PESQUISA Este estudo possui um caráter de pesquisa de Engenharia (ADRION, 1993), que consiste em uma abordagem evolutiva: Engenheiros observam soluções existentes, propõe melhorias e analisam e mensuram as propostas de melhoria. Este esquema se repete enquanto houver possíveis melhorias identificadas (GLASS, 1994) (ZELKOWITZ, 1998). O que os autores citados classificaram como Método de Engenharia se encaixa na natureza desta pesquisa: desejamos investigar uma tecnologia para adquirir conhecimento sobre ela, construir protótipos de teste e, de posse deste conhecimento, desenvolver depois novas propostas de inovações. 3.2.PROCEDIMENTOS O processo de desenvolvimento da solução para o problema da pesquisa será baseado no princípio de desenvolvimento de software interativo e incremental, conforme modelo espiral (BOEHM, 1988). Os seguintes subprocessos serão levados a cabo: 1) Projeto: será desenhado o projeto detalhado dos módulos que compõe o motor para reconhecimento de poses e movimentos humanos usando dispositivo Kinect, utilizando-se a linguagem UML (BOOCH, RUMBAUGH, JACOBSON, 2000). 2) Codificação: as unidades de implementação do motor serão codificadas usando-se a linguagem C# com a ferramenta Unity 3D (OKITA, 2014). Serão feitos também protótipos para se testar o motor. 3) Testes: serão feitos testes exploratórios para validar a funcionalidade do motor. 3.3.MÓDULOS A SEREM DESENVOLVIDOS Os módulos a serem desenvolvidos são mostrados na Figura 5. A responsabilidade de cada módulo é descrita a seguir. Módulo dao – Responsável pelas funcionalidades de acesso a dados (gravação e recuperação dos dados de poses e movimentos). Módulo geometria – Responsável pelas funcionalidades relacionados a cálculos geométricos necessários ao processamento do reconhecimento de poses e movimentos. Módulo poses – Responsável pelo reconhecimento de poses. Módulo movimentos – Responsável pelo reconhecimento de movimentos. 4. CRONOGRAMA Atividade Mês 1 Desenvolvimento do módulo de acesso a dados (dao) x Desenvolvimento do módulo de geometria x 2 3 4 x Desenvolvimento do módulo de poses x x Desenvolvimento do módulo de movimentos x x Produção de relatórios e material para publicação x x 5. REFERÊNCIAS ADRION, W. Research Methodology in Software Engineering. ACM Software Engineering Notes, v. 18, n. 1, p. 36-37, 1993. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML-GUIA DO USUARIO: TRADUÇAO DA SEGUNDA EDIÇAO. Elsevier Brasil, 2000. BOEHM, Barry W.. . A spiral model of software development and enhancement. Computer, v. 21, n. 5, p. 61-72, 1988. GLASS, R. The Software Research Crisis. IEEE Software, p. 42-47, 1994. KAR, A. Skeletal Tracking using Microsoft Kinect. Methodology. [S.l.]: [s.n.]. 2010. p. 110. MICROSOFT CORP. Kinect for Windows - Gallery. Microsoft Corp, 2012. Disponivel em: <http://www.microsoft.com/en-us/kinectforwindows/ discover/gallery.aspx>. Acesso em: 20 mai. 2014a. MICROSOFT CORP. PrimeSense Supplies 3-D-Sensing Technology to “Project Natal” for Xbox 360. Microsoft.com, 2010. Disponivel em: <http://www.microsoft.com/en- us/news/press/2010/mar10/03-31PrimeSensePR.aspx>. Acesso em: 20 mai. 2014b. OKITA, Alex. Learning C# Programming with Unity 3D. CRC Press, 2014. PATSADU, O.; NUKOOLKIT, C.; WATANAPA, B. Human Gesture Recognition Using Kinect Camera. International Joint Conference on Computer Science and Software Engineering. Bangkok: IEEE. 2012. p. 5. RIBEIRO, L. M.; ALVES, N. M. M. Padrões de Movimentos Humanos com Kinect. III Seminário de Iniciação Científica e Tecnológica. Uberlândia. IFTM. 2013. ZELKOWITZ, M. Experimental Models for Validating Technoloty. IEEE Computer, p. 2331, 1998.