Analisando Microexpressões Faciais em Python

Você já deve ter ouvido falar de microexpressões faciais, a ideia é que a partir delas conseguimos extrair informações valiosas sobre como uma pessoa está pensando, sentindo e o que planeja fazer.

Inovações recentes em algoritmos de visão computacional e aprendizado profundo levaram a uma enxurrada de modelos que podem ser usados para extrair pontos de referência faciais, unidades de ação e microexpressões faciais com velocidade e precisão.

Hoje iremos conhecer uma dessas soluções em Python.

O que é

Microexpressões faciais são expressões faciais breves e involuntárias, elas são geralmente muito rápidas e podem ser difíceis de detectar. Elas são uma parte importante da comunicação não verbal e podem ser usadas para ajudar a identificar o que uma pessoa está sentindo ou pensando, mesmo que ela esteja tentando esconder isso.

Por exemplo, uma pessoa pode tentar esconder seu medo com uma expressão calma e controlada, mas uma microexpressões facial de medo pode aparecer por um breve momento, revelando o que a pessoa realmente está sentindo.

Instalando e etilizando o Py-Feat

Primeiro, o que é o Py-Feat?

Py-Feat: “Python Facial Expression Analysis Toolbox” ou, em português, Caixa de Ferramentas de Análise de Expressão Facial em Python“. Segundo os criadores da ferramenta:

"O Py-Feat fornece um conjunto abrangente de ferramentas e modelos para detectar facilmente microexpressões faciais (unidades de ação, emoções, pontos de referência faciais) a partir de imagens e vídeos, pré-processar e analisar esses dados e também visualizá-los."

Vamos instalar o Py-Feat em nosso ambiente com o seguinte comando abaixo:

				
					$ pip install py-feat
				
			

Após a instalação podemos criar um detector da seguinte forma:

				
					from feat import Detector

detector = Detector()
				
			

Agora podemos começar as nossas análises, e só por diversão tentarei utilizar as imagens mais absurdas possíveis!

Primeira imagem…

Para carregar as imagens e realizar nossa análise basta utilizar o seguinte comando:

				
					result = detector.detect_image('caminho-até-sua-imagem.png')
				
			

Como resultado temos um objeto do tipo “feat.data.Fex”, mas não se assuste, ele é basicamente um DataFrame Pandas com alguns métodos a mais. Repare a baixo que este DataFrame armazena algumas informações extraídas da nossa imagem.

O nosso objeto de resultado possui um método chamado “plot_detections” que podemos utilizar para melhor visualizar suas informações, veja alguns exemplos abaixo.

Realmente incrível, além de detectar corretamente a emoção presente na imagem que utilizamos, nesta casso “felicidade” (happiness), o Py-Feat ainda nos traz essa incrível visualização de quais conjuntos de músculos faciais estão sendo ativados para compor aquela expressão.

Vamos fazer mais um teste com uma imagem diferente, contendo uma emoção relativamente mais complexa.

Utilizando a imagem acima temos o seguinte resultado:

Incrível, mais uma vez sucesso, e repare nos seguintes pontos:

  • A face estava apenas parcialmente exposta na imagem, e mesmo assim o Py-Feat conseguiu detectá-la e classificá-la corretamente;
  • A face não contem apenas uma emoção, mas sim duas principais, raiva e nojo;

Pseudociência?

Vimos acima que o Py-Feat é uma ferramenta incrível de detecção de microexpressões faciais, mas você deveria confiar nela?

Apesar de hoje em dia essa teoria ser tratada no senso comum como verdade absoluta (graças a alguns canais de YouTube e series de ficção), a comunidade cientifica ainda não chegou a um consenso sobre a teoria das “microexpressões faciais universais”.  Recomendo para aqueles interessados sobre o tema assistir o video abaixo do canal “Física e Afins” sobre o tema.

Conclusão

O que você acha, microexpressões faciais são uma pseudociência ou até mesmo uma ciência ultrapassada?   

Por favor, me diga sua opinião abaixo! O que achou da análise? Teria feito algo a mais ou diferente, o que?

5 2 Votos
Relevância do artigo
Se inscrever
Notificar de
0 Comentários
Inline Feedbacks
Ver todos
Rolar para cima