emotivframework: um framework para auxílio no desenvolvimento de aplicações para computação...
DESCRIPTION
Monografia sobre Computação Afetiva.TRANSCRIPT
Marcılio Benvindo Guimaraes Junior
EmotivFramework: Um framework para
auxılio no desenvolvimento de aplicacoes
para Computacao Afetiva utilizando o
neuroheadset Emotiv EPOC
Belo Horizonte
5 de dezembro de 2010
Marcılio Benvindo Guimaraes Junior
EmotivFramework: Um framework para
auxılio no desenvolvimento de aplicacoes
para Computacao Afetiva utilizando o
neuroheadset Emotiv EPOC
Trabalho apresentado ao Instituto deInformatica da Pontifıcia UniversidadeCatolica de Minas Gerais, como requisitoparcial para a obtencao do tıtulo de Bacharelem Ciencia da Computacao.
Orientador:
Rosilane R. Mota
Pontifıcia Universidade Catolica de Minas GeraisInstituto de Informatica
Departamento de Ciencia da Computacao
Belo Horizonte
5 de dezembro de 2010
Marcılio Benvindo Guimaraes Junior
EmotivFramework: Um framework para auxılio no desenvolvimento de
aplicacoes para Computacao Afetiva utilizando o neuroheadset Emotiv
EPOC
Trabalho apresentado a disciplina Trabalho de Diplomacao II do Departamento de Ciencia
da Computacao da Pontifıcia Universidade Catolica de Minas Gerais,
Belo Horizonte, 2010.
Profa. Rosilane R. MotaOrientadora
Pontifıcia Universidade Catolica de Minas GeraisDepartamento de Ciencia da Computacao
Prof. Alexei Manso Correa MachadoExaminador
Pontifıcia Universidade Catolica de Minas GeraisDepartamento de Ciencia da Computacao
Prof. Theldo Cruz FranqueiraExaminador
Pontifıcia Universidade Catolica de Minas GeraisDepartamento de Ciencia da Computacao
Agradecimentos
A minha mae, um exemplo de forca e persistencia
na vida que jamais verei igual. Ao meu pai, um
exemplo de profissional como poucos. A meus ami-
gos Liana, Ana, Fernanda, Marina, Jessica, Louise,
Raquel, Willer, Andrey, Andre, Daniel, Rafael e a al-
guns que devo ter esquecido, pessoas por quem tenho
extremo respeito e carinho. Ao professor Marcelo
Nery, que sempre me ajudou e e claro, a minha ori-
entadora Rosilane, pela orientacao, dedicacao, com-
petencia e por ter me apresentado esta area. Sem
voce esse trabalho nao seria possıvel.
“Veni, vidi, vici”
Julio Cesar
Resumo
A Computacao Afetiva e a area que estuda a computacao que esta relacionada asemocoes. Uma das areas de pesquisa relacionada a esses estudos e do Reconhecimento deEmocoes. Para inferir dados sobre estados emocionais de usuarios e necessario passar portres etapas: Aquisicao de Dados, Interpretacao e Modelagem. Este estudo apresenta umaproposta de framework capaz de identificar dados coletados de um dispositivo externo, nocaso, um neuroheadset da empresa Emotiv Systems. O objetivo desse framework e realizara etapa de aquisicao de dados dentro de um processo de Reconhecimento de Emocoes.Para validacao do sistema, foram simulados alguns estados emotivos atraves de scripts emuma linguagem que e interpretada pelo simulador fornecido pela empresa. Atraves dostestes, concluiu-se que o uso de um framework para realizar a aquisicao de dados agilizae beneficia o desenvolvimento de outros sistemas que facam uso da etapa de aquisicao dedados.
Abstract
Affective Computing is the area of study of emotion-related computing. One researcharea related to those studies is Emotion Recognition. To infer data about the emotionalstate of users, three steps are necessary: Data Acquisition, Interpretation and Modeling.This study presents a framework proposal that is able to identify data collected froman external device - in this case, an Emotiv Systems neuroheadset. The goal of thisframework is to perform the acquisition step inside the Emotion Recognition process. Tovalidate the system, some emotive states were simulated through scripts in a languagethat is interpreted by the simulator provided by the company. Through testing, it hasbeen concluded that the use of a framework to perform the data acquisition speeds upand benefits the development of other systems that use the data acquisition step.
Sumario
Lista de Figuras
Lista de Siglas
1 Introducao p. 8
1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 8
1.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 9
1.3 Objetivos gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 9
1.4 Objetivos especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 10
2 Trabalhos Relacionados p. 11
2.1 Computacao Afetiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11
2.1.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11
2.1.2 Emocoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 12
2.1.2.1 Reconhecimento de emocoes . . . . . . . . . . . . . . . p. 13
2.1.2.2 Sıntese de emocoes . . . . . . . . . . . . . . . . . . . . p. 14
2.1.3 Computacao Afetiva na interacao homem-computador . . . . . . p. 14
2.1.3.1 Computacao Afetiva em ambientes de ensino virtuais . p. 15
2.1.3.2 Computacao Afetiva em sistemas de vigilancia . . . . . p. 15
2.1.4 Questoes eticas . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16
2.2 Novas interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16
2.2.1 Brain-computer interfaces (BCI) . . . . . . . . . . . . . . . . . p. 16
2.2.2 Emotiv EPOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17
2.3 Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17
3 EmotivFramework p. 19
3.1 Nucleo do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
3.1.1 Arquitetura do EmotivFramework . . . . . . . . . . . . . . . . . p. 20
3.2 Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21
3.2.1 Estrutura do arquivo de log . . . . . . . . . . . . . . . . . . . . p. 21
3.3 MouseControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
3.4 Documentacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
4 Metodologia p. 25
4.1 Aquisicao de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 26
5 Resultados p. 27
5.1 Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
5.1.1 EmoComposer Markup Language . . . . . . . . . . . . . . . . . p. 28
5.1.2 Casos de testes . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
6 Conclusao p. 34
7 Trabalhos Futuros p. 36
Referencias p. 37
Apendice A -- Scripts de teste p. 39
Apendice B -- Telas dos sistemas p. 48
Apendice C -- Diagramas p. 49
Lista de Figuras
1 Areas de pesquisa em Computacao Afetiva . . . . . . . . . . . . . . . . p. 12
2 Neuroheadset Emotiv EPOC . . . . . . . . . . . . . . . . . . . . . . . . p. 17
3 Processo para eeconhecimento de emocoes . . . . . . . . . . . . . . . . p. 25
4 Etapas para realizar a Aquisicao dos Dados no EmotivFramework . . . p. 26
5 Caso de Teste 1: Grafico do log “AffectivEmoStateLog.xml” . . . . . . p. 29
6 Caso de Teste 1: Grafico do log “CognitivEmoStateLog.xml” . . . . . . p. 30
7 Caso de Teste 1: Grafico do log “ExpressivEmoStateLog.xml” . . . . . p. 30
8 Caso de Teste 2: Grafico do log “ExpressivEmoStateLog.xml” . . . . . p. 31
9 Caso de Teste 3: Grafico do log “ExpressivEmoStateLog.xml” . . . . . p. 31
10 Caso de Teste 4: Grafico do log “CognitivEmoStateLog.xml” . . . . . . p. 32
11 Caso de Teste 5: Grafico do log “AffectivEmoStateLog.xml” . . . . . . p. 32
12 Caso de Teste 5: Grafico do log “ExpressivEmoStateLog.xml” . . . . . p. 32
13 Caso de Teste 5: Grafico do log “GyroLog.xml” . . . . . . . . . . . . . p. 33
14 Tela do EmotivFrameworkClient . . . . . . . . . . . . . . . . . . . . . . p. 48
15 Tela principal do EmotivLoggerClient . . . . . . . . . . . . . . . . . . . p. 48
16 Diagrama de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 49
17 Diagrama de componentes . . . . . . . . . . . . . . . . . . . . . . . . . p. 49
Lista de Siglas
EEG Eletroencefalograma ou eletroencefalografia
BCI Brain-Computer Interface
HTTP Hypertext Transfer Protocol
TCP Transmission Control Protocol
XML Extensible Markup Language
IHC Interacao Homem-Computador
WCF Windows Communication Foundation
HTML Hypertext Markup Language
CHM Microsoft Compiled HTML Help
SDK Software Development Kit
EML EmoComposer Markup Language
8
1 Introducao
1.1 Motivacao
Diversos estudos na area psicologica e de neurociencia mostram que as emocoes desem-
penham um papel fundamental na cognicao humana, tomadas de decisao, aprendizado,
interacao humana, percepcao e inteligencia (AHN; PICARD, 2005). Muito ja foi estudado
sobre a teoria das emocoes na Psicologia, e existem diversas teorias que tentam mostrar
como as emocoes surgem e que fatores contribuem para esse surgimento. A Computacao
Afetiva pode ser tratada como uma area que une a Ciencia da Computacao, a Psicologia
e as Ciencias Biologicas, pois ela estuda a computacao que esta relacionada as emocoes.
Muitos avancos na teoria das emocoes e cognicao ainda poderao ser alcancados, com
estudos que passam pela area psicologica e/ou biologicas.
Quanto mais interativa uma aplicacao e, mais chances de satisfazer o usuario ela
possui, ja que essa interacao e de extrema importancia. Para e conseguir mapear os
dados emocionais de um usuario e necessario coletar dados do mesmo, os quais podem
ser fisiologicos ou nao e, nesse momento, diversas tecnologias da area biologica poderao
ter importancia, pois com elas e possıvel coletar dados como pressao sanguınea, dados
das correntes eletricas desenvolvidas no encefalo (EEG), dentre outros. Alem de dados fi-
siologicos, tambem podem ser utilizados dados biometricos como, por exemplo, impressoes
digitais ou expressoes faciais.
Com o avanco da tecnologia, algumas empresas tem comecado a investir em disposi-
tivos que coletem dados que possam ser utilizados para mapear estados emotivos como,
por exemplo, os dispositivos BCI, que podem ser utilizados na area de jogos digitais. Uma
dessas empresas, foi a Emotiv Systems, que desenvolveu um capacete que detecta a ativi-
dade cerebral do usuario utilizando eletroencefalografia 1 por meio de sensores externos
ao longo do couro cabeludo, que captam as ondas eletricas em varias partes da superfıcie
do cortex cerebral.
1Eletroencefalografia ou EEG e uma medida de ondas cerebrais.
9
1.2 Justificativa
Um dos grandes objetivos da Computacao Afetiva e fazer com que o computador
adapte-se ao usuario. Independente do computador, em um interacao normal o usuario
tem que adaptar-se a sua linguagem, ao seu sistema operacional, ou seja, adaptar-se ao
computador. Atraves dessa area, esse paradigma seria alterado e o computador se adap-
taria ao usuario, entendendo como o mesmo se sente e, atraves do seu estado emocional,
tomaria decisoes para influenciar positivamente a interacao entre o homem e a maquina.
Cada vez mais, com o surgimento de novas tecnologias, alguns paradigmas estao sendo
quebrados, como por exemplo, poucas pessoas imaginariam que em 2010, estariamos
andando pela rua com celulares conectados a internet, ou entao acessando sites atraves
da televisao, e tambem controlando jogos atraves de movimentos como no Nintendo Wii
ou no Kinect da Microsoft.
Mesmo nao imaginando que essas tecnologias estariam presentes em nossa realidade,
ha muito tempo os homens pensavam em tecnologias avancadas na ficcao. Varios exemplos
em que computadores ou robos sao dotados de emocao podem ser citados. Filmes como
2001: Uma Odisseia no Espaco, Exterminador do Futuro, Jornada nas Estrelas, Wall-E
e Eu Robo sao alguns desses exemplos existentes.
Com essas tecnologias em maos, e possıvel realizar uma serie de avancos em diversas
areas de conhecimento. Uma dessas areas e o Reconhecimento de Emocoes, que torna
possıvel uma aplicacao identificar o estado emocional de um usuario, e adaptar sua e-
xecucao, de modo a deixar o usuario mais confortavel. A princıpio, o uso de dispositivos
externos como uma BCI, por exemplo, nao e simples. E necessario muita pesquisa sobre o
dispositivo, para assim conseguir desenvolver aplicacoes que se comuniquem com o mesmo,
e apos isso, interpretar os dados coletados e realizar a modelagem. Para diminuir o tempo
de desenvolvimento, e ajudar para que mais pessoas nao tenham os mesmos problemas ao
tentarem criar aplicacoes que facam essa comunicacao, e util que esse de tipo de aplicacao
seja desenvolvida. Essa dificuldade em se ter aplicacoes que facam essa comunicacao e a
justificativa principal deste estudo.
1.3 Objetivos gerais
Este estudo tem como objetivo produzir um framework que permita a conexao com
um dispositivo BCI, que no caso deste trabalho, sera o neuroheadset EPOC da empresa
10
Emotiv Systems e seu simulador. Esse framework funcionara como um servico Windows,
que e executado em segundo plano pelo sistema operacional, sempre pronto a receber
conexoes de outros aplicativos que desejem utilizar os servicos fornecidos por ele. As
conexoes feitas nesse servico serao realizadas atraves de dois protocolos de comunicacao,
o HTTP e o TCP.
Como o dispositivo foi adquirido em sua versao comercial, assume-se que os testes de
validacao do hardware foram realizados pela propria empresa, nao sendo isso do escopo
dessa pesquisa.
1.4 Objetivos especıficos
Os objetivos especıficos sao os seguintes:
• Criacao de um framework que deve ser capaz de entender os dados captados pelo
neuroheadset e salva-los em arquivos de log.
• Criacao de um aplicativo cliente desse servico, onde o usuario escolhera entre conec-
tar no simulador ou no neuroheadset, e tambem permitira ao usuario controlar o
ponteiro do mouse utilizando o neuroheadset.
• Criacao de um outro aplicativo que realizara a leitura dos arquivos de log, no formato
XML, e criara graficos referente a esses dados.
11
2 Trabalhos Relacionados
2.1 Computacao Afetiva
2.1.1 Introducao
Computacao Afetiva e a computacao que tem origiem, relaciona-se ou deliberadamente
influencia emocoes (PICARD, 1997). Desde antes do surgimento dessa area, o homem ja
imaginava computadores dotados de alguma emocao. Um exemplo classico disso esta no
filme 2001: Uma Odisseia no Espaco, lancado em 1968, onde o computador HAL 9000
possui suas proprias emocoes e toma decisoes baseado nelas. Apesar de toda a imaginacao
e ideias que surgiram nesses tempos, a computacao afetiva propriamente dita so nasceu
em meados dos anos 90. A publicacao principal dessa area de pesquisa e o artigo feito por
Picard (1995), dita mae da Computacao Afetiva. Essa area surgiu atraves de estudos da
Psicologia e Neurociencia que indicam que a emocao e a experiencia emocional tem um
papel fundamental na cognicao humana, no aprendizado, nas tomadas de decisao (AHN;
PICARD, 2005), interacao humana, percepcao e inteligencia. Todos esses fatores combina-
dos com as habilidades que os computadores estao adquirindo em reconhecer e expressar
afeto abriram novas areas de pesquisa, e assim nasceu a Computacao Afetiva. Com o
passar do tempo, novos modelos foram sugeridos para reconhecimento de emocoes hu-
manas pelo computador e aplicacoes teoricas e praticas foram descritas para aprendizado,
interacao homem computador, recuperacao de informacao perceptual, artes e entreteni-
mento, saude e maquinas inteligentes. Segundo Picard (1995), avancos significativos na
teoria da emocao e cognicao dependem do desenvolvimento da computacao afetiva, es-
pecialmente na forma de wearable computers. A interacao dos computadores com seus
usuarios e de extrema importancia, e a maioria desses nao e especialista, ou tem bons
conhecimentos de computacao, ou nao tem tempo, ou desejo de aprender a utilizar a ajuda
de um computador. Com as emocoes sendo transmitidas aos computadores, pretende-se
ajudar a enderecar melhor os problemas de interacao como sistemas complexos, deixando
essas interacoes mais suaves.
12
Pode-se considerar o componente mais importante de um sistema afetivo o usuario
emotivo. Qualquer usuario que tenha emocoes e tome decisoes, ou realize acoes baseadas
nelas. A comunicacao entre humanos e estudada na psicologia, e e um dos assuntos
basicos explorados quando a Computacao Afetiva e considerada. A Figura 1 apresenta
um esquema que exemplifica as diversas areas que formam a Computacao Afetiva.
Figura 1: Areas de pesquisa em Computacao Afetiva
2.1.2 Emocoes
As emocoes desempenham um papel importante em nossas interacoes com pessoas e
computadores todos os dias, elas sao o que fazem nossas interacoes humanas (PETER et
al., 2007). E importante frisar o tanto que as emocoes interferem nas nossas interacoes,
comportamento, linguagem corporal, todas as acoes e movimentos. Por exemplo, para
uma pessoa americana de bom humor e muito provavel que durante um dialogo, ela
escute “presents” ao inves de “presence”, ou entao, caso esteja de mau humor, escute
“banned” ao inves de “band” (PICARD, 2000b) (PICARD, 2000a).
A teoria das emocoes e um campo amplo e interdisciplinar de estudo. Na area da
Psicologia, existem teorias que sao classicas e bastante difundidas, como por exemplo, a
teoria de James-Lange (CANNON, 1927), que faz o estudo das emocoes baseado em como
o cerebro interpreta determinadas situacoes.
13
2.1.2.1 Reconhecimento de emocoes
Segundo Kaiser e Oertel (2006), diversas tecnologias para o reconhecimento de emocoes,
como cameras, medidores de pressao, sensores de tensao de musculos, microfones, entre
outras sao necessarias para alcancar um dos principais objetivos, e tambem o primeiro
passo, para se construir aplicacoes da Computacao Afetiva. Uma forma que muitos
pesquisadores utilizam para tentar reconhecer e analisar as emocoes do ser humano e
atraves da fala. A fala e o meio principal de comunicacao entre humanos, e nao sao im-
portantes apenas sons e palavras (HE et al., 2009). Falamos emocionalmente, percebemos
outras emocoes e comunicamos emocionalmente (BURKHARDT et al., 2009). Para recon-
hecimento atraves de fala, He et al. (2009) cita uma tecnica que utiliza de espectogramas,
que sao descricoes compactas e altamente eficientes para representacao de informacoes
contidas na onda sonora. Outra forma utilizada para analisar os estımulos emocionais e
coletar dados fisiologicos da pessoa como, pressao sanguınea, ou dados de um eletroence-
falograma. Spiridon e Fairclough (2009) utilizaram esses recursos para realizar testes
com deteccao de raiva. Alem da linguagem falada, a escrita tambem e de interesse dos
pesquisadores. Alguns aplicativos voltados para o reconhecimento de emocoes atraves da
fala foram criados e como exemplo disso, existe o EmoText (OSHERENKO, 2009), que e um
aplicativo com o objetivo de reconhecer o significado emocional de uma sentenca passada
como parametro de entrada para o sistema.
Uma grande dificuldade ao se tentar utilizar a fala no reconhecimento de emocoes e
coletar os dados. Para isso, existem bases de dados que sao utilizadas para realizar testes
de reconhecimento, principalmente de voz, como as que foram utilizadas por Eyben,
Wollmer e Schuller (2009), no desenvolvimento de um toolkit para reconhecimento de
afeto, o openEAR. Para que os dados coletados sejam de qualidade, e importante analisar
cinco fatores citados por Picard, Vyzas e Healey (2001):
• A emocao e induzida pela pessoa ou por algum evento externo?
• A pessoa esta em um ambiente de laboratorio ou no mundo real?
• Uma expressao externa ou um sentimento interno e enfatizado?
• A pessoa sabe da gravacao?
• A pessoa sabe que e um experimento sobre emocoes?
A combinacao mais natural desses fatores, apesar de todas as questoes de privacidade
que sao envolvidas, seria onde a emocao da pessoa acontece como circunstancia de um
14
evento, no mundo real, enfatizado por um sentimento interno, sem que ela soubesse que
esta sendo gravada, e que o experimento seja sobre emocoes humanas (PICARD; VYZAS;
HEALEY, 2001). Pela dificuldade de se alcancar tal situacao para a captura de dados,
cientistas tem estudado diversas formas para que situacoes oportunistas sejam criadas
como, um filme que desperte algum sentimento no espectador.
Para Picard (1997), o reconhecimento de emocoes pode ser melhor interpretado com
uma inferencia de estados emotivos a partir de observacoes de expressoes ou comporta-
mentos em uma determinada situacao.
2.1.2.2 Sıntese de emocoes
Um dos pressupostos da Computacao Afetiva e que os computadores tenham a capaci-
dade de reconhecer e de inferir aspectos afetivos como se fossem observadores em terceira
pessoa. Desse modo, quando necessario, e preciso sintetizar essas emocoes (LONGHI;
BERCHT; BEHAR, 2007). Um estudo muito interessante feito por Park et al. (2006), e o
de um robo que consegue expressar estados afetivos de forma combinada, assim como os
humanos, baseado na teoria cognitiva e na neurociencia.
2.1.3 Computacao Afetiva na interacao homem-computador
Pode-se dizer que alem da Inteligencia Artificial, que e bastante utilizada em sistemas
para que eles possam aprender a funcionar de formas diferentes para usuarios diferentes, a
IHC e a area para onde a Computacao Afetiva esta mais voltada. Algumas maquinas sao
uteis como ferramentas rıgidas, sem a necessidade de emocao, e e melhor mante-las assim.
Entretanto, existem situacoes onde a IHC pode ser melhorada com as maquinas que se
adaptem naturalmente aos usuarios, onde a comunicacao sobre quando, onde, como e o
quao importante e se adaptar; envolve informacoes emocionais, possivelmente, incluindo
expressoes de frustracao, confusao, desgosto, ou interesse. A Computacao Afetiva expande
a interacao entre o homem e o computador incluindo a comunicacao emocional junto com
o significado apropriado do tratamento da informacao afetiva (PICARD, 1999). Segundo
Picard (1999), os quatro alvos que a Computacao Afetiva tem o objetivo de atingir na
IHC sao:
• Reduzir a frustracao do usuario;
• Permitir uma comunicacao confortavel da emocao do usuario;
15
• Desenvolver infraestrutura e aplicacoes que tratam a informacao afetiva;
• Construir ferramentas que ajudem a desenvolver habilidades socio-emocionais.
Por ser uma area de pesquisa recente dentro da Computacao, ela ainda tem um grande
percurso pela frente, e tudo depende de como os cientistas irao continuar e aprofundar
suas pesquisas. Os futuros designers de computadores poderao muito bem continuar
desenvolvendo computadores que ignorem as emocoes do usuario, ou poderao assumir
o risco de criar maquinas que reconhecam as emocoes, as comuniquem e talvez ate as
“possuam”, pelo menos na forma em que elas possam ajudar/contribuir para a interacao
inteligente e as tomadas de decisao (PICARD, 2003).
2.1.3.1 Computacao Afetiva em ambientes de ensino virtuais
Diversas pesquisas foram feitas nessa area e diversas formas de se tratar e medir
estımulos emocionais foram propostas. Um dos ramos de pesquisa que a Computacao
Afetiva que tem grande utilidade e o ensino em ambientes virtuais. Para Longhi, Bercht
e Behar (2007), os processos de ensino e aprendizagem humana e o advento de novas
tecnologias para implantacao de salas de aulas e mundos virtuais ensejaram uma nova
interacao social mediada por computadores. Tradicionalmente, sistemas de aprendizado
virtual focam apenas o aprendizado, enquanto tutores humanos tambem se concentram
no componente emocional do aprendizado Lepper & Chabay(1988 apud Kaiser & Oertel,
2006). Kaiser e Oertel (2006) apresentaram um sensor para reconhecimento de emocoes na
forma de luva, com um receptor dos sinais que sao enviados pela mesma. Para classificar
as emocoes, e utilizada uma aproximacao dimensional baseada no modelo circumplexo de
Russell ou Russell’s circumplex model Russell(1980 apud Kaiser & Oertel, 2006). Outro
trabalho realizado em sistemas de aprendizado virtual foi feito por Longhi, Bercht e
Behar (2007), que consiste em reconhecimento de estados afetivos de um aluno dentro do
ambiente de aprendizagem ROODA (BEHAR; KIST; BITTENCOURT, 2001).
2.1.3.2 Computacao Afetiva em sistemas de vigilancia
Outra area que tem grande futuro na Computacao Afetiva e a de sistemas de vigilancia.
O ponto mais fraco em um sistema de vigilancia, o que nao e de se surpreender, sao as
pessoas que monitoram as cameras (BULLINGTON, 2005). Embora seja praticamente im-
possıvel retirar operadores dos sistemas de seguranca, existem metodos que podem ser
utilizados para contornar esse problema, como por exemplo, as tecnologias biometricas.
16
O reconhecimento de faces provavelmente e uma das tecnologias mais usadas por sistemas
de vigilancia, e e uma tecnologia que pode ser utilizada de varias formas pela Computacao
Afetiva. Bullington (2005) cita em seus estudos alguns cenarios onde tal tecnologia pode-
ria funcionar muito bem em conjunto com o reconhecimento de emocoes.
2.1.4 Questoes eticas
Outro ponto importante que deve ser analisado pela Computacao Afetiva e a questao
etica. Por causa da natureza psicologica invasiva da tecnologia de reconhecimento de
emocoes, alguns cenarios da area, principalmente aqueles referentes a sistemas de vigilancia,
possuem questoes de privacidade que deverao ser discutidas por todas as partes que en-
volvem o sistema para que exista uma satisfacao geral (BULLINGTON, 2005).
2.2 Novas interfaces
2.2.1 Brain-computer interfaces (BCI)
Uma BCI e um sistema de comunicacao que permite a pessoa transmitir sua intencao
para o mundo externo meramente pelo pensamento. Uma BCI funciona basicamente da
seguinte forma: a atividade cerebral do usuario e monitorada e os resultados sao expressos
em sinais cerebrais (como indicadores de atividade cerebral eletrica ou hemodinamica),
que sao processados a fim de obter caracterısticas que possam ser agrupadas em um vetor
de caracterısticas. Esse ultimo sera traduzido em um comando para executar uma acao
na aplicacao BCI (como por exemplo, mover o cursor do mouse na tela do computador)
(MOLINA; TSONEVA; NIJHOLT, 2009).
A BCI e o exemplo mais extremo de como a neurociencia pode mudar a trajetoria
da IHC (MINNERY; FINE, 2009). Essas interfaces sao projetadas para usar a atividade
cerebral como uma entrada adicional, permitindo a adaptacao da interface em tempo
real, de acordo com o estado mental do usuario (GIROUARD, 2009). Tambem voltadas
para o ambiente de jogos digitais, duas empresas vem se destacando criando BCIs baseadas
no eletroencefalograma, a Emotiv e a Neurosky. Esse e um mercado que tem futuro e,
provavelmente em pouco tempo, novas empresas estarao criando seus controles persona-
lizados para novos jogos que serao controlados pelo pensamento.
17
2.2.2 Emotiv EPOC
A empresa Emotiv Systems desenvolveu um neuroheadset baseado nos avancos tec-
nologicos na neurotecnologia, que usa uma serie de sensores que captam sinais eletricos
produzidos no cerebro para detectar pensamentos, sentimentos e expressoes. As seguintes
caracterısticas estao presentes no Emotiv EPOC:
• 14 sensores salinos que oferecem um melhor posicionamento espacial.
• Giroscopio que gera um melhores informacoes de posicao para cursores e cameras.
• Alto desempenho sem fio, que oferece aos usuarios uma gama de movimentos.
• O receptor e USB e nao requer drivers personalizados.
• Comunicacao com receptor feita atraves de uma conexao sem fio que opera na
frequencia de 2.4 Ghz.
• Bateria de lıtio que prove 12 horas de uso contınuo.
A Figura 2 apresenta como e o neuroheadset.
Figura 2: Neuroheadset Emotiv EPOCFonte: www.emotiv.com
2.3 Frameworks
De acordo com Fayad e Schmidt (1997), um framework orientado a objeto e uma
tecnologia que reduz custos e aumenta a qualidade de uma aplicacao. Um framework
e reutilizavel, ou seja, uma aplicacao “semi-completa” que pode ser especializada para
produzir outras aplicacoes personalizadas.
18
Ainda para Fayad e Schmidt (1997), os principais benefıcios de frameworks orien-
tados a objetos derivam da modularidade, reusabilidade e extensibilidade. Frameworks
melhoram a modularidade encapsulando detalhes volateis de implementacao em interfaces
estaveis. Isso ajuda a melhorar a qualidade do software, ja que facilita na localizacao de
impactos de mudancas de design e implementacao, reduzindo o esforco de entendimento e
manutencao do software. O uso de interfaces estaveis melhora a reusabilidade, definindo
componentes genericos que podem ser reaplicados ao se criar novas aplicacoes.
A reusabilidade aproveita o conhecimento de domınio do problema, a experiencia
de desenvolvedores para evitar a recriacao e revalidacao de solucoes ja implementadas,
e ainda melhora substancialmente a produtividade do programador, assim como a qua-
lidade, performance, confiabilidade e interoperabilidade do sistema. A extensibilidade
e essencial para garantir a customizacao de novas caracterısticas e servicos. (FAYAD;
SCHMIDT, 1997)
19
3 EmotivFramework
O EmotivFramework foi desenvolvido na linguagem C#.NET da Microsoft, e utiliza
uma plataforma para sistemas distribuıdos chamada WCF. O WCF e um modelo unificado
de programacao e ambiente de execucao que visa a construcao de aplicacoes orientadas
a servicos. Aplicacoes que utilizam essa plataforma de comunicacao estao prontas para
fornecer servicos atraves de diversos protocolos de comunicacao, e no EmotivFramework,
sao utilizados dois protocolos: o HTTP e o TCP. Assim, qualquer aplicacao que deseje
se conectar ao EmotivFramework pode realizar a comunicacao dos dados atraves desses
dois protocolos.
Para a execucao do EmotivFramework, e necessario um computador que possua as
seguintes caracterısticas:
• Requisitos mınimos:
– Processador: 500 MHz
– Memoria RAM: 128 Mb
– Sistema Operacional: Microsoft Windows XP/Vista/2003/7
– Microsoft .NET Framework 3.0 ou superior instalado.
• Requisitos recomendados:
– Processador: 1 GHz
– Memoria RAM: 256 Mb
– Sistema Operacional: Microsoft Windows XP/Vista/2003/7
– Microsoft .NET Framework 3.0 ou superior instalado.
O EmotivFramework se divide em tres modulos que serao explicados nas secoes a
seguir.
20
3.1 Nucleo do sistema
O nucleo do framework e onde todas as operacoes principais acontecem, como por
exemplo, as conexoes com o neuroheadset e o simulador, o processamento dos eventos
captados e o movimento do cursor do mouse na tela.
O nucleo do sistema e um servico que expoe metodos que podem ser acessados pelos
protocolos de comunicacao ditos anteriormente. Dentre esses metodos, sao exemplificados
os seguintes:
• ConnectToEmoComposer: Metodo responsavel por realizar a conexao com o simu-
lador EmoComposer
• ConnectToHeadset: Metodo responsavel por realizar a conexao com o neuroheadset
• ProcessEvents: Metodo principal, responsavel por processar os eventos capturados
no simulador ou no neuroheadset.
• ChangeGyroActivateStatus: Metodo que ativa ou desativa o controle do mouse na
tela pelo neuroheadset.
Como o EmotivFramework foi feito utilizando a tecnologia C#.NET 3.0, e necessario
que o Microsoft .NET Framework 3.0 (ou superior) esteja instalado na maquina em que
o framework funcionara.
3.1.1 Arquitetura do EmotivFramework
Os diagramas citados nesta secao estao localizados no Apendice C - Diagramas.
A organizacao do codigo do EmotivFramework baseia-se em quatro classes como e
mostrado no diagrama de classe, alem da biblioteca referente ao SDK do Emotiv EPOC.
A classe principal do sistema e a EmotivEpocHandler, que implementa a interface IEmo-
tivEpocHandler. Nessa interface, estao os codigos necessarios para os metodos implemen-
tados sejam visıveis em outras aplicacoes a partir do WCF. O uso de interface, nesse caso,
facilita a manutencao e organizacao do codigo, ja que os codigos necessarios para que
os metodos sejam visualizados em outras aplicacoes que utilizem o EmotivFramework so
estao na interface.
Existem tambem duas classes para os objetos de retorno dos metodos, que sao as
classes TOReturn e TOBatteryStatus. A classe TOReturn possui duas propriedades que
21
representam o codigo e a mensagem de retorno do metodo. A classe TOBatteryStatus
herda essas duas propriedades de TOReturn, alem das que retornam os valores de nıvel
de bateria. As classes de retorno sao baseadas em um padrao de projeto proposto por
Martin Fowler (FOWLER, 2002), que e utilizado em situacoes que e necessario invocar um
metodo com mais de um parametro, ou retornar mais de um valor em um metodo.
Como foi explicado no inıcio do Capıtulo 3, a comunicacao que acontece entre o Emo-
tivFramework e o sistema que utiliza seus servicos e feita atraves de uma tecnologia do
Microsoft .NET Framework chamada Windows Communication Foundation. Essa co-
municacao acontece atraves de dois protocolos de comunicacao: HTTP e TCP. Dentro
do EmotivFramework, existem quatro componentes: EmotivFramework, EmotivFrame-
work.Logger, EmotivFramework.MouseControl e o DotNetEmotivSDK que e a biblioteca
disponibilizada pela empresa para uso do dispositivo Emotiv EPOC. A forma de orga-
nizacao dos componentes do sistema esta desenhada no diagrama de componentes.
3.2 Logger
O modulo de logger e responsavel por realizar os logs dos eventos capturados pelo
simulador ou neuroheadset. Esses logs sao gravados em arquivos separados para cada tipo
de evento capturado e sao tambem arquivos no formato XML. Os arquivos de log sao:
• AffectivEmoStateLog.xml: Responsavel por armazenar dados referentes a estados
afetivos captados.
• CognitivEmoStateLog.xml: Responsavel por armazenar dados referentes a pensa-
mentos captados.
• ExpressivEmoStateLog.xml: Responsavel por armazenar dados referentes a ex-
pressoes faciais.
• GyroLog.xml: Responsavel por armazenar dados referentes a mudanca de posicao
do mouse na tela.
3.2.1 Estrutura do arquivo de log
Foi escolhido o tipo XML para o arquivo de log pela facilidade de trabalho para
operacoes futuras, ja que um arquivo XML pode ser comparado com uma tabela em um
22
banco de dados. Suas tags seriam as colunas e cada linha do arquivo representaria uma
linha na tabela.
A estrutura escolhida para o arquivo de log se baseia nas seguintes tags :
• Event: tag principal.
• type: essa tag informa qual o tipo de evento coletado pelo neuroheadset, como por
exemplo, um piscar de olho ou um sentimento de frustracao.
• value: a tag value contem o valor intensidade mensurado pelo neuroheadset.
• date: a tag date informa o horario do evento coletado no formato DD/MM/AAAA
hh:mm:ss.
• longTerm: essa longTerm e utilizada em eventos afetivos, e ela e utilizada para
analise de variacoes dos valores registrados nos eventos afetivos em longos perıodos
de tempo.
Existe tambem um arquivo de log com uma estrutura diferente, que e utilizado para
gravar os dados relacionados ao controle do ponteiro do mouse utilizando o Emotiv EPOC.
As tags utilizadas nesse arquivo estao descritas a seguir:
• Event: tag principal.
• type: essa tag informa qual o tipo de evento coletado pelo neuroheadset. No caso
desse arquivo, essa tag so sera preenchida com o valor “GyroEvent”.
• LastAxisX: posicao anterior do ponteiro do mouse no eixo X.
• LastAxisY: posicao anterior do ponteiro do mouse no eixo Y.
• NextAxisX: nova posicao do ponteiro do mouse no eixo X.
• NextAxisY: nova posicao do ponteiro do mouse no eixo Y.
• DeltaX: variacao entre a posicao antiga e a nova posicao no eixo X.
• DeltaY: variacao entre a posicao antiga e a nova posicao no eixo Y.
Os trechos de codigo XML 1 e XML 2 mostram exemplos de arquivos de log gerados
pelo EmotivFramework.
23
XML 1 Exemplo de um arquivo de log do EmotivFramework<?xml version="1.0"?>
<AffectivLog>
<Event type="AFF_ENGAGEMENT_BOREDOM" value="0,43"
date="19/11/2010 18:24:34" />
<Event type="AFF_EXCITEMENT" value="0,7"
date="19/11/2010 18:24:34" longTerm="0,6" />
<Event type="AFF_FRUSTRATION" value="0,21"
date="19/11/2010 18:24:34" />
<Event type="AFF_MEDITATION" value="0,9"
date="19/11/2010 18:24:34" />
</AffectivLog>
XML 2 Exemplo de um arquivo de log “GyroLog.xml”<?xml version="1.0" ?>
<GyroLog>
<Event type="GyroEvent" LastAxisX="2240" LastAxisY="276"
NextAxisX="2241" NextAxisY="276" DeltaX="1" DeltaY="0" />
<Event type="GyroEvent" LastAxisX="2241" LastAxisY="276"
NextAxisX="2244" NextAxisY="276" DeltaX="3" DeltaY="0" />
<Event type="GyroEvent" LastAxisX="2244" LastAxisY="276"
NextAxisX="2240" NextAxisY="284" DeltaX="-4" DeltaY="-8" />
<Event type="GyroEvent" LastAxisX="2240" LastAxisY="284"
NextAxisX="2238" NextAxisY="279" DeltaX="-2" DeltaY="5" />
<Event type="GyroEvent" LastAxisX="2238" LastAxisY="279"
NextAxisX="2235" NextAxisY="274" DeltaX="-3" DeltaY="5" />
<Event type="GyroEvent" LastAxisX="2235" LastAxisY="274"
NextAxisX="2235" NextAxisY="269" DeltaX="0" DeltaY="5" />
</GyroLog>
24
3.3 MouseControl
O modulo MouseControl e apenas responsavel por realizar a movimentacao do cursor
do mouse na tela do computador. Ele possui principalmente metodos que enviam sinais
de cliques dos botoes, e um metodo que realiza a troca de posicao do ponteiro na tela.
3.4 Documentacao
Todo o codigo do framework foi documentado para facilitar o desenvolvimento em
trabalhos futuros. Foram gerados dois arquivos de documentacao, contendo informacoes
dos metodos criados no EmotivFramework, os dois arquivos estao no formato HTML (de
paginas da web) e o formato CHM, que e formato de arquivos HTML de Help do Windows
compilados.
25
4 Metodologia
Um dos grandes campos de pesquisa da Computacao Afetiva e o Reconhecimento de
Emocoes ou Estados Afetivos. Vale ressaltar que reconhecer emocoes nao significa que
computadores irao reconhecer ou mensurar estados afetivos, ja que emocoes sao estados
internos que envolvem diversas mudancas fısicas e atividades cognitivas que nao podem
ser completamente reconhecidas nem pela pessoa que possui tal estado afetivo (PICARD,
1997).
Pode-se dividir as etapas de reconhecimento de um estado emotivo, de uma forma
generica, em tres etapas que estao ilustradas na Figura 3:
Figura 3: Processo para eeconhecimento de emocoes
• Aquisicao de Dados: a aquisicao de dados e uma parte fundamental neste pro-
cesso, ja que e nessa parte que os dados necessarios para a interpretacao sao coleta-
dos do usuario e enviados para a etapa posterior. Caso essa etapa falhe, buscando
dados incorretos por exemplo, os processos de interpretacao e modelagem estarao
suscetıveis a falhas.
• Interpretacao: na etapa de interpretacao, todos os dados capturados serao inter-
pretados. A partir dessa interpretacao, sera escolhido um modelo de emocao que
melhor se encaixe para fazer a modelagem e assim inferir da forma mais correta qual
e o estado afetivo do usuario no momento da aquisicao dos dados.
• Modelagem: nessa etapa, os dados adquiridos e interpretados sao inseridos em um
modelo de emocao, como por exemplo o OCC (ORTONY; CLORE; COLLINS, 1988).
26
Esse trabalho tem foco na fase de Aquisicao de Dados e para isso foi construıdo
o EmotivFramework, um framework capaz de coletar os dados de um dispositivo BCI
especıfico e gravar esses dados em um arquivo XML.
4.1 Aquisicao de dados
A Figura 4 descreve as etapas necessarias para a fase de Aquisicao de Dados.
Figura 4: Etapas para realizar a Aquisicao dos Dados no EmotivFrameworkFonte: Autor
As etapas de Aquisicao de Dados podem ser descritas da seguinte forma:
• Entrada de dados: a entrada de dados do EmotivFramework e feita atraves dos
dados coletados no neuroheadset EPOC.
• Leitura dos dados: os dados sao coletados atraves de sensores do neuroheadset e
interpretados pelo seu SDK. Com o auxılio desse SDK, o EmotivFramework inter-
preta os dados que o neuroheadset capta e grava em arquivos XML, que conterao
todas as informacoes sobre os dados recuperados.
• Saıda dos dados: a saıda dos dados e feita em um arquivo XML. Existe um
arquivo XML para cada tipo de dado reconhecido pelo neuroheadset, os tipos de
dados sao: dados de expressoes faciais, dados de atividades cognitivas e dados de
estados afetivos, alem dos dados do giroscopio contido no equipamento que permite
controlar o mouse na tela do computador.
Nos capıtulos seguintes serao apresentados os testes realizados para validar o frame-
work, assim como as conclusoes referentes ao trabalho.
27
5 Resultados
Para realizar os testes do EmotivFramework foram desenvolvidas duas novas aplicacoes
nomeadas EmotivFrameworkClient e EmotivLoggerClient. A primeira e responsavel por
utilizar os servicos fornecidos pelo EmotivFramework, e a segunda e responsavel por ler os
arquivos gerados pelo EmotivFramework e a partir destes dados, gerar graficos na tela da
aplicacao. Alem das aplicacoes desenvolvidas, foi utilizado para a coleta de dados, apenas
o neuroheadset EPOC, sem uso de outros tipos de sensores fisiologicos para comparacao
dos sinais obtidos.
O EmotivFrameworkClient e o EmotivLoggerClient utilizam a plataforma Microsoft
.NET e a linguagem de programacao C# no ambiente de desenvolvimento Microsoft Visual
Studio 2010. Para geracao dos graficos, foi utilizada a biblioteca nPlot (HOWLETT et al.,
2003).
Para validacao dos resultados, foram feitas simulacoes atraves do simulador EmoCom-
poser fornecido pela empresa. Essas simulacoes utilizam documentos em uma linguagem
de marcacao chamada EML, que sao arquivos no formato XML interpretados pelo si-
mulador. Essa linguagem, assim como os scripts utilizados no teste, e os testes serao
explicadas na secao seguinte.
Em relacao a aquisicao historica dos sinais, o EmotivLoggerClient e responsavel pela
visualizacao dos graficos para analise, interpretacao e modelagem posteriores por profis-
sionais da area de saude. Nessa aplicacao, foram realizados testes com a visualizacao dos
sinais em um determinado intervalo de tempo, sendo que os graficos sao apresentados com
todas as amostras obtidas. Como a coleta de dados do neuroheadset ja foi validada, a
validacao dos resultados dessa aplicacao foi feita a partir da comparacao entre os dados
obtidos nos arquivos de log e os scripts criados para teste.
28
5.1 Testes
5.1.1 EmoComposer Markup Language
A linguagem EML sao documentos XML que possuem as seguintes secoes:
• cabecalho: como a EML e uma implementacao generica de um documento XML
que usa codificacao UTF-8 e a lıngua norte americana, e necessario adicionar alem
do codigo normal de um cabecalho de um arquivo XML, o codigo responsavel por
identificar que e um arquivo EML. O cabecalho e formado pelas linhas 01 e 02 do
exemplo de um arquivo EML que esta representado no exemplo EML 1.
• config: secao responsavel por configurar os parametros globais para o comporta-
mento do simulador.
• sequence: secao responsavel por definir os eventos que serao detectados como se
estivessem ocorrendo no neuroheadset real.
Exemplo de um arquivo EML:
EML 1 Exemplo de arquivo EML<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE EML>
<EML version="1.0" language="en_US">
<sequence>
<time value="0s15t">
<cognitiv event="push" value ="0.85" />
<expressiv_upperface event="eyebrow_raised" value ="0.85" />
<expressiv_lowerface event="clench" value ="0.85" />
<expressiv_eye event="blink" value="1" />
<affectiv event="excitement_short_term" value="1" />
<affectiv event=excitement_long_term value=0.6 />
</time>
</sequence>
</EML>
Como ja foi dito, um arquivo EML pode ter duas secoes, a config e a sequence. No
exemplo EML 1, temos apenas a secao sequence, que e a mais importante do documento,
ja que e nela que todos os eventos sao simulados. Dentro da tag sequence existe uma a
tag time, que representa o tempo em que os eventos afetivos, cognitivos ou expressivos
irao acontecer. No exemplo, e simulado o evento cognitivo push, que e o pensamento de
29
empurrar objetos, as expressoes eyebrow raised, clench e blink, que sao as expressoes de
levantar a sombrancelha, ranger de dentes e piscar os olhos respectivamente, e o evento
afetivo excitement, que e o sentimento de excitacao. Alguns eventos afetivos coletados pelo
Emotiv EPOC possuem dois valores, short-term e long-term, que sao valores referentes a
alteracoes afetivas em curtos e longos perıodos de tempo, respectivamente.
5.1.2 Casos de testes
Para realizar os testes no EmotivFramework, foram utilizados quatro exemplos de
scripts na linguagem EML para simular eventos afetivos, cognitivos e expressoes faciais.
Alem dos testes simulados, tambem foi realizada uma coleta de dados utilizando o neu-
roheadset durante aproximadamente 1 minuto e 50 segundos, e foram coletados dados
sobre o estado afetivo e cognitivo do usuario. Apos os testes e simulacoes realizadas,
foram gerados graficos utilizando o aplicativo EmotivLoggerClient para todos os arquivos
XML gerados pelo framework. Nos graficos apresentados nessa secao, o eixo X equivale
ao numero de amostras coletadas durante o teste e o eixo Y corresponde a intensidade do
estado emotivo, que varia de 0 ate 1. Todos os scripts utilizados nos testes, assim como
os arquivos XML gerados pelo EmotivFramework estao disponibilizados no Apendice A
desse trabalho.
O primeiro caso de teste utilizado e uma ampliacao do exemplo de arquivo EML
mostrado no inıcio da secao 5.1. Os mesmo eventos foram simulados com outros valores
por mais duas vezes durante a execucao do script. As Figuras 5, 6 e 7 apresentam os
graficos gerados pelo EmotivLoggerClient para o Caso de Teste 1.
Figura 5: Caso de Teste 1: Grafico do log “AffectivEmoStateLog.xml”Fonte: Dados gerados pelo EmotivLoggerClient
O segundo caso de teste utilizado simula a expressao facial relacionada ao sorriso. Essa
simulacao consiste que em um perıodo de tempo e simulada a formacao de um sorriso. A
30
Figura 6: Caso de Teste 1: Grafico do log “CognitivEmoStateLog.xml”Fonte: Dados gerados pelo EmotivLoggerClient
Figura 7: Caso de Teste 1: Grafico do log “ExpressivEmoStateLog.xml”Fonte: Dados gerados pelo EmotivLoggerClient
Figura 8 apresenta o grafico gerado pelo EmotivLoggerClient para o Caso de Teste 2.
O terceiro caso de teste utilizado simula a expressao facial realicionada ao fixar dos
dentes. Essa simulacao consiste que em um perıodo de tempo a expressao facial sofra
variacoes na forca exercida pela formacao expressao. A Figura 9 apresenta o grafico
gerado pelo EmotivLoggerClient para o Caso de Teste 3.
O quarto caso de teste utilizado simula o pensamento cognitivo de empurrar algo.
A simulacao consiste em simular o evento cognitivo “empurrar” durante um perıodo de
tempo em que a “forca” do pensamento varie. A Figura 10 apresenta o grafico gerado
pelo EmotivLoggerClient para o Caso de Teste 4.
Para testar o uso do neuroheadset foram realizados testes relacionados as expressoes
faciais e controle do ponteiro do mouse. Nao foi possıvel realizar testes utilizando o re-
conhecimento de sentimentos e pensamentos (dados cognitivos e afetivos) devido a neces-
sidade de se criar um projeto de testes experimentais mais elaborados, feitos por profis-
sionais da area de saude e especıficos para cada tipo de estudo de caso clınico. Existe
tambem a necessidade dos testes serem realizados em ambientes controlados para se evitar
31
Figura 8: Caso de Teste 2: Grafico do log “ExpressivEmoStateLog.xml”Fonte: Dados gerados pelo EmotivLoggerClient
Figura 9: Caso de Teste 3: Grafico do log “ExpressivEmoStateLog.xml”Fonte: Dados gerados pelo EmotivLoggerClient
erros na coleta devido aos ruıdos externos. As Figuras 11, 12 e 13 mostram os resultados
da utilizacao do neuroheadset.
Atraves dos logs obtidos pelo EmotivFramework e os graficos gerados verificou-se que
todos os testes realizados tiveram resultados satisfatorios e, de acordo com o esperado.
Todos os objetivos propostos pelo estudo foram alcancados. Alem disso, foram verificados
se os graficos gerados pelo EmotivLoggerClient estavam de acordo com os arquivos XML
e EML.
32
Figura 10: Caso de Teste 4: Grafico do log “CognitivEmoStateLog.xml”Fonte: Dados gerados pelo EmotivLoggerClient
Figura 11: Caso de Teste 5: Grafico do log “AffectivEmoStateLog.xml”Fonte: Dados gerados pelo EmotivLoggerClient
Figura 12: Caso de Teste 5: Grafico do log “ExpressivEmoStateLog.xml”Fonte: Dados gerados pelo EmotivLoggerClient
33
Figura 13: Caso de Teste 5: Grafico do log “GyroLog.xml”Fonte: Dados gerados pelo EmotivLoggerClient
34
6 Conclusao
Atraves deste estudo, percebe-se a facilidade que o EmotivFramework pode propor-
cionar para pessoas que desejam desenvolver sistemas que interpretem, e ate modelem,
emocoes atraves do neuroheadset Emotiv EPOC. Um dos benefıcios que o uso de frame-
works proporciona e o fato de que sistemas que utilizam um framework evitam retrabalho,
ganhando horas de desenvolvimento que podem ser revertidas para o sistema que esta
sendo desenvolvido, com melhorias, testes ou outras atividades. Ate mesmo podera gerar
lucro para uma empresa, ja que a carga de trabalho sera menor. O EmotivFramework
e uma solucao que proporciona facilidades na aquisicao de dados atraves do neurohead-
set utilizado nos testes, e sua arquitetura ainda podera ser usada como base para outros
frameworks que tenham o objetivo de realizar essa etapa do Reconhecimendo de Emocoes
atraves de outros dispositivos externos.
Esse trabalho apresentou a proposta de um framework que realiza a etapa de aquisicao
de dados para o Reconhecimento de Emocoes utilizando o neuroheadset da empresa Emo-
tiv Systems. A solucao apresentada utiliza uma tecnologia que possibilita o uso deste
framework em aplicacoes que realizam comunicacao via protocolos TCP e HTTP, fazendo
dele um sistema que pode ser utilizado em diversas situacoes. Apesar das dificuldades
encontradas no desenvolvimento do projeto, como por exemplo, a escassez de fontes de
pesquisa que auxiliam no desenvolvimento utilizando o neuroheadset e tambem a dificul-
dade para testes, ja que e um dispositivo que e vendido apenas no Estados Unidos e o
suporte existente no site e apenas online.
A area da Computacao Afetiva e uma area muito promissora, que visa avancos tec-
nologicos antes imaginados apenas na ficcao, e cada vez mais esses avancos se aproximam
da vida real. Ao conseguir inferir dados corretos sobre as emocoes de um usuario enquanto
ele utiliza um computador, um leque de oportunidades de novas interacoes e aberto. O
futuro da Computacao que conhecemos pode estar relacionado interacoes desse tipo, em
que os usuarios se comunicarao com computadores da mesma forma que se comunicam
com pessoas, e tambem ficara vez mais difıcil fazer distincoes entre o que e humano,
35
ou nao. Alem desse tipo de benefıcio, a Computacao Afetiva podera trazer benefıcios
tambem a pessoas que tenham certas deficiencias, ou problemas para se expressar. Um
exemplo disso sao os estudos onde essa area e aplicada para tratamento de pessoas com
autismo e cada vez mais, resultados positivos sao esperados.
36
7 Trabalhos Futuros
Diversas sao as possibilidades de trabalhos futuros utilizando as aplicacoes criadas
neste Trabalho de Diplomacao. Alem implementacoes de novas funcionalidades dentro
do EmotivFramework, pode-se criar sistemas que utilizam o EmotivFramework e o neu-
roheadset como ferramentas para aquisicao de dados para o reconhecimento de emocoes
em usuarios. Exemplos novas funcionalidades ou melhorias que poderao ser realizadas em
trabalhos futuros utilizando este framework estao listadas a seguir:
• Implementacao de treinamento do sistema de coleta de dados de acordo com cada
usuario;
• Implementacao de um sistema que gere graficos em tempo real durante o uso do
neuroheadset ;
• Melhoramento da funcionalidade log, como por exemplo, registrar a qualidade dos
sinal entre o neuroheadset e o receptor, ou registrar a qualidade do sinal no sensores
que ficam ligados ao couro cabeludo;
• Criacao de sistemas que utilizem o framework como uma ferramenta para aquisicao
de dados;
• Implementacao de novas funcionalidades que permitem uma melhor interacao com o
neuroheadset para uso em outras areas, como por exemplo, criacao de jogos digitais;
• Criacao de aplicacoes que realizem certas interpretacoes dos sinais lidos automatica-
mente, como por exemplo, a interpretacao do significado de certos sinais coletados
em estados afetivos, cognitivos ou em expressoes;
• Implementacao de novas funcionalidades ou melhorias no EmotivLoggerClient e
EmotivFrameworkClient.
37
Referencias
AHN, H.; PICARD, R. W. Affective-cognitive learning and decision making: Amotivational reward framework for affective agent. In: The 1st International Conferenceon Affective Computing and Intelligent Interaction. [S.l.: s.n.], 2005.
BEHAR, P. A.; KIST, S. d. O.; BITTENCOURT, J. d. V. Rooda rede cooperativade aprendizagem - uma plataforma de suporte para aprendizagem a distancia. RevistaInformatica na Educacao: Teoria e Pratica, v. 3, p. 87–96, 2001.
BULLINGTON, J. ’affective’ computing and emotion recognition systems: the future ofbiometric surveillance? ACM, New York, NY, USA, p. 95–99, 2005.
BURKHARDT, F. et al. Emotion detection in dialog systems: Applications, strategiesand challenges. In: Affective Computing and Intelligent Interaction and Workshops,2009. ACII 2009. 3rd International Conference on. [S.l.: s.n.], 2009. p. 1 –6.
CANNON, W. B. The James-Lange Theory of Emotions: A Critical Examination andan Alternative Theory. The American Journal of Psychology, University of Illinois Press,v. 39, n. 1/4, p. 106–124, 1927.
EYBEN, F.; WOLLMER, M.; SCHULLER, B. Openear; introducing the munichopen-source emotion and affect recognition toolkit. In: Affective Computing andIntelligent Interaction and Workshops, 2009. ACII 2009. 3rd International Conferenceon. [S.l.: s.n.], 2009. p. 1 –6.
FAYAD, M.; SCHMIDT, D. C. Object-oriented application frameworks. Commun. ACM,ACM, New York, NY, USA, v. 40, n. 10, p. 32–38, October 1997.
FOWLER, M. Patterns of Enterprise Application Architecture. Boston, MA, USA:Addison-Wesley Longman Publishing Co., Inc., 2002. ISBN 0321127420.
GIROUARD, A. Adaptive brain-computer interface. In: CHI ’09: Proceedings of the27th international conference extended abstracts on Human factors in computing systems.New York, NY, USA: ACM, 2009. p. 3097–3100. ISBN 978-1-60558-247-4.
HE, L. et al. Stress and emotion recognition using log-gabor filter analysis of speechspectrograms. In: Affective Computing and Intelligent Interaction and Workshops, 2009.ACII 2009. 3rd International Conference on. [S.l.: s.n.], 2009. p. 1 –6.
HOWLETT, M. et al. nPlot. 2003. Disponıvel em: <http://netcontrols.org/nplot/wiki/>.
KAISER, R.; OERTEL, K. Emotions in hci: an affective e-learning system. In:VisHCI ’06: Proceedings of the HCSNet workshop on Use of vision in human-computerinteraction. Darlinghurst, Australia, Australia: Australian Computer Society, Inc., 2006.p. 105–106.
38
LONGHI, M.; BERCHT, M.; BEHAR, P. A. Reconhecimento de estados afetivos doaluno em ambientes virtuais de aprendizagem. 2007.
MINNERY, B. S.; FINE, M. S. Feature neuroscience and the future of human-computerinteraction. interactions, ACM, New York, NY, USA, v. 16, n. 2, p. 70–75, 2009. ISSN1072-5520.
MOLINA, G.; TSONEVA, T.; NIJHOLT, A. Emotional brain-computer interfaces. In:Affective Computing and Intelligent Interaction and Workshops, 2009. ACII 2009. 3rdInternational Conference on. [S.l.: s.n.], 2009. p. 1 –9.
ORTONY, A.; CLORE, G. L.; COLLINS, A. The Cognitive Structure of Emotions. [S.l.]:Cambridge University Press, 1988. Hardcover. ISBN 0521353645.
OSHERENKO, A. Emotext: Applying differentiated semantic analysis in lexical affectsensing. In: Affective Computing and Intelligent Interaction and Workshops, 2009. ACII2009. 3rd International Conference on. [S.l.: s.n.], 2009. p. 1 –2.
PARK, G.-Y. et al. Neurocognitive affective system for an emotive robot. In: IntelligentRobots and Systems, 2006 IEEE/RSJ International Conference on. [S.l.: s.n.], 2006. p.2595 –2600.
PETER, C. et al. Emotion in hci. In: BCS-HCI ’07: Proceedings of the 21st British HCIGroup Annual Conference on HCI 2008. Swinton, UK, UK: British Computer Society,2007. p. 211–212. ISBN 978-1-902505-95-4.
PICARD, R. W. Affective computing. MIT Press, Cambridge, MA, USA, 1995.
PICARD, R. W. Affective computing. Cambridge, MA, USA: MIT Press, 1997. ISBN0-262-16170-2.
PICARD, R. W. Affective computing for hci. In: Proceedings of HCI International (the8th International Conference on Human-Computer Interaction) on Human-ComputerInteraction: Ergonomics and User Interfaces-Volume I. Hillsdale, NJ, USA: L. ErlbaumAssociates Inc., 1999. p. 829–833. ISBN 0-8058-3391-9.
PICARD, R. W. Affective perception. Communications of the ACM, v. 43, p. 50–51,2000.
PICARD, R. W. Synthetic emotion. IEEE Comput. Graph. Appl., IEEE ComputerSociety Press, Los Alamitos, CA, USA, v. 20, n. 1, p. 52–53, 2000. ISSN 0272-1716.
PICARD, R. W. Affective computing: challenges. Int. J. Hum.-Comput. Stud., AcademicPress, Inc., Duluth, MN, USA, v. 59, n. 1-2, p. 55–64, 2003. ISSN 1071-5819.
PICARD, R. W.; VYZAS, E.; HEALEY, J. Toward machine emotional intelligence:Analysis of affective physiological state. IEEE Trans. Pattern Anal. Mach. Intell., IEEEComputer Society, Washington, DC, USA, v. 23, n. 10, p. 1175–1191, 2001. ISSN0162-8828.
SPIRIDON, E.; FAIRCLOUGH, S. Detection of anger with and without control foraffective computing systems. In: Affective Computing and Intelligent Interaction andWorkshops, 2009. ACII 2009. 3rd International Conference on. [S.l.: s.n.], 2009. p. 1 –6.
39
APENDICE A -- Scripts de teste
EML 2 Caso de Teste 1: Script EML teste.emo<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE EML>
<EML version="1.0" language="en_US">
<sequence>
<time value="0s15t">
<cognitiv event="push" value ="0.85" />
<expressiv_upperface event="eyebrow_raised" value ="0.85" />
<expressiv_lowerface event="clench" value ="0.85" />
<expressiv_eye event="blink" value="1" />
<affectiv event="excitement_short_term" value="1" />
<affectiv event="excitement_long_term" value="0.6" />
</time>
<time value="2s4t">
<cognitiv event="push" value ="0" />
<expressiv_upperface event="eyebrow_raised" value ="0.75" />
<expressiv_lowerface event="clench" value ="0.5" />
<expressiv_eye event="blink" value="1" />
<affectiv event="excitement_short_term" value="0.7" />
<affectiv event="excitement_long_term" value="0.6" />
</time>
<time value="3s6t">
<expressiv_upperface event="eyebrow_raised" value ="0.85" />
<expressiv_lowerface event="clench" value ="0.85" />
<expressiv_eye event="blink" value="1" />
<affectiv event="excitement_short_term" value="0.4" />
<affectiv event="excitement_long_term" value="0.5" />
</time>
</sequence>
</EML>
40
XML 3 Caso de Teste 1: Arquivo de Log “AffectivEmoStateLog.xml”<?xml version="1.0"?>
<AffectivLog>
<Event type="AFF_ENGAGEMENT_BOREDOM" value="0"
date="19/11/2010 18:24:32" />
<Event type="AFF_EXCITEMENT" value="0"
date="19/11/2010 18:24:32" longTerm="0" />
<Event type="AFF_FRUSTRATION" value="0"
date="19/11/2010 18:24:32" />
<Event type="AFF_MEDITATION" value="0"
date="19/11/2010 18:24:32" />
<Event type="AFF_ENGAGEMENT_BOREDOM" value="0"
date="19/11/2010 18:24:33" />
<Event type="AFF_EXCITEMENT" value="1"
date="19/11/2010 18:24:33" longTerm="0,6" />
<Event type="AFF_FRUSTRATION" value="0"
date="19/11/2010 18:24:33" />
<Event type="AFF_MEDITATION" value="0"
date="19/11/2010 18:24:33" />
<Event type="AFF_ENGAGEMENT_BOREDOM" value="0"
date="19/11/2010 18:24:34" />
<Event type="AFF_EXCITEMENT" value="0,7"
date="19/11/2010 18:24:34" longTerm="0,6" />
<Event type="AFF_FRUSTRATION" value="0"
date="19/11/2010 18:24:34" />
<Event type="AFF_MEDITATION" value="0"
date="19/11/2010 18:24:34" />
<Event type="AFF_ENGAGEMENT_BOREDOM" value="0"
date="19/11/2010 18:24:35" />
<Event type="AFF_EXCITEMENT" value="0,4"
date="19/11/2010 18:24:35" longTerm="0,5" />
<Event type="AFF_FRUSTRATION" value="0"
date="19/11/2010 18:24:35" />
<Event type="AFF_MEDITATION" value="0"
date="19/11/2010 18:24:35" />
</AffectivLog>
XML 4 Caso de Teste 1: Arquivo de Log “CognitivEmoStateLog.xml”<?xml version="1.0"?>
<CognitivLog>
<Event type="COG_NEUTRAL" value="0" date="19/11/2010 18:24:32" />
<Event type="COG_PUSH" value="0,85" date="19/11/2010 18:24:33" />
<Event type="COG_PUSH" value="0" date="19/11/2010 18:24:34" />
</CognitivLog>
41
XML 5 Caso de Teste 1: Arquivo de Log “ExpressivEmoStateLog.xml”<?xml version="1.0"?>
<ExpressivLog>
<Event type="EXP_BLINK" value="1" date="19/11/2010 18:24:33" />
<Event type="EXP_CLENCH" value="0,85" date="19/11/2010 18:24:33" />
<Event type="EXP_EYEBROW" value="0,85" date="19/11/2010 18:24:33" />
<Event type="EXP_BLINK" value="1" date="19/11/2010 18:24:34" />
<Event type="EXP_CLENCH" value="0,5" date="19/11/2010 18:24:34" />
<Event type="EXP_EYEBROW" value="0,75" date="19/11/2010 18:24:34" />
<Event type="EXP_BLINK" value="1" date="19/11/2010 18:24:35" />
<Event type="EXP_CLENCH" value="0,85" date="19/11/2010 18:24:35" />
<Event type="EXP_EYEBROW" value="0,85" date="19/11/2010 18:24:35" />
</ExpressivLog>
42
EML 3 Caso de Teste 2: Script EML smile<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE EML>
<EML version="1.0" language="en_US">
<sequence>
<time value ="0s">
<expressiv_lowerface event="smile" value="0" />
</time>
<time value ="0s29t">
<expressiv_lowerface event="smile" value="0.03" />
</time>
<time value ="1s">
<expressiv_lowerface event="smile" value="0.2" />
</time>
<time value ="1s11t">
<expressiv_lowerface event="smile" value="0.66" />
</time>
<time value ="1s14t">
<expressiv_lowerface event="smile" value="0.65" />
</time>
<time value ="1s17t">
<expressiv_lowerface event="smile" value="1" />
</time>
<time value ="2s8t">
<expressiv_lowerface event="smile" value="0.86" />
</time>
<time value ="2s13t">
<expressiv_lowerface event="smile" value="0.5" />
</time>
<time value ="2s16t">
<expressiv_lowerface event="smile" value="0.24" />
</time>
<time value ="2s21t">
<expressiv_lowerface event="smile" value="0.01" />
</time>
<time value ="2s24t">
<expressiv_lowerface event="smile" value="0" />
</time>
</sequence>
</EML>
43
XML 6 Caso de Teste 2: Arquivo de Log “ExpressivEmoStateLog.xml”<?xml version="1.0"?>
<ExpressivLog>
<Event type="EXP_SMILE" value="0,03" date="20/11/2010 12:25:19" />
<Event type="EXP_SMILE" value="0,2" date="20/11/2010 12:25:19" />
<Event type="EXP_SMILE" value="0,66" date="20/11/2010 12:25:19" />
<Event type="EXP_SMILE" value="0,65" date="20/11/2010 12:25:19" />
<Event type="EXP_SMILE" value="1" date="20/11/2010 12:25:19" />
<Event type="EXP_SMILE" value="0,86" date="20/11/2010 12:25:20" />
<Event type="EXP_SMILE" value="0,5" date="20/11/2010 12:25:20" />
<Event type="EXP_SMILE" value="0,24" date="20/11/2010 12:25:20" />
<Event type="EXP_SMILE" value="0,01" date="20/11/2010 12:25:21" />
</ExpressivLog>
44
EML 4 Caso de Teste 3: Script EML clench<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE EML>
<EML version="1.0" language="en_US">
<sequence>
<time value ="0s8t">
<expressiv_lowerface event="clench" value="0.14" />
</time>
<time value ="0s12t">
<expressiv_lowerface event="clench" value="0.42" />
</time>
<time value ="0s26t">
<expressiv_lowerface event="clench" value="0.59" />
</time>
<time value ="0s27t">
<expressiv_lowerface event="clench" value="0.71" />
</time>
<time value="1s0t">
<expressiv_lowerface event="clench" value="0.72" />
</time>
<time value ="2s12t">
<expressiv_lowerface event="clench" value="0.98" />
</time>
<time value ="2s17t">
<expressiv_lowerface event="clench" value="0.94" />
</time>
<time value ="2s22t">
<expressiv_lowerface event="clench" value="0.96" />
</time>
<time value ="2s26t">
<expressiv_lowerface event="clench" value="0.91" />
</time>
<time value="3s0t">
<expressiv_lowerface event="clench" value="0.98" />
</time>
<time value ="3s24t">
<expressiv_lowerface event="clench" value="0.44" />
</time>
<time value ="3s29t">
<expressiv_lowerface event="clench" value="0.13" />
</time>
</sequence>
</EML>
45
XML 7 Caso de Teste 3: Arquivo de Log “ExpressivEmoStateLog.xml”<?xml version="1.0"?>
<ExpressivLog>
<Event type="EXP_CLENCH" value="0,14" date="20/11/2010 14:48:33" />
<Event type="EXP_CLENCH" value="0,42" date="20/11/2010 14:48:33" />
<Event type="EXP_CLENCH" value="0,59" date="20/11/2010 14:48:33" />
<Event type="EXP_CLENCH" value="0,71" date="20/11/2010 14:48:33" />
<Event type="EXP_CLENCH" value="0,72" date="20/11/2010 14:48:34" />
<Event type="EXP_CLENCH" value="0,98" date="20/11/2010 14:48:35" />
<Event type="EXP_CLENCH" value="0,94" date="20/11/2010 14:48:35" />
<Event type="EXP_CLENCH" value="0,96" date="20/11/2010 14:48:35" />
<Event type="EXP_CLENCH" value="0,91" date="20/11/2010 14:48:35" />
<Event type="EXP_CLENCH" value="0,98" date="20/11/2010 14:48:36" />
<Event type="EXP_CLENCH" value="0,44" date="20/11/2010 14:48:36" />
<Event type="EXP_CLENCH" value="0,13" date="20/11/2010 14:48:37" />
</ExpressivLog>
46
EML 5 Caso de Teste 4: Script EML push<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE EML>
<EML version="1.0" language="en_US">
<sequence>
<time value ="0s21t">
<cognitiv event="push" value ="0.000801743" />
</time>
<time value ="0s26t">
<cognitiv event="push" value ="0.108376" />
</time>
<time value ="0s30t">
<cognitiv event="push" value ="0.212551" />
</time>
<time value ="1s25t">
<cognitiv event="push" value ="0.646925" />
</time>
<time value ="1s30t">
<cognitiv event="push" value ="0.620057" />
</time>
<time value ="2s1t">
<cognitiv event="push" value ="0.570432" />
</time>
<time value ="2s5t">
<cognitiv event="push" value ="0.506706" />
</time>
<time value ="2s20t">
<cognitiv event="push" value ="0.392487" />
</time>
<time value ="2s22t">
<cognitiv event="push" value ="0.386782" />
</time>
<time value ="3s2t">
<cognitiv event="push" value ="0.433085" />
</time>
<time value ="3s6t">
<cognitiv event="push" value ="0.462805" />
</time>
<time value ="3s16t">
<cognitiv event="push" value ="0.533734" />
</time>
<time value="4s0t">
<cognitiv event="push" value ="0.689345" />
</time>
</sequence>
</EML>
47
XML 8 Caso de Teste 4: Arquivo de Log “CognitivEmoStateLog.xml”<?xml version="1.0"?>
<CognitivLog>
<Event type="COG_NEUTRAL" value="0" date="20/11/2010 14:46:06" />
<Event type="COG_PUSH" value="0,000801743" date="20/11/2010 14:46:06" />
<Event type="COG_PUSH" value="0,108376" date="20/11/2010 14:46:06" />
<Event type="COG_PUSH" value="0,212551" date="20/11/2010 14:46:07" />
<Event type="COG_PUSH" value="0,646925" date="20/11/2010 14:46:07" />
<Event type="COG_PUSH" value="0,620057" date="20/11/2010 14:46:08" />
<Event type="COG_PUSH" value="0,570432" date="20/11/2010 14:46:08" />
<Event type="COG_PUSH" value="0,506706" date="20/11/2010 14:46:08" />
<Event type="COG_PUSH" value="0,392487" date="20/11/2010 14:46:08" />
<Event type="COG_PUSH" value="0,386782" date="20/11/2010 14:46:08" />
<Event type="COG_PUSH" value="0,433085" date="20/11/2010 14:46:09" />
<Event type="COG_PUSH" value="0,462805" date="20/11/2010 14:46:09" />
<Event type="COG_PUSH" value="0,533734" date="20/11/2010 14:46:09" />
<Event type="COG_PUSH" value="0,689345" date="20/11/2010 14:46:10" />
</CognitivLog>
48
APENDICE B -- Telas dos sistemas
Figura 14: Tela do EmotivFrameworkClient
Figura 15: Tela principal do EmotivLoggerClient
49
APENDICE C -- Diagramas
Figura 16: Diagrama de classe
Figura 17: Diagrama de componentes