Você está na página 1de 8

Reconhecimento Facial:

Principais algoritmos: Eigenfaces e DeepFaces


Facial recognition:
Main algorithms: Eigenfaces and DeepFaces

Ed Carlos da Silva Pereira


369.469.018-27
Centro Paula Souza – Fatec Itu/SP 
ed.pereira@fatec.sp.gov.br

Resumo
O objetivo desse artigo é explicar de forma resumida o que é e como funciona os
algoritmos de reconhecimento facial mais utilizados e que tem a melhor performance
para fazer o reconhecimento facial de uma pessoa, a partir de leitura de artigos foi
analisado o método de se fazer o reconhecimento facial e a realização de testes de
desempenho feitos com seis métodos cujo os quais são os mais utilizados nos dias
de hoje, EigenFaces e DeepFaces.

Palavras-chave: Reconhecimento facial. Algoritmos para reconhecimento facial.


Reconhecendo face com redes neurais. IA para reconhecimento Facial. Principais
algoritmos para reconhecimento facial.

Abstract
The purpose of this article is to briefly explain what is and how the most used facial
recognition algorithms work and which have the best performance to perform facial
recognition of a person, from reading articles, the method of doing this was analyzed.
face recognition and performance tests performed with six methods which are the
most used nowadays, EigenFaces and DeepFaces.

Keywords: Facial recognition. Algorithms for facial recognition. Recognizing face


with neurais networks. AI for Facial Recognition. Main algorithms for facial
recognition.

Introdução

Os humanos baseiam-se frequentemente na face para realizar o


reconhecimento de indivíduos. Por sua vez, os avanços das últimas décadas na
2

capacidade de poder computacional permitem atualmente realizar um


reconhecimento similar e de forma automática. Os primeiros algoritmos de
reconhecimento facial, utilizavam modelos geométricos simples e demoravam muito
para fazer seus processos, eram feitos de forma manual com auxílio de uma pessoa
que era responsável por inserir os dados da face como posição dos olhos, nariz,
boca, etc..., mas o processo de reconhecimento atingiu um nível de maturidade que
lhe permite apresentar-se como uma ciência de representações matemáticas
sofisticadas em processos de comparação.
Os grandes avanços e iniciativas registados nos últimos 10 a 15 anos,
trouxeram para a tecnologia de reconhecimento da face um grande avanço
algoritmos cada vez mais eficientes e mais rápidos estão sendo criados e utilizados
tanto para fins de verificação, como de identificação, utilizando cálculos
matemáticos, redes neurais que simula a forma do cérebro humano de fazer
análises.
No início da década de 1990, o reconhecimento facial ganhou popularidade
após a introdução da abordagem histórica dos métodos de Eigenfaces e
Fisherfaces. Nas décadas de 1990 e 2000, as abordagens holísticas dominaram a
comunidade de reconhecimento facial, suas abordagens derivam a representação
de baixa dimensão por meio de certas suposições de distribuição, como subespaço
linear, variedade e representação esparsa. O problema dos métodos holísticos é sua
falha em lidar com mudanças faciais descontroladas que se desviam de suas
suposições anteriores. Isso levou ao desenvolvimento do reconhecimento facial
baseado em recursos locais no início dos anos 2000.
No início dos anos 2000 e 2010, o reconhecimento facial baseado em
recursos locais e os descritores locais baseados em aprendizado foram introduzidos.
O Reconhecimento de Face usando filtros Gabor e Padrão Binário Local mais
conhecido como LBP, bem como suas extensões multinível e de alta dimensão,
obteve desempenho robusto por meio de algumas propriedades invariantes de
filtragem local. Infelizmente, esses recursos artesanais sofreram com a falta de
distinção e compacidade. No início de 2010, foram introduzidos descritores locais
baseados em aprendizado para reconhecimento facial, nos quais os filtros locais são
aprendidos para melhor distinção, e o livro de códigos de codificação é aprendido
para melhor compacidade.
3

Em 2014, o DeepFace e o DeepID criados pela empresa Facebook


alcançaram precisão de ponta quando foram utilizados em um famoso teste de
desempenho que foi feito por pesquisadores da Universidade de Massachusetts
utilizando um banco de dados de fotografias de rostos projetado para estudar o
problema do reconhecimento irrestrito, conhecido como Labeled Faces in the Wild
(LFW), superando o desempenho humano pela primeira vez. Desde então, o foco da
pesquisa mudou para abordagens baseadas em aprendizado profundo.

Metodologia

Esse artigo, foi desenvolvido com base em artigos científicos nacionais e


internacionais procurando explicar de forma resumida o que é reconhecimento facial,
como é feito e quais técnicas são utilizadas para fazer a detecção e o
reconhecimento de faces em imagens a partir de algoritmos computacionais.
Foi escolhido dois algoritmos em especifico, onde um utiliza cálculos
algébricos para fazer a decomposição da imagem e identificar os componentes
chaves que cada imagem facial tem, o outro utiliza-se de uma técnica que procura
simular a forma do cérebro humano para identificar e reconhecer os padrões da
imagem. Após realizar testes com os dois algoritmos foi detectado que ambos têm
alto desempenho na detecção e reconhecimento facial, dependendo da abordagem
utilizada, sua precisão pode de 90% a 100%.

EigenFaces

Esse método, consiste em realizar a detecção e o reconhecimento facial, sua


principal característica é fazer a análise de imagens identificando seus componentes
principais, criado por Sirovich, L e Kirby, M em 1987 sua abordagem inicial utilizando
álgebra linear era fazer a representatividade de baixa dimensão para imagens
faciais. Juntos conseguiram mostrar que, a análise de características feita em uma
coleção de imagens faciais pode formar um conjunto de características básicas e um
padrão. Eles também foram capazes de mostrar que menos de cem valores foram
necessários para codificar com precisão a imagem de um rosto normalizada.
4

O método Eigenface, consiste em fazer a extração de toda informação que


seja relevante da imagem facial a ser analisada, a codificação dessa informação o
mais eficiente possível e depois fazer a comparação da face codificada com toda
uma base de dados composta por faces codificadas de forma semelhante. Em
palavras mais simples é pegar uma imagem, fazer toda a leitura dela e comparar
com uma outra imagem armazenada no banco de dados para fazer a comparação
dos padrões de uma imagem a outra, fazendo assim a confirmação de igualdade. Na
realidade, é uma das formas mais intuitivas de se classificar uma face.
Contrariamente às técnicas mais antigas, que se baseavam nas
características particulares das faces, este método utiliza uma maior quantidade de
informação, devido a classificação das faces com base em padrões faciais gerais, ao
utilizar a técnica de PCA, é demonstrado que o reconhecimento facial de uma
imagem pode ser feito por decomposição em autovalores (Valores Próprios) de uma
matriz de covariância, geralmente depois de centralizar a matriz de dados para cada
atributo. Os resultados de PCA são geralmente discutidos em termos de pontuações
(scores) de componentes; também chamados de pontuações de fatores (os valores
de variável transformados correspondem a um ponto de dado particular) e
carregamentos (loadings). O peso pelo qual cada variável normalizada original deve
ser multiplicada para se obter a pontuação de componente.
Com frequência, sua operação é praticamente para revelar a estrutura interna
dos dados de uma forma que melhor explica as suas variâncias. Se visualizarmos
um conjunto de dados multivariados, em um espaço de alta dimensão com 1 eixo
por variável, o PCA poderá ser utilizado para fornecer uma visualização em
dimensões mais baixas dos mesmos dados, como se fosse uma "sombra" do objeto
original quando visto de seu ponto mais informativo.
Resumidamente, o método PCA consiste em pegar um dado ou uma matriz
de grande dimensão e reduzir em pequenas partes, procurando preservar o máximo
possível seus valores para fazer comparação da similaridade entre elas. Eigenface
foi criado pensando nas características que a face de uma pessoa possa ter. Pois,
fazer o reconhecimento de um rosto é semelhante a qualquer outro sistema
biométrico onde cada indivíduo tem suas características próprias, como por exemplo
a impressão digital que também tem suas estruturas e características únicas onde
determina as características de um único indivíduo.
5

DeepFaces

É um método utilizado para detecção e reconhecimento facial, muito utilizado


nos dias atuais, esse método utiliza de uma tecnologia totalmente inovadora, em
2014, o DeepFace e o DeepID criados pela empresa Facebook alcançaram precisão
de ponta quando foram utilizados em um famoso teste de desempenho que foi feito
por pesquisadores da Universidade de Massachusetts, utilizando um banco de
dados de fotografias de rostos projetado para estudar o problema do
reconhecimento irrestrito, conhecido como Labeled Faces in the Wild (LFW),
superando o desempenho humano pela primeira vez.
Desde então, técnicas de reconhecimento facial profundo, que aproveitam a
arquitetura hierárquica para aprender a representação discriminativa de rostos,
melhoraram drasticamente o desempenho de última geração e promoveram vários
aplicativos bem-sucedidos no mundo real. O aprendizado profundo aplica várias
camadas de processamento para aprender representações de dados com vários
níveis de extração de recursos, essa técnica é bem conhecida hoje em dia como
Deep Learning ou DNN.
Deep Neural Network ou DNN, é um conjunto de algoritmos modelados com
inspiração no funcionamento do cérebro humano. Cada rede neural foi projetada
para atuar como se fosse um neurônio, de forma que consiga reconhecer padrões,
agrupando e analisando dados coletados no mundo real como por exemplo
imagens, sons, textos ou séries temporais, sempre traduzindo-os em alguma coisa.
Dentro da dnn, as redes neurais são as partes centrais dos processamentos e
compreensões dos dados analisados. Diversas arquiteturas moldadas com formas e
objetivos diferentes se articulam para chegar em alguma conclusão definitiva com
base nos dados apresentados a elas.
O conceito de redes neurais pode parecer coisa de um futuro distante, mas
tudo isso já está presente no mundo atual. Empresas e organizações já empregam a
dnn em seu cotidiano, automatizando tarefas até então manuais, como o
reconhecimento de voz e a leitura e compreensão de imagens e vídeos, exemplos
6

da aplicação de uma deep neural network compreendem diversas áreas do


conhecimento e organizações em segmentos variados.
Um dos usos mais comuns para as redes neurais é o de reconhecimento e
classificação de imagens. Esse método já é utilizado por organizações como o
Facebook, que consegue reconhecer padrões faciais, sugerindo aos usuários quem
está presente nas fotos postadas.
A compreensão de imagens pelos algoritmos também pode ser responsável
por catalogar obras de arte. Dessa forma, é possível identificar o período de uma
determinada pintura ou então capturar o estilo de uma obra, organizando um grande
acervo ou aplicando-a em uma fotografia ou vídeo.
Uma característica importante de uma rede neural é sua capacidade de
aprender com os exemplos, isso é chamado de aprendizagem com um professor. A
rede neural é treinada em um grande número de exemplos, consistindo em pares de
entrada-saída (entrada e saída correspondentes). Nas tarefas de reconhecimento de
objetos, esse par será a imagem de entrada e a etiqueta correspondente ao nome
do objeto.
O treinamento da rede neural é um processo interativo que reduz o desvio da
saída da rede de uma determinada “resposta do professor” a etiqueta
correspondente a esta imagem. Esse processo é formado de etapas chamadas
épocas de aprendizado (geralmente são de milhares), em cada uma das quais os
pesos da rede neural são ajustados aos parâmetros das camadas ocultas da rede.

Considerações Finais

Ao realizar o teste comparativo de desempenho com os dois algoritmos, foi


dado como critério de análise: tamanho do código, tempo de execução, taxa de
acerto.
O primeiro algoritmo testado foi o Eigenfaces, sua implementação utilizando a
linguagem de programação python chegou a 230 linhas de código seguindo a
estrutura que o método descreve: receber as imagens, redimensionar e transformar
para tons de cinza, encontrar a face média de cada imagem, calcular os
componentes principais e armazenas esses treinamentos em um arquivo para que
quando recebesse uma nova imagem, fosse identificada a semelhança levando
essas informações em consideração.
7

Por esse algoritmo foi recebido cerca de 135 imagens com faces e 10 sem
faces, seu tempo de execução ficou por volta de 35 segundos para analisar as 145
imagens entregues. Ao final ele conseguiu identificar se a imagem contém ou não
uma face e sua taxa de assertividade ficaram em média de 90%.
O segundo testado DeepFaces, mostra como a implementação de um
algoritmo de reconhecimento facial com técnicas de dnn ajudou a evoluir em relação
as técnicas antigas, com apenas 135 linhas de código o algoritmo conseguiu fazer
as mesmas coisas que seu antecessor e um pouco mais, com uma precisão de
100%, ele conseguiu identificar todas as imagens entregue e dizer se nela havia ou
não uma face, seu tempo também ficou muito abaixo e com apenas 10 segundos fez
todo o processamento que também havia sido feito pelo eigenfaces e para fazer o
reconhecimento facial, é preciso apenas dizer qual é a imagem a ser analisada que
o algoritmo entrega quais são as faces parecidas com exatidão.
Ambos os algoritmos foram testados em 5 vezes, onde o DeepFaces manteve
intacto os valores de teste e o Eigenfaces variou algumas vezes seus resultados, o
Eigenfaces tem problemas com imagens de fundo escuro e com a circunferência da
face da pessoa por isso as vezes o resultado varia muito. E também os métodos a
serem utilizados na implementação do algoritmo, onde a maioria dos métodos do
DeepFaces fazem tudo automático passando apenas o parâmetro onde está
armazenado o banco de imagens a ser treinado.
Com isso, pode-se ver um pouco de forma resumida o que cada algoritmo
tem como característica, um pouco da ideia de como esses algoritmos foram
pensados para realizar o reconhecimento e detecção facial e também como foi
pensado em técnicas para obter a sua evolução, a cada dia os algoritmos de
reconhecimento facial ficam mais precisos e mais simples de serem implementados
e com o desempenho mais rápidos.
8

Referências

ELY, Ronei Rademann et al. IA APLICADA NO RECONHECIMENTO FACIAL. Salão


do Conhecimento, v. 6, n. 6, 2020.

BISSI, Thelry et al. Reconhecimento Facial com os algoritmos Eigenfaces e


Fisherfaces. 2018.

DINIZ, Fábio Abrantes et al. RedFace: um sistema de reconhecimento facial


baseado em técnicas de análise de componentes principais e autofaces. Revista
Brasileira de Computação Aplicada, v. 5, n. 1, 2013.

ORVALHO, Verónica. Reconhecimento facial. Revista de Ciência Elementar, v. 7, n.


4, 2019.

GUIMARÃES, Jamile Silva. Reconhecimento facial. Juventude. br, n. 11, 2011.

LÓPEZ-MORALES, Hernán et al. Reconhecimento de Expressões Faciais


Emocionais: Diferenças no Desenvolvimento. Psicologia: Teoria e Pesquisa, v. 36,
2020.

ARAUJO, Gabriel Matos. Algoritmo para reconhecimento de características faciais


baseado em filtros de correlação. Master's thesis. PPEE-UFRJ, 2010.

GASPAR, Thiago Lombardi. Reconhecimento de faces humanas usando redes


neurais MLP. 2006.

Você também pode gostar