Infra - Linux
Biometria: Reconhecimento Facial Livre!
Neste documento teremos a oportunidade de conhecer um projeto de reconhecimento facial open source. Utilizando a biblioteca Malib e conceitos de visão computacional, este recurso biométrico permite criar soluções interessantes.
por Alessandro de Oliveira FariaIntrodução - Reconhecimento Facial
O reconhecimento facial é um dos processos de identificação mais utilizados pelos seres humanos, pois permite identificar rapidamente qualquer pessoa e assim definir o tipo apropriado de interação com ela. Além de identificar, podemos perceber o estado emocional de uma pessoa apenas observando sua expressão facial.
Embora o reconhecimento facial seja uma tarefa simples para o ser humano, é extremamente complexo implementar esse processo em uma máquina, pois não sabemos, ao certo, como o cérebro humano realiza essa tarefa. O cérebro humano pode identificar corretamente uma pessoa a partir de sua imagem facial mesmo sobre as mais diversas condições, como variações de iluminação, observando apenas uma de suas características ou partes, e até mesmo com distorções ou deformações.
A eficiência de um sistema de reconhecimento facial pode ser medida pela porcentagem de acertos na identificação de pessoas sobre essas condições. Os sistemas de reconhecimento facial que existem atualmente não são seguros o suficiente para serem aplicados em larga escala, mas muitos avanços foram obtidos.
Existem diversas técnicas que podem ser utilizadas para a criação de um sistema de reconhecimento facial. Descreveremos as técnicas utilizadas para a construção de um sistema de reconhecimento facial que, a partir de uma fotografia ou imagem de vídeo, seja capaz de extrair a imagem facial da pessoa e verificar se essa pessoa pertence ou não a uma base de dados com imagens faciais previamente construídas.
O sistema de reconhecimento de faces é formado por três fases fundamentais: rastreamento da face, extração e seleção de características faciais, e reconhecimento da face.
Fonte: Bastet - Sistema de reconhecimento facial
http://www.bibl.ita.br/viiiencita/
Malic - Reconhecimento facial open-source
O malic é um projeto de reconhecimento facial open-source baseado na biblioteca OpenCV e Malib, utilizando filtro de gabor. Este projeto é composto 4 principais módulos:
Abaixo os links para download dos pacotes:
OpenCV (fontes):
http://easynews.dl.sourceforge.net/.../opencv-1.0.0.tar.gz
OpenCV (rpm):
http://rpm.pbone.net/index.php3?stat=3&search=opencv&srodzaj=3
OpenCV-devel (rpm):
http://rpm.pbone.net/index.php3?stat=3&search=opencv-devel&srodzaj=3
Malib:
http://www.malib.net/archives/libmalib-0.5.8.tar.gz
Malic:
http://ufpr.dl.sourceforge.net/sourceforge/malic/malic-0.0.9.1.tar.gz
Instalação dos pacotes:
Para instalar a biblioteca a partir do código fonte, baixe o pacote .tar.gz (link acima), descompacte e execute os tradicionais comandos de magia negra ./configure, make e make install, como no exemplo abaixo.
O primeiro passo é informar as coordenadas dos pontos característicos da face sobrancelha, olhos, nariz e boca. Para tal tarefa, execute o comando ./malicsampling e se tudo estiver funcionando corretamente, teremos uma tela como na ilustração abaixo:
Fig-A: Mapeando os pontos característicos
Para informar os pontos característicos no sistema, clique nos pontos extremos (esquerdo e direito) das sobrancelhas, dos olhos, nariz e boca. Lembrando que ao clicar em cada ponto, devemos pressionar o respectivo botão da coordenada correspondente. Ao término, pressione o botão ENTER para armazenar as coordenadas e depois no botão SAVE para gravar o arquivo .XML.
Agora o segundo passo é armazenar a FACE e um ID (nome se preferir) para um posterior autenticação. Execute o comando ./malicfacesampling para continuar com o procedimento.
Fig-B: Vinculando face e ID
Neste aplicativo, basta digitar o ID na caixa de texto e pressionar o botão ENTER seguido do botão SAVE e pronto!
Agora testaremos a identificação executando o comando malicrecog seguido do XML de gabor e o XML contendo a face e o ID. A segui um exemplo de execução:
$ ./malicrecog -j gaborrg_jet.xml -f face_jet.xml
Fig-C: Identificação Facial
O sinal vermelho indica que existe uma face diante a câmera, já o sinal azul corresponde a uma identificação concluída com sucesso.
Habilitando o ScreenSaver quando não houver usuário diante o computador.
Agora para finalizar, executaremos um aplicativo interessante que habilita o SCREENSAVER quando não existir uma face diante a câmera. Assim quando levantarmos do micro, automaticamente o protetor de tela será iniciado.
O processo é muito simples, basta abrir executar o xscreensaver e a seguir o malicsaver como no exemplo abaixo:
Vale a pena mencionar que o projeto malic apresenta mais recurso do que os mencionados neste texto. Para maiores informações, aconselho ler os arquivos do projeto.
Para finalizar, abaixo um vídeo mostrando o projeto em execução.
"Colaborar atrai amigos, competir atrai inimigos...
Use a força, LEIA OS FONTES!"
O reconhecimento facial é um dos processos de identificação mais utilizados pelos seres humanos, pois permite identificar rapidamente qualquer pessoa e assim definir o tipo apropriado de interação com ela. Além de identificar, podemos perceber o estado emocional de uma pessoa apenas observando sua expressão facial.
Embora o reconhecimento facial seja uma tarefa simples para o ser humano, é extremamente complexo implementar esse processo em uma máquina, pois não sabemos, ao certo, como o cérebro humano realiza essa tarefa. O cérebro humano pode identificar corretamente uma pessoa a partir de sua imagem facial mesmo sobre as mais diversas condições, como variações de iluminação, observando apenas uma de suas características ou partes, e até mesmo com distorções ou deformações.
A eficiência de um sistema de reconhecimento facial pode ser medida pela porcentagem de acertos na identificação de pessoas sobre essas condições. Os sistemas de reconhecimento facial que existem atualmente não são seguros o suficiente para serem aplicados em larga escala, mas muitos avanços foram obtidos.
Existem diversas técnicas que podem ser utilizadas para a criação de um sistema de reconhecimento facial. Descreveremos as técnicas utilizadas para a construção de um sistema de reconhecimento facial que, a partir de uma fotografia ou imagem de vídeo, seja capaz de extrair a imagem facial da pessoa e verificar se essa pessoa pertence ou não a uma base de dados com imagens faciais previamente construídas.
O sistema de reconhecimento de faces é formado por três fases fundamentais: rastreamento da face, extração e seleção de características faciais, e reconhecimento da face.
Fonte: Bastet - Sistema de reconhecimento facial
http://www.bibl.ita.br/viiiencita/
Malic - Reconhecimento facial open-source
O malic é um projeto de reconhecimento facial open-source baseado na biblioteca OpenCV e Malib, utilizando filtro de gabor. Este projeto é composto 4 principais módulos:
- malicsampling: Utilizado para efetuar as marcações da face (olhos, nariz e outros);
- malicfacesampling: Este módulo armazena a face e o id do usuário (nome);
- malicrecog: Programa responsável pelo reconhecimento facial;
- malicsaver: Módulo simples, porém interessante. Neste aplicativo, o protetor de tela é invocado quando não existir uma face diante a câmera.
- Sistema operacional OpenSuSE 10.3;
- Compilador gcc 4.2.1;
- Kernel 2.6.22.5-31;
- Biblioteca OpenCV 1.0;
- Biblioteca Malib 0.5.8;
- Dispositivo de Video Captura: Webcam Orbit Logitech - Device compatível com api V4L (Vídeo for Linux) 1/2;
- Micro computador padrão IBM-PC (32/64 bits); Processador Pentium Cuo Core/ Core 2 Duo2Gbytes de RAM.
Abaixo os links para download dos pacotes:
OpenCV (fontes):
http://easynews.dl.sourceforge.net/.../opencv-1.0.0.tar.gz
OpenCV (rpm):
http://rpm.pbone.net/index.php3?stat=3&search=opencv&srodzaj=3
OpenCV-devel (rpm):
http://rpm.pbone.net/index.php3?stat=3&search=opencv-devel&srodzaj=3
Malib:
http://www.malib.net/archives/libmalib-0.5.8.tar.gz
Malic:
http://ufpr.dl.sourceforge.net/sourceforge/malic/malic-0.0.9.1.tar.gz
Instalação dos pacotes:
Para instalar a biblioteca a partir do código fonte, baixe o pacote .tar.gz (link acima), descompacte e execute os tradicionais comandos de magia negra ./configure, make e make install, como no exemplo abaixo.
# tar -zxvf opencv-1.0.0.tar.gz # cd opencv-1.0.0 # ./configureSe todas as dependências foram satisfeitas e tudo estiver funcionando corretamente, teremos uma tela similar ao resultado logo abaixo:
General configuration ======================================== Compiler: g++ CXXFLAGS: -Wall -fno-rtti -pipe -O3 -g -march=i686 -ffast-math -fomit-frame-pointer Install path: /usr/local HighGUI configuration ======================================== Windowing system -------------- Use Carbon / Mac OS X: no Use gtk+ 2.x: yes Use gthread: yes Image I/O --------------------- Use libjpeg: yes Use zlib: yes Use libpng: yes Use libtiff: yes Use libjasper: yes Use libIlmImf: no Video I/O --------------------- Use QuickTime / Mac OS X: no Use xine: no Use ffmpeg: no Use dc1394 & raw1394: no Use v4l: yes Use v4l2: yes Wrappers for other languages ================================= SWIG Python yes Additional build settings ==================================== Build demo apps yes Now run make ...Agora execute os mágicos comandos make e make install.
# make # make installSe preferir instalar os pacotes .rpm, abaixo as instruções de instalação:
# rpm -ivh opencv-1.0.0-22.1.i386.rpm # rpm -ivh opencv-devel-1.0.0-22.1.i386.rpmLogo a seguir as instruções de compilação da biblioteca Malib:
$ tar -zxvf libmalib-0.5.8.tar.gz $ cd libmalib-0.5.8 $ ./configure --prefix=/usr/local/malib $ make $ su Senha: # make installSe você chegou até aqui parabéns, pois o seu sistema está preparado para compilar o projeto de reconhecimento facial Malic, abaixo as instruções:
$ tar -zxvf malic-0.0.9.1.tar.gz $ cd malic-0.9.1 $ CFLAGS="-I/usr/local/malib/include -I/usr/local/opencv/include" \ LDFLAGS="-L/usr/local/malib/lib -L/usr/local/opencv/lib" ./configure --prefix=/usr/local/malic $ make $ su Senha: # make installUtilização do sistema
O primeiro passo é informar as coordenadas dos pontos característicos da face sobrancelha, olhos, nariz e boca. Para tal tarefa, execute o comando ./malicsampling e se tudo estiver funcionando corretamente, teremos uma tela como na ilustração abaixo:
Fig-A: Mapeando os pontos característicos
Para informar os pontos característicos no sistema, clique nos pontos extremos (esquerdo e direito) das sobrancelhas, dos olhos, nariz e boca. Lembrando que ao clicar em cada ponto, devemos pressionar o respectivo botão da coordenada correspondente. Ao término, pressione o botão ENTER para armazenar as coordenadas e depois no botão SAVE para gravar o arquivo .XML.
Agora o segundo passo é armazenar a FACE e um ID (nome se preferir) para um posterior autenticação. Execute o comando ./malicfacesampling para continuar com o procedimento.
Fig-B: Vinculando face e ID
Neste aplicativo, basta digitar o ID na caixa de texto e pressionar o botão ENTER seguido do botão SAVE e pronto!
Agora testaremos a identificação executando o comando malicrecog seguido do XML de gabor e o XML contendo a face e o ID. A segui um exemplo de execução:
$ ./malicrecog -j gaborrg_jet.xml -f face_jet.xml
Fig-C: Identificação Facial
O sinal vermelho indica que existe uma face diante a câmera, já o sinal azul corresponde a uma identificação concluída com sucesso.
Habilitando o ScreenSaver quando não houver usuário diante o computador.
Agora para finalizar, executaremos um aplicativo interessante que habilita o SCREENSAVER quando não existir uma face diante a câmera. Assim quando levantarmos do micro, automaticamente o protetor de tela será iniciado.
O processo é muito simples, basta abrir executar o xscreensaver e a seguir o malicsaver como no exemplo abaixo:
$ xscreensaver& $ ./malicsaverAgora é sair mostrando para todos, que o software livre proporciona a todos projetos interessantes e inovadores.
Vale a pena mencionar que o projeto malic apresenta mais recurso do que os mencionados neste texto. Para maiores informações, aconselho ler os arquivos do projeto.
Para finalizar, abaixo um vídeo mostrando o projeto em execução.
"Colaborar atrai amigos, competir atrai inimigos...
Use a força, LEIA OS FONTES!"
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware