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 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.
[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