terça-feira, 21 de setembro de 2010

Reconhecimento facial no Ubuntu 10.04

Ainda ontem estava procurando algo na Internet para me distrair quando resolvi pesquisar o que os sistemas operacionais do futuro breve trariam de novidade. Lendo alguns sites que falavam sobre o "Windows 8", codinome interno da próxima versão do sistema operacional da Microsoft com lançamento previsto para 2012, fiquei sabendo que estão planejando acrescentar a tecnologia de reconhecimento facial para autentificação de sessões de usuários. Achei a ideia muito boa em se tratando de biometria, uma vez que é mais comum que os computadores de diferentes classes - desktops, notebooks, netbooks, pads, etc - venham com câmeras ao invés de leitores de impressão digital.
Resolvi então pesquisar o que já existia neste sentido para o Linux e logo percebi que desde 2007 - e talvez anteriormente, já haviam uma série de projetos com o objetivo de desenvolver esta tecnologia para software livre.
Dentre estes projetos, o que me chamou mais atenção foi o tal Pam-face-authentication. Utilizando bibliotecas de visão computacional (libcv), o computador reconhece o rosto do usuário por filtros de estrusão, especialmente - pelo o que pude notar - pela área dos olhos e nariz, estratégia bastante inteligente na minha opinião.
Convencido que seria no mínimo divertido tentar implementar essa tecnologia no meu netbook, dando um salto de dois anos no futuro em relação aos sistemas Windows, resolvi descobrir como instalar e fazer funcionar o Pam.
Primeiro acessei um artigo em português ensinando o processo para o Pam v. 0.02 de forma bem sucinta, mas não serviu para o meu caso pois o meu Linux é bastante enxuto e o Pam já estava na v. 0.03. Então recorri a um wiki do próprio Pam, ainda inacabado mas que tinha tudo o que eu precisava.
Não levei nem meia hora para compilar os arquivos, integrar o programa ao login do Ubuntu e poder rodar o aplicativo de reconhecimento de faces, que pode ser visto na imagem abaixo.Mas será que este sistema é seguro? Ou será que enfraquece a segurança? Pelo o que entendi lendo a respeito do Pam, ele salva uma série de conjuntos de imagens do rosto do usuário, de modo que não basta apenas botar uma foto na frente da tela para ganhar acesso à conta, pois o programa conta que a imagem capturada apresente nuances durante o processo de autenticação.
Como nem tudo é perfeito, na realidade de utilização de um netbook, foi necessário criar um número relativamente grande destes conjuntos - no meu caso foram nove, ao invés de três que parecem ser o padrão - para garantir o reconhecimento em diferentes condições de iluminação e diferentes posições do computador, como no colo, sobre uma mesa alta, sobre uma mesa baixa, etc.
Ainda assim, é uma tecnologia que impressiona muito. As possibilidades de bibliotecas de visão de computador não se restringem apenas à autentificação de usuários, mas também podem ser utilizadas para criar efeitos muito interessantes na interface gráfica, como é o caso do plugin de "head tracking" do Compiz, que cria o que parece ser um desktop holográfico interativo. Este também pretendo experimentar, assim que tiver mais algumas horas livres. :D

Update: Instalei o plugin head tracking e realmente parece ser algo muito poderoso! Dá para notar que as janelas respondem aos movimentos da minha cabeça e dos meus olhos... Compreendi que, em uma tela grande, é possível visualizar janelas de forma divertida, mas na tela pequena do netbook o resultado é pouco funcional... Poderia melhorar algumas coisas ajustando as opções, mas vou deixar isso para outra hora.

Nenhum comentário: