Construção de motor para reconhecimento de poses

Propaganda
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.
Download