sexta-feira, 11 de fevereiro de 2011

Sistemas computacionais de reconhecimento de faces: coisa de cinema?

Como funcionam sistemas biométricos de identificação facial e o que podemos esperar deles?


Provavelmente você já viu em um filme policial algum criminoso sendo filmado em tempo real enquanto agentes da CIA ou do FBI o rastreiam em meio a uma multidão com o auxílio de um equipamento de alta tecnologia. Geralmente um bandido latino-americano, um espião russo (para os nostálgicos da guerra fria) ou um terrorista muçulmano (principalmente depois do ataques de 11 de setembro). Ou então, em filmes de ficção, cenas onde o vilão decepa uma cabeça ou usa uma máscara para ter acesso a uma sala de segurança máxima que conta com um sistema de reconhecimento de faces. Pensando nisto, você já deve ter se perguntado se estes sistemas de reconhecimento existem ou como funcionam. Caso não tenham pensado, eu lhes convido a fazer este exercício. Ainda, o que diferencia o reconhecimento facial feito por nossas câmeras digitais e pelo Orkut e o feito nestes filmes futuristas? O que nossa atual tecnologia oferece e o que (ainda) é ficção? É disso que trataremos nas linhas que se seguem.

Fig. 1: Cena do filme A Outra Face (Buena Vista, 1997).

Cada indivíduo apresenta características únicas que praticamente não se modificam ao longo da vida ou da vida adulta. Como exemplo, identificação da íris, da face, impressão digital, geometria da mão, reconhecimento da voz, reconhecimento da assinatura. E os sistemas biométricos, sistemas automáticos que permitem a identificação de indivíduos por meio destas características físicas e comportamentais, se valem cada vez mais das singularidades pessoais para criar ferramentas úteis.

Hoje, há a necessidade cada vez maior da construção de sistemas computadorizados para reconhecimento de faces. Sua importância e aplicabilidade, principalmente na área de segurança, se encontram em tarefas como identificação de pessoal, clientes, passaportes, monitoramento de multidões, busca em fichas criminais e de desaparecidos. Isto ocorre em vista de que o acesso ou controle a qualquer sistema ou lugar se dá por meio de um código pessoal intransferível. O que se mostra muito mais seguro e evita fraudes. Como a face humana é tem uma formatação singular (salvo clonagens e gêmeos univitelinos, e mesmo assim, com ressalvas) e não sofre grandes alterações com a passagem do tempo, protótipos e modelos de sistemas de reconhecimento facial têm ganhado destaque dentro de institutos tecnológicos.

Estes sistemas automatizados levam em consideração aspectos importantes da estrutura e do mecanismo funcional da visão humana, como por exemplo, um processamento primário de formas e contornos e, somente depois, outros tipos de informação.

Vários sistemas computadorizados que incorporam diversas técnicas matemáticas que simulam o comportamento cerebral em suas funções de processamento visual e aprendizagem têm sido utilizados para realizar tarefas de reconhecimento de faces humanas. Aqui abordaremos com maior ênfase as redes neurais artificiais, devido sua grande aplicabilidade e proximidade com modelos biológicos baseados no funcionamento cerebral.
               
Redes neurais artificiais

Uma rede neural artificial (RNA) é um sistema de processamento de informação que desempenha função análoga à função das redes neurais biológicas; por exemplo, um software que simula o comportamento de determinadas células da retina humana. Portanto, elas são desenvolvidas a partir de generalizações de modelos matemáticos de cognição e biologia neural.

São formadas por elementos que atuam como processadores simples, chamados de unidades ou neurônios, que formam redes interconectadas entre si por sinais (sinapses) inibitórios ou excitatórios de diferentes pesos. Dado um padrão de atividade inicial na rede, este é propagado por determinadas ou todas unidades das conexões até que um estado estável seja atingido. Este estado é interpretado como a resposta do sistema ao padrão inicial.

Apesar da inspiração e das constantes referências ao modelo biológico, é dado maior ênfase ao aspecto computacional. Ou seja, redes podem ser criadas e serem úteis sem nenhuma analogia fisiológica. As RNAs não têm como escapar a um reducionismo, principalmente quando o objetivo em questão é a modelagem de fenômenos cognitivos. 

Regras pré-definidas para reconhecer faces baseadas em regras utilizadas por sistemas biológicos têm sido representativamente utilizadas neste campo. Modelos computacionais baseados em redes neurais têm sido gerados tanto em problemas de detecção como de reconhecimento; já que a habilidade de aprendizagem automática, a robustez e a capacidade de se auto-adaptar das RNAs as tornam um modelo atrativo para implementação de projetos na área de reconhecimento facial.

Visão computacional e reconhecimento de padrões
               
Para que uma RNA seja ativada e efetue suas regras de decisões e gere respostas, no nosso caso, identificar ou não uma face, ela deve receber sinais de entrada do ambiente. A captação da imagem pode ocorrer de diversas formas dependendo do equipamento (scanner, câmera, aparelho de raio-X). O objetivo comum destas ferramentas é traduzir padrões bidimensionais de grandezas físicas (luminosidade, por exemplo), em medidas discretas, normalmente organizadas em matrizes. Cada elemento da matriz corresponde a um pixel, identificado por um par de coodenadas cartesianas (x,y). Por estes elementos é possível uma descrição da imagem por meio da qual se aplica técnicas de reconhecimento de padrões.

O reconhecimento de padrões é uma tarefa simples e trivial para o homem e não existe nenhuma máquina ou software que se aproxime de seu desempenho. Ele envolve três níveis de processamento: filtragem da entrada dos sinais visuais capturados, extração de características e classificação. A filtragem dos sinais de entrada tem o objetivo de eliminar dados desnecessários ou distorcidos, fazendo com que a entrada apresente apenas dados relevantes para o reconhecimento do objeto em análise. A extração de características consiste da análise dos dados de entrada a fim de extrair e derivar informações úteis para o processo de reconhecimento. O estágio final do reconhecimento de padrões é a classificação, onde por meio da análise das características da entrada de dados o objeto em análise é declarado como pertencente ou não a uma determinada categoria.

Para que os modelos de reconhecimento de padrões sejam empregados com sucesso, é necessário que seu criador possua um bom conhecimento sobre as características do objeto analisado e da capacidade do modelo. Isso é dado em virtude de que a eficiência de um modelo depende das suposições ou condições sob as quais ele é construído. Pelo fato das RNAs serem auto-adaptáveis aos sinais de entrada, ou seja, modelam com flexibilidade as relações do mundo real, se mostram como uma alternativa promissora para métodos de reconhecimento de padrões.

Reconhecimento de faces

Um sistema de verificação ou reconhecimento de faces, de maneira geral, segue alguns procedimentos básicos. De início ocorre a captura da imagem, para que se possa detectar em uma imagem digital um padrão facial e qual a posição deste. Em seguida, ocorre normalização da face na imagem para um padrão de posição, orientação e escala.

A partir disso pode ser feita a localização das informações mais relevantes e seleção destas para serem utilizadas e representadas. Em geral, são utilizadas características da imagem digital que são medidas do rosto que quase não se alteram, como distância entre os olhos, distância entre os olhos, nariz, boca e outras partes do rosto, como queixo, sobrancelhas, além do tamanho de certos elementos faciais, como largura da boca ou do nariz, linha do queixo. Destes dados são levantados pontos ou proporções singulares que são utilizadas para criar um registro que serve para comparação com o banco de dados e, assim, para o processo de reconhecimento.

Fig. 2: Exemplo de medidas utilizadas para reconhecimento. Imagem extraída do site: q8showroom.com .


Com isso, verifica-se a identidade por meio de alguma técnica (existem diversos tipos de redes neurais com diferentes arquiteturas e regras de decisão). E, por último, o aviso de reconhecimento, que verifica se a face pertence ou não ao conjunto de dados. Quando há semelhança detectada, o sistema calcula a probabilidade de semelhança e apresenta os resultados.

Fig. 3: Esquema didático do processo de reconhecimento facial. Imagem modificada do site news.bbc.co.uk .

Mas a qualidade de um sistema de reconhecimento de faces não é dada somente pela alta probabilidade de semelhança. O desempenho de um algoritmo é dado em função de outras variáveis: baixa taxa de falsos negativos e falsos positivos, robustez contra fatores adversos, resposta em tempo real e baixo custo dos equipamentos.
               
E apesar das constantes sofisticações de mecanismos artificiais de reconhecimento de faces, estes ainda contam com déficits a serem amenizados. A maioria dos sistemas conta com baixa confiabilidade em um meio ruidoso (em que há perturbação que ocasiona perda de informação na transmissão da mensagem) devido à posição ou obstrução da face, expressão apresentada, baixas condições de iluminação, complexidade do fundo da imagem ou possibilidade de alteração de características analisadas, como acidente, cirurgia, barba, óculos. Além disso, em geral, RNAs para reconhecer faces necessitam de muitos ajustes (dado o número elevado de unidades, níveis e razões de aprendizado) para obter um bom desempenho.

Por fim...

Como face humana é um padrão visual complexo, de difícil discriminação, que traz consigo uma grande quantidade de informação e que, por vezes, pode sofrer interferência, são necessárias máquinas computacionais mais rápidas e que processam uma quantidade maior de informação em menor tempo. Como o desenvolvimento de áreas tecnológicas, e principalmente da informática, se dá numa escala exponencial ao longo do tempo, é muito provável que sistemas de reconhecimento facial evoluam muito rápido. Como a demanda do mercado para esta tecnologia é alta, não levará muito tempo entre a implementação de novas ferramentas no laboratório e sua comercialização pelas empresas.

Mas mesmo com RNAs de faces que sofrem pela falta de capacidade de processamento dos atuais hardwares, podemos ver uma disseminação de seu uso e algorítmos com taxas de acertos significativamente satisfatórios em tarefas de reconhecimento. Por ser uma área altamente multidisciplinar, integrando conhecimentos de processamento digital de imagens, redes neurais, paradigmas de programação, neurociências e em virtude de altas chances de aplicabilidade da pesquisa, inúmeros são os centros de pesquisas envolvidos. Já encontramos com facilidade na internet softwares de reconhecimento de faces distribuídos gratuitamente ou embutidos em produtos de baixo teor tecnológico encontrados no mercado, como webcams. Também são comercializadas câmeras digitais que além de detectar o padrão facial em uma cena, sabem se ela é do seu pai, da sua mãe ou da(o) sua namorada(o) (clique aqui para conferir). E só para exemplificar, uma empresa chinesa de sistemas biométricos vende uma fechadura com tecnologia de reconhecimento facial 3-D por US$ 456,00 (clique aqui para conferir).

Apesar dos avanços em sistemas de reconhecimento de faces e de já existirem sistemas comerciais para esse fim, esses modelos ainda estão distante das potencialidades do sistema visual humano. Esta tarefa corriqueira e fácil de ser realizada por nós ainda é difícil de ser emulada em sistemas computadorizados. Como visto, ainda estamos um pouco distante das cenas de filmes de ficção em que um agente da CIA utiliza um sistema que consegue rastrear de forma automática um bandido internacional em meio a uma multidão por meio de câmeras de vigilância e puxa sua ficha criminal em questão de segundos. Então, nos resta aguardar cenas dos próximos capítulos das constantes reviravoltas das inovações tecnológicas.

Quer baixar o texto? Clique aqui.

Rui de Moraes Júnior
Para saber mais:

  • Jesan, J. P. (2005).The neural approach to pattern recognition. Ubiquity: An ACM IT Magazine and forum - http://www.acm.org/ubiquity/views/v5i7_jesan.html - acessado em janeiro de 2011.

  • Pereiral, D. S. A., Rapozo, J. A. R., Silva, J. C., Silva, E. (2009). Identificação de faces em imagens bidimensionais. Revista TECCEN, v. 2, p. 27-36.