De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Alessandro de Oliveira Faria
Data de Publicação: 14 de julho de 2016
Tudo começou em 2003 quando foquei minhas pesquisas na biometria facial depois de testar todas as formas de biometria. Após 6 anos surgiu o CERTIFACE, um serviço em nuvem criado para proteger as pessoas do bem, nasceu para que ninguém compre no seu nome com documentação falsa, resumidamente nasceu para erradicar a fraude no mercado presencial e on-line.
O Certiface opera em nuvem, conta com toda experiência da empresa adquirida no segmento de biometria desde 1997, além da experiência, no Certiface existe toda a dedicação, empenho e muito trabalho sério da equipe que funciona como um único organismo. Então em 2015 Surgiu o openCertiface lançado na Campus Party 2016.
O openCertiface é a versão em software livre do serviço de biometria facial em nuvem CERTIFACE. Esta iniciativa foi somente possível graças à visão diferenciada do Grupo Honda (sócios e investidores da empresa OITI TECHNOLOGIES). Pois além de apoiar todo trabalho, carregam o espírito colaborativo, com isto trazendo para a empresa o objetivo de utilizar a tecnologia a serviço da sociedade. Sendo assim, agradeço em nome de toda comunidade de software livre por permitir esta contribuição criada para proteger as pessoas do bem.
O openCertiface é um serviço WebService SOAP escrito em C cujo principal objetivo é receber duas imagens e compará-las com algoritmos biométricos de reconhecimento facial (openBR) e retornar uma taxa de similaridade. Ou seja esta taxa fornece o quanto estas imagens são parecidas. Para exercer esta tarefa, foram utilizadas as bibliotecas GSOAP e openBR. O algoritmo openBR foi incorporado ao projeto para evitar incompatibilidade referente à atualização de versões matemáticas do algoritmo. Sendo assim posteriores atualizações estáveis do projeto openBR serão incorporadas no git do projeto openCertiface.
A aplicabilidade do projeto é imensa. Mas focarei apenas na principal meta deste documento, compilá-lo a partir do código fonte presente no GIT. Como também explicar as principais funções com exemplos cliente em C, Java, Bash e PHP (para começar esta bom). Mas chega de explicação e vamos para a mão na massa.
Biblioteca de visão computacional openCV
A biblioteca de visão computacional openCV é a dependência base do algoritmo matemático, não entrarei em detalhes para não criar um artigo dentro de outro artigo. Sendo assim, para obter mais detalhes sobre download, compilação e instalação sugiro a leitura deste artigo presente no VOL:
Visão Computacional - Reconhecendo objetos na plataforma Linux via Webcam
Esta biblioteca é a dependência do projeto openCertiface, esta lib tem a função de facilitar a construção de WebService SOAP com gerenciamento de thread, pool de conexão entre inúmeras funcionalidades. Mais informações sugiro visitar a página oficial do projeto:
http://www.cs.fsu.edu/~engelen/soap.html
Como estou sozinho nesta jornada, disponibilizei compilei, empacotei e publiquei no meu repositório openSUSE os pacotes rpm apenas para as distribuições:
A seguir os comandos de instalação nas respectivas distribuições (logado como root).
# cd /etc/yum.repos.d/ # wget http://download.opensuse.org/repositories/home:cabelo/CentOS_7/home:cabelo.repo # yum install libgsoap-devel
# cd /etc/yum.repos.d/ # wget http://download.opensuse.org/repositories/home:cabelo/CentOS_6/home:cabelo.repo # yum install libgsoap-devel
# cd /etc/yum.repos.d/ # wget http://download.opensuse.org/repositories/home:cabelo/Fedora_22/home:cabelo.repo # yum install libgsoap-devel
# cd /etc/yum.repos.d/ # wget http://download.opensuse.org/repositories/home:cabelo/Fedora_23/home:cabelo.repo # yum install libgsoap-devel
# cd /etc/yum.repos.d/ # wget http://download.opensuse.org/repositories/home:cabelo/RHEL_6/home:cabelo.repo # yum install libgsoap-devel
# cd /etc/yum.repos.d/ # wget http://download.opensuse.org/repositories/home:cabelo/RHEL_7/home:cabelo.repo # yum install libgsoap-devel
# zypper addrepo http://download.opensuse.org/repositories/home:cabelo/SLE_12/home:cabelo.repo # zypper refresh # zypper install gsoap
# zypper addrepo http://download.opensuse.org/repositories/home:cabelo/SLE_12_SP1/home:cabelo.repo # zypper refresh # zypper install gsoap
# zypper addrepo http://download.opensuse.org/repositories/home:cabelo/openSUSE_Tumbleweed/home:cabelo.repo # zypper refresh # zypper install gsoap
# zypper addrepo http://download.opensuse.org/repositories/home:cabelo/openSUSE_Leap_42.1/home:cabelo.repo # zypper refresh # zypper install gsoap
# zypper addrepo http://download.opensuse.org/repositories/home:cabelo/openSUSE_13.2/home:cabelo.repo # zypper refresh # zypper install gsoap
# zypper addrepo http://download.opensuse.org/repositories/home:cabelo/openSUSE_13.1/home:cabelo.repo # zypper refresh # zypper install gsoap
Caso o seu sistema operacional seja diferente dos mencionados aqui, na próxima página a compilação a partir dos fontes...
Para instalar a biblioteca GSOAP a partir do código fonte, primeiramente efetue o download do código fonte no sourceforge, conforme o exemplo abaixo:
wget "downloads.sourceforge.net/project/gsoap2/gSOAP/gsoap_2.8.29.zip?r=&ts=1459146537&use_mirror=ufpr"
A seguir descompacte o pacote e entre na pasta recém criada:
$ unzip gsoap_2.8.29.zip $ cd gsoap-2.8/
Agora utilize o comando ./configure para criar o Makefile e todo o sistema de compilação.
./configure
A seguir, utilize o comando "make" seguido do "make install" para compilar e instalar em seu sistema operacional e pronto! Ambiente configurado e instalado com sucesso.
# make # make install
E pronto, nesta etapa as dependências do Certiface estarão instaladas e configuradas com sucesso.
Primeiramente efetue o download do código fonte do openCertiface no repositório GIT:
git clone https://github.com/cabelo/opencertiface Cloning into 'opencertiface'... remote: Counting objects: 4292, done. remote: Compressing objects: 100% (1562/1562), done. remote: Total 4292 (delta 459), reused 0 (delta 0), pack-reused 2713 Receiving objects: 100% (4292/4292), 365.93 MiB | 3.51 MiB/s, done. Resolving deltas: 100% (953/953), done. Checking connectivity... done.
Ao término, entre na pasta biometrics do projeto openCertiface, crie a pasta build e execute o cmake conforme o exemplo a seguir para compilar o algoritmo matemático.
$ cd opencertiface/biometrics/ $ mkdir build $ cd build/ $ cmake -DCMAKE_BUILD_TYPE=Release -Wno-dev ..
Agora efetue o comando make e vá tomar um CAFÉ...
$ make
Ao concluir a compilação efetue o comando make install para instalar o algoritmo biométrico.
$ make install
Neste momento o algoritmo biométrico base foi instalado com sucesso no seu sistema.
Primeiramente verificaremos se o motor biométrico esta funcionando corretamente. Então entre a pasta imagens e execute o comando br conforme o exemplo a seguir. Se tudo estiver funcionando corretamente, será exibido o numero 4.34175 ao final da execução que representa a similaridade entre as duas imagens comparadas.
$ cd ../../images/ $ br -algorithm FaceRecognition -compare cabelo10.jpg cabelo11.jpg Set algorithm to FaceRecognition Loading /usr/local/share/openbr/models/algorithms/FaceRecognition Comparing cabelo10.jpg and cabelo11.jpg Enrolling cabelo10.jpg to cabelo1075pr54.mem 100.00% ELAPSED=00:00:00 REMAINING=00:00:00 COUNT=1 100.00% ELAPSED=00:00:00 REMAINING=00:00:00 COUNT=1 4.34175
Volte para a pasta openCertiface e execute o comando make para efetuar a compilação.
$ make
O próximo passo é instalar o openCertiface com o comando make install.
$ sudo make install
Para iniciar o serviço, execute o comando abaixo conforme o exemplo com os argumentos stop/start/status.
# /etc/init.d/opencertiface stop redirecting to systemctl stop opencertiface.service philco:/dados/Arquivos/Fontes/opensource/opencertiface # /etc/init.d/opencertiface start redirecting to systemctl start opencertiface.service # /etc/init.d/opencertiface status Checking for openCertiface daemon running opencertiface.service - LSB: People Profile Loaded: loaded (/etc/init.d/opencertiface) Active: active (running) since Seg 2016-03-28 22:34:59 BRT; 24s ago Process: 17470 ExecStop=/etc/init.d/opencertiface stop (code=exited, status=0/SUCCESS) Process: 17485 ExecStart=/etc/init.d/opencertiface start (code=exited, status=0/SUCCESS) CGroup: /system.slice/opencertiface.service 17495 [opencertifaceGuardian] 8081 17496 [opencertiface] 8081
Para comprovar que tudo esta funcionando corretamente, execute o comando clientVerify para com os argumentos contendo duas imagens para comparação e no final a quantidade de ciclos de execução.
$ ./clientVerifyImg http://localhost:8081 images/cabelo10.jpg images/cabelo11.jpg 1 numero de args 5 Carregando: images/cabelo10.jpg Carregando: images/cabelo11.jpg Resultado: 4.34175 N.loop=0
Existem também uma alternativa para verificar que o serviço esta no ar, o comando clientPING tem esta finalidade.
$ ./clientPING http://localhost:8081 Viva.O.Linux 1 result = Ok:Viva.O.Linux uptime: 0 days, 22:41:01 total RAM : 2981.3 MB free RAM : 347.2 MB N.loop=0
@Pronto! Parabéns, o openCertiface foi instalado com sucesso!
O openCertiface apresenta exemplos em Bash, C, Java e PHP (a caminho Mono e Python). Estes exemplos estão na pasta examples do projeto. Então deixo aqui uma breve receita de bolo de como utilizar um exemplo em PHP, o principal objetivo deste exemplo é estar o openCertiface. Sendo assim estou aberto à críticas e sugestões para tal tarefa.
# cd opencertiface/examples/php/ # mkdir /srv/www/htdocs/opencertiface/ # cp * /srv/www/htdocs/opencertiface/
P.S.: lembre-se de alterar no arquivo check.php a linha 24 que encontra-se a localização e/ou URL do opencertiface.wsdl. Esta chamada deve apontar para a localização no seu servidor. Veja o exemplo abaixo. Vale a pena mencionar também o conteúdo do arquivo opencertiface.wsdl.
$ client = new SoapClient('http://localhost/certiface/opencertiface.wsdl', array('trace' => true, 'exceptions' => true)); # rcapache2 start
Agora basta acessar a URL http://localhost/opencertiface/ e teremos a seguinte interface:
Mais informações envie email para <cabelo (a) opensuse org>, e lembre-se colaborar atrai amigos, competir atrai inimigos.
Alessandro de Oliveira Faria é Sócio-fundador da empresa OITI TECNOLOGIA fundada em Junho de 1996, empresa especializada em desenvolvimento de soluções com a tecnologia de Reconhecimento Facial, Consultor Biométrico, Experiência em Realidade Aumentada, Visão Computacional (opencv), Neuro-tecnologia, Redes Neurais e Programação multi-nuclear com CPU e GPU, atua na área de tecnologia desde 1986, leva o Linux a sério desde 1998, membro da comunidade Viva O Linux com mais de 50 palestras e 100 artigos publicados, mantenedor da biblioteca open-source de vídeo captura, Embaixador e openSUSE Member.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários