Академический Документы
Профессиональный Документы
Культура Документы
desenvolvedores
AlessandrodeOliveiraFaria(A.K.A.Cabelo)
AGRADECIMENTOS
OopenCertifacebaseadonanuvem,aversodeemSoftwareLivredo
serviodebiometriafacialemnuvemCERTIFACE.Estainiciativafoisomente
possvelgraasvisodiferenciadadoGrupoHonda(scioseinvestidores
daempresaOITITECHNOLOGIES).Poisalmdeapoiartodotrabalho,
carregamoespritocolaborativo,comistotrazendoparaaempresao
objetivodeutilizaratecnologiaaserviodasociedade.Sendoassim,
agradeoemnomedetodacomunidadedesoftwarelivreporpermitiresta
contribuiocriadaparaprotegeraspessoasdobem.
Com11anostornouseapaixonadopor
tecnologiae/ouinovao,sciofundadorda
NETI/OITITECHNOLOGIES,ingressousecomo
membrodacomunidadeVivaoLinuxnoanode
2003,em1997inicioupesquisacomLinuxe
BiometriaeinventordoCERTIFACE(tecnologia
paraprotegeraspessoasdobem).
Apresentao
Oquebiometria?
finaldosculoXIX
Custocomputacional
Oquebiometriafacial?
Compararumaou
maisfaces.
Nenhumatecnologiaperfeita...
NoiniciodoSculoXX(1903)casoWillWest.
Oquebiometriafacial?
SuperGmeosdaTVRecord
Existemalgunsobstculosemtecnologiasbiomtricasde
cdigoaberto.
(aprendizadoRNA,testepopulacional)
Biometrialivre
VisoComputacional
Demandatemporeal;
Rudo;
Ambiguidade;
Custocomputacional;
Evoluodevice.
OpenCV
FaceTracker
Biblioteca para o rastreamento deformvel da face
escritoemC++usandoOpenCV.
https://github.com/kylemcdonald/FaceTracker
$gitclonehttps://github.com/kylemcdonald/FaceTracker
$cdFaceTracker/
$make
$cdbin
$./face_tracker
FaceTrackerComputaodistribuda
FaceTrackerComputaodistribuda
openbr
FaceRecognitionVendorTest(FRVT)2012;
13posioemacuracidade;
2posioemvelocidadedeenroll(100ms);
3posiotamanhoamostragem;
2posioemestimativadesexo;
4posioemestimativadeidade.
openbr
CompilaoeDependncias:
OpenCV2.4.xx
QT5
Openbr
Gsoap
openCertiface
Download:
$gitclonehttps://github.com/cabelo/opencertiface
Cloninginto'opencertiface'...
remote:Countingobjects:2577,done.
remote:Compressingobjects:100%(2104/2104),done.
remote:Total2577(delta405),reused2577(delta405),packreused0
Receivingobjects:100%(2577/2577),147.39MiB|3.91MiB/s,done.
Resolvingdeltas:100%(405/405),done.
Checkingconnectivity...done.
openCertiface
Compilao:
cdopencertiface/biometrics/
mkdirbuild
cdbuild
cmakeDCMAKE_BUILD_TYPE=Release..
TheCcompileridentificationisGNU4.8.1
TheCXXcompileridentificationisGNU4.8.1
CheckforworkingCcompiler:/usr/bin/ccworks
DetectingCcompilerABIinfodone
CheckforworkingCXXcompiler:/usr/bin/c++works
DetectingCXXcompilerABIinfo
DetectingCXXcompilerABIinfodone
Lookingforincludefilepthread.h
Lookingforincludefilepthread.hfound
Lookingforpthread_createinpthread
Lookingforpthread_createinpthreadfound
FoundThreads:TRUE
Configuringdone
Generatingdone
Buildfileshavebeenwrittento:
openCertiface
$makej4
#sudomakeinstall
$cd../../
$make
gccDLINUXcowebServerVerifyFace.owebServerVerifyFace.c
gccDLINUXDLINUXDWITH_NOEMPTYSTRUCTcsoapServer.cosoapServer.o
gccDLINUXDLINUXDWITH_NOEMPTYSTRUCTcsoapC.cosoapC.o
gccDLINUXDLINUXDWITH_NOEMPTYSTRUCTcfunctionSRV.cofunctionSRV.o
gccDLINUXDLINUXDWITH_NOEMPTYSTRUCTcping.coping.o
gccDLINUXpipeO2WD_REENTRANTfPIEDQT_NO_DEBUGDQT_GUI_LIBDQT_CORE_LIBI.I.
isystem/usr/include/qt5isystem/usr/include/qt5/QtGuiisystem/usr/include/qt5/QtCore
I.I/usr/lib64/qt5/mkspecs/linuxg++I/usr/include/opencvDLINUXDWITH_NOEMPTYSTRUCTc
I/usr/share/gsoap/I/usr/share/gsoap/pluginverifyAll.cppoverifyAll.o
gccDLINUXDLINUXgO2webServerVerifyFace.osoapServer.osoapC.ofunctionSRV.o
ping.overifyAll.olgsoaplstdc++lpthreadlopencv_corelopencv_highguilopenbr
lQt5CoreowebServerVerifyFace
gccDLINUXcowebServerVerifyFaceThread.owebServerVerifyFaceThread.c
gccDLINUXDLINUXgO2webServerVerifyFaceThread.osoapServer.osoapC.ofunctionSRV.o
ping.overifyAll.olgsoaplstdc++lpthreadlopencv_corelopencv_highguilopenbr
lQt5CoreowebServerVerifyFaceThread
gccDLINUXcoclientPING.oclientPING.c
gccDLINUXDLINUXDWITH_NOEMPTYSTRUCTcsoapClient.cosoapClient.o
gccDLINUXDLINUXgO2clientPING.osoapClient.osoapC.olgsoapoclientPING
gccDLINUXcoclientVerifyImg.oclientVerifyImg.c
gccDLINUXDLINUXgO2clientVerifyImg.osoapClient.osoapC.olgsoapo
clientVerifyImg
Epronto!
#makeinstall
redirectingtosystemctlstopopencertiface.service
installm755cwebServerVerifyFaceThread/usr/sbin/opencertiface
installm755cscript/opencertiface/etc/init.d/opencertiface
lnsf/etc/init.d/opencertiface/usr/sbin/rcopencertiface
/etc/init.d/opencertifacestart
redirectingtosystemctlstartopencertiface.service
BiometriaemC:Comparao
$./clientVerifyImghttp://azure.opencertiface.com.br:8081examples/images/cabelo1.jpg
examples/images/cabelo3.jpg1
numerodeargs5
Carregando:examples/images/cabelo1.jpg
Carregando:examples/images/cabelo3.jpg
Resultado:0.99999
N.loop=0
openCertiface
BiometriaemC:Comparao
$./clientVerifyImghttp://azure.opencertiface.com.br:8081examples/images/cabelo1.jpg
examples/images/cabelo4.jpg1
numerodeargs5
Carregando:examples/images/cabelo1.jpg
Carregando:examples/images/cabelo4.jpg
Resultado:0.81439
N.loop=0
openCertiface
Java
Stringurl=args[0];
Stringid=args[3];
OpencertifaceLocatorservice=newOpencertifaceLocator();
service.setopencertifaceEndpointAddress(url);
OpencertifacePortTypeport=service.getopencertiface();
byte[]imageBytes1=null;
byte[]imageBytes2=null;
System.out.println("Loadimage["+args[1]+"]");
FileInputStreamimg1=newFileInputStream(args[1]);
imageBytes1=newbyte[img1.available()];
img1.read(imageBytes1);
img1.close();
System.out.println("Loadimage["+args[2]+"]");
FileInputStreamimg2=newFileInputStream(args[2]);
imageBytes2=newbyte[img2.available()];
img2.read(imageBytes2);
img2.close();
Stringresult=port.verifyImg(imageBytes1,imageBytes2,id);
System.out.println("Resultado:"+result);
C
FILE*pFile;
pFile=fopen(argv[2],"r");
if(pFile!=NULL)
{
printf("Carregando:%s\n",argv[2]);
fseek(pFile,0,SEEK_END);
template1.__size=ftell(pFile);
rewind(pFile);
template1.__ptr=(unsignedchar*)malloc(template1.__size);
fread(template1.__ptr,1,template1.__size,pFile);
fclose(pFile);
save(template1.__ptr,"/tmp/fir1",template1.__size);
}
soap_call_ns__verifyImg(&soap,argv[1],"",&template1,&template2,"0",&result);
PHP
$uploaddir='./tmp/';
$uploadfile1=$uploaddir.$_FILES['ufile1']['name'];
$uploadfile2=$uploaddir.$_FILES['ufile2']['name'];
$client=newSoapClient('http://azure.opencertiface.com.br/opencertiface.wsdl',
array('trace'=>true,'exceptions'=>true));
$params1=file_get_contents($uploadfile1);
$params2=file_get_contents($uploadfile2);
$result=$client>verifyImg($params1,$params2,"00001");
echo"Similaridade:".$result;
Shell
$curlXPOSTH'Contenttype:text/xml'd@$1http://azure.opencertiface.com.br:8081
<?xmlversion="1.0"encoding="UTF8"?>
<SOAPENV:Envelope
xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns="urn:opencertiface">
<SOAPENV:BodySOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<ns:verifyImg>
<template1></template1>
<template2></template2>
<id></id>
</ns:verifyImg>
</SOAPENV:Body>
</SOAPENV:Envelope
IoTcomIntelEdison:
http://opencertiface.com.br
htps://github.com/cabelo/opencertiface
IoTcomIntelEdison:
http://opencertiface.com.br
htps://github.com/cabelo/opencertiface
FormatodeumsimplecartoSD,naverdade
umchipIntelQuarkde2nucleos22nmcom400MHZ
cominstruoesx86.
WifieBluetooth;
512Mbderamearmazenamentode2G;
MduloeinterfaceArduino;
Minsculo!
http://opencertiface.com.br
htps://github.com/cabelo/opencertiface
IoTcomIntelEdison(Compilaocruzada):
https://software.intel.com/enus/iot/hardware/edison/downloads
$unzip/dados/programas.install/Hardware/IntelEdison/edisonsdklinux64ww25.515.zip
Archive:/dados/programas.install/Hardware/IntelEdison/edisonsdklinux64ww25.515.zip
inflating:pokyedisonglibcx86_64edisonimagecore232toolchain1.7.2.manifest
inflating:pokyedisonglibcx86_64edisonimagecore232toolchain1.7.2.sh
$shpokyedisonglibcx86_64edisonimagecore232toolchain1.7.2.sh
EntertargetdirectoryforSDK(default:/opt/pokyedison/1.7.2):
YouareabouttoinstalltheSDKto/opt/pokyedison/1.7.2
Proceed[Y/n]?
ExtractingSDK...done
Settingitup...done
SDKhasbeensuccessfullysetupandisreadytobeused.
http://opencertiface.com.br
htps://github.com/cabelo/opencertiface
IoTcomIntelEdison(Compilaocruzada):
https://software.intel.com/enus/iot/hardware/edison/downloads
#include<iostream>
intmain()
{
std::cout<<";AssuntoNerd!"\n;
return0;
}
$source/opt/pokyedison/1.7.2/environmentsetupcore232pokylinux
$$CXXhello.cohello
$scphelloroot@192.168.2.15:/home/root
$./hello
AssuntoNerd!
http://opencertiface.com.br
htps://github.com/cabelo/opencertiface
IoTcomIntelEdison(Compilaocruzada):
https://software.intel.com/enus/iot/hardware/edison/downloads
#include<iostream>
intmain()
{
std::cout<<";AssuntoNerd!"\n;
return0;
}
$source/opt/pokyedison/1.7.2/environmentsetupcore232pokylinux
$$CXXhello.cohello
$scphelloroot@192.168.2.15:/home/root
$./hello
AssuntoNerd!
$source/opt/pokyedison/1.7.2/environmentsetupcore232pokylinux
$cdgsoap2.8/
$./configure
$make
$cdopencertiface/src
$patchMakefile../../Makefile.patch
patchingfileMakefile
$cd..
http://opencertiface.com.br
htps://github.com/cabelo/opencertiface
../gsoap2.8/gsoap/src/soapcpp2ebcTI/usr/share/gsoap/import:/usr/share/gsoap
functions.h
$makesoapC.o
$makesoapClient.o
$makeclientVerifyImg
$makeclientPING
i586pokylinuxgccm32march=core2mtune=core2msse3mfpmath=sse\
mstackrealignfnoomitframepointer\
sysroot=/opt/pokyedison/1.7.2/sysroots/core232pokylinuxDLINUX\
O2pipegfeliminateunuseddebugtypes\
coclientPING.oclientPING.c
i586pokylinuxgccm32march=core2mtune=core2msse3mfpmath=sse\
mstackrealignfnoomitframepointer\
sysroot=/opt/pokyedison/1.7.2/sysroots/core232pokylinuxDLINUX\
I../gsoap2.8/gsoap/DLINUXgO2clientPING.osoapClient.o\
soapC.o../gsoap2.8/gsoap/libgsoap.aoclientPING
http://opencertiface.com.br
htps://github.com/cabelo/opencertiface
PrximosPassos:
http://opencertiface.com.br
htps://github.com/cabelo/opencertiface
ImplementarAPIparaclculodeestimativadeidade
ImplementarAPIparaclculodeestimativadesexo
CdigoexemploemC#,perlepython
Tutorialdeinstalaoeutilizaodoopencertiface
Criarbibliotecadinamicaparaabstrairalgoritmoutilizado
Melhorarodesignerdapagina
CriarimagemLinux
CriarpacotesrpmparaFedora,RedHat,SUSEeopenSUSE
WebserviceRestFull
Modulodoapache
Ajuda:
http://opencertiface.com.br
htps://github.com/cabelo/opencertiface
IdentidadeVisual
PaginasWeb
Segurana
Melhorianocdigo
Divulgao
Oprximograndesaltoevolutivodahumanidadeser
adescobertadequecooperarmelhorquecompetir,
poiscolaboraratraiamigoscompetiratraiinimigos...
Obrigado
Duvidas,criticasesugestesemcabelo@opensuse.org
Novidadesnobloghttp://assuntonerd.com.br