10
Reconhecimento de expressões faciais e emocionais como método avaliativo de aplicações computacionais. Ailton Lopes de Sousa, Saulo William S. Costa, Yomara Pires, Fabíola Pantoja Araújo Laboratório de Desenvolvimento de Sistemas (LADES) Faculdade de Computação Universidade Federal do Pará Campus de Castanhal, Avenida dos Universitários, Jaderlândia Castanhal PA Brasil [email protected], [email protected], [email protected], [email protected] Abstract. This article has the purpose to present the partial results of the study on the assessment of affective aspects in computer applications through recognition of facial expressions and emotions. Thus, it was possible through the study of the state of the art in the areas of Affective Computing , Human-Computer Interaction , Usability systems develop a computational tool capable of capturing the facial expressions of the user using the Kinect in order to carry out the scenario development (case studies) to assess the affectivity by capturing the user personality traits of the systems. Resumo. Este artigo tem como propósito apresentar os resultados parciais do estudo realizado sobre a avaliação dos aspectos afetivos em aplicações computacionais por meio de reconhecimento de expressões faciais e emoções. Diante disso, foi possível, através de estudos das áreas de Computação Afetiva e Usabilidade de sistemas, iniciar o desenvolvimento de uma ferramenta computacional capaz de capturar as expressões faciais do usuário utilizando-se do Kinect, a fim de realizar a elaboração de cenários (estudo de casos) para avaliação da afetividade por meio da captura dos traços de personalidade de usuário dos sistemas. 1. INTRODUÇÃO Um sistema de qualidade é essencial para qualquer organização e, normalmente, essas organizações necessitam de softwares fáceis de serem usados e que tenham aceitação por parte dos usuários [Costa et al., 2015]. A busca por tecnologias que apresentem qualidade e boa usabilidade facilita a interação do usuário com a máquina, tarefa fundamental na construção de um sistema de alto desempenho. Nesse contexto, a computação afetiva vem contribuir na avaliação de usabilidade e satisfação, já que visa tentar fazer com que a emoção, existente na comunicação entre pessoas esteja presente também durante a interação entre homem e computador [Picard, 1997]. Logo, pode-se inferir por meio do estado emocional e de expressões faciais de determinada pessoa qual o tipo de manifestação (positiva ou negativa) esta apresentará ao fazer uso de determinado software. Considerando esses aspectos, o presente trabalho tem por objetivo apresentar, dentro da visão computacional, o desenvolvimento de uma ferramenta capaz de realizar a captura de expressões faciais emocionais de cada indivíduo, que, através do levantamento dos traços de Anais do Encontro Regional de Computação e Sistemas de Informação 178 Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096

Reconhecimento de expressões faciais e emocionais como ...deposita.ibict.br/bitstream/deposita/18/5/Reconhecimento de... · referência, os estudos realizados a respeito do Sistema

Embed Size (px)

Citation preview

Reconhecimento de expressões faciais e emocionais como método

avaliativo de aplicações computacionais.

Ailton Lopes de Sousa, Saulo William S. Costa, Yomara Pires, Fabíola Pantoja Araújo

Laboratório de Desenvolvimento de Sistemas (LADES) – Faculdade de Computação –

Universidade Federal do Pará – Campus de Castanhal, Avenida dos Universitários,

Jaderlândia – Castanhal – PA – Brasil

[email protected], [email protected], [email protected],

[email protected]

Abstract. This article has the purpose to present the partial results of the study on the

assessment of affective aspects in computer applications through recognition of facial

expressions and emotions. Thus, it was possible through the study of the state of the art

in the areas of Affective Computing , Human-Computer Interaction , Usability systems

develop a computational tool capable of capturing the facial expressions of the user

using the Kinect in order to carry out the scenario development (case studies) to assess

the affectivity by capturing the user personality traits of the systems.

Resumo. Este artigo tem como propósito apresentar os resultados parciais do estudo

realizado sobre a avaliação dos aspectos afetivos em aplicações computacionais por

meio de reconhecimento de expressões faciais e emoções. Diante disso, foi possível,

através de estudos das áreas de Computação Afetiva e Usabilidade de sistemas, iniciar

o desenvolvimento de uma ferramenta computacional capaz de capturar as expressões

faciais do usuário utilizando-se do Kinect, a fim de realizar a elaboração de cenários

(estudo de casos) para avaliação da afetividade por meio da captura dos traços de

personalidade de usuário dos sistemas.

1. INTRODUÇÃO

Um sistema de qualidade é essencial para qualquer organização e, normalmente, essas

organizações necessitam de softwares fáceis de serem usados e que tenham aceitação por parte

dos usuários [Costa et al., 2015]. A busca por tecnologias que apresentem qualidade e boa

usabilidade facilita a interação do usuário com a máquina, tarefa fundamental na construção de

um sistema de alto desempenho. Nesse contexto, a computação afetiva vem contribuir na

avaliação de usabilidade e satisfação, já que visa tentar fazer com que a emoção, existente na

comunicação entre pessoas esteja presente também durante a interação entre homem e

computador [Picard, 1997]. Logo, pode-se inferir por meio do estado emocional e de expressões

faciais de determinada pessoa qual o tipo de manifestação (positiva ou negativa) esta apresentará

ao fazer uso de determinado software.

Considerando esses aspectos, o presente trabalho tem por objetivo apresentar, dentro da

visão computacional, o desenvolvimento de uma ferramenta capaz de realizar a captura de

expressões faciais emocionais de cada indivíduo, que, através do levantamento dos traços de

Anais do Encontro Regional de Computação e Sistemas de Informação 178

Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096

personalidade e baseando-se em princípios da afetividade estudados na computação afetiva, será

possível auxiliar no processo de avaliação de usabilidade e satisfação de aplicações

computacionais.

A seguir, na seção 2 são descritos os referenciais teóricos utilizados nessa pesquisa,

posteriormente, na seção 3, descreve-se a aplicação dos referenciais apresentados para o

desenvolvimento da ferramenta e finalmente, na seção 4, serão apresentados os resultados

parciais obtidos.

2. FUNDAMENTAÇÃO TEÓRICA

2.1. Computação Afetiva

Dotar a máquina de emoções humanas é um dos desafios da computação afetiva. Essa área

engloba técnicas adaptadas da Inteligência Artificial (IA) e da Engenharia de Software,

agregadas e coordenadas conjuntamente ao estudo, modelagem e simulação da experiência

afetiva humana, como característica constituinte dos processos cognitivos, orientada a aplicações

em domínios bastante variados. Tem-se a definição de Computação Afetiva por “Computação

que está relacionada com, que surge de ou deliberadamente influencia emoções” [Nunes et al.,

2011]. Este campo de estudo se divide em duas perspectivas: uma estuda a síntese das emoções

em máquinas, quando se deseja inserir emoções humanas na máquina; e a outra investiga

reconhecer as emoções humanas ou expressar emoções por máquinas na interação entre homem-

computador.

Baseando-se nessa segunda perspectiva, o presente estudo tem por objetivo criar uma

ferramenta que reconhecerá emoções faciais (alegria, raiva, surpresa e tristeza) do usuário para

serem usadas como métricas de caráter emocional com intuito de estreitar o relacionamento

homem-computador a ser usado na avaliação de sistemas.

2.2. Kinect

Formas inovadoras de interação com o usuário têm sido propostas por interfaces focadas no

paradigma de interface natural ao longo dos anos. Os softwares em diversas áreas não devem

exigir que o usuário tenha grande conhecimento em computação para usá-lo, mas devem sempre

buscar por simplicidade e facilidade [Cardoso, 2013]. Como proposta de interface natural

inicialmente focada para a área de jogos, a empresa Microsoft, em parceria com a empresa

israelensePrimeSense, construiu o sensor de movimentos chamado: Kinect.

Atualmente, o Kinect extrapola o campo para qual foi criado: o de jogos. Após o

lançamento oficial do kit de desenvolvimento – SDK (Software Development Kit), a Microsoft

permitiu que diversas aplicações fossem criadas usando o hardware.

2.3. Avaliação de Usabilidade

A usabilidade é a característica que determina se o manuseio de um produto é fácil, rapidamente

aprendido, oferece um alto grau de satisfação para o usuário e executa eficientemente as tarefas

Anais do Encontro Regional de Computação e Sistemas de Informação 179

Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096

para qual foi planejado. Em avaliações no ambiente do usuário, normalmente a coleta de dados é

feita por meio da observação do uso sendo feito da aplicação e conversas com os usuários

[Pimenta, 2006].

Oferecer um novo método de avaliação baseado na identificação dos estados afetivos do

usuário permite uma avaliação mais fundamentada. Os benefícios de fazer os estudos da

afetividade dentro da usabilidade interferem positivamente dentro da adaptação de um sistema

computacional ao homem.

2.4. Interação Homem – Computador

Interação Homem-Computador (IHC) é uma área multidisciplinar que envolve ciência da

computação, psicologia, artes entre outras. Posicionada como subárea da Ciência da

Computação, pode ser definida como avaliação de sistemas interativos no contexto das

atividades do usuário [Pimenta, 2006]. Conforme a evolução da tecnologia, algumas formas de

interação vão mudando os paradigmas.

Neste caso podemos destacar o uso do Sensor Kinect [Microsoft Research, 2011], que

modificou a forma como muitos usuários de jogos eletrônicos utilizam a forma de interação com

o computador. O Kinect possui um grande potencial, que agora pode ser usado com a interação

direta com o computador indo além do campo para o qual foi criado.

3. FERRAMENTA DE RECONHECIMENTO FACIAL

Nesta pesquisa, o principal objetivo é a avaliação de usabilidade de determinados sistemas

utilizando as expressões faciais dos indivíduos envolvidos na manipulação do software avaliado.

Para tal, uma ferramenta foi desenvolvida com o intuito de realizar o processo de captura de

aspectos emocionais e que, consequentemente, poderá inferir as emoções de determinado usuário

ao fazer uso do software que está em execução. Essa ferramenta consiste basicamente nos

seguintes módulos: Captura de Imagens, Rastreamento das Características faciais, Classificação

e Inferência das emoções. O processo de funcionamento deste sistema é apresentado na Figura 1.

Figura 1. Processo de

Funcionamento da Ferramenta

.

Anais do Encontro Regional de Computação e Sistemas de Informação 180

Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096

3.1. Captura de Imagens e Rastreamento das Características faciais

O modelo acima representa o processo que a ferramenta irá desempenhar para que o objetivo

deste trabalho seja alcançado. Dessa forma, o sistema utilizará as imagens que serão capturadas

pela câmera do Kinect [Microsoft Research, 2011], as quais serão usadas como entrada para o

módulo de Rastreamento das características faciais, além disso, será feito uso de outras técnicas

chamadas Viola-Jones [Viola and Jones, 2001] que faz a detecção do rosto do indivíduo e da

técnica CANDIDE-3 [Ahlberg, 2001] que realiza a detecção das características faciais ao

encontrar os pontos característicos do rosto de determinados locais de interesse (boca, olhos,

sobrancelhas e nariz). Essas técnicas foram implementadas utilizando-se dos recursos da

Biblioteca do Kinect – SDK.

Depois de realizada a captura de imagem e o rastreamento das características faciais por

meio das técnicas acima apresentadas, tem-se como próxima etapa o módulo para a classificação

das expressões que permitirá a inferência das emoções do usuário.

3.2. Classificação e Inferência das Emoções

Para proceder à detecção de expressões faciais e inferir emoções, em primeiro lugar, e de forma a

provar a funcionalidade da ferramenta, foram selecionadas quatro expressões diferentes para se

fazer uso: alegria, surpresa, tristeza e raiva.

Para poder tornar possível a identificação destas emoções, foram utilizados, como

referência, os estudos realizados a respeito do Sistema FACS: estudos da codificação das ações

faciais que analisam individualmente cada pequena alteração descrita na face. Neste sistema,

existem as AU’s (Unidades de Ações) que são as peças usadas para ilustrar a face humana; os

movimentos descritos nas AU’s são causados pela atuação de músculos (contração e

relaxamento)[Ekman et al., 2002]. As principais unidades de ações podem ser encontradas na

Figura 2:

Figura 2. Principais AU’s do Sistema FACS [Ekman et al., 2002]

.

Anais do Encontro Regional de Computação e Sistemas de Informação 181

Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096

A expressão facial é de fato a combinação de AU’s. A princípio, esta abordagem

possibilita que uma expressão facial seja entendida como uma combinação de unidades de ações

faciais relevantes. A combinação destas AU’s pode ser destacada na Tabela 1, que foi adaptada,

levando-se em consideração somente as emoções que são o objetivo deste trabalho.

Tabela 1. Associação das quatro expressões faciais com seus AU’s e combinações [Diniz et al., 2013]

EXPRESSÃO UNIDADES DE AÇÕES

PRINCIPAIS

UNIDADES DE AÇÕES

AUXILIARES

Alegria AU6 AU12

AU25 AU26 AU16

Surpresa AU 5 AU26 AU27 AU1+2

Tristeza AU 1 AU15 AU17

AU4 AU7 AU25 AU26

Raiva AU 2 AU4 AU7 AU23 UA24 AU17 AU16 AU25 AU26

Diante desses estudos, foi possível unir as abordagens do sistema FACS de AU’s com as

tecnologias da biblioteca do Kinect. O desenvolvimento utilizando o Kinect retorna os dados da

malha 3D (CANDIDE-3) geradas pelo SDK a partir de 100 pontos reconhecidos de estruturas

como as sobrancelhas, os olhos, a boca e o nariz.

Para a detecção das expressões, o SDK do Kinect na versão 1.8 fornece 6 (seis) unidades

de animação (UA’s), que tiram partido das unidades de ação dos estudos apresentados

anteriormente [Ekman et al., 2002] para modelar facilmente qualquer expressão facial, e assim

identificar uma face neutra e suas variações pelos movimentos das sobrancelhas, mandíbula e

lábios. Estas unidades de animação que o Kinect SDK suporta são apresentadas na Tabela 2:

Tabela 2. Unidades de animação rastreadas pelo FaceTracking SDK. [Correa, 2013]

Anais do Encontro Regional de Computação e Sistemas de Informação 182

Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096

Cada UA’S (Unidade de Animação) é expressa como um valor numérico compreendido

que varia entre −1 e 1. Mostra-se também, na Tabela acima, uma pequena explicação da

semelhança dos valores de cada unidade de animação com o efeito que essa unidade causa.

Realizou-se uma comparação com os dados mais aproximados disponíveis com o

FaceTracking SDK (Unidades de Animação – CANDIDE3), em versão C# com as AU’S do

Sistema FACS, a fim de atribuir emoções para cada unidade de animação do SDK do Kinect. O

resultado desta comparação pode ser observado na Tabela 3. É importante salientar que as linhas

em branco da Tabela 3 informam a falta de uma equivalência direta de unidades de animação e

ação dos sistemas.

Tabela 3. Equivalência de AU’s do FACS com as do FaceTracking SDK

FACS FACE TRACKING SDK

AU DESCRIÇÃO UA DESCRIÇÃO

Alegre 6 Cheek Raiser 0 Upper Lip Raiser

12 Lip Corner Puller 4 Lip Corner Depressor

1 Inner Brow Raiser

Surpresa 2 Outter Brow Raiser 5 Outter Brow Raiser

5B (Slight) Upper Lid Raiser

26 Jaw Drop 1 Jaw Lower

1 Inner Brow Raiser

Triste 4 Brow Lowerer 3 Brow Lowerer

15 Lip Corner Depressor 0 Upper Lip Raiser

17 Chin Raiser

2 Outer Brow Raiser

Raiva

4 Brow Lowerer 3 Brow Lowerer

7 Lid Tightener

23 Lip Tightener 2 Lip Stretcher

24 Lip Pressor

Tendo as unidades de animação necessárias para identificar as expressões faciais

desejadas, realizou-se uma fase experimental na qual se observou o comportamento das unidades

para cada expressão em tempo real [Correia, 2013]. Assim, sabendo que o valor que cada

Unidade de Animação se altera entre -1 e 1, de acordo com o mover dos músculos do rosto, é

possível realizar uma análise desses valores a fim de poder inferir através dos valores a

ocorrência de determinada expressão emocional.

O último passo deste processo é criar limites nos valores das unidades de animação, de

forma que, assim que eles forem ultrapassados, o sistema reconhecerá uma determinada

expressão facial, tendo em conta os resultados dos valores das unidades de animação na

expressão facial do utilizador. Estes limites serão definidos de forma experimental

posteriormente.

Anais do Encontro Regional de Computação e Sistemas de Informação 183

Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096

Para exemplificar o funcionamento da inferência da expressão fácil baseada nos valores

das UA’s, é necessário que os valores das UA’s respectivas de cada emoção estejam dentro dos

limites estabelecidos, como na demonstração da seguinte expressão:

Para que a expressão seja detectada pela ferramenta será necessário que as duas

condições sejam verdadeiras simultaneamente.

4. EXPERIMENTOS E RESULTADOS PRELIMINARES

Com o objetivo de detectar expressões faciais de usuários, criaram-se limites nos valores das

unidades de animação para cada manifestação facial desejada (Tabela 04), assim permitindo que

por meio de comparações entre o valor da unidade animação e os limites atribuídos para cada

expressão, o aplicativo possa verificar se as condições definidas para cada expressão são válidas

e, dessa forma, permitir inferir a ocorrência da mesma.

Tabela 4. Valores (Condições) de cada UA, para que as expressões sejam válidas.

EXPRESSÃO CONDIÇÕES PARA DETECTAR EXPRESSÃO

Alegria UA[0] > 0.2 e UA[4] < -0.2

Surpresa UA[1] > 0.4 e UA[5] > 0.1

Tristeza UA[0] < -0.1 e UA[3] > 0.1

Raiva UA[3] > 0.2 e UA[2] < -0.2

Os resultados obtidos até o momento foram realizados em um notebook modelo HP

Pavilion 14-v, Processador Intel Core i5, Memória RAM 4 GB, HD de 500 GB, Sensor de

movimentos Kinect, com emissor e sensor Infravermelho, sensor RGB e um conjunto de

microfones. Para desenvolvimento da aplicação, foi utilizada a plataforma de desenvolvimento

Microsoft Visual Studio Express 2012, com sistema operacional Windows 7. O Banco de dados

escolhido foi o MySQL, no qual se deseja-se fazer o armazenamento de todos os padrões obtidos

na avaliação. Foi criada a interface gráfica para manipulação da aplicação e interação entre

aplicação e usuário através do Sensor Kinect que resultará na detecção do rosto do indivíduo.

Expressão facial alegre = AU0 > 0.7e U4 < 0.3

Condições

Anais do Encontro Regional de Computação e Sistemas de Informação 184

Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096

Diante disso, obteve-se um aplicativo de rastreamento de face para detectar quatro tipos

de expressões de acordo com os movimentos musculares associados às regiões locais de

interesse (boca, olhos, sobrancelhas e nariz). O funcionamento da aplicação é apresentado na

Figura 3 e 4 onde se pode ver o software reconhecendo as expressões faciais desejadas, a partir

das técnicas mencionadas neste trabalho e com o uso das unidades de animação do Face

Tracking SDK – Kinect.

Figura 3. Interface Gráfica da aplicação (Menu)

.

Figura 4. Identificação de Expressões por meio da aplicação

.

Anais do Encontro Regional de Computação e Sistemas de Informação 185

Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096

Por meio dessa aplicação, pretende-se iniciar os testes finais desta pesquisa, onde será

verificada a relação das expressões faciais dos usuários com o uso de determinados softwares.

Para isso foi projetado o seguinte cenário: seleção de 20 voluntários com idade, sexo e cor de

pele distinta e com conhecimento básico e avançado em informática, um sensor Kinect para

captura das faces, um software (desenvolvido pelo LADES/UFPA – Castanhal) que será

avaliado. O usuário terá que cumprir as tarefas solicitadas no aplicativo dentro de um prazo

previamente estabelecido pelo avaliador, e após isso será gerado um relatório contendo o

comportamento facial do indivíduo ao fazer uso deste software.

5. CONSIDERAÇÕES

Neste trabalho foi apresentado o desenvolvimento de um software para monitoramento de

expressões do rosto, levando em consideração a detecção de quatro expressões faciais (alegria,

raiva, surpresa e tristeza) que almeja realizar a avaliação de sistemas computacionais por meio

das expressões faciais e emocionais dos indivíduos que utilizam determinado software.

Os resultados são motivadores para a proposta que a ferramenta possui, tendo como base

estudos das áreas de IHC, computação afetiva e psicologia. Os resultados gerados através da

aplicação podem ser usados como métrica para aperfeiçoamento de qualquer ferramenta, na qual

o usuário tem interação direta com o computador.

Os trabalhos futuros deste trabalho serão orientados à implementação da aplicação

desenvolvida dentro de um cenário de avaliação de software, cujas as expressões do rosto do

utilizador permitam valorar quando uma ação do software avaliado gera efeitos negativos no

usuário ou positivos.

Além disso, serão aplicadas melhorias na robustez da aplicação e de sua base de dados,

além da utilização do cenário de testes e análise dos resultados obtidos, que servirão para auxiliar

na pesquisa da afetividade em ambientes computacionais para aprendizagem. Além de contribuir

com subsídios para as aplicações que são desenvolvidas no Laboratório de Desenvolvimento de

Sistemas –LADES / UFPA.

Anais do Encontro Regional de Computação e Sistemas de Informação 186

Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096

7. REFERÊNCIAS

Ahlberg, J. C. (2001) “CANDIDE-3 – an updated parameterized face”. Report No. LiTH-ISY-

R2326, Dept. of Electrical Engineering, Linköping University, Sweden.

Cardoso, G. S. (2013) “Criando aplicações interativas com o Microsoft Kinect”. Casa do Código

– São Paulo.2013

Costa, Saulo William S., Ailton Lopes de Sousa, and Yomara Pires. (2015) "Computação

Afetiva: Uma ferramenta para avaliar aspectos afetivos em aplicações computacionais".

Correia, Miguel Medeiros.(2013) “Reconhecimento de elementos da língua gestual portuguesa

com Kinect”.

Diniz, Fábio Abrantes, et al. (2013) "Um sistema de reconhecimento facial aplicado a um

ambiente virtual de aprendizagem composto por agentes

pedagógicos."ProceedingsofInternationalConferenceonEngineeringand Computer Education.

Vol. 8.

Ekman, P.; Friesen, W. V.; Hager, J. C. (2002) “Facial Action Coding System: Investigator’s

guide”. Research Nexus division of Network Information Research Corporation, Salt Lake

City, EstadosUnidos .

Microsoft Research. (2011) “Programming Guide: Getting Started with the Kinect for Windows

SDK Beta”. Disponível em http://research.microsoft.com/en-

us/um/redmond/projects/kinectsdk/docs/ProgrammingGuide_KinectSDK.docx. Acesso em 30

de Fevereiro de 2016.

Nunes, Maria Augusta S. N., et. al. (2011) “Uso do Kinect para a extração de características

afetivas do usuário”. São Cristóvão – SE: UFS.

Picard, R. W. (1997) “Affective Computing”. Cambridge, EUA: The M.I.T. Press.

Pimenta, M. S. (2006) “A Importância da Interação Homem-Computador”. Departamento de

informática aplicada – Instituto de Informática – Universidade Federal do Rio Grande do Sul

– UFRS.

Prates, R. O. and Barbosa, S. D. J. (2016) “Avaliação de Interfaces de Usuário – Conceitos e

Métodos”. Disponível em http://homepages.dcc.ufmg.br/~rprates/ge_vis/cap6_vfinal.pdf.

Acessoem 23 de Fevereiro de 2016.

Viola, P. and JONES, M. (2001) “Robust real-time object detection”. Technical report,

University of Cambridge

Anais do Encontro Regional de Computação e Sistemas de Informação 187

Manaus, 02 a 04 de Junho de 2016 ISSN 2238-5096