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.
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& $ ./malicsaver
Agora é 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!"
[4] Comentário enviado por fmpfmp em 12/05/2008 - 20:05h
Olha cara, essa teoria toda é muito interessante, mas na prática estes sistemas de reconhecimento facial são uma grande furada. Existe um grande shopping aqui no Rio que resolveu adotá-lo, e com o tempo a quantidade de pessoas cadastradas cresceu a tal ponto que o sistema não conseguia mais reconhecer os rostos das pessoas, obrigando as recepcionistas a pedir identidade sempre. Foi uma grande furada, e um alto preço pago pelo shopping por ter sido um dos pioneiros a adotar esse tipo de tecnologia, que está longe de ser perfeita.
[5] Comentário enviado por clayton.ricardo em 12/05/2008 - 21:50h
Parabéns Cabelo pelo artigo!
Fiquei com uma dúvida: é possível utilizar este recurso como login nas máquinas [Desktops/Notebooks]?
Imaginei essa situação em notebooks que têm webcam integrada, mas não possui o leitor biométrico embutido (normalmente mais caros).
Seria uma alternativa bem interessante p/ incrementar a segurança do equipamento a custo zero.
[10] Comentário enviado por gianezi em 16/05/2008 - 00:24h
quando digito : $ ./configure --prefix=/usr/local/malib
dá o seguinte erro:
checking for perl... /usr/bin/perl
checking for glib-config... no
checking for GLIB - version >= 1.2.7... no
*** The glib-config script installed by GLIB could not be found
*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GLIB_CONFIG environment variable to the
*** full path to glib-config.
configure: error: Glib 1.2.7 not found.
alguem pode me ajudar?
uso o ubuntu 8.04 64 e tenho conhecimentos quase que irrisórios sobre linux.
atenciosamente,
Domingos Gianezi
[11] Comentário enviado por michel5670 em 16/05/2008 - 19:11h
Colega dgianesi também estou com o mesmo problema se consegui resolver esse problema posta ai:
Se eu resolver esse problema também postarei a solução:
Se tiver alguém ai que puder nos ajudar eu agradeço:
[14] Comentário enviado por gleyson em 13/06/2008 - 17:57h
boa tarde, dei um ./configure e recebi a seguinte mensagem:
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/bin/sh: /home/gleyson/bin/BIOMETRIA: No such file or directory
configure: WARNING: `missing' script is too old or missing
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking for C++ compiler default output file name... configure: error: C++ compiler cannot create executables
See `config.log' for more details.
[17] Comentário enviado por cart em 16/06/2008 - 17:51h
Esta ultima msg de 15/06/2008 n sei exatamente, mas parece ser a falta de algum pacote de devel (nesse caso do gnome), mas é só um palpite, se resolveu posta aqui a solução pra ajudar a quem chegar aqui atraves de search engines.
Já o Glaysson me mandou por email o seguinte problema:
malic_common.c: In function ‘malic_toggle_running_clicked’:
malic_common.c:534: error: ‘MalibSink’ undeclared (first use in this
function)
malic_common.c:534: error: ‘sink’ undeclared (first use in this function)
malic_common.c:535: error: ‘MalibSinkStatus’ undeclared (first use in this
function)
malic_common.c:535: error: expected ‘;’ before ‘status’
malic_common.c:537: error: expected expression before ‘)’ token
malic_common.c:538: error: ‘status’ undeclared (first use in this
function)
malic_common.c:538: warning: implicit declaration of function
‘malib_sink_get_status’
malic_common.c:539: warning: implicit declaration of function
‘malib_sink_set_status’
malic_common.c:539: error: ‘MALIB_SINK_RUNNING’ undeclared (first use in
this function)
malic_common.c:540: error: ‘MALIB_SINK_HALT’ undeclared (first use in this
function)
malic_common.c: In function ‘malic_pixmap_update’:
malic_common.c:560: warning: passing argument 1 of ‘gtk_widget_ref’ from
incompatible pointer type
malic_common.c: In function ‘makeMalicFaceGraphWithImgData’:
malic_common.c:577: warning: implicit declaration of function
‘setFaceGraphMembers’
malic_common.c: In function ‘face_graph_deepcopy’:
malic_common.c:592: warning: implicit declaration of function
‘grm_jet_new_and_copy’
malic_common.c: In function ‘malic_int_value_label_update’:
malic_common.c:602: warning: format ‘%d’ expects type ‘int’, but argument
3 has type ‘long int’
make[3]: ** [malic_common.o] Erro 1
make[3]: Saindo do diretório `/home/gleyson/bin/malic-0.0.9.1/src'
make[2]: ** [all-recursive] Erro 1
make[2]: Saindo do diretório `/home/gleyson/bin/malic-0.0.9.1/src'
make[1]: ** [all-recursive] Erro 1
make[1]: Saindo do diretório `/home/gleyson/bin/malic-0.0.9.1'
make: ** [all-recursive-am] Erro 2
Esse erro é pq o compilador n ta encontrando as bibliotecas nem os headers do Malib...
Apontando corretamente onde o malib foi instalado (a CFLAGS tem q ter os arquivos terminados com .h, como sink.h, malib.h, etc, a LDFLAGS tem q ter os arquivos terminados com .so,.a,.la, como libmalib.a, libmalib.la, libmalib.so).
aparentmente tambe executou legal, mas quando dei o make a mesma coisa, mas uma coisa que posso notar é que o caminho /usr/local/opencv/lib não existe, existe um opencv dentro de /usr/local/share/opencv mesmo assim nao tem nenhma pasta lib e outra dentro de /usr/share/opencv e outra dentro de /usr/local/include/opencv, dentro delas tem arquivos .h, mas nenhuma te a pasta lib.
mas uma vez valeu pela ajuda, vou essa mensagem no forum tambem
[19] Comentário enviado por cart em 17/06/2008 - 10:09h
O erro que deu na primeira mensagem é por falta de headers:
malic_common.c:534: error: ‘MalibSink’ undeclared (first use in this
function)
O compilador n ta encontrando os .h do malib!
Em http://malic.sourceforge.net/ tem cada comando necessário, tenta começar do zero instalando o opencv e malib de novo so copiando e colando os passos lá! Se ainda assim n conseguir manda pro meu email com mais linhas do erro q dá...
[20] Comentário enviado por renatoptr em 31/07/2008 - 19:25h
hecking for perl... /usr/bin/perl
checking for glib-config... no
checking for GLIB - version >= 1.2.7... no
*** The glib-config script installed by GLIB could not be found
*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GLIB_CONFIG environment variable to the
*** full path to glib-config.
configure: error: Glib 1.2.7 not found.
O meu acontece a mesma coisa instalei o glib 2.16 e nada uso ubuntu hardy
[24] Comentário enviado por fredim em 23/09/2009 - 20:37h
webcam.c: In function 'malib_webcam_new_with_config':
webcam.c:61: warning: incompatible implicit declaration of built-in function 'memset'
webcam.c:62: warning: incompatible implicit declaration of built-in function 'strcpy'
webcam.c: In function 'malib_webcam_connect_server':
webcam.c:85: warning: incompatible implicit declaration of built-in function 'strlen'
webcam.c: In function 'malib_webcam_copy_decompressed_image':
webcam.c:134: error: label at end of compound statement
webcam.c: In function 'malib_webcam_init':
webcam.c:160: warning: incompatible implicit declaration of built-in function 'memcpy'
webcam.c: In function 'malib_webcam_get_next_frame':
webcam.c:265: warning: incompatible implicit declaration of built-in function 'memcpy'
webcam.c:273: warning: incompatible implicit declaration of built-in function 'memcpy'
make[3]: ** [webcam.lo] Erro 1
Estou com este problema na hora do make do malib .
[26] Comentário enviado por Rafilsk em 09/10/2009 - 08:22h
Bom dia a todos, estou com o mesmo problema do gleyson, na hora de rodar o MAKE no Malic ocorre vários eros de compilação, pelo que vi ele nã encontra as bibliotecas do malib e tal... não sei se tem a ver mas o comando
não deu certo, dai eu lendo aqui nos posts fiz como o gleyson falou... aparentemente os comandos foram executados corretamente. Porem na hora do maker dá xabú!
alguem pode ajudar ai?
Obs. Já tentei reinstalar tudo de novo, desde o opencv e o malib;
porem nada ainda :(
[30] Comentário enviado por gigatesla boy em 15/11/2011 - 21:25h
Aqui ta dando esse erro. Alguem sabe como arrumar?
/usr/local/malib/include/malib/filter.h:155:8: note: expected 'struct MalibFilter *' but argument is of type 'struct MalicCVHaarDetectObj *'
malic_cv_haar_detect_obj.c: In function 'malic_cv_haar_detect_obj_set_params_and_cascade':
malic_cv_haar_detect_obj.c:95:10: warning: unused variable 'size'
malic_cv_haar_detect_obj.c: In function 'malic_cv_haar_detect_obj_set_params':
malic_cv_haar_detect_obj.c:126:5: warning: 'return' with a value, in function returning void
malic_cv_haar_detect_obj.c:117:7: warning: unused variable 'colors'
malic_cv_haar_detect_obj.c:116:15: warning: unused variable 'frame'
malic_cv_haar_detect_obj.c:115:10: warning: unused variable 'size'
malic_cv_haar_detect_obj.c: In function 'malic_cv_haar_detect_obj_write_frame_data':
malic_cv_haar_detect_obj.c:151:35: warning: pointer targets in assignment differ in signedness
malic_cv_haar_detect_obj.c:152:35: warning: pointer targets in assignment differ in signedness
malic_cv_haar_detect_obj.c:164:10: error: too few arguments to function 'cvHaarDetectObjects'
/usr/local/include/opencv2/objdetect/objdetect.hpp:137:15: note: declared here
malic_cv_haar_detect_obj.c:142:11: warning: unused variable 'j'
malic_cv_haar_detect_obj.c:142:9: warning: unused variable 'i'
make[3]: *** [malic_cv_haar_detect_obj.o] Error 1
[31] Comentário enviado por v.diniz em 13/05/2012 - 14:09h
Pessoa to parado com esse problema alguem sabe como resolver caso alguem saiba eu agradeço:
In file included from bttv.c:19:0:
bttv.h:114:19: error: field 'vch' has incomplete type
bttv.h:116:17: error: field 'vmbuf' has incomplete type
bttv.h:118:17: error: field 'vmmap' has incomplete type
bttv.c: In function 'malib_bttv_new':
bttv.c:63:10: error: 'VIDEO_PALETTE_RGB24' undeclared (first use in this function)
bttv.c:63:10: note: each undeclared identifier is reported only once for each function it appears in
bttv.c:65:10: error: 'VIDEO_MODE_NTSC' undeclared (first use in this function)
bttv.c: In function 'malib_bttv_new_with_device':
bttv.c:79:10: error: 'VIDEO_PALETTE_RGB24' undeclared (first use in this function)
bttv.c:81:10: error: 'VIDEO_MODE_NTSC' undeclared (first use in this function)
bttv.c: In function 'malib_bttv_new_with_size':
bttv.c:95:10: error: 'VIDEO_PALETTE_RGB24' undeclared (first use in this function)
bttv.c:97:10: error: 'VIDEO_MODE_NTSC' undeclared (first use in this function)
bttv.c: In function 'malib_bttv_start_capture':
bttv.c:141:24: error: 'VIDIOCMCAPTURE' undeclared (first use in this function)
bttv.c:144:28: error: 'VIDEO_PALETTE_YUV420P' undeclared (first use in this function)
bttv.c: In function 'malib_bttv_init':
bttv.c:210:22: error: storage size of 'vcap' isn't known
bttv.c:227:24: error: 'VIDIOCGCAP' undeclared (first use in this function)
bttv.c:239:24: error: 'VIDIOCGMBUF' undeclared (first use in this function)
bttv.c:262:24: error: 'VIDIOCSCHAN' undeclared (first use in this function)
bttv.c: In function 'malib_bttv_convert_colorinfo':
bttv.c:331:10: error: 'VIDEO_PALETTE_GREY' undeclared (first use in this function)
bttv.c:336:10: error: 'VIDEO_PALETTE_YUV420P' undeclared (first use in this function)
bttv.c:338:10: error: 'VIDEO_PALETTE_RGB24' undeclared (first use in this function)
bttv.c: In function 'malib_bttv_capture_next_frame':
bttv.c:372:23: error: 'VIDIOCMCAPTURE' undeclared (first use in this function)
bttv.c:381:23: error: 'VIDIOCSYNC' undeclared (first use in this function)
bttv.c: In function 'malib_bttv_write_frame_data':
bttv.c:454:10: error: 'VIDEO_PALETTE_RGB24' undeclared (first use in this function)
bttv.c:474:10: error: 'VIDEO_PALETTE_YUV420P' undeclared (first use in this function)
bttv.c:479:10: error: 'VIDEO_PALETTE_GREY' undeclared (first use in this function)
make[3]: ** [bttv.lo] Erro 1
make[3]: Saindo do diretório `/home/vinicius/Downloads/libmalib-0.5.8/malib'
make[2]: ** [all-recursive] Erro 1
make[2]: Saindo do diretório `/home/vinicius/Downloads/libmalib-0.5.8/malib'
make[1]: ** [all-recursive] Erro 1
make[1]: Saindo do diretório `/home/vinicius/Downloads/libmalib-0.5.8'
make: ** [all] Erro 2