Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Apresentao
Com11anostornouseapaixonadopor
tecnologiae/ouinovao,sciofundadorda
NETI/OITITECHNOLOGIES,ingressousecomo
membrodacomunidadeVivaoLinuxnoanode
2003,em1997inicioupesquisacomLinuxe
BiometriaeinventordoCERTIFACE(tecnologia
paraprotegeraspessoasdobem).
Oquebiometria?
finaldosculoXIX
Custocomputacional
Oquebiometriafacial?
Compararumaou
maisfaces.
Oquebiometriafacial?
Nenhumatecnologiaperfeita...
NoiniciodoSculoXX(1903)casoWillWest.
Oquebiometriafacial?
SuperGmeos:openCVnaTVRecord
Biometrialivre
Existemalgunsobstculosemtecnologiasbiomtricasde
cdigoaberto.
(aprendizadoRNA,testepopulacional)
openCV
Demandatemporeal;
Rudo;
Ambiguidade;
Custocomputacional;
Evoluodevice.
openCV
Grande parte dos projetos de viso computacional
envolveoprojetoopenCV.
cmakeDCMAKE_BUILD_TYPE=Release\
DCMAKE_INSTALL_PREFIX='%{_prefix}'\
DCMAKE_SKIP_RPATH=ON\
DBUILD_TESTS=OFF\
DBUILD_PYTHON_SUPPORT=ON\
DINSTALL_C_EXAMPLES=ON\
DINSTALL_PYTHON_EXAMPLES=ON\
DLIB_SUFFIX=$(echo%{_lib}|cutb4)\
DENABLE_OMIT_FRAME_POINTER=OFF\
DWITH_QT=ON\
DWITH_OPENGL=ON\
DWITH_TBB=ON\
DWITH_UNICAP=ON\
DWITH_XINE=ON\
%ifnarchx86_64
DENABLE_SSE=0\
DENABLE_SSE2=0\
%endif
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
FaceTracker
openBR
openBR
FaceRecognitionVendorTest(FRVT)2012;
13posioemacuracidade;
2posioemvelocidadedeenroll(100ms);
3posiotamanhoamostragem;
2posioemestimativadesexo;
4posioemestimativadeidade.
openBR
CompilaoeDependncias:
OpenCV2.4.xx
(homologareiopenCV3.0.0)
QT5
openBR
Download:
$gitclonehttps://github.com/biometrics/openbr.git
Cloninginto'openbr'...
remote:Countingobjects:15307,done.
remote:Compressingobjects:100%(7611/7611),done.
remote:Total15307(delta8214),reused14260(delta7185)
Receivingobjects:100%(15307/15307),21.06MiB|79.00KiB/s,done.
Resolvingdeltas:100%(8214/8214),done.
Checkingconnectivity...done
$cdopenbr
$gitsubmoduleinit
$gitsubmoduleupdate
openBR
Compilao:
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:
openBR
Compilao:
$makej4
#sudomakeinstall
$cd../scripts/
$./downloadDatasets.sh
$cd../build
$maketest
Epronto!
openBR
BiometrianoSHELL:Comparao
$bralgorithmFaceRecognitioncomparecabelo1.jpgcabelo3.jpg
SetalgorithmtoFaceRecognition
LoadingFaceRecognition
Comparingcabelo1.jpgandcabelo3.jpg
Enrollingcabelo1.jpgtocabelo1YG8hI4.mem
100.00%ELAPSED=00:00:00REMAINING=00:00:00COUNT=1
100.00%ELAPSED=00:00:00REMAINING=00:00:00COUNT=1
0.999997
openBR
BiometrianoSHELL:Comparao
$bralgorithmFaceRecognitioncomparecabelo1.jpgcabelo4.jpg
SetalgorithmtoFaceRecognition
LoadingFaceRecognition
Comparingcabelo1.jpgandcabelo4.jpg
Enrollingcabelo1.jpgtocabelo1YG8hI4.mem
100.00%ELAPSED=00:00:00REMAINING=00:00:00COUNT=1
100.00%ELAPSED=00:00:00REMAINING=00:00:00COUNT=1
0.814393
openBR
BiometrianoSHELL:Estimativa/idade
$bralgorithmAgeEstimationenrollcabelo1.jpgmetadata.csv
SetalgorithmtoAgeEstimation
LoadingAgeRegression
Enrollingcabelo1.jpgtometadata.csv
100.00%ELAPSED=00:00:00REMAINING=00:00:00COUNT=1
catmetadata.csv
File,Affine_0_X,Affine_0_Y,Affine_1_X,Affine_1_Y,Age,Confidence,DFFS,FTE,First_Eye_X
,First_Eye_Y,FrameNumber,FrontalFace_X,FrontalFace_Y,FrontalFace_Width,FrontalFace_H
eight,PossibleFTE,Second_Eye_X,Second_Eye_Y
cabelo1.jpg,193,203,332,203,47.5148,1,1099.32,false,193,203,0,112,96,307,307,true,33
2,203
openBR
BiometrianoSHELL:Estimativa/Sexo
$bralgorithmAgeEstimationenrollcabelo1.jpgmetadata.csv
SetalgorithmtoGenderEstimation
LoadingGenderClassification
Enrollingcabelo1.jpgtometadata.csv
100.00%ELAPSED=00:00:00REMAINING=00:00:00COUNT=1
$catmetadata.csv
File,Affine_0_X,Affine_0_Y,Affine_1_X,Affine_1_Y,Confidence,DFFS,FTE,First_Eye_X,Fir
st_Eye_Y,FrameNumber,FrontalFace_X,FrontalFace_Y,FrontalFace_Width,FrontalFace_Heigh
t,Gender,PossibleFTE,Second_Eye_X,Second_Eye_Y
cabelo1.jpg,193,203,332,203,1,1099.32,false,193,203,0,112,96,307,307,Male,true,332,2
03
openBR
C++Compilao
g++cpipeO2WallWD_REENTRANTfPIEDQT_NO_DEBUGDQT_GUI_LIBDQT_CORE_LIBI.
I.isystem/usr/include/qt5isystem/usr/include/qt5/QtGuiisystem
/usr/include/qt5/QtCoreI.I/usr/lib64/qt5/mkspecs/linuxg++oage.oage.cpp
g++Wl,O1oageage.olQt5GuiL/usr/lib64lQt5CorelGLlpthreadlopenbr
lopencv_core
openBR
C++Exemploestimativaidade
intmain(intargc,char*argv[])
{
br::Context::initialize(argc,argv);
QSharedPointer<br::Transform>transform=br::Transform::fromAlgorithm("AgeEstimation");
br::TemplatequeryA("./cabelo1.jpg");
queryA>>*transform;
printTemplate(queryA);
br::Context::finalize();
return0;
}
$./age
LoadingAgeRegression
100.00%ELAPSED=00:00:00REMAINING=00:00:00COUNT=1
cabelo1.jpgage:47
openBR
C++Exemploestimativasexo.
intmain(intargc,char*argv[])
{
br::Context::initialize(argc,argv);
br::Context::initialize(argc,argv);
QSharedPointer<br::Transform>transform=br::Transform::fromAlgorithm("AgeEstimation");
QSharedPointer<br::Transform>transform=br::Transform::fromAlgorithm("GenderEstimation");
br::TemplatequeryA("./cabelo1.jpg");
br::TemplatequeryA("./cabelo1.jpg");
queryA>>*transform;
queryB>>*transform;
printTemplate(queryA);
printTemplate(queryB);
br::Context::finalize();
br::Context::finalize();
return0;
return0;
}
$./gender
LoadingGenderClassification
100.00%ELAPSED=00:00:00REMAINING=00:00:00COUNT=1
cabelo1.jpggender:Male
openBR
C++ExemploVerificaoBiomtrica
intmain(intargc,char*argv[])
{
br::Context::initialize(argc,argv);
QSharedPointer<br::Transform>transform=br::Transform::fromAlgorithm("FaceRecognition");
QSharedPointer<br::Distance>distance=br::Distance::fromAlgorithm("FaceRecognition");
br::TemplatequeryA("./cabelo2.jpg");
br::TemplatequeryB("./cabelo1.jpg");
queryA>>*transform;
queryB>>*transform;
target>>*transform;
printTemplate(queryA);
printTemplate(queryB);
printTemplate(target);
floatcomparisonA=distance>compare(target,queryA);
floatcomparisonB=distance>compare(target,queryB);
printf("Genuinematchscore:%.3f\n",comparisonA);
printf("Genuinomatchscore:%.3f\n",comparisonB);
br::Context::finalize();
return0;
}
openBR
C++ExemploVerificaoBiomtrica
intmain(intargc,char*argv[])
{
$./verification
br::Context::initialize(argc,argv);
LoadingFaceRecognition
QSharedPointer<br::Transform>transform=br::Transform::fromAlgorithm("AgeEstimation");
100.00%ELAPSED=00:00:00REMAINING=00:00:00COUNT=1
br::TemplatequeryA("./cabelo1.jpg");
100.00%ELAPSED=00:00:00REMAINING=00:00:00COUNT=1
queryA>>*transform;
cabelo2.jpgeyes:(252,231)(357,225)
printTemplate(queryA);
asiatico1.jpgeyes:(103,158)(187,156)
br::Context::finalize();
cabelo1.jpgeyes:(193,203)(332,203)
return0;
Genuinematchscore:1,000
}
Impostormatchscore:0,155
Face3D
OpenSUSE 13.2 processando em tempo real imagens
em3dimenses
https://github.com/teknotus/depthview
https://github.com/teknotus/depthview/tree/kernelpatchfmt
$gitclonehttps://github.com/teknotus/depthview
cddepthview/
qmake
make
./depthview
openBR
Prlanamentodoopenhowold
Oficialmente no FISL 16 lano o desafio do desenvolvimento do
servio openhowold. Um webservice escrito em C/C++ para ser
consumidoemRestouSOAP.
Principaisdesafios:
Manterinfraestrutura(custo);
Interoperabilidade;
Cdigoaberto;
Conviteaosdesenvolvedores:
Visocomputacional;
Webservie(Gsoap,apacheeoutros)
Sugestescabelo@opensuse.org
Obrigado
Duvidas,criticasesugestesemcabelo@opensuse.org
Novidadesnobloghttp://assuntonerd.com.br