SlideShare une entreprise Scribd logo
1  sur  64
Gabriel Vaz Aires
ANÁLISE FACIAL COMPUTADORIZADA PARA IDENTIFICAÇÃO DA
EXPERIÊNCIA EMOCIONAL UTILIZANDO O KINECT
Palmas - TO
2016
Gabriel Vaz Aires
ANÁLISE FACIAL COMPUTADORIZADA PARA IDENTIFICAÇÃO DA
EXPERIÊNCIA EMOCIONAL UTILIZANDO O KINECT
Trabalho de Conclusão de Curso (TCC) elaborado e
apresentado como requisito parcial para obtenção do
título de bacharel em Sistema de Informação pelo
Centro Universitário Luterano de Palmas
(CEULP/ULBRA).
Orientador: Prof. M.e. Fernando Luiz de Oliveira.
Palmas - TO
2016
Gabriel Vaz Aires
ANÁLISE FACIAL COMPUTADORIZADA PARA IDENTIFICAÇÃO DA
EXPERIÊNCIA EMOCIONAL UTILIZANDO O KINECT
Trabalho de Conclusão de Curso (TCC) elaborado e
apresentado como requisito parcial para obtenção do
título de bacharel em Sistemas de Informação pelo
Centro Universitário Luterano de Palmas
(CEULP/ULBRA).
Orientador: Prof. M.e. Fernando Luiz de Oliveira.
Aprovada em: de .
BANCA EXAMINADORA
___________________________________________________
Prof. M.e. Fernando Luiz de Oliveira
Orientador
Centro Universitário Luterano de Palmas
___________________________________________________
Prof. M.e. Fabiano Fagundes
Centro Universitário Luterano de Palmas
___________________________________________________
Prof. M.e. Pierre Soares Brandão
Centro Universitário Luterano de Palmas
Palmas - TO
2016
AGRADECIMENTOS
Primeiramente a Deus por ter me dado forças e a devida saúde para alcançar mais um
sonho e aguentar esses longos anos em um curso realmente fantástico.
Aos meus pais Zilman Aires Moura e Irani Vaz da Silva Aires, meu irmão, minha avó,
meu avô e meus tios, apenas posso agradecer por tudo que me proporcionaram, pois nunca
conseguirei compensar devidamente a dedicação que sempre manifestaram.
Ao meu orientador, Fernando Oliveira, agradeço por tudo que me ensinou, pela
paciência, pela insistência, pelas cobranças, pelos conselhos, pelos se Deus quiser.
Aos professores da banca, Fabiano Fagundes e Pierre Brandão, agradeço pelas
contribuições, pois cada orientação foi importante para o término com êxito.
Aos professores Edeilson, Cristina, Madianita, Parcilene e Jackson, agradeço toda a
paciência, pelos apelido engraçados e por mostrarem que os cursos de Ciência da Computação
e Sistemas de Informação do Centro Universitário Luterano de Palmas não possuem apenas um
grupo de professores e sim, uma família de professores extremamente dedicada e animada.
A Jackeline do Santos, por ser a pessoa que me aguentava nos momentos de desespero e
despreparo para seguir com o trabalho, sempre me ajudando a superar as adversidades de forma
carinhosa.
Também meus amigos: João Batista Borges, Marcos Batista, Silas Gonçalves,
Ranyelson Neres, Fábio Ricardo, Luiz Carlos Fernandes, Lucas Roese e os demais do curso,
pois com eles aprender se tornava cada vez mais divertido.
Enfim, agradeço a todos os amigos e colegas por cada momento que passamos juntos.
Muito obrigado!
RESUMO
AIRES, Gabriel Vaz. Análise facial computadorizada para identificação da experiência
emocional utilizando o Kinect. 2016. 51 f. TCC (Graduação) - Curso de Sistemas de
Informação, Centro Universitário Luterano de Palmas, Palmas, 2016.
O presente estudo aborda o reconhecimento dos estados afetivos por meio do Sensor
Microsoft Kinect, experiência emocional e rastreamento facial. Neste trabalho foi construído
um software de reconhecimento do estado afetivo que serve como módulo para o sistema
FisioKinect. Este módulo permite reconhecer o momento de cada expressão facial, mais
especificamente a alegria e a tristeza, realizada por um usuário com objetivo de se obter o
conhecimento do estado afetivo em tempo real, estudo realizado na área de Computação
Afetiva. Vale ressaltar que este trabalho procura perceber como é trabalhado o processo de
análise facial e identificação dos estados emocionais através do Sensor Microsoft Kinect. Este
Sensor é uma das tecnologias que automatiza o processo de obtenção dos dados dos estados
afetivos através das expressões faciais das pessoas já que, com o uso do sensor RGB e de uma
API presente no dispositivo, é possível a visualização da representação do rosto humano em
tempo real. Através dos recursos oferecidos pelo Sensor Microsoft Kinect, é possível a
obtenção de experiência emocionais através do rosto humano, que pode ser utilizado para
resolução de diversos problemas, como por exemplo, nos softwares que visam automatizar o
processo de obtenção de estados emocionais ou afetivos diante de testes ou avaliações. Por
fim o trabalho apresentou um caminho para a realização do reconhecimento do estado afetivo
por meio do Sensor Microsoft Kinect, destacando os estados afetivos já desenvolvidos, com
isso podendo expandir aos demais estados como por exemplo, surpresa, raiva, medo, angústia.
Palavras-chave: Sensor Microsoft Kinect. Experiência Emocional. Análise
Computadorizada. Estado Emocional.
ABSTRACT
This study adresses the recognition of affective states through the Microsoft Kinect Sensor,
emotional experience and facial tracking. In this work it was built an affective state
recognition software that works as a module for the FisioKinect system. This module allows
to recognize the moment of each facial expression, more especifically joy and a period of
evaluation, the study done in the Affective Computing area. It is worth mentioning that this
work seeks to understand how the process of facial analysis and identification of emotional
states through the Microsoft Kinect Sensor works. This sensor is one of the technologies that
automates the process of gathering data from the affective states to the facial expressions from
people who, with using the RGB sensor and an API is not a device, is a view of the
represenation of the human face in real time. Through the resources offered by the Microsoft
Kinect sensor, it is possible to obtain emotional experience through the human face, which
can be used to solve various problems, such as the softwares that aim at automating the
process of obtaining the emotional states from tests and evaluations. Finally, this worked
showed a way for a affective state recognition test through the Microsoft Kinect Sensor,
highlighting the already develop affective states, then the work can expand to the remaining
emotional states such as surprise, anger, fear and anguish.
Keywords: Microsoft Kinect Sensor. Affective State Recignition. Affective Computing.
Emotion State. Facial Tracking.
LISTA DE ABREVIATURAS E SIGLAS
API Interface de Programação de Aplicativos
SDK Kit de Desenvolvimento de Software
UA Unidade de Animação
LISTA DE FIGURAS
Figura 1 - Representação dos ramos de pesquisa da Computação Afetiva...............................13
Figura 2 - Estrutura cognitiva do modelo OCC ........................................................................16
Figura 3 - Localização dos eletrodos na parte frontal...............................................................19
Figura 4 - Cinco estados emocionais utilizado no projeto. .......................................................20
Figura 5 - Mapeamento das AUs. .............................................................................................21
Figura 6 - Variáveis da deformação das características faciais ................................................23
Figura 7 - Classificação das Emoções Utilizando Árvore de Decisão......................................24
Figura 8 - Fluxo padrão de um sistema de reconhecimento facial. ..........................................25
Figura 9 - Detecção facial.........................................................................................................26
Figura 10 - Somatório da imagem integral. ..............................................................................27
Figura 11 - Imagem original para equação da imagem integral. ..............................................27
Figura 12 - Características selecionadas pelo AdaBoost. .........................................................28
Figura 13 - Classificadores cascata...........................................................................................29
Figura 14 - Rosto rastreado usando Kinect face SDK. .............................................................30
Figura 15 - Reconstrução de imagem com Eigenface...............................................................31
Figura 16 - Modelo de um sistema de reconhecimento facial. .................................................32
Figura 17 - Pontos para possíveis identificação emocional. .....................................................34
Figura 18. Estrutura metodológica............................................................................................39
Figura 19. Processo do desenvolvimento..................................................................................41
Figura 20. Malha 3D .................................................................................................................42
Figura 21 - Arquitetura do SDK. ..............................................................................................36
Figura 22. Identificação dos pontos ..........................................................................................38
Figura 23. Arquitetura de desenvolvimento do software ..........................................................43
Figura 24. Tela Inicial do sistema.............................................................................................44
Figura 25. Tela de apresentação da malha 3D ..........................................................................45
Figura 26. Representação do estado emocional obtido.............................................................46
Figura 27. Condições para que as expressões sejam válidas ....................................................47
Figura 28. Declaração inicial das variáveis ..............................................................................48
Figura 29. Inicialização dos sensores........................................................................................50
Figura 30. Sensor RGB .............................................................................................................51
Figura 31. Classe Extensions ....................................................................................................51
Figura 32. Rastreio do corpo do usuário ...................................................................................52
Figura 33. Processo inicial para o rastreio facial ......................................................................53
Figura 34. Processo de rastreamento do estado afetivo ............................................................54
LISTA DE TABELAS
Tabela 1 - Seleção de listas de emoções "básicas". ..................................................................17
Tabela 2 - Descrição das características das expressões básicas. .............................................21
Tabela 3 - Diferenças entre o Kinect 360 para Windows e Kinect One ...................................32
Tabela 4. Condições para que as expressões sejam válidas ......................................................47
SUMÁRIO
1 INTRODUÇÃO...............................................................................................................9
2 REFERÊNCIAL TEÓRICO........................................................................................11
2.1. Experiência emocional.........................................................................................11
2.2. Interação afetiva baseada na expressão facial...................................................13
2.2.1. Análise e reconhecimento de estados afetivos ..................................................14
2.2.2. Classificações das expressões faciais .................................................................20
2.3. Reconhecimento e rastreamento facial ..............................................................24
2.3.1. Detecção e rastreamento facial ..........................................................................25
2.3.2. Reconhecimento facial ........................................................................................30
2.4. Sensor Microsoft Kinect......................................................................................32
3 MATERIAIS E MÉTODOS ........................................................................................35
3.1. Local ......................................................................................................................35
3.2. Materiais ...............................................................................................................35
3.3. Metodologia ...............................................................Error! Bookmark not defined.
3.3.1. Desenvolvimento do Software............................................................................40
3.3.2. API de reconhecimento.......................................................................................35
4 RESULTADOS E DISCUSSÃO..................................................................................42
4.1. Arquitetura do Software .....................................................................................42
4.2. O Software ............................................................................................................43
4.3. Lógica Utilizada com as UA’s .............................................................................46
4.4. Declaração de variáveis .......................................................................................48
4.5. Configuração do Kinect, HDFace e do reconhecimento do estado afetivo.....49
5 CONSIDERAÇÕES FINAIS .......................................................................................56
REFERÊNCIAS......................................................................................................................58
9
1 INTRODUÇÃO
Segundo Robinson (2014) é possível identificar algumas informações durante a
comunicação entre duas pessoas como, por exemplo, sentimentos e características afetivas.
Porém, este processo de identificação das informações por meio de uma comunicação não é
algo tão simples como a troca de palavras. Envolve informações subjetivas que podem ser
baseadas em um repertório cultural, formação educacional, vivência, emoções e também por
meio de sinais, tais como, expressões faciais, corporais, gestuais e vocais.
Na área da saúde, a comunicação entre o paciente e o profissional é de suma
importância. No entanto, o profissional, além de ouvir, deve observar cada movimento ou sinal
feito pelo paciente durante a conversa, pois estes movimentos e sinais podem resultar em
informações importantes que poderão auxiliar o profissional no processo de avaliação do
paciente.
A Computação Afetiva está relacionada à aplicação de características afetivas em
sistemas computacionais e robóticos. Em sistemas computacionais as aplicações são voltadas
para análise e aprendizagem. Na robótica essas aplicações possuem o foco para a identificação
de elementos que permitem a estes sistemas ou robôs a possibilidade de denotar emoções
(emotional appearance), gerar emoções (emotion generation) que serão apresentadas aos
usuários, bem como perceber emoções (emotional experience) e demonstrar interações mente-
corpo (mind-body interactions) (PICARD, 2003).
No contexto psicológico, a Computação Afetiva pode contribuir melhorando o método
de avaliação emocional. Isto porque esse processo de detectar a emoção do usuário em um
determinado momento pode ajudar em uma análise mais profunda. Ao analisar o rosto da
pessoa, por exemplo, é possível, com ajuda da tecnologia, detectar alguns pontos faciais,
utilizando métodos de rastreamento de sinais e, com isto, perceber emoções (PICARD, 1997).
A integração da ciência com a tecnologia busca aperfeiçoar os resultados de aplicações
em áreas correlacionadas. Na psicologia alguns resultados gerados através de testes realizados
por meio de questionários podem ser integrados à equipamentos eletrônicos como o Sensor
Microsoft Kinect, que possui a capacidade de reconhecimento do ambiente e também o
reconhecimento de rosto das pessoas presentes no mesmo ambiente. Isso pode resultar em
importantes avanços para área da saúde, por possibilitar a utilização de recursos de um
dispositivo eletrônico para gerar resultados em tempo real.
10
O reconhecimento de expressões faciais tem despertado interesses dos pesquisadores,
devido ao seu potencial para criação de interfaces que replicam o comportamento humano.
Recursos que podem ser usados em várias aplicações como videoconferência, realidade virtual,
traçando o perfil do usuário, além de variados serviços Web (CHANGJUN et al, 2011, apud
DINIZ et al, 2013).
Desta forma, neste trabalho foi desenvolvido um software que utiliza o Sensor
Microsoft Kinect para obter um conjunto de atributos realacionados à experiência emocional,
tendo por objetivo identificar os estados afetivos de uma determinada pessoa durante alguma
ação feita ou avaliação realizada, relacionados à detecção facial e reconhecimento de
expressões faciais. Isto será possível porque o sensor utilizado possui a capacidade de detectar
as expressões faciais de uma pessoa.
O presente trabalho está estruturado em seções que apresentam as sequências
percorridas para que o objetivo final fosse alcançado. A seção número 2 apresenta o referencial
teórico, a seção de número 3 os materiais utilizados na implementação da ferramenta e a
metodologia utilizada, após, na seção de número 4 são apresentados os resultados obtidos na
implementação. Na seção de 5 são apresentadas as considerações finais alcançadas. Por fim, a
seção 6 são apresentadas as referências bibliográficas utilizadas.
11
2 REFERÊNCIAL TEÓRICO
Nesta seção serão apresentados os conceitos relevantes e necessários para o
entendimento e desenvolvimento do trabalho. A princípio serão abordados os conceitos acerca
da experiência emocional e da interação afetiva baseada na expressão facial sendo apresentados
conceitos de cognição afetiva, bem como as classificações das expressões faciais. A próxima
abordagem será referente ao reconhecimento e rastreamento facial, que abordará detecção
facial, rastreamento e reconhecimento facial e, por fim, o sensor Microsoft Kinect.
2.1. Experiência emocional
Experiência emocional, segundo Picard (2003), é a forma como são percebidos os
estados emocionais que estão ligados à consciência. Todos os seres humanos podem perceber
seu próprio estado emocional, que podem ter alterações fisiológicas ou sentimentos intuitivos e
subjetivos, que pode ser determinada pela maneira que uma determinada situação é construída.
A teoria da experiência emocional vem sendo estudada e discutida durante muito tempo
pela área da psicologia. Nos últimos anos em uma área da tecnologia chamada de IHC
(Interface Homem-Computador) houve um aumento no número de pesquisas relacionadas à
experiência emocional (XAVIER, 2013).
Pinto (2001) ressalta que a emoção é uma experiência subjetiva, que envolve a pessoa
por completo, mente e corpo. É uma reação complexa, realizada através de um estímulo ou
pensamento, que envolve reações orgânicas e sensações pessoais. É uma resposta que envolve
diferentes componentes e é considerada como uma reação observável, que são as reações que
estão à mostra da pessoa, uma excitação fisiológica, como ouvir uma música e sentir uma
mudança nos pelos da epiderme, uma interpretação cognitiva, como a visita a algum parente
querido e se emocionar ao vê-lo, e uma experiência subjetiva, como o medo de que algo possa
acontecer.
Conforme Silva (2010), as emoções possuem um papel determinante no funcionamento
psicológico humano. Entretanto, nem sempre a definição das emoções é clara para o
entendimento de todas as pessoas, a depender das diferentes teorias encontradas e também dos
componentes no qual se baseiam. Um exemplo é a teoria de James (1884), que resume as
emoções como sentimentos de mudanças corporais, que são acionados por algum reflexo
durante sua percepção.
Em sistemas computacionais, as emoções podem ser expostas através de um mecanismo
de controle e de aprendizagem, de modo que os sistemas virtuais possam reagir e interagir aos
12
estímulos expostos pelas necessidades de diferentes usuários. Esse mecanismo faz com que o
usuário possa interagir e produzir algo perto do real com as máquinas (MALFAZ & SALICHS,
2004).
De acordo com Picard (2003), os seres humanos possuem a capacidade de perceber seu
estado emocional e de expressar diversos sentimentos sob vários desses estados. No entanto, as
máquinas não conseguem expressar a mesma forma de emoção que um ser humano consegue,
pois os seres humanos possuem substancialmente sentidos e sentimentos diferentes do que as
máquinas podem possuir. Por exemplo, pode-se citar o sentimento de medo, a partir do qual o
corpo humano pode tremer ou acelerar o coração devido a alguma ameaça. Existe, assim, uma
diferença entre a experiência emocional humana e as que as máquinas podem ter.
Por meio dos comportamentos das pessoas, alguns trabalhos podem ser realizados para
a identificação de experiência emocional. Algumas medições automatizadas, por exemplo, por
meio de alguns pontos rastreáveis fixados nos músculos da face é possível obter os índices de
intensidade das expressões geradas diante de alguma execução de atividade comportamental.
Portanto, o uso de uma ferramenta automatizada poderá identificar essas expressões e da
mesma forma produzir um modelo de avaliação da emoção.
Conforme o trabalho realizado por Messinger et. al. (2014), que avalia o emocional de
um sorriso de uma criança de menos de dois anos de idade através de reconhecimento facial,
conseguiu-se verificar que alguns sorrisos infantis ocorrem com frequência em determinadas
interações sociais, denotando alegria ou positividade.
Desde a década de 70 cientistas da área da Computação Afetiva buscam entender,
modelar e programar aspectos psicológicos humanos em ambientes computacionais, almejando
identificar as características definidas através das expressões que o ser humano possa
demonstrar. Na Computação Afetiva é estudada a forma como os computadores podem
reconhecer, formar e responder às emoções humanas e expressá-las através de interfaces
computacionais (NUNES, 2011).
No trabalho de Messinger et. al. (2014), é possível perceber que a experiência
emocional pode ser identificada através de sistemas computacionais. No que se refere a
Computação Afetiva, para se perceber aspectos psicológicos e modelá-los de acordo com a
experiência emocional de um usuário são feitos sistemas computacionais para que possam ser
analisados os estados e as características emocionais do usuário. Esses sistemas buscam
entender as emoções humanas e, se possível, expressar emoções na comunicação com usuários.
O ramo da Computação Afetiva é dividido em dois ramos maiores de pesquisa. No
primeiro são estudados mecanismos para reconhecimento de emoções em máquina através da
13
interação homem-computador. No segundo ramo estuda-se a emoção através da simulação de
emoções em máquina, com intuito de perceber mais sobre as emoções humanas para que seja
possível dotar robôs de emoções, tornando-os mais reais. Na Figura 1, a seguir, pode-se
observar como são divididos os ramos da pesquisa afetiva conforme Jaques e Viccari (2005).
Figura 1 - Representação dos ramos de pesquisa da Computação Afetiva
Fonte: Adaptado de JAQUES e VICCARI, 2005
Na Figura 1, são apresentadas as duas áreas da Computação Afetiva, que é dividida em:
síntese de emoções, que consiste na simulação de emoções em máquinas; e emoções na
interação homem-computador, que é o reconhecimento das emoções do usuário e de expressão
de emoções apresentadas por máquinas.
As emoções são de suma importância para proporcionar melhorias nas formas de se
executar uma comunicação humano-computador. Dessa maneira é possível com a Computação
Afetiva aprimorar este processo como, por exemplo, identificar a experiência emocional de
uma pessoa durante algum procedimento psicológico, e em que situações ela se encontra com
raiva ou feliz.
2.2. Interação afetiva baseada na expressão facial
Uma interação afetiva é aquela em que a informação emocional é transmitida ao usuário
de uma forma natural e de maneira confortável. A interação homem-computador vem mudando
14
o modo de aplicabilidade de sistemas computacionais voltado a interação com usuário. Picard
(1995) cita que a interação afetiva é uma área da Computação Afetiva relacionada com as
técnicas de entrada como, por exemplo, técnicas naturais que se baseiam em expressões faciais
e gestos, e também técnicas avançadas como interpretação de sinais elétricos do cérebro.
Um exemplo de software desenvolvido com esta teoria é o jogo “What a Feeling”,
baseado na atividade de reconhecimento das expressões faciais através de avatares para os
jogadores. Este foi criado para ajudar crianças com autismo, desenvolvimento que se
caracteriza por algumas alterações em crianças, frequentemente antes dos três anos de idade,
obtendo um impacto em áreas do desenvolvimento humano como comunicação, interação
social, capacidade de adaptação e aprendizado (MELLO, 2007). No caso, os usuários do jogo
devem reconhecer as expressões faciais realizadas por um avatar, sendo que o jogo também
possui a capacidade de adicionar expressões em tempo real. Algumas expressões que podem
ser representadas no jogo são: raiva, medo, alegria, tristeza, cansaço e surpresa; sendo que o
terapeuta pode manipular o jogo usando um mouse e um teclado para criar novas expressões
(ORVALHO, 2010).
O mecanismo de reconhecimento do estado afetivo, assim como a representação ou
classificação das expressões, serão abordados nas próximas seções.
2.2.1. Análise e reconhecimento de estados afetivos
Picard (1997) afirma que a Computação Afetiva pressupõe que os computadores tenham
a capacidade de reconhecer e de inferir aspectos afetivos, que é a relação do ser humano com o
ambiente físico ou com outros seres humanos, de modo que, através desses reconhecimentos,
sejam capazes de entender as formas de expressões emocional humana e, se necessário,
sintetizá-las.
Longhi et. al. (2007) citam que fenômenos afetivos são expressos de formas voluntárias
ou involuntárias e que, geralmente, denotam os estados emocional em que se encontra cada
pessoa. Esses estados podem ser através de emoções demonstradas ou sentimentos expressados.
Esses fenômenos podem vir em forma de sons, grafia e gestos corporais ou faciais.
Nunes (2012) afirma que pesquisadores em Computação Afetiva estão identificando e
implementando as emoções explicitamente em sistemas computacionais. Isto porque, para que
os sistemas possam entender ou adaptar-se a afetividade do usuário, os sistemas devem ser
capazes de reconhecer as emoções do usuário.
15
Existem modelos de inferência nos quais se estudam o reconhecimento de emoções do
usuário em sistemas computacionais e também implementação de emoções em máquina.
Segundo Liao et al. (2006), esses modelos de inferência podem ser classificados em
diagnóstico, inferência híbrida ou prognóstico. No modelo de inferência por diagnóstico, o
reconhecimento é feito por meio de medidas comportamentais e fisiológicas. Os classificados
em prognóstico trabalham com fatores que influenciam ou causam o estado afetivo de uma
pessoa, como, por exemplo, o modelo OCC (devido às iniciais dos sobrenomes dos autores)
(ORTONY et al. 1988). Esta teoria é baseada no reconhecimento da emoção, que explica a
origem das emoções apresentando os processos de reconhecimento. O modelo OCC entende
que as emoções podem surgir a partir da avaliação de três aspectos: eventos, ação dos agentes
envolvidos e aparência dos objetos envolvidos. O método de inferência híbrida é a combinação
entre o método de prognóstico e diagnóstico, no qual resultará em um reconhecimento com
inferências afetivas mais precisas.
Jaques e Viccari (2005) citam que a teoria do modelo OCC objetiva a ajudar a entender
as emoções das pessoas e como elas acontecem. Também busca explicar as cognições humanas
em prol de reconhecê-las. No modelo OCC, apenas seis emoções dão origem a outras
dezessete, como pode ser visto na Figura 2 abaixo.
16
Figura 2 - Estrutura cognitiva do modelo OCC
Fonte: Adaptado Ortony et al. (1988)
Na Figura 2, o evento é a forma com a qual a pessoa percebe o que está acontecendo a
sua volta e como ela reage. Agentes são as pessoas e os aspectos de objetos são os objetos
17
inanimados no ambiente. Este modelo é usado para reconhecimento de emoções em ambientes
computacionais, ou seja, é utilizado para programar possíveis emoções em máquinas (JAQUES
E VICCARI, 2005).
Lisetti (2002) descreve um modelo complexo para demonstrar aspectos psicológicos em
sistemas que interagem socialmente. Cita que as emoções são modeladas em 16 componentes
emocionais, mas que cada emoção se difere da outra. No entanto, relata que existem 9 emoções
básicas: desejo, medo, interesse, nojo, raiva, surpresa, alegria, satisfação e ansiedade. Essas
emoções são chamadas básicas por representar as mesmas manifestações em diferentes
culturas. Contudo, alguns teóricos como Ekman (1994), relatam que as emoções básicas são
somente 6: raiva, desgosto, medo, alegria, tristeza e surpresa.
O modelo utilizado por Lisetti (2002) é uma derivação do modelo OCC, descrito por
Ortony et al. (1988) e que é uma variação do modelo das emoções básicas definidas por Ekman
(1994), que são representadas através de expressões faciais. Na tabela 1, abaixo, é apresentada
uma lista dos modelos de emoções básicas descritos por alguns teóricos.
Tabela 1 - Seleção de listas de emoções "básicas".
Referência Emoções fundamentais Base para inclusão
Arnold (1960). raiva, aversão, coragem,
tristeza, desejo, desespero,
medo, ódio, esperança, amor,
tristeza.
Relação às tendências de
ação.
Ekman, Frisen, & Ellsworth
(1982).
raiva, repulsa, medo, alegria,
tristeza, surpresa.
Expressão facial universal.
Frijda (Comunicação
pessoal, 8 de setembro de
1986).
desejo, felicidade, interesse,
surpresa, admiração, tristeza.
Formas de ações prontas para
serem realizadas.
Gray (1982). raiva e pavor, ansiedade,
alegria.
Sentimento de ligação.
Izard (1971). raiva, desprezo, nojo,
angústia, medo, culpa,
interesse, alegria, vergonha,
surpresa.
Sentimento de ligação.
18
James (1884). medo, aflição, amor, raiva. Envolvimento Corporal.
McDougall (1926). raiva, nojo, alegria, medo,
submissão, afetuoso,
admiração.
Relacionada a instintos.
Mowrer (1960). dor, prazer. Estados emocionais não
aprendido.
Oatley & Johhson – Laird
(1987).
raiva, nojo, felicidade
ansiedade, tristeza.
Não requer proposições.
Panksepp (1982). expectativa, medo, raiva,
pânico.
Sentimento de ligação
Plutchik (1980). aceitação, medo, raiva,
pânico.
Relacionado ao processo de
adaptação biológica.
Tomkins (1984). raiva, interesse, desprezo,
nojo, angústia, medo, alegria,
vergonha, surpresa.
Disparo neurológico.
Watson (1930). medo, amor, raiva. Sentimento de ligação.
Weiner & Graham (1984). felicidade, tristeza. Atribuições independentes.
Fonte: Traduzido de Ortony (1990).
Na tabela 1, pode-se visualizar que alguns autores da lista, como Ekman et al. (1982)
citam algumas emoções como, raiva, desgosto, medo, alegria, tristeza e surpresa, e defendem
que essas emoções básicas são reconhecidas universalmente e facilmente interpretadas através
das expressões faciais.
Em um trabalho desenvolvido por Chen, Yang e Wang (2015), foi estudado um método
de reconhecimento de expressão emocional baseado na sobrancelha, por meio da
eletromiografia da superfície (EMG), que é uma técnica que observa a ativação neuromuscular.
No estudo foi realizado um experimento que registrou sinais da eletromiografia da superfície
(sEMG) da parte frontal e músculos do supercilio. Na Figura 3, abaixo, é apresentada a
localização dos eletrodos na cabeça do usuário.
19
Figura 3 - Localização dos eletrodos na parte frontal
Fonte: Chen (2015).
Na Figura 3, é possível observar que na parte esquerda os dois fios, amarelos e azuis,
fixados no músculo do supercílio, estão posicionados no local de onde serão registrados os
sinais da eletromiografia da superfície (sEMG) e os demais fios irão registrar a parte frontal.
Chen, Yang e Wang (2015) utilizaram a interação humano-computador para o
reconhecimento de estados afetivos de usuário com possíveis doenças nervosas. O projeto
utilizou seis homens como participantes, na faixa etária de 25-30 anos. Todos com exames
médicos para tratamento de doenças nervosas. Antes do experimento, os participantes foram
chamados a responder um questionário, onde preenchiam perguntas sobre altura, peso e
circunferência da cabeça. O trabalho teve como foco a observação de cinco estados com as
possíveis expressões faciais: raiva, medo, surpresa, tristeza e desgosto. De acordo com Ekman
(1972) essas expressões do trabalho apresentado por Chen et al. (2015) são universais entre
culturas. Foram utilizados também dois modelos de reconhecimento baseados em redes neurais,
que são redes com milhares unidades de processamento: um chamado ENN (Elman Neural
Network) e outro voltado a propagação chamado BPNN (Back Propagation Neural Networks).
Na Figura 4 abaixo são demonstrados visualmente os estados emocionais utilizados no projeto.
20
Figura 4 - Cinco estados emocionais utilizado no projeto.
Fonte: (CHEN, 2015)
A Figura 4 mostra os cincos estados observados que foram raiva (Anger), medo (Fear),
tristeza (Sadness), surpresa (Surprise) e desgosto (Disgust). Os resultados do trabalho para
Chen, foram satisfatórios onde ele conseguiu atingir a seguinte taxa para o reconhecimento dos
estados afetivos, 97,12% utilizando o modelo ENN e 96,12% utilizando BPNN. Na próxima
seção serão apresentadas as classificações das expressões faciais.
2.2.2. Classificações das expressões faciais
Ekman (2002) desenvolve um modelo baseado na anatomia humana em que é possível
classificar a expressão facial através de movimentos realizados pelos músculos faciais. Este
sistema divide as expressões faciais em Unidades de Ação (UA’s), ou Actions Units, que
definem as alterações em cada músculo facial ao determinar que alguns músculos podem se
contrair juntos, ou seja, é possível determinar uma expressão facial na junção de duas ou mais
UA’s (FRIEDLANDER e RAHMILEVITZ, 2010). Na Figura 5, abaixo, é possível identificar
como é feito o mapeamento das Aus.
21
Figura 5 - Mapeamento das UA’s.
Fonte: (OLIVEIRA; JAQUES 2008).
Na Figura 5, pode-se observar que existem as marcações das extremidades dos pontos
das características faciais (FCPs – Facial Characteristic Point) que serão utilizadas para
mapear as UA’s. Estes pontos geralmente situam-se nos olhos, sobrancelhas e boca.
Oliveira e Jaques (2008) afirmam que com as coordenadas dos FCPs é possível calcular
o deslocamento das características faciais. Por exemplo, com a aproximação entre os pontos
a19 e a20 pode-se encontrar uma possível situação de raiva no usuário, ou seja, encontrar
combinações das UA’s definidas por Ekman et al. (2002) em FACS. Na tabela 2, abaixo, é
possível observar as características das expressões básicas.
Tabela 2 - Descrição das características das expressões básicas.
Emoção Características
Alegria Sobrancelhas relaxadas, boca aberta e cantos da boca puxados até orelhas.
Tristeza Sobrancelhas recaídas, olhos ligeiramente fechados e boca relaxada.
Raiva Sobrancelhas quase se encostando, interior para baixo, olhos bem abertos e lábios
apertados.
Medo Sobrancelhas levantadas juntas, olhos tensos e alertas.
Nojo Sobrancelhas levantadas juntas, olhos tensos e alertas.
Surpresa Sobrancelhas elevadas, pálpebras superiores abertas, olhos bemabertos e boca aberta.
Fonte: Adaptado EKMAN et al., (2002).
22
Na tabela 2, foram apresentados os seis estados afetivos básicos e suas características. É
possível observar que todos os estados possuem uma relação com sobrancelhas, boca e olhos, e
são os principais pontos de observação para que seja feita a identificação da expressão
posteriormente.
Oliveira e Jaques (2008) citam que essas combinações de AUs geralmente ocorrem em
expressões faciais que compõem as seis emoções básicas, já demonstradas no capítulo 2.2.1.
Ao identificar as AUs são realizados alguns cálculos dos FCPs para identificar as
ocorrências das AUs do usuário. Após isso, com as coordenadas obtidas, é possível a
comparação com as deformações geométricas da imagem analisada com a imagem neutra, que
é a imagem de origem (imagem sem expressão). Ao fim da análise geométrica da imagem, é
possível inferir a emoção a partir das combinações de AUs encontradas na face, onde os valores
atingidos serão submetidos a uma árvore de decisão que indicará qual emoção essa unidade de
ação pertence. Na Figura 6 abaixo, é possível identificar as variáveis de deformação facial.
23
Figura 6 - Variáveis da deformação das características faciais
Fonte: (OLIVEIRA; JAQUES 2008)
Na Figura 6, é possível observar alguns critérios para as deformações de várias AUs.
Por exemplo, o cálculo da largura da boca (m_width), que se refere aos pontos dos cantos do
lábio, como demonstrado no exemplo.
Dantas et al. (2015) abordam a utilização de uma árvore de decisão para a classificação
das emoções da face. Árvore de decisão é uma estrutura composta por três elementos: nós de
decisão (atributos), ramos (valores possíveis dos atributos) e folhas (objetos semelhantes).
Através desta técnica cada elipse representava uma emoção que se deseja classificar, a distância
24
entre uma elipse pai e o seu filho é representada através do cálculo das distâncias euclidianas,
que é a distância entre dois pontos, e as folhas, que são as últimas elipses que não possuem
filhos, representam as emoções básicas inferidas a partir dos cálculos entre as distâncias das
elipses. Na Figura 7, abaixo, é apresentada a classificação das emoções com a utilização de
árvore de decisão.
Figura 7 - Classificação das Emoções Utilizando Árvore de Decisão
Fonte: Dantas et al. (2015).
Na árvore apresentada na Figura 7, é possível observar os nós ou emoções que desejam
ser classificadas, sendo elas: desgosto e raiva. De acordo com o estudo de Dantas et al (2015), é
possível identificar que as folhas onde se encontram as terminações, não desgosto e não raiva
ou raiva e desgosto, é o resultado da emoção gerada através dos cálculos que estão sendo
utilizados em cada ramo.
A seguir, serão apresentadas teorias acerca de detecção facial, rastreamento facial e
reconhecimento facial.
2.3. Reconhecimento e rastreamento facial
Um sistema de reconhecimento facial é capaz de receber como entrada vídeos e
imagens de ambientes reais e, através dessas imagens e vídeos recebidos, é capaz de processar
25
e caracterizar matematicamente rostos presentes no ambiente. A Figura 8, abaixo, ilustra um
fluxo de como funciona um sistema de reconhecimento facial.
Figura 8 - Fluxo padrão de um sistema de reconhecimento facial.
Fonte: Adaptado de LI e JAIN (2005).
A primeira etapa de um sistema de reconhecimento facial é a detecção de faces em uma
imagem. Essa etapa é importante porque elimina da imagem algumas informações
desnecessárias. Após a detecção é feito um alinhamento facial para regular a face de modo que
o sistema o reconheça. Portanto, com a face alinhada, o sistema ordenará uma extração de
características para um vetor. No fim do processo, se for um usuário novo no sistema será
determinado o reconhecimento de uma nova face, adicionando uma referência a esse usuário
em um banco de dados, ou se o usuário já utilizou o sistema apresentará que o usuário foi
reconhecido pelo sistema. Esse processo de reconhecimento pode ser dividido nos seguintes
grupos: detecção facial, rastreamento facial e reconhecimento facial; que serão abordados nas
próximas seções.
2.3.1. Detecção e rastreamento facial
A detecção facial no Sensor Microsoft Kinect é uma etapa onde é feito o pré-
processamento das faces dos usuários, que se refere ao processamento inicial dos dados da face
do usuário, assim como a calibração radiométrica da imagem que visa corrigir algumas
degradações da imagem desta face e corregir de distorções geométricas e remoção de ruídos
nas imagens.
26
Um dos objetivos do pré-processamento é realçar a melhoria da qualidade da imagem,
deixando uma melhor identificação dos objetos presentes na imagem. Por fim, é feito a
classificação que são atribuídas classes aos objetos presentes na imagem, que posteriormente
são localizadas pelo Sensor Microsoft Kinect.
Conforme Gholipour (2014), em um estudo desenvolvido em Ohio no EUA, foram
realizados alguns testes acerca de expressões faciais. O sistema desenvolvido no estudo
consegue distinguir determinados tipos de expressões faciais que são feitas pelas pessoas. O
estudo utilizou o programa chamado Facial Action Coding System (FACS) e contou com 5 mil
fotografias de 230 estudantes universitários. Este estudo revelou através de imagens, possíveis
emoções geradas pelo usuário, por meio de alterações na musculatura facial que as pessoas
fazem ao executar, sentir ou ouvir algo. No estudo foi definido que os pesquisadores utilizaram
ao todo 21 expressões faciais das pessoas para transmitir emoções.
A Figura 9, abaixo, demonstra o primeiro passo, com foco em detectar a emoção através
das expressões faciais proposta no trabalho.
Figura 9 - Detecção facial
Fonte: Adaptado de LI e JAIN (2005).
Na Figura 9, é possível observar que a detecção facial pode receber como entrada
imagem ou vídeo. Assim que é feita a detecção, realiza-se o rastreio. Na sequência são
identificados os pontos referentes aos músculos da face. Cada ponto é identificado pelo
dispositivo que, por fim, alinha o reconhecimento desta face para que posteriormente possa ser
extraído o estado afetivo.
Em um trabalho realizado por Viola e Jones (2001) foi possível, através de um método,
detectar rapidamente faces em tempo real com muita baixa complexidade computacional. O
método é baseado em três tipos: imagem integral, classificador AdaBoost (apresentado nos
parágrafos a seguir) e combinação de classificadores em cascata.
27
A forma de representação da imagem integral proposto no trabalho é que cada imagem
carregada contém um somatório de pixels da origem da imagem até a sua localização. A Figura
10, abaixo, demonstra o somatório realizado no primeiro tipo.
Figura 10 - Somatório da imagem integral.
Fonte: Viola e Jones (2001).
A Figura 10 mostra o somatório e onde se encontra a seguinte equação: ii(x , y), que é a
imagem integral e i( x , y), que é a imagem original. Isto pode ser observado na Figura 11
abaixo.
Figura 11 - Imagem original para equação da imagem integral.
Fonte: Viola e Jones (2001).
Na Figura 11, é demonstrado que o valor da imagem integral no ponto (x, y) se dá
através da soma de todos os pixels na parte cinza da imagem.
O tipo classificador AdaBoost (Adaptive Boosting) escolhido por Viola e Jones (2001),
é uma variante do algoritmo de aprendizado utilizado por Freund e Schapire (1995). O
AdaBoost é um algoritmo de aprendizado de máquina, que são algoritmos que permitem que o
computador ou a máquina aperfeiçoar seu desempenho em alguma tarefa. No trabalho de Viola
e Jones (2011) foi construído para avaliar regiões da imagem de forma correta e precisa. O
classificador seleciona as características defeituosas mais críticas da imagem e após percorre a
imagem a procura de regiões que possuem defeitos. Esse processo é definido como treino, as
deformação da imagem é dividida em pequenos vetores e ajustado para concentrar os mal
28
classificados. O resultado é um classificador com precisão que consegue remontar uma imagem
sem ter ao menos uma parte dela. Na Figura 12, abaixo, mostra as regiões percorridas pelo
AdaBoost.
Figura 12 - Características selecionadas pelo AdaBoost.
Fonte: Viola e Jones (2001).
Na Figura 12, é possível observar que o objeto do qual se deseja obter as características
é a face humana, a imagem na parte inferior esquerda da Figura. O classificador encontra
algumas características marcantes que são: olhos, sobrancelhas e nariz.
O tipo cascata faz uma combinação entre classificadores, utilizando vários estágios
como uma árvore de decisão, com o objetivo de otimizar o reconhecimento de objetos. Os
estágios dentro da árvore ou cascata são criados através da combinação das funções de
classificação que foram montadas através do AdaBoost. O objetivo principal da cascata é fazer
com que, nos processos iniciais, sejam identificados um grande número de regiões que contém
o objeto desejado. Ao identificar que uma área da imagem se encontra no último ramo ou
estágio da cascata, é nessa área que se encontra o objeto desejado. A Figura 13, abaixo,
demonstra um classificador do tipo cascata.
29
Figura 13 - Classificadores cascata
Fonte: adaptado Viola e Jones (2001).
Na Figura 13, é possível observar que o classificador cascata utiliza amostras como
entrada. Cada etapa do processo E¹, está associado a dois caminhos. Se nesta etapa do processo
as amostras forem classificadas como positivas (P) elas irão continuar para a etapa seguinte, até
chegar na etapa de pósprocessamento. Porém, se em uma etapa qualquer, as amostras forem
classificadas como negativas, estas serão rejeitadas.
Em um trabalho realizado por Sanson e Green (2016) propõe-se um método para
melhorar a qualidade e o realismo do processo de troca de faces. O trabalho utilizou o Sensor
Microsoft Kinect, que utiliza um sensor emissor de infravermelho à base de laser, e uma
câmera RGB para rastrear a cabeça do usuário e em conjunto com o kit de desenvolvimento
Face SDK Tracking é possível determinar as posições dos pontos faciais.
Jana (2012) afirma que o Face SDK Tracking é uma parte do kit de desenvolvimento
Windows. Ele contém algumas ferramentas (APIs) que podem ser utilizadas para rastreamento
do rosto humano. Ele rastreia as posições e toda a forma do rosto, além de poder mudar a
animação da boca, olhos e sobrancelhas em tempo real. A Figura 14, abaixo, representa o rosto
rastreado pelo SDK.
30
Figura 14 - Rosto rastreado usando Kinect face SDK.
Fonte: Sanson e Green (2016)
Na Figura 14, é possível observar que os números que aparecem são os pontos
reconhecido pelo Sensor Microsoft Kinect, e estes pontos ligados são tracejados para possam
ser rastreados, no fim do rastreio é delimitado os pontos em volta da boca, sobrancelhas, olhos
e nariz. O rastreio através do Kinect Face relata 6 unidades de animação (SANSON e GREEN
2016) e define 66 parâmetros de animação, que são os números em cada ponto da face, como
demonstrado na Figura 15. Esses parâmetros são utilizados para possíveis reconhecimento
facial ou detecção de expressões faciais.
2.3.2. Reconhecimento facial
Fitzpatrick e Matthiopoulos (2013) citam que o reconhecimento facial é uma forma de
identificar as pessoas. Permite que um sistema possa identificar alguém em um longo alcance,
que é limitada pela resolução da câmera.
Martins (2013) cita que existem dois métodos de reconhecimento facial tradicionais:
Eigenface e Fisherface. O método Eigenface, é um método que extrai a informação da face do
usuário de uma imagem analisada, de forma eficiente, para que seja possível comparar com a
imagem salva em um banco de dados. O segundo é o aperfeiçoamento do método Eigenface,
que utiliza uma análise linear de Fisher para uma redução dimensional da imagem, o conjunto
de imagens faciais em processo de verificação ou treino é constituído por várias classes, cada
classe representa a identidade de uma pessoa o reconhecimento é formulado de modo a
determinar a que classe pertence uma determinada imagem desconhecida (SOUZA, 2014).
O processo Eigenface pode ser dividido em alguns passos: inicialização, projeção,
detecção e reconhecimento. No processo de inicialização é onde se encontra um conjunto de
imagem, onde é realizado o processo para calcular e modular os Eigenfaces, que vão definir as
combinações de todas as Eigenfaces. A projeção é onde ocorre o cálculo do conjunto de pontos
31
amostrais da imagem, toda vez que uma nova imagem é encontrada. O processo de detecção
determina que, se a imagem é uma face, podendo ser conhecida ou não, verifica se ela está
suficientemente próxima a alguma obtida em combinações da Eigenfaces. Por fim, o processo
de reconhecimento estabelece que, se for uma face, essa etapa irá classificar os pontos e
identificará se é uma pessoa conhecida ou desconhecida do sistema. O método Eigenfaces,
além da classificação, possui uma forma de reconstrução e a compactação de imagens de faces,
como pode ser visto na Figura 15 abaixo.
Figura 15 - Reconstrução de imagem com Eigenface
Fonte: (PENHARBEL, 2005).
Na Figura 15, a primeira imagem à esquerda é a imagem a ser reconstruída pelo
algoritmo Eigenface, a segunda imagem é a imagem reconstruída, terceira imagem reconstruída
com o processo de 20 Eigenfaces, por último a imagem reconstruída através de 40 Eigenfaces
ou componentes.
O reconhecimento de face com o Sensor Microsoft Kinect é fornecido pelas
funcionalidades da API de desenvolvimento, o SDK, que fornece as funcionalidades de
identificação ou verificação de uma pessoa através de uma seleção de rostos detectados
automaticamente por meio do Sensor Microsoft Kinect. A Face API fornece algumas
funcionalidades de reconhecimento: verificação da face, procura do rosto semelhante ao que
está sendo visualizado pelo Sensor Microsoft Kinect, agrupamento automático da face e
identificação da pessoa. A Microsoft, empresa fabricante do dispositivo, afirma que o
reconhecimento facial é amplamente utilizado em sistemas de segurança, reconhecimento de
celebridade e aplicações para smartphones. O processo de reconhecimento facial no Sensor
Microsoft Kinect segue um modelo para a realizar um reconhecimento, como apresentado na
Figura 16, abaixo.
32
Figura 16 - Modelo de um sistema de reconhecimento facial.
Fonte: Martins (2013)
Na Figura 16, é possível observar que o reconhecimento facial é a penúltima parte para
a identificação ou verificação do usuário. Utiliza abordagens com modelos que procura
compreender todos os elementos gerados pela extração das características facial realizada.
Busca analisar a geometria das faces visualizadas e extraídas durante o processo de
reconhecimento e utiliza o sistema do dispositivo para que possa identificar se os traços
adquiridos durante os passos realizados são da mesma pessoa.
2.4. Sensor Microsoft Kinect
Neste trabalho será utilizado o sensor do Kinect One para Windows, que é um periférico
capaz de processar gestos e movimentos do corpo, bem como, sistemas de áudios externos e o
controle de proximidade entre o usuário. Essa versão é uma atualização do Kinect 360 for
Windows. No processo de detecção, rastreio e reconhecimento facial pode-se utilizar o Sensor
Microsoft Kinect One para Windows, que oferece mais precisão para os desenvolvedores,
agilidade e interfaces mais interativas, para que possam desenvolver aplicações que utilizam
voz e gestos e rastreio facial. Na tabela 3, abaixo serão apresentadas características do sensor
Kinect One para Windows e algumas diferenças em relação a versão Kinect 360 para
Windows.
Tabela 3 - Diferenças entre o Kinect 360 para Windows e Kinect One
Características Kinect 360 para Kinect One para
33
Windows Windows
Tamanho e frame da tela 640 x 480 @30 fps 1920 x 1080 @30 fps
Câmera de Profundidade 320 x 240 512 x 424
Maior Distância de Profundidade ~4.5 m 8 m
Menor Distância de
Profundidade
80 cm no modo p/
perto
40 cm
Visão de profundidade
Horizontal
57 graus 70 graus
Visão de Profundidade Vertical 43 graus 60 graus
Inclinação do Motor Sim Não
Juntas de Esqueletos 20 Juntas 25 Juntas
Pessoas Rastreadas 2 6
Padrão USB 2.0 3.0
Fonte: Adaptada de Microsoft, (2016).
Na tabela 3, pode-se observar que o Sensor Microsoft Kinect One para Windows possui
uma câmera de profundidade superior ao do Sensor Microsoft Kinect 360 para Windows, essa
característica o possibilita uma resolução de 512x424. Além da utilização de seus emissores em
infravermelho que são capazes de gerar uma boa iluminação frontal, que pode funcionar em
boas condições, até mesmo no escuro total.
O Sensor Microsoft Kinect One para Windows usa uma tecnologia chamada de Time-
Of-Flight, que resolve a distância baseada na velocidade em que a luz conhecida atinge o
objeto, ou seja, é medido o tempo de envio do sinal de luz entre a câmera e o objeto para cada
ponto da imagem.
Quanto maior a resolução do sensor de profundidade melhor é para capturar a face de
uma pessoa. Com essa resolução do Sensor Microsoft Kinect para Windows é possível a
criação de avatares mais próximo da realidade. Como pode ser observado na Figura 17, abaixo.
34
Figura 17 - Pontos para possíveis identificação emocional.
Fonte: (ZENNARO, 2014)
Observa-se na Figura 17, que ao identificar os pontos na face é possível detectar cada
pessoa no ambiente e saber, se essa pessoa está olhando para a câmera ou não, saber suas
expressões, se são boas ou ruins, identificar sua aparência e quais movimentos que cada ponto
está realizando.
35
3 MATERIAIS E MÉTODOS
Nessa seção são apresentados os materiais utilizados e o desenho de estudo adotado
para a elaboração deste trabalho e desenvolvimento da ferramenta.
3.1. Local
O desenvolvimento da ferramenta foi realizado no Laboratório Banco de Dados e
Engenharia de Software (LBDES) em conjunto com o Laboratório de Tecnologia e Saúde
(LTS), ambos do Centro Universitário Luterano de Palmas (CEULP/ULBRA).
3.2. Materiais
Para o desenvolvimento da ferramenta será utilizado um computador com o processador
Intel core i5 2.30 GHz, barramento USB 3.0 e 2.0, 12GB de RAM e adaptador gráfico
integrado compatível com o DirectX 11, e um sensor Kinect Xbox ONE com adaptador para
computador disponibilizado pelo grupo de pesquisa Tecnologia, Saúde do Centro Universitário
Luterano de Palmas. Foi verificado durante o processo que para a utilização do sistema é
necessário um computador com no mínimo 4GB de RAM, com entradas USB 3.0, adaptador
gráfico compatível com DirectX11 e processadores dual-core 3.1 GHz, pois o software pode
não executar em configurações inferiores, devido ao alto processamento gráfico.
Para implementação das interfaces foi utilizada a linguagem XAML, que é uma
linguagem de marcação declarativa que simplifica a criação de interfaces de usuário (User
Interfaces) para aplicações que utilizam o framework .NET. No que tange a utilização de
linguagem de programação foi utilizada a linguagem interpretada C#, desenvolvida pela
Microsoft. Para o fornecimento de funções e bibliotecas que podem fornecer rastremanto e
reconhecimento facial, foi utilizado uma API chamada de HD FACE API, fornecida pelo SDK,
criado pela Microsoft que permite desenvolvedores criar aplicações que suportam gestos e
reconhecimento de voz e facial, utilizando a tecnologia do Sensor Microsoft Kinect em
computadores com Windows 8, 8.1. Por fim o software utilizado para manter esses códigos foi
o Visual Studio 2013.
3.2.1. API de reconhecimento
O SDK do Sensor Microsoft Kinect é o kit de desenvolvimento oficial da Microsoft,
que foi lançado em junho de 2011 com objetivo de permitir o desenvolvimento de aplicações
em sistemas operacionais Windows. Esta API possibilitou que desenvolvedores pudessem
utilizar o Kinect como uma interface para a criação de novos tipos de aplicações.
36
Devido à quantidade de usuários e demanda por aplicações mais intuitivas surgiu o
conceito Natural User Interface (NUI), um modelo de desenvolvimento que possui como
característica o enfoque em utilizar a linguagem natural para a interação humana, como gestos,
poses e comandos de voz. Este modelo foi incorporado ao Kinect no seu lançamento. Abaixo,
na Figura 21, é demonstrado como funciona a arquitetura do SDK.
Figura 18 - Arquitetura do SDK.
Fonte: MSDN, Microsoft (2016a).
Como visto na Figura 21, acima, a arquitetura do SDK é composta por diversos
componentes que são:
● Kinect Hardware: são componentes de hardware que estão integrados ao sensor Kinect
como o motor, as câmeras e os microfones, assim como o hub. Através destes
componentes o sensor Kinect conecta-se ao computador;
● Kinect Drivers: são os drivers do Windows para o Kinect, que são instalados a partir do
SDK, como: dispositivo de áudio kernel, que permite acessar APIs de áudio padrão do
Windows; controle de áudio e vídeo streaming, para transmissão de áudio e vídeo (cor,
profundidade e esqueleto) e, por fim, funções de enumeração que permitem o uso de um
ou mais sensores Kinect em conjunto;
● Componentes de Áudio e Vídeo: são componentes que compõem o NUI, interface
natural do usuário, como por exemplo, rastreamento do esqueleto, áudio, cores e as a
imagem que é gerada pelo sensor de profundidade;
37
● DirectX Media Object (DMO): o conjunto de microfones, fonte de áudio do sensor;
● APIs Windows: APIs disponíveis para aplicações desktop nos Sistemas Operacionais
Windows.
A partir do SDK, algumas APIs são disponibilizadas para desenvolvedores como, por
exemplo, a Face API, que também é independente. É um conjunto de ferramentas que fornece
rastreamento facial, podendo-se utilizar a câmera infravermelha do Kinect e também sua
câmera de cores RGB. Esta API é capaz de detectar informações e características faciais sobre
o usuário que se encontra a sua frente. Para isto, a Face API fornece módulos de processamento
de imagem, que foram criados para acompanhar e compreender rostos e características faciais.
O processo é feito pela própria API, sem a necessidade de conhecimento em visão
computacional. A API possui a função de detecção com níveis de precisão, início automático e
pode rastrear possivelmente a rotação da cabeça em 90 graus.
Para o rastreamento neste trabalho foi utilizada a HD FACE API (rastreamento de face
de alta definição). Essa API cria uma conexão emocional entre o usuário e o jogo ou sistema
que está utilizando. A HD FACE API possui algumas funções já declaradas em sua
documentação, por exemplo, face capture (captura de rosto) que é uma função que utiliza um
método para pegar a forma do rosto do usuário. Essa função passa para o desenvolvedor onde a
pessoa precisa estar para poder ser rastreável na câmera do Sensor Microsoft Kinect. A API
pega a referência dos quadros (telas) que irá calcular a forma onde irá definir o rosto do usuário
e após adquiri-las fornece ao desenvolvedor valores que poderão influenciar no design da
criação do sistema ou jogo. Além do face capture, existe o face Tracking (rastreamento do
rosto) que é uma função utilizada para obter as expressões faciais em tempo real do usuário.
Com essa função é possível ao desenvolvedor criar linhas em unidades de animação que se
relacionam com os movimentos faciais do usuário. Através dessa função é possível a
identificação dos estados emocionais do usuário.
Quando o desenvolvedor começa a codificar a captura e/ou o rastreamento do rosto do
usuário, a API é capaz de acessar os sensores do Kinect como, por exemplo, sensor de cor RGB
(câmera), sensor de profundidade e o sensor infravermelho, como entrada para o processo de
rastreamento de face de alta definição. A qualidade desse rastreio é afetada pela qualidade que
a imagem dos quadros é adquirida ou seja, imagens de quadros mais escuros ou mais
distorcidos. A qualidade de rastreio é importante para o cálculo dos pontos que serão rastreados
pela API, pois nesses pontos irão as referências que afetam o intervalo para a identificação da
emoção.
38
Durante o processo de rastreamento do rosto, a API gera uma referência do rosto,
obtendo a cabeça como um ponto pivô, e disponibiliza uma lista de unidades de animação
(UA’s). Essas UA’s servem para identificar e definir se a boca do usuário está aberta, a
sombrancelha está levantada, e outros detalhes das expressões faciais.
A API controla ao todo 17 unidades de animação, as quais possuem valores que variam
entre 0 e 1, e três dessas animações possuem valores entre -1 e 1, são elas, mandíbula esquerda,
superior da sombrancelha esquerda e superior da sombrancelha direita.
Além dessas animações a API fornece como opção uma classe enumeration na qual é
possível reconhecer o rosto e transformar em um modelo 3D observando cada vértice da malha
que foi criada para a identificação dos pontos. A forma como são obtidas essas informações é
através da classe denominada HighDetailFacePoints. A seguir, é apresentada a Figura 22 na qual
é possível verificar esses pontos.
Figura 19. Identificação dos pontos
39
Na Figura 22 é possível observar que se trata de uma numeração de pontos específicos
no rosto identificados pela própria API, como, por exemplo, na linha 20, em que é possível
identificar pela tradução da variável que se trata do centro da parte de cima dos lábios da boca.
3.3. Desenho de estudo e procedimentos
Para atingir os objetivos propostos, utilizou-se como desenho de estudo uma pesquisa
com finalidade metodológica aplicada, sendo realizada em laboratório com procedimento de
computação experimental.
A metodologia adotada no trabalho segue um conjunto de etapas que foram de grande
importância para a conclusão do mesmo. As etapas incluem a pesquisa bibliográfica e estudo
do tema, a elaboração do referencial teórico, a análise para o desenvolvimento, o
desenvolvimento do sistema proposto e por fim a execução demonstrativa. A Figura 18 abaixo
representa a sequência de etapas que foram executadas no decorrer do trabalho.
Figura 20. Estrutura metodológica
Na primeira etapa ‘Estudo do Tema’ foram realizadas pesquisas acerca de experiência
emocional, interação afetiva baseada na expressão facial, reconhecimento afetivo,
classificações das expressões faciais, detecção facial, rastreamento e reconhecimento facial, por
fim, Sensor Microsoft Kinect v2.
Para embasamento e entendimento do trabalho, no segundo passo foi desenvolvido o
referencial teórico, que aborda textos sobre experiência emocional, onde foram tratadas as
formas como são reconhecidos os estados afetivos e também sobre interação afetiva baseada na
expressão facial, abordando também o reconhecimento da afetividade, classificações das
expressões faciais, detecção facial, rastreamento facial e, por fim, o reconhecimento facial.
40
No terceiro passo foi realizada uma análise sobre o sistema chamado FisioKinect que já
é utilizado no Laboratório de Tecnologia e Saúde. Esta análise envolve o entendimento de
como são criados os módulos para que o módulo em desenvolvimento neste trabalho seja
adicionado. Além disto, foi realizada uma análise das ferramentas que foram utilizadas para o
entendimento e funcionamento deste módulo.
Ao término da análise das ferramentas, foi feita uma análise com base nos estudos do
referencial teórico sobre as APIs a serem utilizadas no desenvolvimento. Após esse
levantamento foi identificado que para o processo de implementação era preciso realizar uma
análise na documentação da API escolhida chamada HD FACE API que é disponibilizado no
site da Microsoft.
Através da análise dos conceitos que envolvia o reconhecimento dos estados afetivos,
foi realizado o passo de Desenvolvimento da Aplicação. Nesta etapa foi efetuada a codificação
do software por meio do software Visual Studio 2013. Vale ressaltar que o módulo
desenvolvido tem por objetivo auxiliar no reconhecimento do estado afetivo de um usuário por
meio do Sensor Microsoft Kinect v2.
No quarto e último passo, ‘Execução Demonstrativa da Aplicação’ houve algumas
execuções do sistema de caráter de testes não científico e demonstrativo. Ao relizar esse passo
foi identificado alguns erros e com isso foi possível retornar ao passo anterior para que este
erros fossem corrigidos. Na próxima seção será abordado como foi realizado o processo de
desenvolvimento do software.
3.3.1. Desenvolvimento do Software
No início elaborou-se uma lógica para a identificação do estado afetivo
(especificamente alegria e tristeza) diante da sequência de imagens obtidas por meio do Sensor
Microsoft Kinect (essa lógica será apresentada na seção 4.3). O processo delimitou alguns
pontos através de uma malha 3D posta na parte superior do rosto. Assim, por meio da distorção
desta malha o sistema foi capaz de identificar as regiões afetadas e, com isso, a possível
identificação do estado afetivo do usuário. Este processo foi realizado em etapas, sendo a
primeira delas a criação das funções básicas, seguida da implementação do rastreio facial e
corporal, verificação dos pontos faciais e, por fim, da comparação das variáveis demonstrativas,
como demonstrado na Figura 19 abaixo.
41
Figura 21. Processo do desenvolvimento
De acordo com a Figura 19, na primeira etapa, foram desenvolvidas as funções básicas
para o funcionamento dos componentes do Sensor Microsoft Kinect. Essas funções foram feitas
em classes básicas que são responsáveis pela configuração do sensor de profundidade e câmera
RGB assim como a inicialização do Sensor Microsoft Kinect.
Após a realização das configurações básicas do sistema, a próxima etapa foi a
implementação do rastreamento facial. Para isso, foi utilizada a imagem que o sensor RGB do
Sensor Microsoft Kinect consegue captar do ambiente. Após esse processo foi observado que,
para o rastreamento ser preciso e funcionar para diferentes usuários, deve-se criar um método
que rastreia o corpo do usuário.
A quarta etapa teve como objetivo o desenvolvimento de uma técnica para verificação
dos pontos na face. Para esse propósito, foi desenvolvido um método para a atualização dos
pontos rastreáveis na face. O Sensor Microsoft Kinect trabalha com imagens sendo
renderizadas em loop ou tempo real, quando esses pontos são atualizados a cada movimento
que o usuário fizer ou enquanto o sistema estiver ativo.
O método de atualização dos pontos da face cria elipses 2D que, em seguid,a juntamente
com outras elipses, forma uma malha que se encaixa sobre o rosto do usuário. Desta forma é
feito um processo de repetição para que cada ponto rastreável seja ocupado por uma dessas
elipse 2D para que seja formada uma malha em 3D sobre o rosto do usuário, de acordo com a
Figura 20 abaixo.
42
Figura 22. Malha 3D
Os resultados obtidos na figura 20 são possíveis devido aos valores obtidos em
centímetros das propriedades X, Y e Z, e através do mapeamento de coordenadas. Ao
determinar essa malha 3D, cada ponto obtido é transformado em um vértice contendo as
propriedades X, Y e Z.
Por fim, na última etapa é feita a comparação dos valores que existem nos vértices e
comparada com os valores definidos para cada estado afetivo estudado no trabalho de acordo
com a Figura 6, da sub seção 2.2.2. Através da condição imposta é possível inferir o estado
afetivo em que o usuário se encontra.
4 RESULTADOS E DISCUSSÃO
Esta seção aborda os resultados obtidos no desenvolvimento do trabalho. Será
apresentado uma visão geral da ferramenta desenvolvida, bem como a arquitetura e
funcionamento da mesma. Posteriormente, será apresentada a lógica e o detalhamento do
desenvolvimento do software. Por fim será demonstrado o processo de codificação do sistema e
suas principais funcionalidades.
4.1. Arquitetura do Software
Para entender o funcionamento do software desenvolvido, na Figura 23, é apresentada a
arquitetura do mesmo.
43
Figura 23. Arquitetura de desenvolvimento do software
O software é executado juntamente com o Sensor Microsoft Kinect, para que as
imagens do usuários sejam capturadas e possam ser analisadas pelo software. Para obter as
imagens do Sensor Microsoft Kinect foram utilizados os recursos dos sensores que estão
disponíveis no mesmo:
 ColorStream – é o recurso que trata a geração das imagens através do sensor RGB;
 HighDefinitionFaceFrame – é o recurso responsável pela a geração do reconhecimento
facial;
Os recursos apresentados são indispensáveis para o funcionamento do software, pois
eles fazem a comunicação com o modelo de negócio do sistema. Logo após esse processo é
realizado o rastreamento das características faciais. Nesse processo é realizada a classificação
das expressões faciais. Com o usuário realizando uma expressão emocional diante do Sensor
Microsoft Kinect, o sistema dispara o evento que classifica as unidades de animação para cada
expressão específica gerada. Por fim o sistema retorna a informação daquela expressão que é
realizada em tempo real.
4.2. O Software
Para comprovar a eficiência da técnica computacional para o reconhecimento do estado
emotivo, foi necessário o desenvolvimento de algumas funcionalidades que fossem capazes de
mensurar certos movimentos das musculaturas faciais do ser humano. É importante citar que
estudos como o de Eigenface da seção 2.3.2, ajudaram na forma de como desenvolver o
sistema, pois o Sensor Kinect trabalha em forma de um loop de imagens que são tratadas ao
serem mostradas para o usuário. Dessa forma, optou-se por mensurar pontos específicos do
44
rosto, tomando como base a Figura 5, localizada na seção 2.2.2 deste trabalho. Esses pontos
satisfazem a avaliação da técnica computacional, uma vez que os mesmos têm como
características a delimitação de toda a musculatura do rosto para ter um resultado preciso. A
Figura 24 abaixo exibe a tela do software, desenvolvido com base no sistema FisioKinect
analisado no Laboratório de Tecnologia e Saúde. Através desta tela são integrados diversos
sistemas, que são executados ao clicar no botão específico.
Figura 24. Tela Inicial do sistema
O módulo que segue este trabalho pode ser acessado através do botão “Reconhecimento
de Estado Afetivo”. Ao acessar este módulo será enviado o comando para o método que retorna
a interface de avaliação do estado emocional. Quando o usuário estiver na posição adequada
diante do Sensor Microsoft Kinect, que é com o seu nariz na altura do centro da câmera RGB
do Sensor Microsoft Kinect. O mesmo carrega os sensores e ao estar de acordo com a distância
do sensor entre o usuário, que é aproximadamente a 46cm, será mostrada na tela a malha 3D
que aparecerá sobre o rosto do usuário, ilustrada pela Figura 25 abaixo.
45
Figura 25. Tela de apresentação da malha 3D
A Figura 25, acima, mostra o resultado quando o usuário interagir com o sistema. Essa
malha azul, posta sobre o rosto do usuário, é acionada ao término do cálculo do mapeamento
das coordenadas. Este processo foi realizado com base no estudo de LI e JAIN (2005), em que
o primeiro processo de um rastreamento facial é a detecção e o rastreio da face realizado por
imagem ou vídeo. Esta etapa teve como base também o estudo de Sanson e Green (2016), para
que os pontos pudessem realizar o sincronismo e adaptar-se ao rosto do usuário. O sistema
informará qual é o estado observado na tela após o usuário realizar algumas expressões faciais
que denotam estado emocional, Na Figura 26 abaixo é demonstrada a representação do estado
afetivo quando o usuário faz uma interação com o sistema.
46
Figura 26. Representação do estado emocional obtido
Para poder realizar a detecção da expressão facial, inferir emoções e provar a
funcionalidade da ferramenta, foi preciso selecionar as diferentes expressões faciais que
denotam estados afetivo que poderiam ser trabalhadas foram escolhidas: alegria e tristeza. Para
tornar possível as identificações destas emoções foram utilizadas, como referência, os estudos
realizados por Ekman et al. (2002) que em seu trabalho o sistema realiza um estudo através de
UA’s (Unidades de Ações), como demonstrado na seção 2.2.2. As principais UA’s podem ser
visualizadas na Figura 5 neste trabalho, localizado na seção 2.1.
4.3. Lógica Utilizada com as UA’s
Para que seja possível realizar o cálculo dos atributos, a detecção e o reconhecimento a
API do SDK do Kinect 2.0 fornece alguns pontos já predefinidos, chamados através da classe
HighDetailFacePoints. Esses pontos são numerados e azuis, são os pontos que aparecem na
malha 3D no rosto do usuário, demonstrado na figura 25. Cada ponto tem como propriedade os
valores em metros das coordenadas X, Y e Z. A Figura 27 abaixo demonstra o código
realizado para pegar o ponto do canto esquerdo da boca no eixo X e Y especificado pela
unidade de ação bocaCantoEsquerdo1X.
47
Figura 27. Condições para que as expressões sejam válidas
A Figura 27, acima, descreve o código que possui o objetivo de detectar as expressões
faciais do usuário, criam-se limites nos valores das unidades de animação adquiridas através
das variáveis das linhas 165, 168, 171 e 174. Esses valores são fornecidos pela classe do
próprio SDK, permitindo que seja possível as comparações entre os valores das unidades e os
intervalos que são atribuídos. Na linha 177 da Figura 26, é realizado o cálculo da distância
entre os cantos da boca, tanto do lado esquerdo (bocaCantoEsquerdo1X) quanto direito
(bocaCantoDireito1X). Na tabela 4 abaixo são demonstradas as condições exigidas para o
rastreio do estado afetivo.
Tabela 4. Condições para que as expressões sejam válidas
Estado Afetivo Condições Para Detectar Expressão
Alegria (Feliz) bocaCantoEsquerdo1X < -0.06 e
buchechaEsquerdaX < 0.09 e
bocaCantoEsquerdo1Y > 0.01
Tristeza (Triste) bocaCantoEsquerdo1X < 0.06 e
dif < 0.054 e
dif > 0.050
Na tabela 4 é possível visualizar as condições proposta para o primeiro estado afetivo
feliz. A variável bocaCantoEsquerdo1X e bocaCantoEsquerdo1Y é o índice correspondente ao
canto da boca esquerda na coordenada X e Y. A variável buchechaEsquerdaX corresponde ao
centro da bochecha esquerda. Na tabela 4 é possível visualizar as condições também para o
segundo estado afetivo triste. A variável bocaCantoEsquerdo1X deve estar em um intervalo
48
menor que 0.06 e a diferença entre os pontos da boca que é armazenada na variável dif deve
estar em um intervalo entre 0.050 e 0.054. A utilização desta técnica foi realizada com base nos
estudos de Oliveira e Jacques (2008), na seção 2.2.1, onde foi demonstrado que é possível
encontrar o estado de raiva de uma pessoa realizando o processo de aproximação entre dois
pontos.
Ao ser realizada a lógica dos intervalos para que fosse possível a realização do sistema e
para chegar aos resultados esperados, foi preciso fazer a alteração destes intervalos e não
utilizá-los da forma como os estudos o referenciavam. A alteração foi realizada com base nas
coordenadas adquiridas através do rastreio. Foi realizado porque a precisão do cálculo
demonstrado por Oliveira e Jacques (2008) na figura 6 da seção 2.2.2 não seria possível obter
resultados satisfatórios.
As alterações feitas foram através dos pontos que foram demonstrados no estudo
apresentado na tabela 2 adaptada de Ekman et al (2002). Foi adaptada para que, no estado de
alegria, fosse analisado o centro da buchecha esquerda e retirada a sombrancelha. Isto se deve
ao fato que a oscilação dos pontos de coordenadas que foram realizadas pelo sensor Kinect não
foi satisfatório para observar essa característica, tanto para tristeza quanto para alegria.
Para que esses resultados tenham efeito o Sensor Microsoft Kinect deve estar em uma
posição em que o usuário possa ficar com o seu nariz em frente ao sensor de câmera e possuir
uma distância de +/- 50 cm do Sensor Microsoft Kinect para que o rastreio não traga erros e um
rastreio não válido.
Por meio desse software, pretende-se também demonstrar a possibilidade do dispositivo
Sensor Microsoft Kinect de trabalhar no meio da identificação das expressões faciais dos
usuários com o uso de suas bibliotecas e API’s.
4.4. Declaração de variáveis
O sistema, para iniciar, é preciso criar algumas variáveis que estendem as classes que
serão trabalhadas para o desenvolvimento. A Figura 28 abaixo exibe as declarações iniciais de
variáveis de classe utilizadas.
Figura 28. Declaração inicial das variáveis
49
A primeira variável sensorKinect apresentada na linha 29 é uma variável do tipo
KinectSensor proveniente do próprio SDK do Sensor Microsoft Kinect – com essa variável é
possível realizar uma instância do Sensor Microsoft Kinect e assim ativá-lo. A variável
leitordecor na linha 30 é responsável pelo sensor da câmera RGB que é utilizada no sistema
para promover uma interface mais agradável e uma visualização do usuário mais dinâmica. Na
linha 31 e 32 são criadas as variáveis sensorCorpo e leitorCorpo das classes BodyFrameSource
e BodyFrameRader que irá instanciar as funções de ratreio do corpo humano.
Na linha 33 e 34 são criadas as variáveis sensorFace e leitorFace que trabalha como
uma instância da classe HighDefinitionFaceFrame que possui as funções que fornecem o
rastreio de rosto humano. Na linha 35 é definida a variável alinhamentoFace que é uma
instância da classe FaceAlignment que é utilizada para o mapeamento da face. Esse
mapeamento identifica cada ponto do rosto do usuário passando para uma função que irá
determinar as coordenadas X, Y e Z de cada ponto identificado. Na linha 36 é criada uma
variável modeloFace que é uma instância de classe FaceModel. Nela é determinado um modelo
de face. Por fim é definida uma variável chamada de pontos que é uma instância de uma classe
List<ellipse>, que é uma classe que determina os vários pontos azuis que forma a malha 3D no
rosto do usuário. Na próxima seção será realizado o modo de conFiguração da API do SDK e
do Sensor Microsoft Kinect.
4.5. Configuração do Kinect, HDFace e do reconhecimento do estado afetivo
Para a inicialização e configuração do Sensor Microsoft Kinect, declarou-se a variável
sensorKinect do tipo KinectSensor. A Figura 29 abaixo exibe o código de como são feitas a
inicialização e a configuração do Sensor Microsoft Kinect, HDFaceAPI e dos demais sensores.
50
Figura 29. Inicialização dos sensores
Na linha 43 da Figura 29 acima, a variável sensorKinect recebe como valor a instrução;
KinectSensor.GetDefault();, que é uma instrução que define uma instância do Sensor Microsoft
Kinect. Essa instância verifica se existe algum Sensor Microsoft Kinect conectado na máquina.
Na linha 45 é verificado se aquela instância que se encontra na variável sensorKinect
existe ou não, se existir, o primeiro código a ser inicializado se encontra na linha 47 - o
leitordecor recebe o comando para ligar o sensor RGB na tela para o usuário.
Já na linha 50 a variável sensorCorpo recebe uma função que rastreia o corpo do usuário
para a tela, não define traços mas reconhece aquele usuário através dessa instrução. Na linha 54
é passado como referência o sensorKinect para a classe HighDefinitionFaceFrameSource, que
envia toda a instrução para a variável sensorFace, assim por meio dessa variável é possível o
acesso das funções para rastreio da face.
Na linha 56 é definido que a variável leitorFace irá receber a instrução
sensorFace.OpenReader(); com todas as funções do sensor de rastreio da face já para acesso.
Nas linhas 59 e 60 são inicializados o modelo de face e o alinhamento da face, onde a variável
modeloFace recebe uma nova FaceModel() e a variável alinhamentoFace recebe uma nova
FaceAlignment(). Por fim é inicializado o sensorKinect na instrução da linha 62,
sensorKinect.Open().
51
Na linha 48 a variável leitordecor recebe uma instrução chamada
ColorReader_FrameArrived, que é um evento que faz com seja possível a visualização do
sistema através da câmera RGB do Sensor Microsft Kinect, a Figura 30 abaixo demonstra esse
processo.
Figura 30. Sensor RGB
Esse evento utiliza a variável frame que é uma referência da tela que é mostrada ao
usuário e que deve receber a imagem que o sensor RGB disponibiliza. Na linha 75 é definido
que a instrução camera.Source irá receber um quadro, de acordo com a instrução
frame.ToBitmap(), essa instrução ela verifica o tamanho que é a tela criada pro usuário, e assim
transforma aquela tela em uma do tipo de imagem Bitmap que é apresentado para usuário em
tempo real.
Ao chamar a instrução da linha 75, o código irá realizar a chamada de uma outra classe
que possui o método do tipo ImageSource chamado ToBitmap, e assim realizar um cálculo para
poder renderizar cada pixel do sensor RGB na tela para o usuário, como na Figura 31 abaixo.
Figura 31. Classe Extensions
52
É possível perceber na Figura 31 acima, na linha 18, que o método ToBitmap recebe um
quadro de cores chamado frame. Logo na linha 20 e 21 é pego a largura e a altura desse quadro,
para que na linha 24 seja realizado o cálculo do tamanho dos pixels que irão popular o quadro.
Na linha 28, após uma condição, é feita uma cópia em forma de array dos pixels e assim que
finalizado é feito na linha 37 o retorno do BitmapSource.
Na Figura 28, na linha 52, é feita a chamada de um evento para o rastreio do corpo do
usuário e a identificação do rosto para o rastreio facial posteriormente. Quando o sistema chega
na seguinte instrução BodyReader_FrameArrived é onde o sistema entrará no evento, que é
demonstrado na Figura 32 abaixo.
Figura 32. Rastreio do corpo do usuário
É possível observar na Figura 32 acima, na linha 88, que esse rastreio irá funcionar se
houver algum quadro sendo executado no sistema, ou seja, alguma tela específica sendo
mostrada ao usuário. Ao identificar esse quadro, na linha 90, é feito uma variável chamada
bodies, que é array do tipo Body[], que irá pegar a quantidade de corpo que está em cena.
Ao receber essa instrução, na linha 91 é feita uma lista onde é passado por referência
aquele corpo já rastreado. Assim na linha 93 é definido o corpo que se encontra na lista como
rastreável. Já na linha 95, a condição demontra se o sensor da face está habilitado e também na
linha 97 se existe algum corpo em frente ao sensor, satisfazendo essas condições é realizado
uma referência daquele corpo para aquela face rastreável, ou seja, como se estivesse montando
53
um quebra cabeça, encaixando a referência do rastreio de corpo na face. Na Figura 33 abaixo é
demonstrado como é feito o processo da criação da face.
Figura 33. Processo inicial para o rastreio facial
Na Figura 33 acima, tem-se o início do rastreio facial. Na instrução da linha 112 são
verificadas as condições se existe uma tela, frame != null; e se há alguma face rastreada na tela,
frame.IsFaceTracked; a instrução isFaceTracked é uma propriedade da classe
HighDefinitionFaceFrame, que obtém um valor booleano que indica se o rosto é rastreado.
Na linha 114 é realizada a atualização dos pontos que armazenam as características
faciais, como olhos, nariz e boca. Essa atualização é por meio de uma imagem no espaço 2D.
Na linha 115 é feito o método, onde é realizado todo o processo de alinhamento e
reconhecimento do estado afetivo do usuário. Na Figura 34 abaixo, é demonstrado o processo
que realiza o rastreio da face e o reconhecimento das expressões realizadas.
54
Figura 34. Processo de rastreamento do estado afetivo
Na Figura 34 é realizado o processo de atualização, alinhamento, bem como o processo
de verificação do estado afetivo do usuário. É possível notar na linha 133 um laço onde será
criada a malha 3D, como visto na Figura 19, demonstrado na seção 3.3.1. Entre as linhas 157 a
165 são instanciados os pontos do rosto que são garantidos através da classe demonstrada na
seção 4.3. Também é possível notar entre as linhas 170 a 179 a lógica dos intervalos utilizada
para que o sistema conseguisse reconhecer os estados afetivos propostos.
55
O estudo de Zernnaro (2014), na sessão 2.4, aborda os possíveis pontos para a
identificação do estado emocional de uma pessoa. A figura 17 na sessão 2.4 aborda esse estudo
demonstrando os determinados pontos para uma identificação, logo a base da escolha dos
pontos realicionados na figura 34 se deve a este estudo.
No desenvolvimento desta etapa foram identificados erros no software diante do
rastreio das UA’s. Ao utilizar os valores propostos pelo o estudo, mais precisamente na seção
2.2.2, a API não reconhecia os pontos indicados. Após isso foi utilizada a classe
HighDetailFacePoints, demonstrada na seção 4.3. Posteriormente foram obtidos os pontos e
realizados os cálculos dos intervalos, como já demonstrado na seção 4.3. Ao fim dessas
mudanças os erros foram corrigidos e o software conseguiu reconhecer o estado do usuário.
56
5 CONSIDERAÇÕES FINAIS
O trabalho teve como objetivo o desenvolvimento de um software para o
reconhecimento do estado emocional através da identificação da experiência emocional, mais
precisamente os estados de alegria e tristeza, utilizando o Sensor Microsoft Kinect. O estudo de
técnicas de identificação de experiência emocional juntamente com o SDK do Sensor Microsoft
Kinect foram fundamentais para que se chegasse aos resultados apresentados.
A técnica de rastreio facial aplicado à imagem obtida pela câmera RGB do Sensor
Microsoft Kinect ajuda a obter uma representação do formato do rosto humano quase que ideal.
O único fator que deixou a desejar foi a imprecisão encontrada quando o usuário realiza algum
desvio de atenção, ou seja, devia os olhos e realiza a rotação da cabeça para direita ou para
esquerda em frente a câmera do Sensor Microsoft Kinect. Tal fator não torna a técnica de
rastreio e delimitação das coordenadas inviável, posto que é quase impossível obter uma
representação perfeita.
Uma das etapas mais complexa realizada neste trabalho foi a elaboração da lógica de
intervalo das UA’s, pois nos estudos foram propostas algumas variáveis, que ao realizar na
prática não foi possível obter os resultados esperados, mas o SDK do Sensor Microsoft Kinect,
através da HD FACE API disponibiliza algumas UA’s para a realização do rastreio.
Após concluir a fase de implementação do software, a execução de demonstração
realizada foi essencial para a elaboração dos requisitos para que a ferramenta funcionasse.
Notou-se que, para o bom funcionamento da aplicação, o Sensor Microsoft Kinect deve estar
em uma base em que o usuário possa ficar com a câmera na altura de seu nariz, não existindo
uma altura padrão, mas uma altura que seja possível rastrear o rosto e uma parte do seu corpo,
para que possa ser rastreado com eficiência além do usuário estar a uma distância de +/- 50 cm
do Sensor Microsoft Kinect.
Como trabalhos futuros, pode-se citar: utilizar outros recursos no que tange estados
afetivos, como por exemplo, o reconhecimento de novos estados afetivos como, raiva e
surpresa, a fim de melhorar a quantidade de emoções rastreada e reconhecida pelo software.
Além da implementação de recursos que limitam os movimentos que o usuário possa
realizar em frente ao Sensor Microsoft Kinect, como por exemplo, ao usuário realizar um
desvio de atenção, ao identificar o software identifica e manda uma alerta ao usuário em forma
de áudio como aviso. Também, pode ser implementado módulos para que a coordenada da face
seja habilitada somente no rosto do usuário e não no ambiente como um todo.
57
Do mesmo modo, novos trabalhos podem ser desenvolvidos utilizando o rastreio do
corpo em conjunto com o rastreio da face, visto que nos estudos abordados, foi identificado
que alguns movimentos corporais também delimita algumas expressões emocionais.
Dessa forma, conclui-se que com o uso dos recursos do Sensor Microsoft Kinect v2
junto com recursos de sua API fornecida pelo SDK, é possível que se obtenha uma
representação do estado afetivo do usuário.
58
REFERÊNCIAS
CHEN, Yumiao; YANG, Zhongliang; WANG, Jiangping. Eyebrow emotional expression
recognition using surface EMG signals. Neurocomputing, [s.l.], v. 168, p.871-879, nov. 2015.
Elsevier BV. http://dx.doi.org/10.1016/j.neucom.2015.05.037.
DANTAS, Adilmar Coelho et al. Reconhecimento dinâmico de emoções através de expressões
faciais utilizando árvore de decisão. Anais do Xxvi Simpósio Brasileiro de Informática na
Educação (sbie 2015), [s.l.], v. 26, n. 26, p.1102-1111, 26 out. 2015. Comissao Especial de
Informatica na Educacao. http://dx.doi.org/10.5753/cbie.sbie.2015.1102. Disponível em:
<http://br-ie.org/pub/index.php/sbie/article/download/5428/3787>. Acesso em: 22 maio 2016.
DINIZ, Fábio Abrantes; MENDES NETO, Francisco Milton; LIMA JÚNIOR, Francisco das
Chagas. Um Sistema de Reconhecimento de Expressões Faciais para Apoiar um Ambiente
Virtual de Aprendizagem. 2013. 42 v. Monografia (Especialização) - Curso de Ciência da
Computação, Centro de Informática, Universidade Federal de Pernambuco, Pernambuco, 2013.
Cap. 463. Disponível em: <http://www.lbd.dcc.ufmg.br/colecoes/sbsi/2013/0042.pdf>. Acesso
em: 18 fev. 2016.
EKMAN, P. Strong Evidence For Universals In Facial Expressions. Psychol. Bull., 1994
EKMAN, P., & FRIESEN, W. V. (1982). Felt, false, and miserable smiles. Journal of
Nonverbal Behavior. 238–252. Disponível em: <https://www.paulekman.com/wp-
content/uploads/2013/07/Felt-False-And-Miserable-Smiles.pdf >. Acessado em 3 de maio de
2016.
Ekman, P., Friesen, W. V., & Ellsworth, P. (1972). What emotion categories or dimensions
can observers judge from facial behavior? In P. Ekman (Ed.), Emotion in the human face
(pp. 39-55). New York: Cambridge University Press. Disponível em:
<http://www.sciencedirect.com/science/book/9780080166438>. Acessado em: 11 de maio de
2016.
EKMAN, P.; FRIESSEN, W. V.; HAGER, J. C. Facial Action Coding System -
Investigator's Guide. 2ª Edição. ed. Salt Lake City: Research Nexus, 2002.
FITZPATRICK, Matthew; MATTHIOPOULOS, Nikolaos. Real Time Person Tracking and
Identification using the Kinect sensor. 2013. 78 f. Monografia (Especialização) - Curso de
Electrical & Computer Engineering, Worcester Polytechnic Institute, Worcester, 2013.
Disponível em: <https://www.wpi.edu/Pubs/E-project/Available/E-project-042513-
081838/unrestricted/Real_Time_Person_Tracking_and_Identification_using_the_Kinect_senso
r.pdf>. Acesso em: 24 maio 2016.
FREUND, Yoav; SCHAPIRE, Robert E.. A Short Introduction to Boosting. Journal Of
Japanese Society For Artificial Intelligence. Nova Jérsei - Eua, p. 1-14. nov. 1999.
Disponível em: <http://cseweb.ucsd.edu/~yfreund/papers/IntroToBoosting.pdf>. Acesso em: 23
maio 2016.
59
FRIEDLANDER Michel; RAHMILEVITZ Gustavo. Software para Análise de
Emoções na Face. Trabalhos de Conclusão de Cursos. Escola Politécnica da Universidade de
São Paulo, Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos. São Paulo,
dezembro de 2010.
GHOLIPOUR, Bahar. (2014). Happily Surprised! People Use More Facial Expressions
Than Thought. Disponível em: <http://www.livescience.com/44494-human-facial-
expressions-compound-emotions.html>. Acesso em 19 de março de 2016.
JAMES, William. What is an Emotion. Oxford Journals. Oxford, p. 188-205. mar. 1884.
Disponível em: <http://gruberpeplab.com/5131/2_James_1884_WhatisanEmotion.pdf>. Acesso
em: 11 maio 2016.
JANA, Abhijit. Kinect for Windows SDK Programming Guide. Birmingham, Uk: Packt
Publishing, 2012. 366 p. Disponível em: <http://www.doc.flash-
robotics.com/download/doc/Kinect for Windows SDK Programming Guide.pdf>. Acesso em:
24 maio 2016.
JAQUES, Patrícia Augustin; VICARI, Rosa Maria. Estado da Arte em Ambientes
Inteligentes de Aprendizagem que Consideram a Afetividade do Aluno. 2005. 8 v.
Monografia (Especialização) - Curso de Informática, Programa de Pós-graduação em
Informática na Educação, Instituto de Informática - Ufrgs, Rio Grande do Sul, 2005.
Disponível em: <http://ppginf.ucpel.tche.br/wesaac/Anais/Mini-cursos/mini-curso-jaques.pdf>.
Acesso em: 25 abr. 2016.
KAPUR, A., Kapur, A., Virji-Babul, N., Tzanetakis, G. & P.F. Driessen, “Gesture-Based
Affective Computing on Motion Capture Data”, Proceedings of the International Conference
on Affective Computing and Intelligent Interaction. Beijing, China. October 2005. Disponível
em: <http://www.mistic.ece.uvic.ca/publications/2005_acii_affect.pdf>.
LI, Stan Z.; JAIN, Anil K. (Ed.). Handbook of Face Recognition. New York: Springer, 2005.
395 p. Disponível em: < http://read.pudn.com/downloads142/ebook/618315/Handbook Of Face
Recognition.pdf>. Acesso em: 19 de março de 2016.
LIAO, Wenhui et al. Toward a decision-theoretic framework for affect recognition and
user assistance. International Journal Of Human-computer Studies, [s.l.], v. 64, n. 9, p.847-
873, set. 2006. Elsevier BV. http://dx.doi.org/10.1016/j.ijhcs.2006.04.001.
LISETTI, C. Personality, Affect And Emotion Taxonomy For Socially Intelligent Agents.
In Proceedings Of The Fifteenth International Florida Artifficial Intelligence Research Society
Conference, Pages 397-401. Aaai Press, 2002 Disponível em:
<https://www.aaai.org/Papers/FLAIRS/2002/FLAIRS02-078.pdf>. Acessado em: 12 de maio
de 2016.
LONGHI, L. Magalí, BERCHT, Magda BEHAR, A. Patrícia. Reconhecimento de Estados
Afetivos do Aluno em Ambientes Virtuais de Aprendizagem. (2007) Brasil: Programa de
Pós-Graduação em Informática na Educação – Universidade Federal do Rio Grande do Sul.
60
Disponível em: <http://www.cinted.ufrgs.br/ciclo10/artigos/3bMagali.pdf>. Acesso em: 05 de
maio de 2016.
MALFAZ, M., & SALICHS, M. A. A new architecture for autonomous robots based on
emotions. (2004) Madrid: Carlos III University of Madrid. Disponível em:
<http://roboticslab.uc3m.es/publications/MalfazIAV04.pdf>. Acessado em: 28/05/2015.
MARTINS, Gonçalo dos Santos. Kinect -Innovative Face Recognition System. 2013. 83 f.
Dissertação (Mestrado) - Curso de Ciência de Computadores, Faculdade de Ciências da
Universidade do Porto, Porto, 2013.
MELLO, Ana Maria S. Ros. De. Autismo: guia prático. 5 ed. São Paulo: AMA; Brasília:
CORDE, 2007. 104 p.: il. Disponível em:
<http://www.autismo.org.br/site/images/Downloads/7guia%20pratico.pdf>. Acessado em: 03
de maio de 2016.
MESSINGER, S. Daniel, DUVIVER, L. Leticia, WARREN, E. Zachary, MAHOOR,
Mohammad, BAKER, Jason, RUVOLO, Warlaumont e Paul. (2014). Affective Computing,
Emotional Development, and Autism. Cap. 39. Pág. 516-536. Oup uncoorected proof –
FIRSTPROOFS. Disponível em:
<http://www.psy.miami.edu/faculty/dmessinger/c_c/rsrcs/rdgs/emot/Affective_Computing_201
4.pdf>. Acessado em: 25/04/2016.
MICROSOFT. Kinect for Windows Architecture. Disponível
em:<https://msdn.microsoft.com/en-us/library/jj131023.aspx>. (2016a). Acesso em 12 de
Junho de 2016.
MICROSOFT. Kinect hardware. Disponível em: <https://developer.microsoft.com/en-
us/windows/Kinect/hardware>. Acesso em: 05 jun. 2016.
NUNES Maria Augusta Silveira Netto. Computação Afetiva personalizando interfaces,
interações e recomendações de produtos, serviços e pessoas emAmbientes
computacionais. In: Nunes, M.AS.N.; Oliveira, A.A.; Ordonez, E.D.M. 132 (Org.). DCOMP e
PROCC: Pesquisas e Projetos. São Cristóvão: Editora UFS, 2012, v., p. 115-151. Disponível
em: <http://200.17.141.213/~gutanunes/hp/publications/NunesDCOMP2012.pdf>. Acessado
em: 18 de maio de 2016.
OLIVEIRA Eduardo; JAQUES Patrícia Augustin. Inferindo as emoções do usuário pela face
através de um sistema psicológico de codificação facial. IHC 2008. Porto Alegre, 2008.
Disponível em:
<https://www.researchgate.net/profile/Patricia_Jaques/publication/220737344_Inferindo_as_e
mocoes_do_usuario_pela_face_atraves_de_um_sistema_psicologico_de_codificacao_facial/lin
ks/0deec530a4d54b8281000000.pdf>. Acessado em: 18 de maio de 2016.
ORTONY, A, Clore, G., & Collins. A. The cognitive structure of emotions. Cambridge:
Cambridge University Press, 1988.
ORTONY, A., & Turner, T. J. (1990). What’s basic about basic emotions? Psychological
Review, 97, 315-331. Disponível em:
Monografia - Gabriel Aires - CEULP/ULBRA
Monografia - Gabriel Aires - CEULP/ULBRA

Contenu connexe

Tendances

Estrutura interna da terra- 7ºano
Estrutura interna da terra- 7ºano Estrutura interna da terra- 7ºano
Estrutura interna da terra- 7ºano Natália Medeiros
 
Obtenção de matéria pelos seres heterotróficos
Obtenção de matéria pelos seres heterotróficosObtenção de matéria pelos seres heterotróficos
Obtenção de matéria pelos seres heterotróficosLuís Filipe Marinho
 
Geo 17 magmatismo (consolidação do magma)
Geo 17   magmatismo (consolidação do magma)Geo 17   magmatismo (consolidação do magma)
Geo 17 magmatismo (consolidação do magma)Nuno Correia
 
3 estrutural-bacias sedimentares [compatibility mode]
3 estrutural-bacias sedimentares [compatibility mode]3 estrutural-bacias sedimentares [compatibility mode]
3 estrutural-bacias sedimentares [compatibility mode]Victoria Dias
 
Obtenção de Matéria pelos Seres Heterotróficos
Obtenção de Matéria pelos Seres Heterotróficos Obtenção de Matéria pelos Seres Heterotróficos
Obtenção de Matéria pelos Seres Heterotróficos 713773
 
Crescimento e renovação celular
Crescimento e renovação celularCrescimento e renovação celular
Crescimento e renovação celularCecilferreira
 
Sistema Reprodutor Masculino
Sistema Reprodutor MasculinoSistema Reprodutor Masculino
Sistema Reprodutor MasculinoBetania Alpoim
 
Biologia membrana plasmatica
Biologia   membrana plasmaticaBiologia   membrana plasmatica
Biologia membrana plasmaticaPedro Lopes
 
Curso de idiomas globo inglês livro 001
Curso de idiomas globo inglês livro 001Curso de idiomas globo inglês livro 001
Curso de idiomas globo inglês livro 001rosemere12
 
Plano de aula 07 - Lorena Sá
Plano de aula 07 -  Lorena SáPlano de aula 07 -  Lorena Sá
Plano de aula 07 - Lorena SáLorenabiologia
 
Anomalias Cromossomicas2014.ppt
Anomalias Cromossomicas2014.pptAnomalias Cromossomicas2014.ppt
Anomalias Cromossomicas2014.pptProfYasminBlanco
 
الطريق الى بيت المقدس ج2
الطريق الى بيت المقدس ج2الطريق الى بيت المقدس ج2
الطريق الى بيت المقدس ج2basheer777
 
الشاطبية والدرة في القراءات العشر الصغرى.pdf
الشاطبية والدرة في القراءات العشر الصغرى.pdfالشاطبية والدرة في القراءات العشر الصغرى.pdf
الشاطبية والدرة في القراءات العشر الصغرى.pdfسمير بسيوني
 
Movimentos das Placas Litosfericas
Movimentos das Placas LitosfericasMovimentos das Placas Litosfericas
Movimentos das Placas Litosfericasmarco :)
 
Tecido muscular
Tecido muscularTecido muscular
Tecido muscularDeaaSouza
 
Controle ciclo celular fisioterapia
Controle ciclo celular fisioterapiaControle ciclo celular fisioterapia
Controle ciclo celular fisioterapialaismoraes93
 
Rochas MetamóRficas
Rochas MetamóRficasRochas MetamóRficas
Rochas MetamóRficasArminda Malho
 

Tendances (20)

Estrutura interna da terra- 7ºano
Estrutura interna da terra- 7ºano Estrutura interna da terra- 7ºano
Estrutura interna da terra- 7ºano
 
Obtenção de matéria pelos seres heterotróficos
Obtenção de matéria pelos seres heterotróficosObtenção de matéria pelos seres heterotróficos
Obtenção de matéria pelos seres heterotróficos
 
Geo 17 magmatismo (consolidação do magma)
Geo 17   magmatismo (consolidação do magma)Geo 17   magmatismo (consolidação do magma)
Geo 17 magmatismo (consolidação do magma)
 
Deltas e Estuarios
Deltas e EstuariosDeltas e Estuarios
Deltas e Estuarios
 
3 estrutural-bacias sedimentares [compatibility mode]
3 estrutural-bacias sedimentares [compatibility mode]3 estrutural-bacias sedimentares [compatibility mode]
3 estrutural-bacias sedimentares [compatibility mode]
 
Obtenção de Matéria pelos Seres Heterotróficos
Obtenção de Matéria pelos Seres Heterotróficos Obtenção de Matéria pelos Seres Heterotróficos
Obtenção de Matéria pelos Seres Heterotróficos
 
Crescimento e renovação celular
Crescimento e renovação celularCrescimento e renovação celular
Crescimento e renovação celular
 
Sistema Reprodutor Masculino
Sistema Reprodutor MasculinoSistema Reprodutor Masculino
Sistema Reprodutor Masculino
 
Núcleo cromossomos
Núcleo cromossomosNúcleo cromossomos
Núcleo cromossomos
 
Biologia membrana plasmatica
Biologia   membrana plasmaticaBiologia   membrana plasmatica
Biologia membrana plasmatica
 
Curso de idiomas globo inglês livro 001
Curso de idiomas globo inglês livro 001Curso de idiomas globo inglês livro 001
Curso de idiomas globo inglês livro 001
 
Plano de aula 07 - Lorena Sá
Plano de aula 07 -  Lorena SáPlano de aula 07 -  Lorena Sá
Plano de aula 07 - Lorena Sá
 
Rochas metamórficas
Rochas metamórficasRochas metamórficas
Rochas metamórficas
 
Anomalias Cromossomicas2014.ppt
Anomalias Cromossomicas2014.pptAnomalias Cromossomicas2014.ppt
Anomalias Cromossomicas2014.ppt
 
الطريق الى بيت المقدس ج2
الطريق الى بيت المقدس ج2الطريق الى بيت المقدس ج2
الطريق الى بيت المقدس ج2
 
الشاطبية والدرة في القراءات العشر الصغرى.pdf
الشاطبية والدرة في القراءات العشر الصغرى.pdfالشاطبية والدرة في القراءات العشر الصغرى.pdf
الشاطبية والدرة في القراءات العشر الصغرى.pdf
 
Movimentos das Placas Litosfericas
Movimentos das Placas LitosfericasMovimentos das Placas Litosfericas
Movimentos das Placas Litosfericas
 
Tecido muscular
Tecido muscularTecido muscular
Tecido muscular
 
Controle ciclo celular fisioterapia
Controle ciclo celular fisioterapiaControle ciclo celular fisioterapia
Controle ciclo celular fisioterapia
 
Rochas MetamóRficas
Rochas MetamóRficasRochas MetamóRficas
Rochas MetamóRficas
 

Similaire à Monografia - Gabriel Aires - CEULP/ULBRA

Análise Facial Computadorizada para Identificação da Experiência Emocional Ut...
Análise Facial Computadorizada para Identificação da Experiência Emocional Ut...Análise Facial Computadorizada para Identificação da Experiência Emocional Ut...
Análise Facial Computadorizada para Identificação da Experiência Emocional Ut...Gabriel Aires
 
Ercilio Nascimento - Geração Automática de GUIs para Objetos Inteligentes em ...
Ercilio Nascimento - Geração Automática de GUIs para Objetos Inteligentes em ...Ercilio Nascimento - Geração Automática de GUIs para Objetos Inteligentes em ...
Ercilio Nascimento - Geração Automática de GUIs para Objetos Inteligentes em ...Ercílio Nascimento
 
163 2009 gustavo_meurer
163 2009 gustavo_meurer163 2009 gustavo_meurer
163 2009 gustavo_meurerpunkqp
 
TCC - Kinect para Reabilitação Fatec Carapicuíba
TCC - Kinect para Reabilitação Fatec CarapicuíbaTCC - Kinect para Reabilitação Fatec Carapicuíba
TCC - Kinect para Reabilitação Fatec CarapicuíbaVanessa Alves Nascimento
 
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)Bruno Ferrari
 
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...Marcelo Eden
 
DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...
DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...
DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...Leinylson Fontinele
 
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...Gabriel Cabral
 
Construindo Aplicativos Sociais Utilizando as APIs do OpenSocial
Construindo Aplicativos Sociais Utilizando as APIs do OpenSocialConstruindo Aplicativos Sociais Utilizando as APIs do OpenSocial
Construindo Aplicativos Sociais Utilizando as APIs do OpenSocialCleber Rech
 
Graduação puc - aplicações de padrões de projeto no desenvolvimento de inte...
Graduação   puc - aplicações de padrões de projeto no desenvolvimento de inte...Graduação   puc - aplicações de padrões de projeto no desenvolvimento de inte...
Graduação puc - aplicações de padrões de projeto no desenvolvimento de inte...Wagner Tironi Pinto
 
Ferramentas de Recomendação - Detalhe
Ferramentas de Recomendação - DetalheFerramentas de Recomendação - Detalhe
Ferramentas de Recomendação - DetalheJoao Alqueres
 
Plano de projeto: Bichos do Campus na Web
Plano de projeto: Bichos do Campus na WebPlano de projeto: Bichos do Campus na Web
Plano de projeto: Bichos do Campus na WebJorge Roberto
 
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...Paulo Steinhauser
 
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...Paulo Steinhauser
 
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQLDesenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQLRogerio de Moraes
 
Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01Antonio Luiz S. Isabel
 

Similaire à Monografia - Gabriel Aires - CEULP/ULBRA (20)

Análise Facial Computadorizada para Identificação da Experiência Emocional Ut...
Análise Facial Computadorizada para Identificação da Experiência Emocional Ut...Análise Facial Computadorizada para Identificação da Experiência Emocional Ut...
Análise Facial Computadorizada para Identificação da Experiência Emocional Ut...
 
Tp lourenco castro
Tp lourenco castroTp lourenco castro
Tp lourenco castro
 
Ercilio Nascimento - Geração Automática de GUIs para Objetos Inteligentes em ...
Ercilio Nascimento - Geração Automática de GUIs para Objetos Inteligentes em ...Ercilio Nascimento - Geração Automática de GUIs para Objetos Inteligentes em ...
Ercilio Nascimento - Geração Automática de GUIs para Objetos Inteligentes em ...
 
163 2009 gustavo_meurer
163 2009 gustavo_meurer163 2009 gustavo_meurer
163 2009 gustavo_meurer
 
TCC - Kinect para Reabilitação Fatec Carapicuíba
TCC - Kinect para Reabilitação Fatec CarapicuíbaTCC - Kinect para Reabilitação Fatec Carapicuíba
TCC - Kinect para Reabilitação Fatec Carapicuíba
 
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
 
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...
J!CAMP: UMA ABORDAGEM CENTRALIZADA PARA O GERENCIAMENTO VIRTUAL DE MÚLTIPLOS...
 
DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...
DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...
DESENVOLVIMENTO E AVALIAÇÃO DE DESEMPENHO DO MECANISMO DE RECONHECIMENTO AUTO...
 
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
Monografia - Engenharia de software baseada em modelos um estudo sobre WebML ...
 
Relatório de estágio
Relatório de estágioRelatório de estágio
Relatório de estágio
 
Dupla de Robôes Cooperativos
Dupla de Robôes CooperativosDupla de Robôes Cooperativos
Dupla de Robôes Cooperativos
 
Construindo Aplicativos Sociais Utilizando as APIs do OpenSocial
Construindo Aplicativos Sociais Utilizando as APIs do OpenSocialConstruindo Aplicativos Sociais Utilizando as APIs do OpenSocial
Construindo Aplicativos Sociais Utilizando as APIs do OpenSocial
 
Graduação puc - aplicações de padrões de projeto no desenvolvimento de inte...
Graduação   puc - aplicações de padrões de projeto no desenvolvimento de inte...Graduação   puc - aplicações de padrões de projeto no desenvolvimento de inte...
Graduação puc - aplicações de padrões de projeto no desenvolvimento de inte...
 
Ferramentas de Recomendação - Detalhe
Ferramentas de Recomendação - DetalheFerramentas de Recomendação - Detalhe
Ferramentas de Recomendação - Detalhe
 
Plano de projeto: Bichos do Campus na Web
Plano de projeto: Bichos do Campus na WebPlano de projeto: Bichos do Campus na Web
Plano de projeto: Bichos do Campus na Web
 
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
 
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
 
27 05-10-final se liga3
27 05-10-final se liga327 05-10-final se liga3
27 05-10-final se liga3
 
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQLDesenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
Desenvolvimento de Sistema CRUD (MVC) PHP / MYSQL
 
Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
 

Monografia - Gabriel Aires - CEULP/ULBRA

  • 1. Gabriel Vaz Aires ANÁLISE FACIAL COMPUTADORIZADA PARA IDENTIFICAÇÃO DA EXPERIÊNCIA EMOCIONAL UTILIZANDO O KINECT Palmas - TO 2016
  • 2. Gabriel Vaz Aires ANÁLISE FACIAL COMPUTADORIZADA PARA IDENTIFICAÇÃO DA EXPERIÊNCIA EMOCIONAL UTILIZANDO O KINECT Trabalho de Conclusão de Curso (TCC) elaborado e apresentado como requisito parcial para obtenção do título de bacharel em Sistema de Informação pelo Centro Universitário Luterano de Palmas (CEULP/ULBRA). Orientador: Prof. M.e. Fernando Luiz de Oliveira. Palmas - TO 2016
  • 3. Gabriel Vaz Aires ANÁLISE FACIAL COMPUTADORIZADA PARA IDENTIFICAÇÃO DA EXPERIÊNCIA EMOCIONAL UTILIZANDO O KINECT Trabalho de Conclusão de Curso (TCC) elaborado e apresentado como requisito parcial para obtenção do título de bacharel em Sistemas de Informação pelo Centro Universitário Luterano de Palmas (CEULP/ULBRA). Orientador: Prof. M.e. Fernando Luiz de Oliveira. Aprovada em: de . BANCA EXAMINADORA ___________________________________________________ Prof. M.e. Fernando Luiz de Oliveira Orientador Centro Universitário Luterano de Palmas ___________________________________________________ Prof. M.e. Fabiano Fagundes Centro Universitário Luterano de Palmas ___________________________________________________ Prof. M.e. Pierre Soares Brandão Centro Universitário Luterano de Palmas Palmas - TO 2016
  • 4. AGRADECIMENTOS Primeiramente a Deus por ter me dado forças e a devida saúde para alcançar mais um sonho e aguentar esses longos anos em um curso realmente fantástico. Aos meus pais Zilman Aires Moura e Irani Vaz da Silva Aires, meu irmão, minha avó, meu avô e meus tios, apenas posso agradecer por tudo que me proporcionaram, pois nunca conseguirei compensar devidamente a dedicação que sempre manifestaram. Ao meu orientador, Fernando Oliveira, agradeço por tudo que me ensinou, pela paciência, pela insistência, pelas cobranças, pelos conselhos, pelos se Deus quiser. Aos professores da banca, Fabiano Fagundes e Pierre Brandão, agradeço pelas contribuições, pois cada orientação foi importante para o término com êxito. Aos professores Edeilson, Cristina, Madianita, Parcilene e Jackson, agradeço toda a paciência, pelos apelido engraçados e por mostrarem que os cursos de Ciência da Computação e Sistemas de Informação do Centro Universitário Luterano de Palmas não possuem apenas um grupo de professores e sim, uma família de professores extremamente dedicada e animada. A Jackeline do Santos, por ser a pessoa que me aguentava nos momentos de desespero e despreparo para seguir com o trabalho, sempre me ajudando a superar as adversidades de forma carinhosa. Também meus amigos: João Batista Borges, Marcos Batista, Silas Gonçalves, Ranyelson Neres, Fábio Ricardo, Luiz Carlos Fernandes, Lucas Roese e os demais do curso, pois com eles aprender se tornava cada vez mais divertido. Enfim, agradeço a todos os amigos e colegas por cada momento que passamos juntos. Muito obrigado!
  • 5. RESUMO AIRES, Gabriel Vaz. Análise facial computadorizada para identificação da experiência emocional utilizando o Kinect. 2016. 51 f. TCC (Graduação) - Curso de Sistemas de Informação, Centro Universitário Luterano de Palmas, Palmas, 2016. O presente estudo aborda o reconhecimento dos estados afetivos por meio do Sensor Microsoft Kinect, experiência emocional e rastreamento facial. Neste trabalho foi construído um software de reconhecimento do estado afetivo que serve como módulo para o sistema FisioKinect. Este módulo permite reconhecer o momento de cada expressão facial, mais especificamente a alegria e a tristeza, realizada por um usuário com objetivo de se obter o conhecimento do estado afetivo em tempo real, estudo realizado na área de Computação Afetiva. Vale ressaltar que este trabalho procura perceber como é trabalhado o processo de análise facial e identificação dos estados emocionais através do Sensor Microsoft Kinect. Este Sensor é uma das tecnologias que automatiza o processo de obtenção dos dados dos estados afetivos através das expressões faciais das pessoas já que, com o uso do sensor RGB e de uma API presente no dispositivo, é possível a visualização da representação do rosto humano em tempo real. Através dos recursos oferecidos pelo Sensor Microsoft Kinect, é possível a obtenção de experiência emocionais através do rosto humano, que pode ser utilizado para resolução de diversos problemas, como por exemplo, nos softwares que visam automatizar o processo de obtenção de estados emocionais ou afetivos diante de testes ou avaliações. Por fim o trabalho apresentou um caminho para a realização do reconhecimento do estado afetivo por meio do Sensor Microsoft Kinect, destacando os estados afetivos já desenvolvidos, com isso podendo expandir aos demais estados como por exemplo, surpresa, raiva, medo, angústia. Palavras-chave: Sensor Microsoft Kinect. Experiência Emocional. Análise Computadorizada. Estado Emocional.
  • 6. ABSTRACT This study adresses the recognition of affective states through the Microsoft Kinect Sensor, emotional experience and facial tracking. In this work it was built an affective state recognition software that works as a module for the FisioKinect system. This module allows to recognize the moment of each facial expression, more especifically joy and a period of evaluation, the study done in the Affective Computing area. It is worth mentioning that this work seeks to understand how the process of facial analysis and identification of emotional states through the Microsoft Kinect Sensor works. This sensor is one of the technologies that automates the process of gathering data from the affective states to the facial expressions from people who, with using the RGB sensor and an API is not a device, is a view of the represenation of the human face in real time. Through the resources offered by the Microsoft Kinect sensor, it is possible to obtain emotional experience through the human face, which can be used to solve various problems, such as the softwares that aim at automating the process of obtaining the emotional states from tests and evaluations. Finally, this worked showed a way for a affective state recognition test through the Microsoft Kinect Sensor, highlighting the already develop affective states, then the work can expand to the remaining emotional states such as surprise, anger, fear and anguish. Keywords: Microsoft Kinect Sensor. Affective State Recignition. Affective Computing. Emotion State. Facial Tracking.
  • 7. LISTA DE ABREVIATURAS E SIGLAS API Interface de Programação de Aplicativos SDK Kit de Desenvolvimento de Software UA Unidade de Animação
  • 8. LISTA DE FIGURAS Figura 1 - Representação dos ramos de pesquisa da Computação Afetiva...............................13 Figura 2 - Estrutura cognitiva do modelo OCC ........................................................................16 Figura 3 - Localização dos eletrodos na parte frontal...............................................................19 Figura 4 - Cinco estados emocionais utilizado no projeto. .......................................................20 Figura 5 - Mapeamento das AUs. .............................................................................................21 Figura 6 - Variáveis da deformação das características faciais ................................................23 Figura 7 - Classificação das Emoções Utilizando Árvore de Decisão......................................24 Figura 8 - Fluxo padrão de um sistema de reconhecimento facial. ..........................................25 Figura 9 - Detecção facial.........................................................................................................26 Figura 10 - Somatório da imagem integral. ..............................................................................27 Figura 11 - Imagem original para equação da imagem integral. ..............................................27 Figura 12 - Características selecionadas pelo AdaBoost. .........................................................28 Figura 13 - Classificadores cascata...........................................................................................29 Figura 14 - Rosto rastreado usando Kinect face SDK. .............................................................30 Figura 15 - Reconstrução de imagem com Eigenface...............................................................31 Figura 16 - Modelo de um sistema de reconhecimento facial. .................................................32 Figura 17 - Pontos para possíveis identificação emocional. .....................................................34 Figura 18. Estrutura metodológica............................................................................................39 Figura 19. Processo do desenvolvimento..................................................................................41 Figura 20. Malha 3D .................................................................................................................42 Figura 21 - Arquitetura do SDK. ..............................................................................................36 Figura 22. Identificação dos pontos ..........................................................................................38 Figura 23. Arquitetura de desenvolvimento do software ..........................................................43 Figura 24. Tela Inicial do sistema.............................................................................................44 Figura 25. Tela de apresentação da malha 3D ..........................................................................45 Figura 26. Representação do estado emocional obtido.............................................................46 Figura 27. Condições para que as expressões sejam válidas ....................................................47 Figura 28. Declaração inicial das variáveis ..............................................................................48 Figura 29. Inicialização dos sensores........................................................................................50 Figura 30. Sensor RGB .............................................................................................................51 Figura 31. Classe Extensions ....................................................................................................51 Figura 32. Rastreio do corpo do usuário ...................................................................................52 Figura 33. Processo inicial para o rastreio facial ......................................................................53 Figura 34. Processo de rastreamento do estado afetivo ............................................................54
  • 9. LISTA DE TABELAS Tabela 1 - Seleção de listas de emoções "básicas". ..................................................................17 Tabela 2 - Descrição das características das expressões básicas. .............................................21 Tabela 3 - Diferenças entre o Kinect 360 para Windows e Kinect One ...................................32 Tabela 4. Condições para que as expressões sejam válidas ......................................................47
  • 10. SUMÁRIO 1 INTRODUÇÃO...............................................................................................................9 2 REFERÊNCIAL TEÓRICO........................................................................................11 2.1. Experiência emocional.........................................................................................11 2.2. Interação afetiva baseada na expressão facial...................................................13 2.2.1. Análise e reconhecimento de estados afetivos ..................................................14 2.2.2. Classificações das expressões faciais .................................................................20 2.3. Reconhecimento e rastreamento facial ..............................................................24 2.3.1. Detecção e rastreamento facial ..........................................................................25 2.3.2. Reconhecimento facial ........................................................................................30 2.4. Sensor Microsoft Kinect......................................................................................32 3 MATERIAIS E MÉTODOS ........................................................................................35 3.1. Local ......................................................................................................................35 3.2. Materiais ...............................................................................................................35 3.3. Metodologia ...............................................................Error! Bookmark not defined. 3.3.1. Desenvolvimento do Software............................................................................40 3.3.2. API de reconhecimento.......................................................................................35 4 RESULTADOS E DISCUSSÃO..................................................................................42 4.1. Arquitetura do Software .....................................................................................42 4.2. O Software ............................................................................................................43 4.3. Lógica Utilizada com as UA’s .............................................................................46 4.4. Declaração de variáveis .......................................................................................48 4.5. Configuração do Kinect, HDFace e do reconhecimento do estado afetivo.....49 5 CONSIDERAÇÕES FINAIS .......................................................................................56 REFERÊNCIAS......................................................................................................................58
  • 11. 9 1 INTRODUÇÃO Segundo Robinson (2014) é possível identificar algumas informações durante a comunicação entre duas pessoas como, por exemplo, sentimentos e características afetivas. Porém, este processo de identificação das informações por meio de uma comunicação não é algo tão simples como a troca de palavras. Envolve informações subjetivas que podem ser baseadas em um repertório cultural, formação educacional, vivência, emoções e também por meio de sinais, tais como, expressões faciais, corporais, gestuais e vocais. Na área da saúde, a comunicação entre o paciente e o profissional é de suma importância. No entanto, o profissional, além de ouvir, deve observar cada movimento ou sinal feito pelo paciente durante a conversa, pois estes movimentos e sinais podem resultar em informações importantes que poderão auxiliar o profissional no processo de avaliação do paciente. A Computação Afetiva está relacionada à aplicação de características afetivas em sistemas computacionais e robóticos. Em sistemas computacionais as aplicações são voltadas para análise e aprendizagem. Na robótica essas aplicações possuem o foco para a identificação de elementos que permitem a estes sistemas ou robôs a possibilidade de denotar emoções (emotional appearance), gerar emoções (emotion generation) que serão apresentadas aos usuários, bem como perceber emoções (emotional experience) e demonstrar interações mente- corpo (mind-body interactions) (PICARD, 2003). No contexto psicológico, a Computação Afetiva pode contribuir melhorando o método de avaliação emocional. Isto porque esse processo de detectar a emoção do usuário em um determinado momento pode ajudar em uma análise mais profunda. Ao analisar o rosto da pessoa, por exemplo, é possível, com ajuda da tecnologia, detectar alguns pontos faciais, utilizando métodos de rastreamento de sinais e, com isto, perceber emoções (PICARD, 1997). A integração da ciência com a tecnologia busca aperfeiçoar os resultados de aplicações em áreas correlacionadas. Na psicologia alguns resultados gerados através de testes realizados por meio de questionários podem ser integrados à equipamentos eletrônicos como o Sensor Microsoft Kinect, que possui a capacidade de reconhecimento do ambiente e também o reconhecimento de rosto das pessoas presentes no mesmo ambiente. Isso pode resultar em importantes avanços para área da saúde, por possibilitar a utilização de recursos de um dispositivo eletrônico para gerar resultados em tempo real.
  • 12. 10 O reconhecimento de expressões faciais tem despertado interesses dos pesquisadores, devido ao seu potencial para criação de interfaces que replicam o comportamento humano. Recursos que podem ser usados em várias aplicações como videoconferência, realidade virtual, traçando o perfil do usuário, além de variados serviços Web (CHANGJUN et al, 2011, apud DINIZ et al, 2013). Desta forma, neste trabalho foi desenvolvido um software que utiliza o Sensor Microsoft Kinect para obter um conjunto de atributos realacionados à experiência emocional, tendo por objetivo identificar os estados afetivos de uma determinada pessoa durante alguma ação feita ou avaliação realizada, relacionados à detecção facial e reconhecimento de expressões faciais. Isto será possível porque o sensor utilizado possui a capacidade de detectar as expressões faciais de uma pessoa. O presente trabalho está estruturado em seções que apresentam as sequências percorridas para que o objetivo final fosse alcançado. A seção número 2 apresenta o referencial teórico, a seção de número 3 os materiais utilizados na implementação da ferramenta e a metodologia utilizada, após, na seção de número 4 são apresentados os resultados obtidos na implementação. Na seção de 5 são apresentadas as considerações finais alcançadas. Por fim, a seção 6 são apresentadas as referências bibliográficas utilizadas.
  • 13. 11 2 REFERÊNCIAL TEÓRICO Nesta seção serão apresentados os conceitos relevantes e necessários para o entendimento e desenvolvimento do trabalho. A princípio serão abordados os conceitos acerca da experiência emocional e da interação afetiva baseada na expressão facial sendo apresentados conceitos de cognição afetiva, bem como as classificações das expressões faciais. A próxima abordagem será referente ao reconhecimento e rastreamento facial, que abordará detecção facial, rastreamento e reconhecimento facial e, por fim, o sensor Microsoft Kinect. 2.1. Experiência emocional Experiência emocional, segundo Picard (2003), é a forma como são percebidos os estados emocionais que estão ligados à consciência. Todos os seres humanos podem perceber seu próprio estado emocional, que podem ter alterações fisiológicas ou sentimentos intuitivos e subjetivos, que pode ser determinada pela maneira que uma determinada situação é construída. A teoria da experiência emocional vem sendo estudada e discutida durante muito tempo pela área da psicologia. Nos últimos anos em uma área da tecnologia chamada de IHC (Interface Homem-Computador) houve um aumento no número de pesquisas relacionadas à experiência emocional (XAVIER, 2013). Pinto (2001) ressalta que a emoção é uma experiência subjetiva, que envolve a pessoa por completo, mente e corpo. É uma reação complexa, realizada através de um estímulo ou pensamento, que envolve reações orgânicas e sensações pessoais. É uma resposta que envolve diferentes componentes e é considerada como uma reação observável, que são as reações que estão à mostra da pessoa, uma excitação fisiológica, como ouvir uma música e sentir uma mudança nos pelos da epiderme, uma interpretação cognitiva, como a visita a algum parente querido e se emocionar ao vê-lo, e uma experiência subjetiva, como o medo de que algo possa acontecer. Conforme Silva (2010), as emoções possuem um papel determinante no funcionamento psicológico humano. Entretanto, nem sempre a definição das emoções é clara para o entendimento de todas as pessoas, a depender das diferentes teorias encontradas e também dos componentes no qual se baseiam. Um exemplo é a teoria de James (1884), que resume as emoções como sentimentos de mudanças corporais, que são acionados por algum reflexo durante sua percepção. Em sistemas computacionais, as emoções podem ser expostas através de um mecanismo de controle e de aprendizagem, de modo que os sistemas virtuais possam reagir e interagir aos
  • 14. 12 estímulos expostos pelas necessidades de diferentes usuários. Esse mecanismo faz com que o usuário possa interagir e produzir algo perto do real com as máquinas (MALFAZ & SALICHS, 2004). De acordo com Picard (2003), os seres humanos possuem a capacidade de perceber seu estado emocional e de expressar diversos sentimentos sob vários desses estados. No entanto, as máquinas não conseguem expressar a mesma forma de emoção que um ser humano consegue, pois os seres humanos possuem substancialmente sentidos e sentimentos diferentes do que as máquinas podem possuir. Por exemplo, pode-se citar o sentimento de medo, a partir do qual o corpo humano pode tremer ou acelerar o coração devido a alguma ameaça. Existe, assim, uma diferença entre a experiência emocional humana e as que as máquinas podem ter. Por meio dos comportamentos das pessoas, alguns trabalhos podem ser realizados para a identificação de experiência emocional. Algumas medições automatizadas, por exemplo, por meio de alguns pontos rastreáveis fixados nos músculos da face é possível obter os índices de intensidade das expressões geradas diante de alguma execução de atividade comportamental. Portanto, o uso de uma ferramenta automatizada poderá identificar essas expressões e da mesma forma produzir um modelo de avaliação da emoção. Conforme o trabalho realizado por Messinger et. al. (2014), que avalia o emocional de um sorriso de uma criança de menos de dois anos de idade através de reconhecimento facial, conseguiu-se verificar que alguns sorrisos infantis ocorrem com frequência em determinadas interações sociais, denotando alegria ou positividade. Desde a década de 70 cientistas da área da Computação Afetiva buscam entender, modelar e programar aspectos psicológicos humanos em ambientes computacionais, almejando identificar as características definidas através das expressões que o ser humano possa demonstrar. Na Computação Afetiva é estudada a forma como os computadores podem reconhecer, formar e responder às emoções humanas e expressá-las através de interfaces computacionais (NUNES, 2011). No trabalho de Messinger et. al. (2014), é possível perceber que a experiência emocional pode ser identificada através de sistemas computacionais. No que se refere a Computação Afetiva, para se perceber aspectos psicológicos e modelá-los de acordo com a experiência emocional de um usuário são feitos sistemas computacionais para que possam ser analisados os estados e as características emocionais do usuário. Esses sistemas buscam entender as emoções humanas e, se possível, expressar emoções na comunicação com usuários. O ramo da Computação Afetiva é dividido em dois ramos maiores de pesquisa. No primeiro são estudados mecanismos para reconhecimento de emoções em máquina através da
  • 15. 13 interação homem-computador. No segundo ramo estuda-se a emoção através da simulação de emoções em máquina, com intuito de perceber mais sobre as emoções humanas para que seja possível dotar robôs de emoções, tornando-os mais reais. Na Figura 1, a seguir, pode-se observar como são divididos os ramos da pesquisa afetiva conforme Jaques e Viccari (2005). Figura 1 - Representação dos ramos de pesquisa da Computação Afetiva Fonte: Adaptado de JAQUES e VICCARI, 2005 Na Figura 1, são apresentadas as duas áreas da Computação Afetiva, que é dividida em: síntese de emoções, que consiste na simulação de emoções em máquinas; e emoções na interação homem-computador, que é o reconhecimento das emoções do usuário e de expressão de emoções apresentadas por máquinas. As emoções são de suma importância para proporcionar melhorias nas formas de se executar uma comunicação humano-computador. Dessa maneira é possível com a Computação Afetiva aprimorar este processo como, por exemplo, identificar a experiência emocional de uma pessoa durante algum procedimento psicológico, e em que situações ela se encontra com raiva ou feliz. 2.2. Interação afetiva baseada na expressão facial Uma interação afetiva é aquela em que a informação emocional é transmitida ao usuário de uma forma natural e de maneira confortável. A interação homem-computador vem mudando
  • 16. 14 o modo de aplicabilidade de sistemas computacionais voltado a interação com usuário. Picard (1995) cita que a interação afetiva é uma área da Computação Afetiva relacionada com as técnicas de entrada como, por exemplo, técnicas naturais que se baseiam em expressões faciais e gestos, e também técnicas avançadas como interpretação de sinais elétricos do cérebro. Um exemplo de software desenvolvido com esta teoria é o jogo “What a Feeling”, baseado na atividade de reconhecimento das expressões faciais através de avatares para os jogadores. Este foi criado para ajudar crianças com autismo, desenvolvimento que se caracteriza por algumas alterações em crianças, frequentemente antes dos três anos de idade, obtendo um impacto em áreas do desenvolvimento humano como comunicação, interação social, capacidade de adaptação e aprendizado (MELLO, 2007). No caso, os usuários do jogo devem reconhecer as expressões faciais realizadas por um avatar, sendo que o jogo também possui a capacidade de adicionar expressões em tempo real. Algumas expressões que podem ser representadas no jogo são: raiva, medo, alegria, tristeza, cansaço e surpresa; sendo que o terapeuta pode manipular o jogo usando um mouse e um teclado para criar novas expressões (ORVALHO, 2010). O mecanismo de reconhecimento do estado afetivo, assim como a representação ou classificação das expressões, serão abordados nas próximas seções. 2.2.1. Análise e reconhecimento de estados afetivos Picard (1997) afirma que a Computação Afetiva pressupõe que os computadores tenham a capacidade de reconhecer e de inferir aspectos afetivos, que é a relação do ser humano com o ambiente físico ou com outros seres humanos, de modo que, através desses reconhecimentos, sejam capazes de entender as formas de expressões emocional humana e, se necessário, sintetizá-las. Longhi et. al. (2007) citam que fenômenos afetivos são expressos de formas voluntárias ou involuntárias e que, geralmente, denotam os estados emocional em que se encontra cada pessoa. Esses estados podem ser através de emoções demonstradas ou sentimentos expressados. Esses fenômenos podem vir em forma de sons, grafia e gestos corporais ou faciais. Nunes (2012) afirma que pesquisadores em Computação Afetiva estão identificando e implementando as emoções explicitamente em sistemas computacionais. Isto porque, para que os sistemas possam entender ou adaptar-se a afetividade do usuário, os sistemas devem ser capazes de reconhecer as emoções do usuário.
  • 17. 15 Existem modelos de inferência nos quais se estudam o reconhecimento de emoções do usuário em sistemas computacionais e também implementação de emoções em máquina. Segundo Liao et al. (2006), esses modelos de inferência podem ser classificados em diagnóstico, inferência híbrida ou prognóstico. No modelo de inferência por diagnóstico, o reconhecimento é feito por meio de medidas comportamentais e fisiológicas. Os classificados em prognóstico trabalham com fatores que influenciam ou causam o estado afetivo de uma pessoa, como, por exemplo, o modelo OCC (devido às iniciais dos sobrenomes dos autores) (ORTONY et al. 1988). Esta teoria é baseada no reconhecimento da emoção, que explica a origem das emoções apresentando os processos de reconhecimento. O modelo OCC entende que as emoções podem surgir a partir da avaliação de três aspectos: eventos, ação dos agentes envolvidos e aparência dos objetos envolvidos. O método de inferência híbrida é a combinação entre o método de prognóstico e diagnóstico, no qual resultará em um reconhecimento com inferências afetivas mais precisas. Jaques e Viccari (2005) citam que a teoria do modelo OCC objetiva a ajudar a entender as emoções das pessoas e como elas acontecem. Também busca explicar as cognições humanas em prol de reconhecê-las. No modelo OCC, apenas seis emoções dão origem a outras dezessete, como pode ser visto na Figura 2 abaixo.
  • 18. 16 Figura 2 - Estrutura cognitiva do modelo OCC Fonte: Adaptado Ortony et al. (1988) Na Figura 2, o evento é a forma com a qual a pessoa percebe o que está acontecendo a sua volta e como ela reage. Agentes são as pessoas e os aspectos de objetos são os objetos
  • 19. 17 inanimados no ambiente. Este modelo é usado para reconhecimento de emoções em ambientes computacionais, ou seja, é utilizado para programar possíveis emoções em máquinas (JAQUES E VICCARI, 2005). Lisetti (2002) descreve um modelo complexo para demonstrar aspectos psicológicos em sistemas que interagem socialmente. Cita que as emoções são modeladas em 16 componentes emocionais, mas que cada emoção se difere da outra. No entanto, relata que existem 9 emoções básicas: desejo, medo, interesse, nojo, raiva, surpresa, alegria, satisfação e ansiedade. Essas emoções são chamadas básicas por representar as mesmas manifestações em diferentes culturas. Contudo, alguns teóricos como Ekman (1994), relatam que as emoções básicas são somente 6: raiva, desgosto, medo, alegria, tristeza e surpresa. O modelo utilizado por Lisetti (2002) é uma derivação do modelo OCC, descrito por Ortony et al. (1988) e que é uma variação do modelo das emoções básicas definidas por Ekman (1994), que são representadas através de expressões faciais. Na tabela 1, abaixo, é apresentada uma lista dos modelos de emoções básicas descritos por alguns teóricos. Tabela 1 - Seleção de listas de emoções "básicas". Referência Emoções fundamentais Base para inclusão Arnold (1960). raiva, aversão, coragem, tristeza, desejo, desespero, medo, ódio, esperança, amor, tristeza. Relação às tendências de ação. Ekman, Frisen, & Ellsworth (1982). raiva, repulsa, medo, alegria, tristeza, surpresa. Expressão facial universal. Frijda (Comunicação pessoal, 8 de setembro de 1986). desejo, felicidade, interesse, surpresa, admiração, tristeza. Formas de ações prontas para serem realizadas. Gray (1982). raiva e pavor, ansiedade, alegria. Sentimento de ligação. Izard (1971). raiva, desprezo, nojo, angústia, medo, culpa, interesse, alegria, vergonha, surpresa. Sentimento de ligação.
  • 20. 18 James (1884). medo, aflição, amor, raiva. Envolvimento Corporal. McDougall (1926). raiva, nojo, alegria, medo, submissão, afetuoso, admiração. Relacionada a instintos. Mowrer (1960). dor, prazer. Estados emocionais não aprendido. Oatley & Johhson – Laird (1987). raiva, nojo, felicidade ansiedade, tristeza. Não requer proposições. Panksepp (1982). expectativa, medo, raiva, pânico. Sentimento de ligação Plutchik (1980). aceitação, medo, raiva, pânico. Relacionado ao processo de adaptação biológica. Tomkins (1984). raiva, interesse, desprezo, nojo, angústia, medo, alegria, vergonha, surpresa. Disparo neurológico. Watson (1930). medo, amor, raiva. Sentimento de ligação. Weiner & Graham (1984). felicidade, tristeza. Atribuições independentes. Fonte: Traduzido de Ortony (1990). Na tabela 1, pode-se visualizar que alguns autores da lista, como Ekman et al. (1982) citam algumas emoções como, raiva, desgosto, medo, alegria, tristeza e surpresa, e defendem que essas emoções básicas são reconhecidas universalmente e facilmente interpretadas através das expressões faciais. Em um trabalho desenvolvido por Chen, Yang e Wang (2015), foi estudado um método de reconhecimento de expressão emocional baseado na sobrancelha, por meio da eletromiografia da superfície (EMG), que é uma técnica que observa a ativação neuromuscular. No estudo foi realizado um experimento que registrou sinais da eletromiografia da superfície (sEMG) da parte frontal e músculos do supercilio. Na Figura 3, abaixo, é apresentada a localização dos eletrodos na cabeça do usuário.
  • 21. 19 Figura 3 - Localização dos eletrodos na parte frontal Fonte: Chen (2015). Na Figura 3, é possível observar que na parte esquerda os dois fios, amarelos e azuis, fixados no músculo do supercílio, estão posicionados no local de onde serão registrados os sinais da eletromiografia da superfície (sEMG) e os demais fios irão registrar a parte frontal. Chen, Yang e Wang (2015) utilizaram a interação humano-computador para o reconhecimento de estados afetivos de usuário com possíveis doenças nervosas. O projeto utilizou seis homens como participantes, na faixa etária de 25-30 anos. Todos com exames médicos para tratamento de doenças nervosas. Antes do experimento, os participantes foram chamados a responder um questionário, onde preenchiam perguntas sobre altura, peso e circunferência da cabeça. O trabalho teve como foco a observação de cinco estados com as possíveis expressões faciais: raiva, medo, surpresa, tristeza e desgosto. De acordo com Ekman (1972) essas expressões do trabalho apresentado por Chen et al. (2015) são universais entre culturas. Foram utilizados também dois modelos de reconhecimento baseados em redes neurais, que são redes com milhares unidades de processamento: um chamado ENN (Elman Neural Network) e outro voltado a propagação chamado BPNN (Back Propagation Neural Networks). Na Figura 4 abaixo são demonstrados visualmente os estados emocionais utilizados no projeto.
  • 22. 20 Figura 4 - Cinco estados emocionais utilizado no projeto. Fonte: (CHEN, 2015) A Figura 4 mostra os cincos estados observados que foram raiva (Anger), medo (Fear), tristeza (Sadness), surpresa (Surprise) e desgosto (Disgust). Os resultados do trabalho para Chen, foram satisfatórios onde ele conseguiu atingir a seguinte taxa para o reconhecimento dos estados afetivos, 97,12% utilizando o modelo ENN e 96,12% utilizando BPNN. Na próxima seção serão apresentadas as classificações das expressões faciais. 2.2.2. Classificações das expressões faciais Ekman (2002) desenvolve um modelo baseado na anatomia humana em que é possível classificar a expressão facial através de movimentos realizados pelos músculos faciais. Este sistema divide as expressões faciais em Unidades de Ação (UA’s), ou Actions Units, que definem as alterações em cada músculo facial ao determinar que alguns músculos podem se contrair juntos, ou seja, é possível determinar uma expressão facial na junção de duas ou mais UA’s (FRIEDLANDER e RAHMILEVITZ, 2010). Na Figura 5, abaixo, é possível identificar como é feito o mapeamento das Aus.
  • 23. 21 Figura 5 - Mapeamento das UA’s. Fonte: (OLIVEIRA; JAQUES 2008). Na Figura 5, pode-se observar que existem as marcações das extremidades dos pontos das características faciais (FCPs – Facial Characteristic Point) que serão utilizadas para mapear as UA’s. Estes pontos geralmente situam-se nos olhos, sobrancelhas e boca. Oliveira e Jaques (2008) afirmam que com as coordenadas dos FCPs é possível calcular o deslocamento das características faciais. Por exemplo, com a aproximação entre os pontos a19 e a20 pode-se encontrar uma possível situação de raiva no usuário, ou seja, encontrar combinações das UA’s definidas por Ekman et al. (2002) em FACS. Na tabela 2, abaixo, é possível observar as características das expressões básicas. Tabela 2 - Descrição das características das expressões básicas. Emoção Características Alegria Sobrancelhas relaxadas, boca aberta e cantos da boca puxados até orelhas. Tristeza Sobrancelhas recaídas, olhos ligeiramente fechados e boca relaxada. Raiva Sobrancelhas quase se encostando, interior para baixo, olhos bem abertos e lábios apertados. Medo Sobrancelhas levantadas juntas, olhos tensos e alertas. Nojo Sobrancelhas levantadas juntas, olhos tensos e alertas. Surpresa Sobrancelhas elevadas, pálpebras superiores abertas, olhos bemabertos e boca aberta. Fonte: Adaptado EKMAN et al., (2002).
  • 24. 22 Na tabela 2, foram apresentados os seis estados afetivos básicos e suas características. É possível observar que todos os estados possuem uma relação com sobrancelhas, boca e olhos, e são os principais pontos de observação para que seja feita a identificação da expressão posteriormente. Oliveira e Jaques (2008) citam que essas combinações de AUs geralmente ocorrem em expressões faciais que compõem as seis emoções básicas, já demonstradas no capítulo 2.2.1. Ao identificar as AUs são realizados alguns cálculos dos FCPs para identificar as ocorrências das AUs do usuário. Após isso, com as coordenadas obtidas, é possível a comparação com as deformações geométricas da imagem analisada com a imagem neutra, que é a imagem de origem (imagem sem expressão). Ao fim da análise geométrica da imagem, é possível inferir a emoção a partir das combinações de AUs encontradas na face, onde os valores atingidos serão submetidos a uma árvore de decisão que indicará qual emoção essa unidade de ação pertence. Na Figura 6 abaixo, é possível identificar as variáveis de deformação facial.
  • 25. 23 Figura 6 - Variáveis da deformação das características faciais Fonte: (OLIVEIRA; JAQUES 2008) Na Figura 6, é possível observar alguns critérios para as deformações de várias AUs. Por exemplo, o cálculo da largura da boca (m_width), que se refere aos pontos dos cantos do lábio, como demonstrado no exemplo. Dantas et al. (2015) abordam a utilização de uma árvore de decisão para a classificação das emoções da face. Árvore de decisão é uma estrutura composta por três elementos: nós de decisão (atributos), ramos (valores possíveis dos atributos) e folhas (objetos semelhantes). Através desta técnica cada elipse representava uma emoção que se deseja classificar, a distância
  • 26. 24 entre uma elipse pai e o seu filho é representada através do cálculo das distâncias euclidianas, que é a distância entre dois pontos, e as folhas, que são as últimas elipses que não possuem filhos, representam as emoções básicas inferidas a partir dos cálculos entre as distâncias das elipses. Na Figura 7, abaixo, é apresentada a classificação das emoções com a utilização de árvore de decisão. Figura 7 - Classificação das Emoções Utilizando Árvore de Decisão Fonte: Dantas et al. (2015). Na árvore apresentada na Figura 7, é possível observar os nós ou emoções que desejam ser classificadas, sendo elas: desgosto e raiva. De acordo com o estudo de Dantas et al (2015), é possível identificar que as folhas onde se encontram as terminações, não desgosto e não raiva ou raiva e desgosto, é o resultado da emoção gerada através dos cálculos que estão sendo utilizados em cada ramo. A seguir, serão apresentadas teorias acerca de detecção facial, rastreamento facial e reconhecimento facial. 2.3. Reconhecimento e rastreamento facial Um sistema de reconhecimento facial é capaz de receber como entrada vídeos e imagens de ambientes reais e, através dessas imagens e vídeos recebidos, é capaz de processar
  • 27. 25 e caracterizar matematicamente rostos presentes no ambiente. A Figura 8, abaixo, ilustra um fluxo de como funciona um sistema de reconhecimento facial. Figura 8 - Fluxo padrão de um sistema de reconhecimento facial. Fonte: Adaptado de LI e JAIN (2005). A primeira etapa de um sistema de reconhecimento facial é a detecção de faces em uma imagem. Essa etapa é importante porque elimina da imagem algumas informações desnecessárias. Após a detecção é feito um alinhamento facial para regular a face de modo que o sistema o reconheça. Portanto, com a face alinhada, o sistema ordenará uma extração de características para um vetor. No fim do processo, se for um usuário novo no sistema será determinado o reconhecimento de uma nova face, adicionando uma referência a esse usuário em um banco de dados, ou se o usuário já utilizou o sistema apresentará que o usuário foi reconhecido pelo sistema. Esse processo de reconhecimento pode ser dividido nos seguintes grupos: detecção facial, rastreamento facial e reconhecimento facial; que serão abordados nas próximas seções. 2.3.1. Detecção e rastreamento facial A detecção facial no Sensor Microsoft Kinect é uma etapa onde é feito o pré- processamento das faces dos usuários, que se refere ao processamento inicial dos dados da face do usuário, assim como a calibração radiométrica da imagem que visa corrigir algumas degradações da imagem desta face e corregir de distorções geométricas e remoção de ruídos nas imagens.
  • 28. 26 Um dos objetivos do pré-processamento é realçar a melhoria da qualidade da imagem, deixando uma melhor identificação dos objetos presentes na imagem. Por fim, é feito a classificação que são atribuídas classes aos objetos presentes na imagem, que posteriormente são localizadas pelo Sensor Microsoft Kinect. Conforme Gholipour (2014), em um estudo desenvolvido em Ohio no EUA, foram realizados alguns testes acerca de expressões faciais. O sistema desenvolvido no estudo consegue distinguir determinados tipos de expressões faciais que são feitas pelas pessoas. O estudo utilizou o programa chamado Facial Action Coding System (FACS) e contou com 5 mil fotografias de 230 estudantes universitários. Este estudo revelou através de imagens, possíveis emoções geradas pelo usuário, por meio de alterações na musculatura facial que as pessoas fazem ao executar, sentir ou ouvir algo. No estudo foi definido que os pesquisadores utilizaram ao todo 21 expressões faciais das pessoas para transmitir emoções. A Figura 9, abaixo, demonstra o primeiro passo, com foco em detectar a emoção através das expressões faciais proposta no trabalho. Figura 9 - Detecção facial Fonte: Adaptado de LI e JAIN (2005). Na Figura 9, é possível observar que a detecção facial pode receber como entrada imagem ou vídeo. Assim que é feita a detecção, realiza-se o rastreio. Na sequência são identificados os pontos referentes aos músculos da face. Cada ponto é identificado pelo dispositivo que, por fim, alinha o reconhecimento desta face para que posteriormente possa ser extraído o estado afetivo. Em um trabalho realizado por Viola e Jones (2001) foi possível, através de um método, detectar rapidamente faces em tempo real com muita baixa complexidade computacional. O método é baseado em três tipos: imagem integral, classificador AdaBoost (apresentado nos parágrafos a seguir) e combinação de classificadores em cascata.
  • 29. 27 A forma de representação da imagem integral proposto no trabalho é que cada imagem carregada contém um somatório de pixels da origem da imagem até a sua localização. A Figura 10, abaixo, demonstra o somatório realizado no primeiro tipo. Figura 10 - Somatório da imagem integral. Fonte: Viola e Jones (2001). A Figura 10 mostra o somatório e onde se encontra a seguinte equação: ii(x , y), que é a imagem integral e i( x , y), que é a imagem original. Isto pode ser observado na Figura 11 abaixo. Figura 11 - Imagem original para equação da imagem integral. Fonte: Viola e Jones (2001). Na Figura 11, é demonstrado que o valor da imagem integral no ponto (x, y) se dá através da soma de todos os pixels na parte cinza da imagem. O tipo classificador AdaBoost (Adaptive Boosting) escolhido por Viola e Jones (2001), é uma variante do algoritmo de aprendizado utilizado por Freund e Schapire (1995). O AdaBoost é um algoritmo de aprendizado de máquina, que são algoritmos que permitem que o computador ou a máquina aperfeiçoar seu desempenho em alguma tarefa. No trabalho de Viola e Jones (2011) foi construído para avaliar regiões da imagem de forma correta e precisa. O classificador seleciona as características defeituosas mais críticas da imagem e após percorre a imagem a procura de regiões que possuem defeitos. Esse processo é definido como treino, as deformação da imagem é dividida em pequenos vetores e ajustado para concentrar os mal
  • 30. 28 classificados. O resultado é um classificador com precisão que consegue remontar uma imagem sem ter ao menos uma parte dela. Na Figura 12, abaixo, mostra as regiões percorridas pelo AdaBoost. Figura 12 - Características selecionadas pelo AdaBoost. Fonte: Viola e Jones (2001). Na Figura 12, é possível observar que o objeto do qual se deseja obter as características é a face humana, a imagem na parte inferior esquerda da Figura. O classificador encontra algumas características marcantes que são: olhos, sobrancelhas e nariz. O tipo cascata faz uma combinação entre classificadores, utilizando vários estágios como uma árvore de decisão, com o objetivo de otimizar o reconhecimento de objetos. Os estágios dentro da árvore ou cascata são criados através da combinação das funções de classificação que foram montadas através do AdaBoost. O objetivo principal da cascata é fazer com que, nos processos iniciais, sejam identificados um grande número de regiões que contém o objeto desejado. Ao identificar que uma área da imagem se encontra no último ramo ou estágio da cascata, é nessa área que se encontra o objeto desejado. A Figura 13, abaixo, demonstra um classificador do tipo cascata.
  • 31. 29 Figura 13 - Classificadores cascata Fonte: adaptado Viola e Jones (2001). Na Figura 13, é possível observar que o classificador cascata utiliza amostras como entrada. Cada etapa do processo E¹, está associado a dois caminhos. Se nesta etapa do processo as amostras forem classificadas como positivas (P) elas irão continuar para a etapa seguinte, até chegar na etapa de pósprocessamento. Porém, se em uma etapa qualquer, as amostras forem classificadas como negativas, estas serão rejeitadas. Em um trabalho realizado por Sanson e Green (2016) propõe-se um método para melhorar a qualidade e o realismo do processo de troca de faces. O trabalho utilizou o Sensor Microsoft Kinect, que utiliza um sensor emissor de infravermelho à base de laser, e uma câmera RGB para rastrear a cabeça do usuário e em conjunto com o kit de desenvolvimento Face SDK Tracking é possível determinar as posições dos pontos faciais. Jana (2012) afirma que o Face SDK Tracking é uma parte do kit de desenvolvimento Windows. Ele contém algumas ferramentas (APIs) que podem ser utilizadas para rastreamento do rosto humano. Ele rastreia as posições e toda a forma do rosto, além de poder mudar a animação da boca, olhos e sobrancelhas em tempo real. A Figura 14, abaixo, representa o rosto rastreado pelo SDK.
  • 32. 30 Figura 14 - Rosto rastreado usando Kinect face SDK. Fonte: Sanson e Green (2016) Na Figura 14, é possível observar que os números que aparecem são os pontos reconhecido pelo Sensor Microsoft Kinect, e estes pontos ligados são tracejados para possam ser rastreados, no fim do rastreio é delimitado os pontos em volta da boca, sobrancelhas, olhos e nariz. O rastreio através do Kinect Face relata 6 unidades de animação (SANSON e GREEN 2016) e define 66 parâmetros de animação, que são os números em cada ponto da face, como demonstrado na Figura 15. Esses parâmetros são utilizados para possíveis reconhecimento facial ou detecção de expressões faciais. 2.3.2. Reconhecimento facial Fitzpatrick e Matthiopoulos (2013) citam que o reconhecimento facial é uma forma de identificar as pessoas. Permite que um sistema possa identificar alguém em um longo alcance, que é limitada pela resolução da câmera. Martins (2013) cita que existem dois métodos de reconhecimento facial tradicionais: Eigenface e Fisherface. O método Eigenface, é um método que extrai a informação da face do usuário de uma imagem analisada, de forma eficiente, para que seja possível comparar com a imagem salva em um banco de dados. O segundo é o aperfeiçoamento do método Eigenface, que utiliza uma análise linear de Fisher para uma redução dimensional da imagem, o conjunto de imagens faciais em processo de verificação ou treino é constituído por várias classes, cada classe representa a identidade de uma pessoa o reconhecimento é formulado de modo a determinar a que classe pertence uma determinada imagem desconhecida (SOUZA, 2014). O processo Eigenface pode ser dividido em alguns passos: inicialização, projeção, detecção e reconhecimento. No processo de inicialização é onde se encontra um conjunto de imagem, onde é realizado o processo para calcular e modular os Eigenfaces, que vão definir as combinações de todas as Eigenfaces. A projeção é onde ocorre o cálculo do conjunto de pontos
  • 33. 31 amostrais da imagem, toda vez que uma nova imagem é encontrada. O processo de detecção determina que, se a imagem é uma face, podendo ser conhecida ou não, verifica se ela está suficientemente próxima a alguma obtida em combinações da Eigenfaces. Por fim, o processo de reconhecimento estabelece que, se for uma face, essa etapa irá classificar os pontos e identificará se é uma pessoa conhecida ou desconhecida do sistema. O método Eigenfaces, além da classificação, possui uma forma de reconstrução e a compactação de imagens de faces, como pode ser visto na Figura 15 abaixo. Figura 15 - Reconstrução de imagem com Eigenface Fonte: (PENHARBEL, 2005). Na Figura 15, a primeira imagem à esquerda é a imagem a ser reconstruída pelo algoritmo Eigenface, a segunda imagem é a imagem reconstruída, terceira imagem reconstruída com o processo de 20 Eigenfaces, por último a imagem reconstruída através de 40 Eigenfaces ou componentes. O reconhecimento de face com o Sensor Microsoft Kinect é fornecido pelas funcionalidades da API de desenvolvimento, o SDK, que fornece as funcionalidades de identificação ou verificação de uma pessoa através de uma seleção de rostos detectados automaticamente por meio do Sensor Microsoft Kinect. A Face API fornece algumas funcionalidades de reconhecimento: verificação da face, procura do rosto semelhante ao que está sendo visualizado pelo Sensor Microsoft Kinect, agrupamento automático da face e identificação da pessoa. A Microsoft, empresa fabricante do dispositivo, afirma que o reconhecimento facial é amplamente utilizado em sistemas de segurança, reconhecimento de celebridade e aplicações para smartphones. O processo de reconhecimento facial no Sensor Microsoft Kinect segue um modelo para a realizar um reconhecimento, como apresentado na Figura 16, abaixo.
  • 34. 32 Figura 16 - Modelo de um sistema de reconhecimento facial. Fonte: Martins (2013) Na Figura 16, é possível observar que o reconhecimento facial é a penúltima parte para a identificação ou verificação do usuário. Utiliza abordagens com modelos que procura compreender todos os elementos gerados pela extração das características facial realizada. Busca analisar a geometria das faces visualizadas e extraídas durante o processo de reconhecimento e utiliza o sistema do dispositivo para que possa identificar se os traços adquiridos durante os passos realizados são da mesma pessoa. 2.4. Sensor Microsoft Kinect Neste trabalho será utilizado o sensor do Kinect One para Windows, que é um periférico capaz de processar gestos e movimentos do corpo, bem como, sistemas de áudios externos e o controle de proximidade entre o usuário. Essa versão é uma atualização do Kinect 360 for Windows. No processo de detecção, rastreio e reconhecimento facial pode-se utilizar o Sensor Microsoft Kinect One para Windows, que oferece mais precisão para os desenvolvedores, agilidade e interfaces mais interativas, para que possam desenvolver aplicações que utilizam voz e gestos e rastreio facial. Na tabela 3, abaixo serão apresentadas características do sensor Kinect One para Windows e algumas diferenças em relação a versão Kinect 360 para Windows. Tabela 3 - Diferenças entre o Kinect 360 para Windows e Kinect One Características Kinect 360 para Kinect One para
  • 35. 33 Windows Windows Tamanho e frame da tela 640 x 480 @30 fps 1920 x 1080 @30 fps Câmera de Profundidade 320 x 240 512 x 424 Maior Distância de Profundidade ~4.5 m 8 m Menor Distância de Profundidade 80 cm no modo p/ perto 40 cm Visão de profundidade Horizontal 57 graus 70 graus Visão de Profundidade Vertical 43 graus 60 graus Inclinação do Motor Sim Não Juntas de Esqueletos 20 Juntas 25 Juntas Pessoas Rastreadas 2 6 Padrão USB 2.0 3.0 Fonte: Adaptada de Microsoft, (2016). Na tabela 3, pode-se observar que o Sensor Microsoft Kinect One para Windows possui uma câmera de profundidade superior ao do Sensor Microsoft Kinect 360 para Windows, essa característica o possibilita uma resolução de 512x424. Além da utilização de seus emissores em infravermelho que são capazes de gerar uma boa iluminação frontal, que pode funcionar em boas condições, até mesmo no escuro total. O Sensor Microsoft Kinect One para Windows usa uma tecnologia chamada de Time- Of-Flight, que resolve a distância baseada na velocidade em que a luz conhecida atinge o objeto, ou seja, é medido o tempo de envio do sinal de luz entre a câmera e o objeto para cada ponto da imagem. Quanto maior a resolução do sensor de profundidade melhor é para capturar a face de uma pessoa. Com essa resolução do Sensor Microsoft Kinect para Windows é possível a criação de avatares mais próximo da realidade. Como pode ser observado na Figura 17, abaixo.
  • 36. 34 Figura 17 - Pontos para possíveis identificação emocional. Fonte: (ZENNARO, 2014) Observa-se na Figura 17, que ao identificar os pontos na face é possível detectar cada pessoa no ambiente e saber, se essa pessoa está olhando para a câmera ou não, saber suas expressões, se são boas ou ruins, identificar sua aparência e quais movimentos que cada ponto está realizando.
  • 37. 35 3 MATERIAIS E MÉTODOS Nessa seção são apresentados os materiais utilizados e o desenho de estudo adotado para a elaboração deste trabalho e desenvolvimento da ferramenta. 3.1. Local O desenvolvimento da ferramenta foi realizado no Laboratório Banco de Dados e Engenharia de Software (LBDES) em conjunto com o Laboratório de Tecnologia e Saúde (LTS), ambos do Centro Universitário Luterano de Palmas (CEULP/ULBRA). 3.2. Materiais Para o desenvolvimento da ferramenta será utilizado um computador com o processador Intel core i5 2.30 GHz, barramento USB 3.0 e 2.0, 12GB de RAM e adaptador gráfico integrado compatível com o DirectX 11, e um sensor Kinect Xbox ONE com adaptador para computador disponibilizado pelo grupo de pesquisa Tecnologia, Saúde do Centro Universitário Luterano de Palmas. Foi verificado durante o processo que para a utilização do sistema é necessário um computador com no mínimo 4GB de RAM, com entradas USB 3.0, adaptador gráfico compatível com DirectX11 e processadores dual-core 3.1 GHz, pois o software pode não executar em configurações inferiores, devido ao alto processamento gráfico. Para implementação das interfaces foi utilizada a linguagem XAML, que é uma linguagem de marcação declarativa que simplifica a criação de interfaces de usuário (User Interfaces) para aplicações que utilizam o framework .NET. No que tange a utilização de linguagem de programação foi utilizada a linguagem interpretada C#, desenvolvida pela Microsoft. Para o fornecimento de funções e bibliotecas que podem fornecer rastremanto e reconhecimento facial, foi utilizado uma API chamada de HD FACE API, fornecida pelo SDK, criado pela Microsoft que permite desenvolvedores criar aplicações que suportam gestos e reconhecimento de voz e facial, utilizando a tecnologia do Sensor Microsoft Kinect em computadores com Windows 8, 8.1. Por fim o software utilizado para manter esses códigos foi o Visual Studio 2013. 3.2.1. API de reconhecimento O SDK do Sensor Microsoft Kinect é o kit de desenvolvimento oficial da Microsoft, que foi lançado em junho de 2011 com objetivo de permitir o desenvolvimento de aplicações em sistemas operacionais Windows. Esta API possibilitou que desenvolvedores pudessem utilizar o Kinect como uma interface para a criação de novos tipos de aplicações.
  • 38. 36 Devido à quantidade de usuários e demanda por aplicações mais intuitivas surgiu o conceito Natural User Interface (NUI), um modelo de desenvolvimento que possui como característica o enfoque em utilizar a linguagem natural para a interação humana, como gestos, poses e comandos de voz. Este modelo foi incorporado ao Kinect no seu lançamento. Abaixo, na Figura 21, é demonstrado como funciona a arquitetura do SDK. Figura 18 - Arquitetura do SDK. Fonte: MSDN, Microsoft (2016a). Como visto na Figura 21, acima, a arquitetura do SDK é composta por diversos componentes que são: ● Kinect Hardware: são componentes de hardware que estão integrados ao sensor Kinect como o motor, as câmeras e os microfones, assim como o hub. Através destes componentes o sensor Kinect conecta-se ao computador; ● Kinect Drivers: são os drivers do Windows para o Kinect, que são instalados a partir do SDK, como: dispositivo de áudio kernel, que permite acessar APIs de áudio padrão do Windows; controle de áudio e vídeo streaming, para transmissão de áudio e vídeo (cor, profundidade e esqueleto) e, por fim, funções de enumeração que permitem o uso de um ou mais sensores Kinect em conjunto; ● Componentes de Áudio e Vídeo: são componentes que compõem o NUI, interface natural do usuário, como por exemplo, rastreamento do esqueleto, áudio, cores e as a imagem que é gerada pelo sensor de profundidade;
  • 39. 37 ● DirectX Media Object (DMO): o conjunto de microfones, fonte de áudio do sensor; ● APIs Windows: APIs disponíveis para aplicações desktop nos Sistemas Operacionais Windows. A partir do SDK, algumas APIs são disponibilizadas para desenvolvedores como, por exemplo, a Face API, que também é independente. É um conjunto de ferramentas que fornece rastreamento facial, podendo-se utilizar a câmera infravermelha do Kinect e também sua câmera de cores RGB. Esta API é capaz de detectar informações e características faciais sobre o usuário que se encontra a sua frente. Para isto, a Face API fornece módulos de processamento de imagem, que foram criados para acompanhar e compreender rostos e características faciais. O processo é feito pela própria API, sem a necessidade de conhecimento em visão computacional. A API possui a função de detecção com níveis de precisão, início automático e pode rastrear possivelmente a rotação da cabeça em 90 graus. Para o rastreamento neste trabalho foi utilizada a HD FACE API (rastreamento de face de alta definição). Essa API cria uma conexão emocional entre o usuário e o jogo ou sistema que está utilizando. A HD FACE API possui algumas funções já declaradas em sua documentação, por exemplo, face capture (captura de rosto) que é uma função que utiliza um método para pegar a forma do rosto do usuário. Essa função passa para o desenvolvedor onde a pessoa precisa estar para poder ser rastreável na câmera do Sensor Microsoft Kinect. A API pega a referência dos quadros (telas) que irá calcular a forma onde irá definir o rosto do usuário e após adquiri-las fornece ao desenvolvedor valores que poderão influenciar no design da criação do sistema ou jogo. Além do face capture, existe o face Tracking (rastreamento do rosto) que é uma função utilizada para obter as expressões faciais em tempo real do usuário. Com essa função é possível ao desenvolvedor criar linhas em unidades de animação que se relacionam com os movimentos faciais do usuário. Através dessa função é possível a identificação dos estados emocionais do usuário. Quando o desenvolvedor começa a codificar a captura e/ou o rastreamento do rosto do usuário, a API é capaz de acessar os sensores do Kinect como, por exemplo, sensor de cor RGB (câmera), sensor de profundidade e o sensor infravermelho, como entrada para o processo de rastreamento de face de alta definição. A qualidade desse rastreio é afetada pela qualidade que a imagem dos quadros é adquirida ou seja, imagens de quadros mais escuros ou mais distorcidos. A qualidade de rastreio é importante para o cálculo dos pontos que serão rastreados pela API, pois nesses pontos irão as referências que afetam o intervalo para a identificação da emoção.
  • 40. 38 Durante o processo de rastreamento do rosto, a API gera uma referência do rosto, obtendo a cabeça como um ponto pivô, e disponibiliza uma lista de unidades de animação (UA’s). Essas UA’s servem para identificar e definir se a boca do usuário está aberta, a sombrancelha está levantada, e outros detalhes das expressões faciais. A API controla ao todo 17 unidades de animação, as quais possuem valores que variam entre 0 e 1, e três dessas animações possuem valores entre -1 e 1, são elas, mandíbula esquerda, superior da sombrancelha esquerda e superior da sombrancelha direita. Além dessas animações a API fornece como opção uma classe enumeration na qual é possível reconhecer o rosto e transformar em um modelo 3D observando cada vértice da malha que foi criada para a identificação dos pontos. A forma como são obtidas essas informações é através da classe denominada HighDetailFacePoints. A seguir, é apresentada a Figura 22 na qual é possível verificar esses pontos. Figura 19. Identificação dos pontos
  • 41. 39 Na Figura 22 é possível observar que se trata de uma numeração de pontos específicos no rosto identificados pela própria API, como, por exemplo, na linha 20, em que é possível identificar pela tradução da variável que se trata do centro da parte de cima dos lábios da boca. 3.3. Desenho de estudo e procedimentos Para atingir os objetivos propostos, utilizou-se como desenho de estudo uma pesquisa com finalidade metodológica aplicada, sendo realizada em laboratório com procedimento de computação experimental. A metodologia adotada no trabalho segue um conjunto de etapas que foram de grande importância para a conclusão do mesmo. As etapas incluem a pesquisa bibliográfica e estudo do tema, a elaboração do referencial teórico, a análise para o desenvolvimento, o desenvolvimento do sistema proposto e por fim a execução demonstrativa. A Figura 18 abaixo representa a sequência de etapas que foram executadas no decorrer do trabalho. Figura 20. Estrutura metodológica Na primeira etapa ‘Estudo do Tema’ foram realizadas pesquisas acerca de experiência emocional, interação afetiva baseada na expressão facial, reconhecimento afetivo, classificações das expressões faciais, detecção facial, rastreamento e reconhecimento facial, por fim, Sensor Microsoft Kinect v2. Para embasamento e entendimento do trabalho, no segundo passo foi desenvolvido o referencial teórico, que aborda textos sobre experiência emocional, onde foram tratadas as formas como são reconhecidos os estados afetivos e também sobre interação afetiva baseada na expressão facial, abordando também o reconhecimento da afetividade, classificações das expressões faciais, detecção facial, rastreamento facial e, por fim, o reconhecimento facial.
  • 42. 40 No terceiro passo foi realizada uma análise sobre o sistema chamado FisioKinect que já é utilizado no Laboratório de Tecnologia e Saúde. Esta análise envolve o entendimento de como são criados os módulos para que o módulo em desenvolvimento neste trabalho seja adicionado. Além disto, foi realizada uma análise das ferramentas que foram utilizadas para o entendimento e funcionamento deste módulo. Ao término da análise das ferramentas, foi feita uma análise com base nos estudos do referencial teórico sobre as APIs a serem utilizadas no desenvolvimento. Após esse levantamento foi identificado que para o processo de implementação era preciso realizar uma análise na documentação da API escolhida chamada HD FACE API que é disponibilizado no site da Microsoft. Através da análise dos conceitos que envolvia o reconhecimento dos estados afetivos, foi realizado o passo de Desenvolvimento da Aplicação. Nesta etapa foi efetuada a codificação do software por meio do software Visual Studio 2013. Vale ressaltar que o módulo desenvolvido tem por objetivo auxiliar no reconhecimento do estado afetivo de um usuário por meio do Sensor Microsoft Kinect v2. No quarto e último passo, ‘Execução Demonstrativa da Aplicação’ houve algumas execuções do sistema de caráter de testes não científico e demonstrativo. Ao relizar esse passo foi identificado alguns erros e com isso foi possível retornar ao passo anterior para que este erros fossem corrigidos. Na próxima seção será abordado como foi realizado o processo de desenvolvimento do software. 3.3.1. Desenvolvimento do Software No início elaborou-se uma lógica para a identificação do estado afetivo (especificamente alegria e tristeza) diante da sequência de imagens obtidas por meio do Sensor Microsoft Kinect (essa lógica será apresentada na seção 4.3). O processo delimitou alguns pontos através de uma malha 3D posta na parte superior do rosto. Assim, por meio da distorção desta malha o sistema foi capaz de identificar as regiões afetadas e, com isso, a possível identificação do estado afetivo do usuário. Este processo foi realizado em etapas, sendo a primeira delas a criação das funções básicas, seguida da implementação do rastreio facial e corporal, verificação dos pontos faciais e, por fim, da comparação das variáveis demonstrativas, como demonstrado na Figura 19 abaixo.
  • 43. 41 Figura 21. Processo do desenvolvimento De acordo com a Figura 19, na primeira etapa, foram desenvolvidas as funções básicas para o funcionamento dos componentes do Sensor Microsoft Kinect. Essas funções foram feitas em classes básicas que são responsáveis pela configuração do sensor de profundidade e câmera RGB assim como a inicialização do Sensor Microsoft Kinect. Após a realização das configurações básicas do sistema, a próxima etapa foi a implementação do rastreamento facial. Para isso, foi utilizada a imagem que o sensor RGB do Sensor Microsoft Kinect consegue captar do ambiente. Após esse processo foi observado que, para o rastreamento ser preciso e funcionar para diferentes usuários, deve-se criar um método que rastreia o corpo do usuário. A quarta etapa teve como objetivo o desenvolvimento de uma técnica para verificação dos pontos na face. Para esse propósito, foi desenvolvido um método para a atualização dos pontos rastreáveis na face. O Sensor Microsoft Kinect trabalha com imagens sendo renderizadas em loop ou tempo real, quando esses pontos são atualizados a cada movimento que o usuário fizer ou enquanto o sistema estiver ativo. O método de atualização dos pontos da face cria elipses 2D que, em seguid,a juntamente com outras elipses, forma uma malha que se encaixa sobre o rosto do usuário. Desta forma é feito um processo de repetição para que cada ponto rastreável seja ocupado por uma dessas elipse 2D para que seja formada uma malha em 3D sobre o rosto do usuário, de acordo com a Figura 20 abaixo.
  • 44. 42 Figura 22. Malha 3D Os resultados obtidos na figura 20 são possíveis devido aos valores obtidos em centímetros das propriedades X, Y e Z, e através do mapeamento de coordenadas. Ao determinar essa malha 3D, cada ponto obtido é transformado em um vértice contendo as propriedades X, Y e Z. Por fim, na última etapa é feita a comparação dos valores que existem nos vértices e comparada com os valores definidos para cada estado afetivo estudado no trabalho de acordo com a Figura 6, da sub seção 2.2.2. Através da condição imposta é possível inferir o estado afetivo em que o usuário se encontra. 4 RESULTADOS E DISCUSSÃO Esta seção aborda os resultados obtidos no desenvolvimento do trabalho. Será apresentado uma visão geral da ferramenta desenvolvida, bem como a arquitetura e funcionamento da mesma. Posteriormente, será apresentada a lógica e o detalhamento do desenvolvimento do software. Por fim será demonstrado o processo de codificação do sistema e suas principais funcionalidades. 4.1. Arquitetura do Software Para entender o funcionamento do software desenvolvido, na Figura 23, é apresentada a arquitetura do mesmo.
  • 45. 43 Figura 23. Arquitetura de desenvolvimento do software O software é executado juntamente com o Sensor Microsoft Kinect, para que as imagens do usuários sejam capturadas e possam ser analisadas pelo software. Para obter as imagens do Sensor Microsoft Kinect foram utilizados os recursos dos sensores que estão disponíveis no mesmo:  ColorStream – é o recurso que trata a geração das imagens através do sensor RGB;  HighDefinitionFaceFrame – é o recurso responsável pela a geração do reconhecimento facial; Os recursos apresentados são indispensáveis para o funcionamento do software, pois eles fazem a comunicação com o modelo de negócio do sistema. Logo após esse processo é realizado o rastreamento das características faciais. Nesse processo é realizada a classificação das expressões faciais. Com o usuário realizando uma expressão emocional diante do Sensor Microsoft Kinect, o sistema dispara o evento que classifica as unidades de animação para cada expressão específica gerada. Por fim o sistema retorna a informação daquela expressão que é realizada em tempo real. 4.2. O Software Para comprovar a eficiência da técnica computacional para o reconhecimento do estado emotivo, foi necessário o desenvolvimento de algumas funcionalidades que fossem capazes de mensurar certos movimentos das musculaturas faciais do ser humano. É importante citar que estudos como o de Eigenface da seção 2.3.2, ajudaram na forma de como desenvolver o sistema, pois o Sensor Kinect trabalha em forma de um loop de imagens que são tratadas ao serem mostradas para o usuário. Dessa forma, optou-se por mensurar pontos específicos do
  • 46. 44 rosto, tomando como base a Figura 5, localizada na seção 2.2.2 deste trabalho. Esses pontos satisfazem a avaliação da técnica computacional, uma vez que os mesmos têm como características a delimitação de toda a musculatura do rosto para ter um resultado preciso. A Figura 24 abaixo exibe a tela do software, desenvolvido com base no sistema FisioKinect analisado no Laboratório de Tecnologia e Saúde. Através desta tela são integrados diversos sistemas, que são executados ao clicar no botão específico. Figura 24. Tela Inicial do sistema O módulo que segue este trabalho pode ser acessado através do botão “Reconhecimento de Estado Afetivo”. Ao acessar este módulo será enviado o comando para o método que retorna a interface de avaliação do estado emocional. Quando o usuário estiver na posição adequada diante do Sensor Microsoft Kinect, que é com o seu nariz na altura do centro da câmera RGB do Sensor Microsoft Kinect. O mesmo carrega os sensores e ao estar de acordo com a distância do sensor entre o usuário, que é aproximadamente a 46cm, será mostrada na tela a malha 3D que aparecerá sobre o rosto do usuário, ilustrada pela Figura 25 abaixo.
  • 47. 45 Figura 25. Tela de apresentação da malha 3D A Figura 25, acima, mostra o resultado quando o usuário interagir com o sistema. Essa malha azul, posta sobre o rosto do usuário, é acionada ao término do cálculo do mapeamento das coordenadas. Este processo foi realizado com base no estudo de LI e JAIN (2005), em que o primeiro processo de um rastreamento facial é a detecção e o rastreio da face realizado por imagem ou vídeo. Esta etapa teve como base também o estudo de Sanson e Green (2016), para que os pontos pudessem realizar o sincronismo e adaptar-se ao rosto do usuário. O sistema informará qual é o estado observado na tela após o usuário realizar algumas expressões faciais que denotam estado emocional, Na Figura 26 abaixo é demonstrada a representação do estado afetivo quando o usuário faz uma interação com o sistema.
  • 48. 46 Figura 26. Representação do estado emocional obtido Para poder realizar a detecção da expressão facial, inferir emoções e provar a funcionalidade da ferramenta, foi preciso selecionar as diferentes expressões faciais que denotam estados afetivo que poderiam ser trabalhadas foram escolhidas: alegria e tristeza. Para tornar possível as identificações destas emoções foram utilizadas, como referência, os estudos realizados por Ekman et al. (2002) que em seu trabalho o sistema realiza um estudo através de UA’s (Unidades de Ações), como demonstrado na seção 2.2.2. As principais UA’s podem ser visualizadas na Figura 5 neste trabalho, localizado na seção 2.1. 4.3. Lógica Utilizada com as UA’s Para que seja possível realizar o cálculo dos atributos, a detecção e o reconhecimento a API do SDK do Kinect 2.0 fornece alguns pontos já predefinidos, chamados através da classe HighDetailFacePoints. Esses pontos são numerados e azuis, são os pontos que aparecem na malha 3D no rosto do usuário, demonstrado na figura 25. Cada ponto tem como propriedade os valores em metros das coordenadas X, Y e Z. A Figura 27 abaixo demonstra o código realizado para pegar o ponto do canto esquerdo da boca no eixo X e Y especificado pela unidade de ação bocaCantoEsquerdo1X.
  • 49. 47 Figura 27. Condições para que as expressões sejam válidas A Figura 27, acima, descreve o código que possui o objetivo de detectar as expressões faciais do usuário, criam-se limites nos valores das unidades de animação adquiridas através das variáveis das linhas 165, 168, 171 e 174. Esses valores são fornecidos pela classe do próprio SDK, permitindo que seja possível as comparações entre os valores das unidades e os intervalos que são atribuídos. Na linha 177 da Figura 26, é realizado o cálculo da distância entre os cantos da boca, tanto do lado esquerdo (bocaCantoEsquerdo1X) quanto direito (bocaCantoDireito1X). Na tabela 4 abaixo são demonstradas as condições exigidas para o rastreio do estado afetivo. Tabela 4. Condições para que as expressões sejam válidas Estado Afetivo Condições Para Detectar Expressão Alegria (Feliz) bocaCantoEsquerdo1X < -0.06 e buchechaEsquerdaX < 0.09 e bocaCantoEsquerdo1Y > 0.01 Tristeza (Triste) bocaCantoEsquerdo1X < 0.06 e dif < 0.054 e dif > 0.050 Na tabela 4 é possível visualizar as condições proposta para o primeiro estado afetivo feliz. A variável bocaCantoEsquerdo1X e bocaCantoEsquerdo1Y é o índice correspondente ao canto da boca esquerda na coordenada X e Y. A variável buchechaEsquerdaX corresponde ao centro da bochecha esquerda. Na tabela 4 é possível visualizar as condições também para o segundo estado afetivo triste. A variável bocaCantoEsquerdo1X deve estar em um intervalo
  • 50. 48 menor que 0.06 e a diferença entre os pontos da boca que é armazenada na variável dif deve estar em um intervalo entre 0.050 e 0.054. A utilização desta técnica foi realizada com base nos estudos de Oliveira e Jacques (2008), na seção 2.2.1, onde foi demonstrado que é possível encontrar o estado de raiva de uma pessoa realizando o processo de aproximação entre dois pontos. Ao ser realizada a lógica dos intervalos para que fosse possível a realização do sistema e para chegar aos resultados esperados, foi preciso fazer a alteração destes intervalos e não utilizá-los da forma como os estudos o referenciavam. A alteração foi realizada com base nas coordenadas adquiridas através do rastreio. Foi realizado porque a precisão do cálculo demonstrado por Oliveira e Jacques (2008) na figura 6 da seção 2.2.2 não seria possível obter resultados satisfatórios. As alterações feitas foram através dos pontos que foram demonstrados no estudo apresentado na tabela 2 adaptada de Ekman et al (2002). Foi adaptada para que, no estado de alegria, fosse analisado o centro da buchecha esquerda e retirada a sombrancelha. Isto se deve ao fato que a oscilação dos pontos de coordenadas que foram realizadas pelo sensor Kinect não foi satisfatório para observar essa característica, tanto para tristeza quanto para alegria. Para que esses resultados tenham efeito o Sensor Microsoft Kinect deve estar em uma posição em que o usuário possa ficar com o seu nariz em frente ao sensor de câmera e possuir uma distância de +/- 50 cm do Sensor Microsoft Kinect para que o rastreio não traga erros e um rastreio não válido. Por meio desse software, pretende-se também demonstrar a possibilidade do dispositivo Sensor Microsoft Kinect de trabalhar no meio da identificação das expressões faciais dos usuários com o uso de suas bibliotecas e API’s. 4.4. Declaração de variáveis O sistema, para iniciar, é preciso criar algumas variáveis que estendem as classes que serão trabalhadas para o desenvolvimento. A Figura 28 abaixo exibe as declarações iniciais de variáveis de classe utilizadas. Figura 28. Declaração inicial das variáveis
  • 51. 49 A primeira variável sensorKinect apresentada na linha 29 é uma variável do tipo KinectSensor proveniente do próprio SDK do Sensor Microsoft Kinect – com essa variável é possível realizar uma instância do Sensor Microsoft Kinect e assim ativá-lo. A variável leitordecor na linha 30 é responsável pelo sensor da câmera RGB que é utilizada no sistema para promover uma interface mais agradável e uma visualização do usuário mais dinâmica. Na linha 31 e 32 são criadas as variáveis sensorCorpo e leitorCorpo das classes BodyFrameSource e BodyFrameRader que irá instanciar as funções de ratreio do corpo humano. Na linha 33 e 34 são criadas as variáveis sensorFace e leitorFace que trabalha como uma instância da classe HighDefinitionFaceFrame que possui as funções que fornecem o rastreio de rosto humano. Na linha 35 é definida a variável alinhamentoFace que é uma instância da classe FaceAlignment que é utilizada para o mapeamento da face. Esse mapeamento identifica cada ponto do rosto do usuário passando para uma função que irá determinar as coordenadas X, Y e Z de cada ponto identificado. Na linha 36 é criada uma variável modeloFace que é uma instância de classe FaceModel. Nela é determinado um modelo de face. Por fim é definida uma variável chamada de pontos que é uma instância de uma classe List<ellipse>, que é uma classe que determina os vários pontos azuis que forma a malha 3D no rosto do usuário. Na próxima seção será realizado o modo de conFiguração da API do SDK e do Sensor Microsoft Kinect. 4.5. Configuração do Kinect, HDFace e do reconhecimento do estado afetivo Para a inicialização e configuração do Sensor Microsoft Kinect, declarou-se a variável sensorKinect do tipo KinectSensor. A Figura 29 abaixo exibe o código de como são feitas a inicialização e a configuração do Sensor Microsoft Kinect, HDFaceAPI e dos demais sensores.
  • 52. 50 Figura 29. Inicialização dos sensores Na linha 43 da Figura 29 acima, a variável sensorKinect recebe como valor a instrução; KinectSensor.GetDefault();, que é uma instrução que define uma instância do Sensor Microsoft Kinect. Essa instância verifica se existe algum Sensor Microsoft Kinect conectado na máquina. Na linha 45 é verificado se aquela instância que se encontra na variável sensorKinect existe ou não, se existir, o primeiro código a ser inicializado se encontra na linha 47 - o leitordecor recebe o comando para ligar o sensor RGB na tela para o usuário. Já na linha 50 a variável sensorCorpo recebe uma função que rastreia o corpo do usuário para a tela, não define traços mas reconhece aquele usuário através dessa instrução. Na linha 54 é passado como referência o sensorKinect para a classe HighDefinitionFaceFrameSource, que envia toda a instrução para a variável sensorFace, assim por meio dessa variável é possível o acesso das funções para rastreio da face. Na linha 56 é definido que a variável leitorFace irá receber a instrução sensorFace.OpenReader(); com todas as funções do sensor de rastreio da face já para acesso. Nas linhas 59 e 60 são inicializados o modelo de face e o alinhamento da face, onde a variável modeloFace recebe uma nova FaceModel() e a variável alinhamentoFace recebe uma nova FaceAlignment(). Por fim é inicializado o sensorKinect na instrução da linha 62, sensorKinect.Open().
  • 53. 51 Na linha 48 a variável leitordecor recebe uma instrução chamada ColorReader_FrameArrived, que é um evento que faz com seja possível a visualização do sistema através da câmera RGB do Sensor Microsft Kinect, a Figura 30 abaixo demonstra esse processo. Figura 30. Sensor RGB Esse evento utiliza a variável frame que é uma referência da tela que é mostrada ao usuário e que deve receber a imagem que o sensor RGB disponibiliza. Na linha 75 é definido que a instrução camera.Source irá receber um quadro, de acordo com a instrução frame.ToBitmap(), essa instrução ela verifica o tamanho que é a tela criada pro usuário, e assim transforma aquela tela em uma do tipo de imagem Bitmap que é apresentado para usuário em tempo real. Ao chamar a instrução da linha 75, o código irá realizar a chamada de uma outra classe que possui o método do tipo ImageSource chamado ToBitmap, e assim realizar um cálculo para poder renderizar cada pixel do sensor RGB na tela para o usuário, como na Figura 31 abaixo. Figura 31. Classe Extensions
  • 54. 52 É possível perceber na Figura 31 acima, na linha 18, que o método ToBitmap recebe um quadro de cores chamado frame. Logo na linha 20 e 21 é pego a largura e a altura desse quadro, para que na linha 24 seja realizado o cálculo do tamanho dos pixels que irão popular o quadro. Na linha 28, após uma condição, é feita uma cópia em forma de array dos pixels e assim que finalizado é feito na linha 37 o retorno do BitmapSource. Na Figura 28, na linha 52, é feita a chamada de um evento para o rastreio do corpo do usuário e a identificação do rosto para o rastreio facial posteriormente. Quando o sistema chega na seguinte instrução BodyReader_FrameArrived é onde o sistema entrará no evento, que é demonstrado na Figura 32 abaixo. Figura 32. Rastreio do corpo do usuário É possível observar na Figura 32 acima, na linha 88, que esse rastreio irá funcionar se houver algum quadro sendo executado no sistema, ou seja, alguma tela específica sendo mostrada ao usuário. Ao identificar esse quadro, na linha 90, é feito uma variável chamada bodies, que é array do tipo Body[], que irá pegar a quantidade de corpo que está em cena. Ao receber essa instrução, na linha 91 é feita uma lista onde é passado por referência aquele corpo já rastreado. Assim na linha 93 é definido o corpo que se encontra na lista como rastreável. Já na linha 95, a condição demontra se o sensor da face está habilitado e também na linha 97 se existe algum corpo em frente ao sensor, satisfazendo essas condições é realizado uma referência daquele corpo para aquela face rastreável, ou seja, como se estivesse montando
  • 55. 53 um quebra cabeça, encaixando a referência do rastreio de corpo na face. Na Figura 33 abaixo é demonstrado como é feito o processo da criação da face. Figura 33. Processo inicial para o rastreio facial Na Figura 33 acima, tem-se o início do rastreio facial. Na instrução da linha 112 são verificadas as condições se existe uma tela, frame != null; e se há alguma face rastreada na tela, frame.IsFaceTracked; a instrução isFaceTracked é uma propriedade da classe HighDefinitionFaceFrame, que obtém um valor booleano que indica se o rosto é rastreado. Na linha 114 é realizada a atualização dos pontos que armazenam as características faciais, como olhos, nariz e boca. Essa atualização é por meio de uma imagem no espaço 2D. Na linha 115 é feito o método, onde é realizado todo o processo de alinhamento e reconhecimento do estado afetivo do usuário. Na Figura 34 abaixo, é demonstrado o processo que realiza o rastreio da face e o reconhecimento das expressões realizadas.
  • 56. 54 Figura 34. Processo de rastreamento do estado afetivo Na Figura 34 é realizado o processo de atualização, alinhamento, bem como o processo de verificação do estado afetivo do usuário. É possível notar na linha 133 um laço onde será criada a malha 3D, como visto na Figura 19, demonstrado na seção 3.3.1. Entre as linhas 157 a 165 são instanciados os pontos do rosto que são garantidos através da classe demonstrada na seção 4.3. Também é possível notar entre as linhas 170 a 179 a lógica dos intervalos utilizada para que o sistema conseguisse reconhecer os estados afetivos propostos.
  • 57. 55 O estudo de Zernnaro (2014), na sessão 2.4, aborda os possíveis pontos para a identificação do estado emocional de uma pessoa. A figura 17 na sessão 2.4 aborda esse estudo demonstrando os determinados pontos para uma identificação, logo a base da escolha dos pontos realicionados na figura 34 se deve a este estudo. No desenvolvimento desta etapa foram identificados erros no software diante do rastreio das UA’s. Ao utilizar os valores propostos pelo o estudo, mais precisamente na seção 2.2.2, a API não reconhecia os pontos indicados. Após isso foi utilizada a classe HighDetailFacePoints, demonstrada na seção 4.3. Posteriormente foram obtidos os pontos e realizados os cálculos dos intervalos, como já demonstrado na seção 4.3. Ao fim dessas mudanças os erros foram corrigidos e o software conseguiu reconhecer o estado do usuário.
  • 58. 56 5 CONSIDERAÇÕES FINAIS O trabalho teve como objetivo o desenvolvimento de um software para o reconhecimento do estado emocional através da identificação da experiência emocional, mais precisamente os estados de alegria e tristeza, utilizando o Sensor Microsoft Kinect. O estudo de técnicas de identificação de experiência emocional juntamente com o SDK do Sensor Microsoft Kinect foram fundamentais para que se chegasse aos resultados apresentados. A técnica de rastreio facial aplicado à imagem obtida pela câmera RGB do Sensor Microsoft Kinect ajuda a obter uma representação do formato do rosto humano quase que ideal. O único fator que deixou a desejar foi a imprecisão encontrada quando o usuário realiza algum desvio de atenção, ou seja, devia os olhos e realiza a rotação da cabeça para direita ou para esquerda em frente a câmera do Sensor Microsoft Kinect. Tal fator não torna a técnica de rastreio e delimitação das coordenadas inviável, posto que é quase impossível obter uma representação perfeita. Uma das etapas mais complexa realizada neste trabalho foi a elaboração da lógica de intervalo das UA’s, pois nos estudos foram propostas algumas variáveis, que ao realizar na prática não foi possível obter os resultados esperados, mas o SDK do Sensor Microsoft Kinect, através da HD FACE API disponibiliza algumas UA’s para a realização do rastreio. Após concluir a fase de implementação do software, a execução de demonstração realizada foi essencial para a elaboração dos requisitos para que a ferramenta funcionasse. Notou-se que, para o bom funcionamento da aplicação, o Sensor Microsoft Kinect deve estar em uma base em que o usuário possa ficar com a câmera na altura de seu nariz, não existindo uma altura padrão, mas uma altura que seja possível rastrear o rosto e uma parte do seu corpo, para que possa ser rastreado com eficiência além do usuário estar a uma distância de +/- 50 cm do Sensor Microsoft Kinect. Como trabalhos futuros, pode-se citar: utilizar outros recursos no que tange estados afetivos, como por exemplo, o reconhecimento de novos estados afetivos como, raiva e surpresa, a fim de melhorar a quantidade de emoções rastreada e reconhecida pelo software. Além da implementação de recursos que limitam os movimentos que o usuário possa realizar em frente ao Sensor Microsoft Kinect, como por exemplo, ao usuário realizar um desvio de atenção, ao identificar o software identifica e manda uma alerta ao usuário em forma de áudio como aviso. Também, pode ser implementado módulos para que a coordenada da face seja habilitada somente no rosto do usuário e não no ambiente como um todo.
  • 59. 57 Do mesmo modo, novos trabalhos podem ser desenvolvidos utilizando o rastreio do corpo em conjunto com o rastreio da face, visto que nos estudos abordados, foi identificado que alguns movimentos corporais também delimita algumas expressões emocionais. Dessa forma, conclui-se que com o uso dos recursos do Sensor Microsoft Kinect v2 junto com recursos de sua API fornecida pelo SDK, é possível que se obtenha uma representação do estado afetivo do usuário.
  • 60. 58 REFERÊNCIAS CHEN, Yumiao; YANG, Zhongliang; WANG, Jiangping. Eyebrow emotional expression recognition using surface EMG signals. Neurocomputing, [s.l.], v. 168, p.871-879, nov. 2015. Elsevier BV. http://dx.doi.org/10.1016/j.neucom.2015.05.037. DANTAS, Adilmar Coelho et al. Reconhecimento dinâmico de emoções através de expressões faciais utilizando árvore de decisão. Anais do Xxvi Simpósio Brasileiro de Informática na Educação (sbie 2015), [s.l.], v. 26, n. 26, p.1102-1111, 26 out. 2015. Comissao Especial de Informatica na Educacao. http://dx.doi.org/10.5753/cbie.sbie.2015.1102. Disponível em: <http://br-ie.org/pub/index.php/sbie/article/download/5428/3787>. Acesso em: 22 maio 2016. DINIZ, Fábio Abrantes; MENDES NETO, Francisco Milton; LIMA JÚNIOR, Francisco das Chagas. Um Sistema de Reconhecimento de Expressões Faciais para Apoiar um Ambiente Virtual de Aprendizagem. 2013. 42 v. Monografia (Especialização) - Curso de Ciência da Computação, Centro de Informática, Universidade Federal de Pernambuco, Pernambuco, 2013. Cap. 463. Disponível em: <http://www.lbd.dcc.ufmg.br/colecoes/sbsi/2013/0042.pdf>. Acesso em: 18 fev. 2016. EKMAN, P. Strong Evidence For Universals In Facial Expressions. Psychol. Bull., 1994 EKMAN, P., & FRIESEN, W. V. (1982). Felt, false, and miserable smiles. Journal of Nonverbal Behavior. 238–252. Disponível em: <https://www.paulekman.com/wp- content/uploads/2013/07/Felt-False-And-Miserable-Smiles.pdf >. Acessado em 3 de maio de 2016. Ekman, P., Friesen, W. V., & Ellsworth, P. (1972). What emotion categories or dimensions can observers judge from facial behavior? In P. Ekman (Ed.), Emotion in the human face (pp. 39-55). New York: Cambridge University Press. Disponível em: <http://www.sciencedirect.com/science/book/9780080166438>. Acessado em: 11 de maio de 2016. EKMAN, P.; FRIESSEN, W. V.; HAGER, J. C. Facial Action Coding System - Investigator's Guide. 2ª Edição. ed. Salt Lake City: Research Nexus, 2002. FITZPATRICK, Matthew; MATTHIOPOULOS, Nikolaos. Real Time Person Tracking and Identification using the Kinect sensor. 2013. 78 f. Monografia (Especialização) - Curso de Electrical & Computer Engineering, Worcester Polytechnic Institute, Worcester, 2013. Disponível em: <https://www.wpi.edu/Pubs/E-project/Available/E-project-042513- 081838/unrestricted/Real_Time_Person_Tracking_and_Identification_using_the_Kinect_senso r.pdf>. Acesso em: 24 maio 2016. FREUND, Yoav; SCHAPIRE, Robert E.. A Short Introduction to Boosting. Journal Of Japanese Society For Artificial Intelligence. Nova Jérsei - Eua, p. 1-14. nov. 1999. Disponível em: <http://cseweb.ucsd.edu/~yfreund/papers/IntroToBoosting.pdf>. Acesso em: 23 maio 2016.
  • 61. 59 FRIEDLANDER Michel; RAHMILEVITZ Gustavo. Software para Análise de Emoções na Face. Trabalhos de Conclusão de Cursos. Escola Politécnica da Universidade de São Paulo, Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos. São Paulo, dezembro de 2010. GHOLIPOUR, Bahar. (2014). Happily Surprised! People Use More Facial Expressions Than Thought. Disponível em: <http://www.livescience.com/44494-human-facial- expressions-compound-emotions.html>. Acesso em 19 de março de 2016. JAMES, William. What is an Emotion. Oxford Journals. Oxford, p. 188-205. mar. 1884. Disponível em: <http://gruberpeplab.com/5131/2_James_1884_WhatisanEmotion.pdf>. Acesso em: 11 maio 2016. JANA, Abhijit. Kinect for Windows SDK Programming Guide. Birmingham, Uk: Packt Publishing, 2012. 366 p. Disponível em: <http://www.doc.flash- robotics.com/download/doc/Kinect for Windows SDK Programming Guide.pdf>. Acesso em: 24 maio 2016. JAQUES, Patrícia Augustin; VICARI, Rosa Maria. Estado da Arte em Ambientes Inteligentes de Aprendizagem que Consideram a Afetividade do Aluno. 2005. 8 v. Monografia (Especialização) - Curso de Informática, Programa de Pós-graduação em Informática na Educação, Instituto de Informática - Ufrgs, Rio Grande do Sul, 2005. Disponível em: <http://ppginf.ucpel.tche.br/wesaac/Anais/Mini-cursos/mini-curso-jaques.pdf>. Acesso em: 25 abr. 2016. KAPUR, A., Kapur, A., Virji-Babul, N., Tzanetakis, G. & P.F. Driessen, “Gesture-Based Affective Computing on Motion Capture Data”, Proceedings of the International Conference on Affective Computing and Intelligent Interaction. Beijing, China. October 2005. Disponível em: <http://www.mistic.ece.uvic.ca/publications/2005_acii_affect.pdf>. LI, Stan Z.; JAIN, Anil K. (Ed.). Handbook of Face Recognition. New York: Springer, 2005. 395 p. Disponível em: < http://read.pudn.com/downloads142/ebook/618315/Handbook Of Face Recognition.pdf>. Acesso em: 19 de março de 2016. LIAO, Wenhui et al. Toward a decision-theoretic framework for affect recognition and user assistance. International Journal Of Human-computer Studies, [s.l.], v. 64, n. 9, p.847- 873, set. 2006. Elsevier BV. http://dx.doi.org/10.1016/j.ijhcs.2006.04.001. LISETTI, C. Personality, Affect And Emotion Taxonomy For Socially Intelligent Agents. In Proceedings Of The Fifteenth International Florida Artifficial Intelligence Research Society Conference, Pages 397-401. Aaai Press, 2002 Disponível em: <https://www.aaai.org/Papers/FLAIRS/2002/FLAIRS02-078.pdf>. Acessado em: 12 de maio de 2016. LONGHI, L. Magalí, BERCHT, Magda BEHAR, A. Patrícia. Reconhecimento de Estados Afetivos do Aluno em Ambientes Virtuais de Aprendizagem. (2007) Brasil: Programa de Pós-Graduação em Informática na Educação – Universidade Federal do Rio Grande do Sul.
  • 62. 60 Disponível em: <http://www.cinted.ufrgs.br/ciclo10/artigos/3bMagali.pdf>. Acesso em: 05 de maio de 2016. MALFAZ, M., & SALICHS, M. A. A new architecture for autonomous robots based on emotions. (2004) Madrid: Carlos III University of Madrid. Disponível em: <http://roboticslab.uc3m.es/publications/MalfazIAV04.pdf>. Acessado em: 28/05/2015. MARTINS, Gonçalo dos Santos. Kinect -Innovative Face Recognition System. 2013. 83 f. Dissertação (Mestrado) - Curso de Ciência de Computadores, Faculdade de Ciências da Universidade do Porto, Porto, 2013. MELLO, Ana Maria S. Ros. De. Autismo: guia prático. 5 ed. São Paulo: AMA; Brasília: CORDE, 2007. 104 p.: il. Disponível em: <http://www.autismo.org.br/site/images/Downloads/7guia%20pratico.pdf>. Acessado em: 03 de maio de 2016. MESSINGER, S. Daniel, DUVIVER, L. Leticia, WARREN, E. Zachary, MAHOOR, Mohammad, BAKER, Jason, RUVOLO, Warlaumont e Paul. (2014). Affective Computing, Emotional Development, and Autism. Cap. 39. Pág. 516-536. Oup uncoorected proof – FIRSTPROOFS. Disponível em: <http://www.psy.miami.edu/faculty/dmessinger/c_c/rsrcs/rdgs/emot/Affective_Computing_201 4.pdf>. Acessado em: 25/04/2016. MICROSOFT. Kinect for Windows Architecture. Disponível em:<https://msdn.microsoft.com/en-us/library/jj131023.aspx>. (2016a). Acesso em 12 de Junho de 2016. MICROSOFT. Kinect hardware. Disponível em: <https://developer.microsoft.com/en- us/windows/Kinect/hardware>. Acesso em: 05 jun. 2016. NUNES Maria Augusta Silveira Netto. Computação Afetiva personalizando interfaces, interações e recomendações de produtos, serviços e pessoas emAmbientes computacionais. In: Nunes, M.AS.N.; Oliveira, A.A.; Ordonez, E.D.M. 132 (Org.). DCOMP e PROCC: Pesquisas e Projetos. São Cristóvão: Editora UFS, 2012, v., p. 115-151. Disponível em: <http://200.17.141.213/~gutanunes/hp/publications/NunesDCOMP2012.pdf>. Acessado em: 18 de maio de 2016. OLIVEIRA Eduardo; JAQUES Patrícia Augustin. Inferindo as emoções do usuário pela face através de um sistema psicológico de codificação facial. IHC 2008. Porto Alegre, 2008. Disponível em: <https://www.researchgate.net/profile/Patricia_Jaques/publication/220737344_Inferindo_as_e mocoes_do_usuario_pela_face_atraves_de_um_sistema_psicologico_de_codificacao_facial/lin ks/0deec530a4d54b8281000000.pdf>. Acessado em: 18 de maio de 2016. ORTONY, A, Clore, G., & Collins. A. The cognitive structure of emotions. Cambridge: Cambridge University Press, 1988. ORTONY, A., & Turner, T. J. (1990). What’s basic about basic emotions? Psychological Review, 97, 315-331. Disponível em: