Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Reconhecimento de Expressões Faciais: Algoritmos e Técnicas Usados no Projeto Scanface, Esquemas de Matemática

O desenvolvimento do scanface, um projeto que utiliza algoritmos de processamento de imagens digitais, como opencv e viola-jones, para detectar e interpretar as expressões faciais de usuários através de imagens capturadas por uma webcam. O objetivo é melhorar a interação entre usuários e até mesmo entre usuários e inteligências artificiais. O texto explica os algoritmos utilizados, como viola-jones na detecção de objetos, gaussian blur e canny na manipulação da imagem da face, e a utilização do sistema facs para determinar as emoções através dos movimentos musculares.

Tipologia: Esquemas

2020

Compartilhado em 24/11/2020

fernando-cansas
fernando-cansas 🇧🇷

1 documento

1 / 40

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
UNIVERSIDADE CATÓLICA DE PELOTAS
CENTRO POLITÉCNICO
DESENVOLVIMENTO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
SCANFACE
por
Rodrigo Fernandes de Lima
Trabalho de Curso II submetido como
requisito parcial à obtenção do grau de Tecnólogo
em Analise e Desenvolvimento de Sistemas.
Orientador: Prof. Me. Luciano Edson Mertins
Pelotas, Novembro de 2014
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28

Pré-visualização parcial do texto

Baixe Reconhecimento de Expressões Faciais: Algoritmos e Técnicas Usados no Projeto Scanface e outras Esquemas em PDF para Matemática, somente na Docsity!

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO DESENVOLVIMENTO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

SCANFACE

por Rodrigo Fernandes de Lima Trabalho de Curso II submetido como requisito parcial à obtenção do grau de Tecnólogo em Analise e Desenvolvimento de Sistemas. Orientador: Prof. Me. Luciano Edson Mertins Pelotas, Novembro de 2014

“A persistência é o menor caminho do êxito.” Charles Chaplin

  • 1.INTRODUÇÃO..............................................................................................................
  • 2.OBJETIVOS.................................................................................................................
    • 2.1Objetivos Gerais.....................................................................................................
    • 2.2Objetivos Específicos.............................................................................................
  • 3.METODOLOGIA.........................................................................................................
  • 4.FUNDAMENTAÇÃO TEÓRICA................................................................................
    • 4.1Visão Computacional.............................................................................................
      • 4.1.1Viola-Jones.....................................................................................................
      • 4.1.2Adaboost........................................................................................................
    • 4.2COMPUTAÇÃO AFETIVA..................................................................................
      • 4.2.1FACS – Sistema de codificação facial...........................................................
  • 5.OPENCV......................................................................................................................
  • 6.TRABALHO DESENVOLVIDO.................................................................................
    • 6.1Detecção da Face...................................................................................................
    • 6.2Normalização.........................................................................................................
    • 6.3Detecção das Características..................................................................................
    • 6.4Extração das Landmarks........................................................................................
    • 6.5Classificação..........................................................................................................
    • 6.6Resultados..............................................................................................................
  • 7.CONCLUSÃO..............................................................................................................
    • 7.1Conclusão...............................................................................................................
    • 7.2Dificuldades encontradas.......................................................................................
    • 7.3Trabalhos Futuros..................................................................................................
  • 8.REFERÊNCIA..............................................................................................................
  • Figura 1: Calculo da área da região retangular de uma imagem integral........................ LISTA DE FIGURAS
  • Figura 2: Características do tipo Haar-like......................................................................
  • Figura 3: Cascata de classificadores................................................................................
  • Figura 4: algoritmo Adaboost..........................................................................................
  • Figura 5: Exemplos de AU..............................................................................................
  • Figura 6: Diagrama de Atividade.....................................................................................
  • Figura 7: Diagrama de sequência....................................................................................
  • Figura 8: Detecção utilizando OpenCV...........................................................................
  • Figura 9: Área que receberá normalização......................................................................
  • Figura 10: Uso do Gaussian Blur (Direita)......................................................................
  • Figura 11: Área que receberá normalização....................................................................
  • Figura 12: Landmarks da face.........................................................................................
  • Figura 13: Landmarks extraídas de um olho...................................................................
  • Figura 14: Imagem obtida com o detector de bordas Canny...........................................
  • Figura 15: Exemplo de extração das características do olho...........................................
  • Figura 16: (Amostra 1) Original, Limiarizada e Limiarizada com histograma...............
  • Figura 17: (Amostra 2) Original, Limiarizada e Limiarizada com histograma...............

LISTA DE TABELAS

Tabela 1: Alguns AUs da Tabela FACS........................................................................... 20 Tabela 2: Combinações de AU........................................................................................ 35

RESUMO

O Scanface apresenta um algoritmo que tem como finalidade captar, através de imagens coletadas por uma webcam, a face do usuário, sua boca, nariz e olhos, buscando interpretar suas expressões, retornando as emoções alegria, tristeza, raiva, medo, repulsa e surpresa. O algoritmo faz uso de bibliotecas como OpenCV e métodos como Viola-Jones para determinar as áreas correspondentes à face, utilizando-se também do sistema psicológico de codificação facial (FACS) para determinar, através dos movimentos musculares, qual a emoção correspondente a imagem capturada do usuário. Palavras-chave: Computação Visual, Identificação de Expressão Facial, Computação Afetiva.

TITLE: “SCANFACE”

ABSTRACT

The Scanface presents an algorithm that aims to attain, through a webcam images collected, the interpretations of the users expressions, returning the emotions happiness, sadness, anger, fear, disgust and surprise. The algorithm uses libraries like OpenCV and methods as Viola-Jones to determine the areas corresponding to the face, making also use of the psychological system of coding facial (FACS) to determine, through muscular movements, which emotion corresponds to the captured image of the user. Keywords : Visual Computing, Identification of Facial Expression, Affective Computing.

2. OBJETIVOS

2.1 Objetivos Gerais

Este projeto tem como objetivo geral a criação de um algoritmo para interpretação das emoções, através da expressão facial, utilizando-se de imagens captadas por uma webcam.

2.2 Objetivos Específicos

  • Realizar um estudo do estado da arte do reconhecimento facial e de sua interpretação para identificação das emoções (alegria, tristeza, raiva, medo, repulsa e surpresa), abordando aspectos técnicos e científicos relacionados ao desenvolvimento dos sistemas e métodos de reconhecimento e interpretação;
  • Desenvolver um algoritmo com capacidade de detectar a face, extrair as informações de localização dos olhos, nariz e boca e interpretar as expressões faciais humanas, utilizando as bibliotecas de visão computacional OpenCV 2.4. (^1) , implementado na linguagem Java; 1 OPENCV. Web Site. Disponível em: http://opencv.willowgarage.com/wiki

3. METODOLOGIA

A metodologia aplicada neste trabalho obedece aos passos a seguir:

  • Revisão bibliográfica e estudo sobre os principais conceitos utilizados em um sistema de reconhecimento de expressão facial;
  • Estudo das técnicas e algoritmos de processamento de imagens digitais mais utilizadas em reconhecimento facial;
  • Estudo sobre as bibliotecas OpenCV;
  • Desenvolvimento do algoritmo de reconhecimento em Java usando o OpenCV 2.4.9;
  • Verificação e análise dos resultados.

é apresentado um classificador para detecção de objetos, enfatizando a distinção da área da face. Essa detecção se dá sob imagens estáticas em escalas de cinza, com capacidade para seu uso em aplicações de tempo real. A estrutura deste modelo desenvolve-se em três módulos distintos:

  1. Criação da imagem integral;
  2. Utilização do algoritmo Adaboost para classificação, através das características Haar-like ;
  3. Criação de uma estrutura em árvore, chamada de cascata de classificadores. Imagem integral é o nome que se dá à representação de uma imagem original qualquer, através de um somatório da densidade de pixels que ocorre em pontos específicos dessa imagem. O cálculo engloba valores que contém a soma da densidade de pixels em um determinado ponto, somando para cada pixel da imagem, o valor de cada pixel à esquerda do pixel de ponto de partida. Como no exemplo da Figura 1, o ponto 1 contém o somatório da área do retângulo A. O ponto 2 equivale a soma dos retângulos A e B, assim como o ponto 3 é igual a A + C e o ponto 4, A + B + C + D. A soma dos pixels na área do retângulo D engloba o cálculo entre os pontos: 4 + 1 - (2 + 3). A próxima etapa utilizará a imagem integral obtida. Figura 1 : Calculo da área da região retangular de uma imagem integral (VIOLA;JONES, 2001)

As Haar-like features empregadas em detecção da face recebem esse nome por sua similaridade intuitiva com as Haar wavelets (HAAR, 1910), que podem ser vistas como mecanismos para decompor ou quebrar sinais nas suas partes constituintes, permitindo analisar os dados em diferentes domínios de frequências com a resolução de cada componente amarrada à sua escala (LIMA, 2003), uma vez que estas foram a base sobre a qual Viola e Jones adaptaram sua experiência em detecção. Uma Haar-like feature leva em conta regiões retangulares adjacentes para uma janela de detecção de uma localização específica, somando a densidade dos pixels em cada região e calculando a diferença entre estas somas. Esta diferença é então utilizada para categorizar subseções da imagem. Portanto, no modelo Viola-Jones, as características são representadas por uma quantidade de retângulos que contêm regiões claras e escuras, onde o resultado se dá pela soma de pixels das regiões claras, e a subtração da soma de pixels das regiões escuras. Este resultado representará o valor encontrado pela característica para determinada região (Figura 2). Em seu trabalho, Viola e Jones (2001) definiram quatro tipos de características para uso (Figura 2, subfiguras 1a, 1b, 2a e 4). Seguindo propostas sugeridas por Lienhart e Maydt (2002), estas características foram ampliadas, sendo acrescentadas Figura 2 : Características do tipo Haar-like (LIENHART; MAYDT, 2002).

cada nível, uma amostragem positiva e negativa e os valores de falsos positivos para todas as camadas da cascata (Figura 3). A cascata se constrói então, sob o número de níveis que obtenham, na classificação sobre a amostragem, os valores de falsos positivos menores que aquele determinado para a cascata. Para se utilizar da cascata treinada, a classificação se dá sobre uma sub-janela do mesmo tamanho demarcado no treinamento. O procedimento de classificação percorre a imagem a ser examinada, para então serem feitos ajustes na escala do classificador de modo que a face possa ser identificada em uma imagem ampliada. A próxima subseção explana o algoritmo de boosting do qual Viola e Jones fizeram uso, o Adaboost.

4.1.2 Adaboost

Adaboost, é uma abreviatura de Adaptative Boosting, um dos mais conceituados algoritmos de boosting existentes, que pode ser utilizado para ampliar o desenvolvimento de outros algoritmos de aprendizagem (FREUND; SCHAPIRE, 1995). Boosting é um método de treinamento de máquina que trabalha com a combinação de vários classificadores fracos para evoluir até uma classificação forte (SCHAPIRE, 1990). No intuito de obter uma classificação conjunta forte de maior eficiência, é que se realiza um conjunto de várias classificações fracas, ao invés de apenas uma forte. De Figura 3 : Cascata de classificadores (MA,2007).

acordo com o número de classificadores fracos combinados, boosting obtém melhores resultados do que utilizando apenas um classificador forte. Classificadores fracos são aqueles que retornam hipóteses com baixo nível de cobertura - resposta melhor que 50/50. Durante o treinamento com o Adaboost, várias repetições são realizadas, nas quais as classificações de um classificador fraco recebem pesos. Para cada classificação realizada corretamente a partir dos exemplos de teste, é atribuído um peso menor, em contrapartida às classificações incorretas é atribuído um peso maior. A cada classificação, o processo atualiza os índices de distribuição de erro. O “adaptative” em Adaptative Boosting , refere-se a atribuição de pesos feita a partir da performance nos testes de aprendizado/treinamento. Logo abaixo segue a descrição das etapas do algoritmo de classificação Adaboost (para classificação binária e discreta):

  1. Adaboost recebe um conjunto de teste pré-determinado, onde cada exemplo possui uma classificação (caso positivo ou caso negativo). O algoritmo faz n repetições, e em cada uma utiliza o classificador fraco;
  2. A cada repetição, o classificador obtém uma classificação (hipótese) a partir dos exemplos do teste. O termo que determina a regra do classificador para o Adaboost, como padrão, realiza uma classificação binária (caso positivo, caso negativo);
  3. Os erros na classificação (erro sobre a hipótese) são calculados com base no conjunto de teste. Ele corresponde ao peso dos falsos positivos e falsos negativos do conjunto de teste;
  4. São atribuídos pesos sobre as classificações dos exemplos de teste, sendo que as classificações corretas têm seu peso reduzido (ou, em outro sentido, aumenta quando é mal classificado). Inicialmente, todos os exemplos de treino têm o mesmo peso (1/número de exemplos), mas no fim os casos de classificação mais difícil têm peso maior;
  5. Dentro de cada repetição os pesos são normalizados, de forma que a soma de todos os pesos seja igual a 1;

A busca por uma relação onde o computador entenda e manifeste emoções é o foco das pesquisas em Computação Afetiva (PICARD, 1995).

4.2.1 FACS – Sistema de codificação facial

Estudos de Paul Ekman e Wallace V. Friesen sobre o comportamento facial resultaram na construção do sistema Facial Action Coding System - FACS (EKMAN; FRIESEN; HAGER, 2002). Este sistema classifica como Action Units (AU) todas as ações faciais causadas por contrações musculares (um ou mais músculos), que, com ou sem combinações, representam todas as expressões faciais possíveis, incluindo sua intensidade, duração e simetria. O sistema FACS (Figura 5) se compõe de 46 Action Units, que são as responsáveis pela descrição de ações faciais. Estas 46 AUs dividem-se em duas regiões faciais:

  • Superior - que contempla os olhos (pálpebras), sobrancelhas e testa;
  • Inferior - que abarca as bochechas, queixo, nariz e boca (lábios).

Referência Ação Superior 1 Elevação da parte interior das sobrancelhas 2 Elevação da parte exterior das sobrancelhas 4 Depressão das sobrancelhas 5 Elevação da pálpebra superior 6 Elevação da bochecha 7 Compressão das pálpebras 41 Pálpebras superiores descontraídas 42 Pálpebras semicerradas 43 Pálpebras cerradas 44 Sobrancelha franzida 45 Piscar de olhos 46 Piscar de um só olho Inferior 9 Enrugamento do nariz 10 Elevação do lábio superior 11 Aumento de profundidade da região nasolabial 12 Alongamento dos cantos da boca 13 Cantos da boca ligeiramente repuxados para cima 14 Cantos da boca ligeiramente repuxados para baixo 15 Depressão dos cantos da boca 16 Depressão do lábio inferior 17 Elevação do queixo 18 Contração extrema de ambos os lábios 20 Alongamento extremo, rebaixado, dos lábios 22 Compressão dos lábios mostrando os dentes 23 Compressão da boca 24 Pressão compressiva dos lábios 25 Separação entre os lábios 26 Maxilar aberto 27 Boca amplamente aberta 28 Lábios comprimidos para o interior da boca Tabela 1 : Alguns AUs da Tabela FACS (EKMAN; FRIESEN)