Monografia da Iniciação Científica
 
 

Estudos de Métodos de Visão Computacional para Reconhecimento de Pessoas

MAC 499 - Trabalho de Formatura - 2000







Aluno: Fábio Pará D' Incecco

Número USP: 3021187

Orientador: Prof. Dr. Roberto Marcondes Cesar Junior
 
 
 
 
 
 

Esta monografia é o resultado da Iniciação Científica desenvolvida por Fábio Pará D' Incecco sob orientação do Prof. Dr. Roberto Marcondes Cesar Junior, entitulada "Estudos de Métodos de Visão Computacional para Reconhecimento de Pessoas".

Os capítulos que constituem essa monografia foram retirados principalmente dos relatórios desta Iniciação Científica que foram enviados à Fapesp referentes aos períodos de 1 de julho de 1999 a 1 de dezembro de 1999 e 1 de dezembro de 1999 a 10 de junho de 2000.

O penúltimo capítulo consiste em fornecer melhoras que poderiam ser realizadas nos algoritmos que foram desenvolvidos durante o projeto e o último capítulo destaca alguns artigos relacionados à reconhecimento de faces que abordam outras técnicas para prover solução ao problema.
 
 

Resumo do plano inicial

O plano inicial para esse projeto consiste em estudar algoritmos necessários para o reconhecimento de pessoas através de técnicas de visão computacional. O desenvolvimento desse projeto de iniciação científica deverá introduzir o aluno às principais abordagens desenvolvidas para o reconhecimento de pessoas por computador. O desenvolvimento do presente projeto deverá ainda incluir a implementação de determinados algoritmos a serem estudados, o que deverá ser feito em uma linguagem de programação (como C), ou ainda em scripts do MatLab, para que possam ser analisados em situações reais.
 
 


Capítulo 1

Resumo do Capítulo







Neste relatório estão descritos os trabalhos que se realizaram no período inicial da concessão da bolsa de Iniciação Científica, caracterizados pelo estudo de artigos relacionados a detecção de faces em imagens, além da implementação de um algoritmo que detecte faces. Esta implementação ainda está em desenvolvimento, buscando melhorar a técnica utilizada, e tornando mais robusto o processo de extração de características importantes da face (olhos, nariz e boca). Comentam-se também problemas que o algoritmo precisa tratar e alguns detalhes de implementação. Para finalizar, comentamos as estratégias futuras a serem usadas, além das participações do bolsista em eventos realizados na Universidade de São Paulo.
 
 

1. INTRODUÇÃO
O objetivo deste capítulo é mostrar como progrediu a primeira fase do projeto de estudos de métodos de visão computacional para reconhecimento de pessoas, feito pelo bolsista Fábio Pará D' Incecco e orientado pelo Prof. Dr. Roberto Marcondes Cesar Junior.

Relembramos que o projeto consiste em estudar algoritmos necessários para o reconhecimento de pessoas através de técnicas de visão computacional. Além disso, pretende-se implementar alguns destes em MatLab ou em linguagem C.
 
 

2. DESENVOLVIMENTO DA 1ª FASE DO PROJETO
O decorrer da 1ª fase do projeto incluiu além do estudo de artigos sobre o reconhecimento de faces, a elaboração de um algoritmo capaz de detectar e extrair as regiões compreendidas pelos olhos, nariz e boca em uma base de imagens determinada a priori. Também foram estudados alguns artigos sobre a detecção de faces mais específicos para o desenvolvimento e aprimoramento das técnicas usadas na implementação do algoritmo em MatLab.
 
 
 
 

2.1 DETECÇÃO DE BORDAS

No início, o nosso objetivo era analisar as bordas de uma imagem através de algoritmos que consigam detectá-las. Foi implementado o algoritmo de detecção de bordas pelo método de Canny, por ser um dos algoritmos mais clássicos utilizados em toda a área de pesquisa de Processamento de Imagens [5].

A implementação foi feita em MatLab por ser uma linguagem que possui maior facilidade para o manuseio de matrizes, muito usadas para tratamento com imagens. O algoritmo como entrada um arquivo em tons de cinza e procura por posições nessa imagem que possam identificar possíveis bordas. Após esse processo, os pontos identificados são investigados para confirmar se realmente pertencem a bordas de objetos da imagem ou não. O resultado é uma outra imagem, constando apenas das bordas que o algoritmo considera como válidas.

Um outro algoritmo, já implementado como função primitiva do MatLab, foi usado para comparar o resultado da detecção de bordas. Trata-se do método de detecção de bordas de Sobel [8 e 9], também utilizado em larga escala. Contudo, uma vantagem que o método de Canny possui sobre este é que consegue identificar maior quantidade de bordas mais consistentes e de espessura de um pixel em uma imagem.

Abaixo encontra-se um exemplo da aplicação dos métodos de Sobel e de Canny a uma mesma imagem. Nota-se que o de Canny consegue não só detectar mais bordas, mas também mais detalhes da imagem. Entretanto, um estudo mais aprofundado da influência dos parâmetros no resultado final ainda precisa ser considerado.




           Imagem original                                            Método de Canny                                              Método de Sobel

Figura 1


Contudo, percebemos que para a tarefa de detecção de olhos, nariz e boca, o método de Canny possui a desvantagem de obter bordas além das estritamente necessárias para a extração das características das regiões que queríamos analisar. É bom lembrarmos aqui que, para o processo de reconhecimento de faces através da análise das bordas, o principal objetivo não é encontrarmos o maior número possível de contornos, mas sim os melhores e que contenham a informação mais importante para o nosso estudo. No nosso caso, seriam as linhas que formam os olhos, o contorno da base do nariz e os dos lábios.

Levando esse objetivo em consideração, tivemos que optar por um detector de bordas com menor grau de complexidade, que pudesse retornar apenas bordas mais significativas para a análise. Decidimos escolher o detector de bordas de Sobel, com uma especialização, que consiste em detectar apenas as bordas horizontais na imagem, pois as regiões que trabalhamos caracterizam-se basicamente pela existência de bordas horizontais. Assume-se faces frontais e verticais. Finalmente, o detector de Sobel é muito mais barato computacionalmente.

Na Figura 2, comparamos o resultado de três detectores de bordas: Canny, Sobel e Roberts. Este último é indicado para analisar bordas que estejam em ângulos de 45º , o que não convém para o nosso trabalho. Mas o principal objetivo é mostrar um problema que ocorre em detecção de faces, que é a presença de barba na face analisada, pois essa causa uma detecção de muitas pequenas bordas (quase pontos minúsculos). O que para o nosso trabalho podem ser caracterizados como ruído na imagem, uma vez que estes pontos próximos à boca podem implicar que o nosso algoritmo simplesmente considere-os como parte da região analisada.
 
 




Figura 2:
Imagem original e os resultados obtidos pelos detectores de Canny, Sobel e Roberts, respectivamente.

Podemos notar claramente que, na imagem original, a pessoa possui um pouco de barba e bigode. Analisando o resultado obtido através do detector de Canny, é possível identificar muito precisamente que a barba foi capturada quase que completamente e um pouco do bigode também. Já nos detectores de Sobel e Roberts, toda informação sobre a barba e o bigode foram eliminados, além disso, as regiões que queremos analisar estão bem determinadas. Com uma imagem como a que obtemos como resultado com Sobel, o processo de analisar a imagem inteira, buscando pontos que nos interesse, torna-se mais rápido, pois é extremamente visível a olho nu que nas regiões importantes para nós, a imagem obtida por Sobel tem muito pouco ruído.
 
 
 
 

2.2 DETECÇÃO DE OLHOS, NARIZ E BOCA
 
 

Retomando o algoritmo que estamos desenvolvendo e já implementamos, mesmo que com solução muito restrita, estamos seguindo uma abordagem que foi comprovada através e estudos psicológicos. O mecanismo de visão do ser humano ao observar uma face, concentra sua atenção na região dos olhos, nariz e boca, olhando muito pouco para as outras regiões da face. A figura 3 abaixo ilustra esse teste. A esse processo que nosso mecanismo de visão possui de escolher regiões específica para analisar, dá-se o nome de atenção seletiva.[10]





   (a)                                (b)

  Figura 3:
Na imagem (a) vemos uma imagem original com uma face, enquanto na imagem (b) vemos uma demonstração do processo de atenção seletiva humano aplicado a mesma face.
 
 

O que nosso algoritmo tenta fazer é encontrar e extrair os olhos, o nariz e a boca em uma imagem inteira com uma única face. Essa limitação deve-se ao problema de detecção de face ser complexo, dependente muito não só da orientação da face na imagem, mas também a fatores externos como iluminação. Também detalhes que possam existir numa imagem, como por exemplo, bigode, barba, brincos, cicatrizes e marcas de nascença, entre outros, podem causar um erro na detecção.

A idéia básica por trás do algoritmo é tomar o mapa de bordas como um espaço de características ("feature space"). Assim, algoritmos de análise de agrupamentos ("clustering") podem ser aplicados. No nosso caso, aplicamos o algoritmo das K-médias[8].

Para formarmos as regiões onde provavelmente se encontram os olhos, nariz e boca, determinamos 4 pontos iniciais próximos à essas regiões na imagem. A partir daí, para cada ponto da imagem obtida pelo detector de Sobel, verificamos qual a distância euclidiana entre o ponto analisado até cada um dos pontos iniciais. Se esta distância calculada for menor que um certo erro, que na verdade é um número que foi inferido com base nas próprias imagens de teste, o ponto pode ser classificado para uma determinada região, ou não pertencer a nenhuma destas. É válido comentar que após um ponto ser classificado como pertencente a uma região, este não é reclassificado, ou seja, um mesmo ponto não consta de duas regiões ao mesmo tempo.

Ao terminarmos de analisar todos os pontos da imagem, temos classificados apenas aqueles que passaram pelo nosso critério de seleção, podemos retornar a imagem original e extrair as regiões formadas por estes pontos. Nas imagens 5, 6 e 7, podem-se ver esses passos. Na figura 4 encontra-se o algoritmo geral das K-médias:
 

inicializa m1, m2, m3 e m4. // m1,m2,m3 e m4 são os pontos iniciais

enquanto m1, m2, m3 ou m4 forem alteradas faça {

    classifique todos os pontos de acordo com m1, m2, m3 e m4;

        // baseado em distância euclidiana

    recalcule m1, m2, m3 e m4 de acordo com os clusters da

    classificação do passo anterior;

}

Figura 4: Algoritmo das K-médias
 







Figura 5:
Nesta imagem temos os pontos que foram classificados nas regiões de olho esquerdo, olho direito, nariz e boca. Note que na região entre a boca e o nariz, pontos dos lábios foram classificados como pertencentes ao nariz incorretamente.
 





Figura 6:
Agora nesta imagem, determinamos os pontos mínimos e os máximos de cada região. Com os pontos determinados, traçamos retas verticais e horizontais, em formato de cruz, para evidenciá-los.
 





Figura 7:
As regiões que recuperamos na imagem original, partindo dos pontos que foram classificados como pertencentes às regiões de interesse.
 
 

Ainda nas regiões que são importantes para nosso estudo, ocorre classificação incorreta dos pontos da boca como pertencentes ao nariz, mas não em todas as faces testadas. A base de imagens que usamos até o presente momento consta de 122 faces de homens e mulheres com idades diferenciadas e expressões faciais diferentes. Nesse conjunto de imagens, não estamos testando o algoritmo com pessoas muito barbadas ou com óculos. Esse é um passo que, dependendo do andamento futuro do projeto, poderá também entrar no estudo.
 
 

3. PERSPECTIVAS PARA O FUTURO DO PROJETO
 
 

Atualmente, estamos modificando o algoritmo para trabalhar com a idéia de "forma dos agrupamentos", que segue o mesmo princípio de classificação através da distância entre pontos, mas incorpora também a possibilidade do ponto inicial mudar de valor ao decorrer de passos de iteração de todos os pontos. Ou seja, em um primeiro passo, os pontos iniciais são exatamente aqueles que definimos antes do início do processo. Classificamos todos os pontos e recalculamos a nova posição dos 4 pontos iniciais. Depois disso, classificamos novamente todos os pontos da imagem, de acordo com a medida de distância até os novos pontos calculados. Para essa etapa de modificação do algoritmo, estamos baseando os estudos em [6], mais especificamente no capítulo que trata sobre análise de agrupamentos e em [7], pois este artigo, apesar de não usar propriamente a idéia de cluster, usa uma estratégia que se assemelha ao processo algoritmo que usamos.

Também será posto como objetivo da 2ª fase do projeto o estudo de novos métodos e artigos sobre reconhecimento de faces, especialmente outros tipos de abordagens para a solução de problemas relacionados a detecção de pessoas.

Outro ponto que será explorado é desvincular o algoritmo da base de imagens de teste, tornando-o assim mais flexível, e podendo ser usado com diferentes tipos de imagens. Além disso, problemas descritos acima como detecção de faces em pessoas com barba ou com óculos serão levados em conta.
 
 

4. PARTICIPAÇÃO EM EVENTOS
 
 

Nessa seção serão comentadas a participação do bolsista em dois eventos que se realizaram na Universidade de São Paulo, durante essa fase do projeto.

O primeiro evento ocorreu nos dias 18 e 19 de agosto último, no XV Colóquio de Iniciação Científica do Instituto de Matemática e Estatística. Mais especificamente, a apresentação do trabalho ocorreu no dia 19, através de um seminário com duração de 15 minutos, usando transparências que abordavam além da proposta do projeto, um resumo da área de Visão Computacional, objetivando introduzir alguns conceitos que seriam explorados ao explicar as técnicas usadas neste trabalho, (por exemplo, a detecção de bordas).

O segundo evento foi o 7º Simpósio de Iniciação Científica da USP (e 1º Simpósio Internacional de Iniciação Científica da USP), realizado entre os dias 8 e 12 de novembro último no Galpão de Eventos da Escola Politécnica da USP. Para a área de Exatas e Engenharias, na qual o projeto se inclui, os dias do evento foram 8, 9 e 10, sendo que a apresentação do projeto realizou-se no dia 9 das 8:00h às 12:00h, consistindo da montagem de um cartaz e explicação às pessoas que se interessavam sobre o problema que estamos abordando, seus problemas e dificuldades a serem superadas.

Em anexo a este relatório encontram-se cópias xerográficas dos dois certificados que o bolsista obteve com a participação nos eventos acima citados.
 

Página principal de MAC 499                   Capítulo 2 >