From eddc6e42a80f8a1b72657bebefe1a08d3b336d4d Mon Sep 17 00:00:00 2001 From: Tiago Freitas Pereira <tiagofrepereira@gmail.com> Date: Sat, 22 Feb 2020 11:56:12 +0100 Subject: [PATCH] # This is a combination of 2 commits. # This is the 1st commit message: [sphinx] Redoing the documentation [sphinx] Documenting [sphinx] Documenting [sphinx] Update documentation # This is the commit message #2: Added a template script for the vanilla pipeline --- bob/bio/base/script/vanilla_biometrics.py | 46 +++++++++++++++++++++- doc/experiments.rst | 34 ++++++++++++---- doc/img/bio_ident_sys.odg | Bin 15339 -> 17101 bytes doc/img/bio_ident_sys.svg | 6 +-- doc/img/bio_rec_sys.odg | Bin 14485 -> 16079 bytes doc/img/bio_rec_sys.svg | 6 +-- doc/img/bio_ver_sys.odg | Bin 15365 -> 17212 bytes doc/img/bio_ver_sys.svg | 6 +-- doc/index.rst | 13 ++++++ doc/struct_bio_rec_sys.rst | 1 + setup.py | 1 + 11 files changed, 94 insertions(+), 19 deletions(-) diff --git a/bob/bio/base/script/vanilla_biometrics.py b/bob/bio/base/script/vanilla_biometrics.py index 0d5ea0c0..c64b6107 100644 --- a/bob/bio/base/script/vanilla_biometrics.py +++ b/bob/bio/base/script/vanilla_biometrics.py @@ -12,6 +12,10 @@ import click from bob.extension.scripts.click_helper import verbosity_option, ResourceOption, ConfigCommand +import logging +logger = logging.getLogger(__name__) + + EPILOG = """\b @@ -110,7 +114,6 @@ TODO: Work out this help default="results", help="Name of output directory", ) -@verbosity_option(cls=ResourceOption) def vanilla_biometrics( preprocessor, extractor, @@ -165,7 +168,7 @@ def vanilla_biometrics( """ - + # Always turn-on the checkpointing checkpointing = True @@ -224,3 +227,42 @@ def vanilla_biometrics( print(reference.subject, probe.subject, probe.path, reference.data) dask_client.shutdown() + + + +@click.command() +@click.argument("output-file") +@verbosity_option(cls=ResourceOption) +def vanilla_biometrics_template(output_file, **kwargs): + """ + Generate an template configuration file for the vanilla biometrics pipeline + """ + + import bob.io.base + + path = os.path.dirname(output_file) + logger.info(f"Writting template configuration file in {path}") + bob.io.base.create_directories_safe(path) + + template = ''' + +# Client dask. Look at https://gitlab.idiap.ch/bob/bob.pipelines/tree/master/bob/pipelines/config/distributed to find proper dask clients. +# You don't need to necessary instantiate a dask client yourself. You can simply pipe those config files + +dask_client = my_client + + +preprocessor = my_preprocessor + + +extractor = my_extractor + + +algorithm = my_algorithm + + +database = my_database + +''' + + open(output_file, "w").write(template) diff --git a/doc/experiments.rst b/doc/experiments.rst index 863d96a7..e82f891b 100644 --- a/doc/experiments.rst +++ b/doc/experiments.rst @@ -5,18 +5,35 @@ .. _bob.bio.base.experiments: -========================================== -Running Biometric Recognition Experiments -========================================== +====================================================================== +Running Biometric Recognition Experiments with the Vanilla Biometrics +====================================================================== Now, you are ready to run your first biometric recognition experiment. .. _running_part_1: -Running Experiments (part I) ----------------------------- -To run an experiment, we provide a generic script ``verify.py``. -As a default, ``verify.py`` accepts one or more *configuration files* that include the parametrization of the experiment to run. +Running Experiments. +-------------------- + +The previous section described the :ref:`bob.bio.base.struct_bio_rec_sys` using two sub-pipelines (three if you count the optional one) in a rough manner. +This section will describe in detail such sub-pipelines and its relation with biometric experiments. + +These sub-pipelines were built using `Dask delayed <https://docs.dask.org/en/latest/delayed.html>`_ ; please follow the Dask documentation for more information about it. +Another source of information is the `TAM tutorial given at Idiap <https://github.com/tiagofrepereira2012/tam->`_ + + +To run biometric experiments, we provide a generic CLI command called ``bob pipelines``. +Such CLI commands are entry-points to any kind of pipeline implemented under `bob.pipelines`. +This tutorial will focus on the pipeline called `vanilla-biometrics`. + +.. code-block:: sh + + bob pipelines vanilla-biometrics --help + + + +As a default, the ``vanilla-biometrics`` pipeline accepts one or more *configuration files* that include the parametrization of the experiment to run. A configuration file contains one ore more *variables* that define parts of the experiment. When several configuration files are specified, the variables of the latter will overwrite the ones of the former. For simplicity, here we discuss only a single configuration file. @@ -25,7 +42,7 @@ As a start, we have implemented a shortcut to generate an empty configuration fi .. code-block:: sh - $ verify.py --create-configuration-file experiment.py + $ bob pipelines vanilla-biometrics-template experiment.py .. note:: The generated ``experiment.py`` is a regular python file, so you can include any regular python code inside this file. @@ -36,6 +53,7 @@ But, no worries, most of them have proper default values. However, there are five variables, which are required and sufficient to define the complete biometric recognition experiment. These five variables are: +* ``dask_client``: The Dask client pointing the execution backend * ``database``: The database to run the experiments on * ``preprocessor``: The data preprocessor * ``extractor``: The feature extractor diff --git a/doc/img/bio_ident_sys.odg b/doc/img/bio_ident_sys.odg index ee288033c4ce97aaeff13a18b27af86953aa3ec5..cd5048e09dfc3623acdd23efd51ec65a01ae69f5 100644 GIT binary patch delta 11342 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 delta 9547 zcmch7bx>W)viF8y2@u@f-8HzoLvXhsf#3vP3GTKb!QCOa1%kUna3?q$cW1xk+;i_c zx4!rH*Hx=#y1Tk(R<EfwzwYYMV3-3>R5isHaM&Oa5(p%$tPzi@g7JG$E318dmV^cZ z{dw@gM<PV=p_l-u9t45`A-w>BKwVG$`ydePkeZT~w79sqmX?;Gp`oRvrM<nqtE;Q8 zuP-len1BEn1R6m?8s+7k6&KH!k}8*xsZvsEH#Tm!v#YSOYJdN}-PyU_&#zrsxl3Gp zUR{0I(6HagXh=(IN>g*m&~Qdyf62gL)5z%1(z3_S4(K*BJ1{f5u(En~bK5X%HH;!6 z`a(jIMMhRcPF_JtSw}_HMnlssFW;`F)~>JLZeh{x==ghuHgE54TH0ZH`aU6{5gwjF z0f8ANrWF>JpL~2PTwEK>%!jP38|>_d92}=?Z0GFk&zzi4A)#(b$w3K;ZguqzUEK~d zGpM8_098?e>gho(Eur@IP*+!|w>Q+`7u0P7>c15j7#JBD2?m4H($WF~+M}cEqoUfu z;I{Pi_V&QQ_Q=Tg#KiWDjJ&+Ova+(`;`a86irU)RhK9EGs;aiOw&>{2uV1@UQ@cV! zcA}zoV`KNg;Jx&8NPd2QMa4)>O@BkfNHfsf+uAynmv>NFdQ@9`($H|)+Iki`9vU_t z7Bw05W%^6XOiJc_X3l(0*>YL+YIWUu-H**5b$u(}ht^t0fAwT#{Y**eDk|zKEgi|r z8!Id8ZfNLiZy&6w8Et8ShJ-+)qM%?fG%aoOH=COaEh&N4)<Robp}{-Q=v`<mum_Fb zgQh~Dd56&QBWTSrwEh(O<E*>8yR&n2w6k+~c(|iudSql~y0>>~XlQMGeCiJ^FVD^{ zEiLu*oDU6M^!(f!nco|kIQzM@Grh96y1FqveYLP~v$}fQwbRwV*FOvyo;sRZK3$$& zKU~^8Uj22sK0CXyvT`yz3!E%0K)bu4!^6<&Y3RxdwEG-7atZx;1zo&>uHJ5LZtm>t z9UL5NY+vo{+->Zi?;Twn9^P+VZb7agN4G~uXE)HTE$G1kbn6a!bbonyd2#u0aeo25 zx`LiRK0iPIKG#qvbi!Hh90WoMk(UzJ`nY(M76~SnCh7m>=m~Hm1rv6Xe@1s9TFViW zrzU^N5vY#?tDb(`2S>T`a~@urCc=e7R-V*-7YhbsLP!g<>2+S;=eDrKcjV%v@OYRb z^TdXjE;%=>Ppb2+EsYB+OE=rB=`-zzV`Ilc$6W1q*C#gz$Ah-soQt+Gi|T@QvPZ=v z^?4rCznQF8ngGUTl(ZeEx+|%|1A}BA9kP25vSIm0?wsk;!R}<{XK_v*^=ZgX$&_^k zdNdh+Xz8B!kvG07%2k$Ve2vGi3{(?`0gN!}NH2T^Rymv5sIi0WWBG$s4sUO3J8c6- z9x9&AeVL^kYjibyM7V5_+AH)LzNnc(<E7O$J9i(SX21*Lv#9YdGb#1@vlgUqQSheG zex;fT@f$baG&WVpOIlb1%?9P!++zomR*$#+ka~;kHijgDn@6oBy^`sXMF*G0g5$x6 zW^+k&XCBC9%YGyDY_{U-n)lr|&nabBRpsdU%ckqq{Sl@zG=fDjyi(4eB}y633yQOu zKCBmKQ-F2J*WD7)MYZfNsa(`ZiY{FQ1r#skr5K8MpQYaxLmhB|H}7`5b`RN^#(5Q6 z^Bnqu5xizEry~{xPsYLoGaOury)nf2$;H#9_*FuxLy>0lh%7O#6!ih%i~G-V!9KBX zY$~Jt4~Mnmszz#|V)ugg4}#B0Q;ygd_^y2~!9Y+*gt-cR?NRmg0!>@nJDJi^^Trh; z1(H<n!iul6s^cT+7CUH==Dw8$vEkB_-cq%)3k@!jWQB}3Ebh(>Je5<EDN}2$kKJS~ z7a4}2>>1XCV5*me_qLH~Hq{az4IsH(nkBWYN~2+~ihb_w?{lLxT~wkhXA<l3M2fKc z4*_$Nwe%0qB_|?j$7FlsZH1~SZ9CTjC4gnjz<h_1rbrvDL$AJY_<=W^hKpYBbR(Wd zqbfsP?6iDq;a>4ICqwQVJMFh~Q_Sae4Utpuud3tsb3$+uhBbMxyCSVtI85PEgqM8} zONZy~L-FcUvfYo%r;G75Dl5EF4$X@7DS#PkX*)Y)WGj>4rW&QIwKnfjBYW*{40FVa zwId{WmJuV{k`@sZ($m@$Ly<U?pD^RHlP6~fkT+b~NC&(ZRtrcqyT5U0qt(agC}lK1 zX63o&<)}+=i)T#M+ffL8M(-LFGgUxW?JAxiqO+W?^r>ye$KNB9E4tWLn_QvKeFh!` zKeSsITbmv3=Gior_-wK__~nL`$OYx_ZokHg=-rX+bfafvgtJqQs&$5~$?p$C$sT&} z&Srh8R^VA%lIB&QAXZzKeu<Fp7%j#WicbY=3#*a26_3{y#8?yu`NpAilX;f2u;!TQ z{ZY~6vjf4A{ZuWITVx5Al!gyX(K3)%xF&863nw9lkeyq>q**yX<I{H;!*T2V(PT$R z(9_z{c&#`v$d+?@*(R?_8(SSUCxAXA$e<tu|D}G#jI|qT&f6ejXCHrQv{3CKy0`{1 zu9MCB08NJaA6Cz~!53_?vg&wK*$C!gG)f8tSSa!RV&pKOWJ;95aQySN_y%CsA?)Ve zY)lG}6r?S|vim^ra9(ERyJERj3$TiZy=F%hhQ~@~#PpIe_c)k{QRtoGi}fq>fr3{M z?W9E{{ZdZG&z`)HpN7*4cC6epvbh6bXvE=!h{Yse&^V{Nf6!NuRBiCLt+A4=H9IVk zHGWt#PSa;T-SuC*5#{P{mjH0oJ}e3?OMTgYcycnH)A;=_m#jrsNVO`L;uU<IG);ln z(t>8W;&V6}_;5pZ=wGW%!ujJwTlC;S`njv<9^vBG76LFx)i@*n<n&xD`(#f>P~NEV z&5dbos=lOsbN5IGzRllqVdqyLPR(}6Xdus~y9!192P+&%M&x6!-X2ialdNyy3uu}A zAXN`5p6q8{HCD=K>&a>vxWOAgV`FlN-pXlijvndj(P90*XmVPB=mNw>GUA?X_;4rs z=zQ3s;n+$ldt}-jN!c~2txar(@mYtA9O=7xIcC=l_}|!_-C&kqv8CR`%Xqi&4nJP~ z4DOpV0d)CPzqReKu>*A9f0~>&avI#A>Ku_C@|@st*|WKMxRVOF*c2<hYgCc}?6!wO zhb=GfkNnr5hr5qnS?AFsLuxt>=#pM3d#K(|A*ctu%SHB48z>)G%QJcT6rZHA1S-$l z&%M^NOsw5pdI$phc4cL+$Zw7p1nU~@W1m)M78brg)7^Yy+5{kH`0nl8WWtqEOicNe zs$?sMg`Fg`p(>Aw+m#{$UJ385SiM=V*-CN`@&cQWb3ZG0p!9RiF=yI0?XsK#lVKH1 zXr{3-+nXG07D2+E$LYP#I&WWa<hwK$DM9^&if4wHqADxzy2`8?gguVj^*+yk;lGvn z7NGt$Z4JNjP6oJIXK57C^cWTa^jJfZ*{}Ncu=y3JbC;{OgT{|o{aU?SJME477;^l} zttSW0quDCB<5#J9%8ey)l8g$7B8RIuVbOPPCSuNYh`H?&QfJzec-UF}x{Q6kEvj#- z8nv!ga?3hh?(wT#+&A*>9^97*$HB2=?$Z3gMU$7X`2;Ax6QD#wK&J>mhizhx7->yY zm!mO3n^n%>?t$SVdpTSBQg*@upXd=pWR8gt23HCy!12~dt?(pH8Ef>jC*UiO<9Jwn z9jw@*72!0s#+Ah>sKv?^YbPaFDuJzv%m(U`gn@^1Mpqk;B+?4op;Mj1Wo_V7)f!M? zRwSWKpa))Yhs95-4S;%c(<NkPsA?K25s8Wr675Pc3ao>J%t(Ezk_ll2U!#IhD9B+y zv45q|HR~LgM5Cao!)9#2<gDZ$iP@#E9a9uQv^eEysGY;0Oit!4v7Ge`O#8w*nuyt# zS?WCpJngwFUPsS6G_ZU`p;e2+e%TR^M+@RY%>bw|REkZWJqEAt{BAPvLmj*3)Tyy0 zktm}$%&5m=9D&Wng6p8}K80g@d6>ubLaRB{SbXICF%+3suy9dgai&PfhhBso{A%qB zZcnIpexU~_KcagN+7f6BRi=b;s7P#VdB}(R4){UX;xXnS(o9G%J~5!0p^J;rl=5H+ zlLFt>Ge}{@2$0kgsq?LRwwb>TA%-VU6W#R%3*0nPqo9NMQ{)D4vF^|3;K;DKeZyqA z&9AIdE`#n<yYMB6$;Bz6oc!&>I?Q^qZJl*zk|uR-4l-lHb1UkS)Wtn~**IUf`!!WC zbFp)NUTO33^f?hbX=2>k(kZpqd74*|ECN)6D~T#Ie>QtIim%jrJ3K6A)(aN}+*50n zZc3nf@#IN+H9#ufQ<k{mXcye*UXz$Wz;^v~G*_GbZa2^JvQNfiYb*U(=~B~F4M*Wb zSxwFlv&R<T&-bk_`Y%5R_We?Qv|S==a1?BEPq@7|%_)Um>}+WaY}rM}cyGLqodslL zlmsBrp;wuBheN+|sKBZeJ_2(Nhmhqd9)@DBXJI$FgRyR-gIR~=k0)EFSF5{do(uBO zoUvV#!yk=h7X$f`6bGXFlvx4nqQi`@pgyG?sR~Ayk$zujps2;+1*`Sm<cgow%0Ew} zo1##mbmL;aAQ#K#mc}N3kfMu*i2_VN(Fd0Y!>7L}e~T`TpE*WOk=zkSK0?9w?vq-k z8zd$(X4(Eak<0qVfG<+lR*;vlc#5L~9Ui|Hos!T_)yFz~1C$*n0jo6;a0G5-rpW&y zRtJko?bJmaCT2>Ooag~x;(Y1ee|U(s%)y139VeL$R!`0+fB8lXn`o8%l?{+jp)3({ z$Q93cN_ni_2OCuv#JRo`Ac2sG7i?{TuHlLhaVxdIs6yDIzxX{?4v9osL7@Og$C@Ee zchN+v+~Pu!IZ@*}o<Bu6Owkr?#F3kcGQDbcuar*q2`V?5NScC*m4hD+OQ~_f2bufo zKrr@>fc{fI=l9@xb2xUcmoI=ImietTBshqc<_(UJMC%rZU@&d48X;$wSl1T5jA_Tm zbz56b71MK)&}69-GL!cBw95zrFk#5&L04v}bnh>V)E(3ucOfv~sx{SVY3rY1YLq{J z(xO|rDB7GyqgV4X$TDu5hy4q0{}=fF7X$na#s3f0{}&D0|7HV%5GV|kFzTwCV@CdW z)&i23R*|ZZFb()uE{}wS^e2}GqvH_)im^-N*ughXIPpv0P;WmwSo(Op#nY_U;L`An zf5Bf+-w7)u5A{1^au-lfD)=RML(GbYr~0*GrPakDD4`$}cJHVuKjNhqW9!!^S<#Ek zQqN#JLh(0d5wA(U&Ym=V^HgC(O=(p4Fp*Hah$Lyb;w;HbQ@ZPt6vv`Wo9DIt6L@u3 zcImIXgasPgb#;n?El>q*d%Z4P!Lhm=x(alpi%{<{5D~!t1PiC_p>%6g9KRw1;o);^ zY|zvsEvue+Z_iLrkt4gX{E5LE$qZ%ZB#Ae}hRmH<FRQe|GqeA?u&5q;CC^IcS{VYi zE^qZ@V0DEvoU=E0s0_$j^Wn2N1)x(qb5pDqRRljK%4QjeD)Sf%6?0Nm7ku9hl%eNN zhlZoo3M<G3$s+|4)7auuAt5`-s<SKL+9LVk-w()Bgk#8`gSt?p*#p&KwBLJdE9u^V ze0lduw6EM_MWnMf_m<4h5t?Qu*Xp(lUrmbM)`)b|v3}QNG7^r=+c7Du1zr$mgAgY} z-%*4P|MCez<6m|7Bw0D5s=^{yLp&#&n2T>MAA}K&wMfnJUSrubY$}WcG5;6lugaxE zf4@O%Vm%A^73Bj6zqY3ZkDP%w!?oDkPia0dH_z}hWNM0tNDG9wjEgY84*(np^j{xe z?a#3QfxvVG_`s6O20yyrTBV$N?OU#T>835t7fI|^6*&?}_%B|5=)%knXZE5d==Ob5 zK;V4I5j6kN-qUN{T(KxNU;9Qqt?UFjG<^gEFM0An>zF%DKz!O7eQMvm^ux^5n#P(U zU|2l}w^WRja`Yx_s7_3yly*bPy(qV-*)QXqpM{gWiXPBdCs$AOi2oku*o<S+z>3hP zt%D0URdg_|q|lf=c-sa*vNAYDMz>xCOVBp8*g{;Wv9aS|es!a?9bWt_AKimfMU&R6 z_g~23xK`5l)J0_`&m6ZN=PFxEo9*h{QZs0FShS8Q<BuII`wojO7}~Yh@Ij{4ygtk4 zSIUETwK32nC-Qdjw!05iLFZsl&o94PD&{&Kd}TFyCQzV+yNiD}z6ySIaML^vLKcQW zknJ#cv~$&DHFC$&Okpgz*nRg^C#6x04E94#IErlhZEAG1NRQfB*ZRe7aF^cuTcV(% zTDAM{!<F9y&!%2GO(jdzi8(Fdo_Fgo?d1{2u%Q8FQIE9CxeU}g6>*HV{R7fz;RyXz z46_&2@S@gH<YJlyFUethJ1bpf8h3B;_mn5|I_i@fYLJax*l4{Gl_p8nHI<}YWG;P> zHS4B&FbenmA73ogjLr1+d~-`)lo~`SloWD)K~F7*--9>|x1!Thaj&s$x~ORoeQ2Dy zN2&%;&39tUO`BN~C>bak#f9+V5q@Q@!N{}I{869OgZXVP5B>||g~R5H&#dFa5pX7j z3MqjmYZZCU`^D%Co$bNOkqfFwZK^aEB3fw#8of|wOyqfM9GQ88h_j59OQekx+Vs6! z0qwO?p&uCx@1n}SVL7i|qN`(|ilh2#trsEzhQDGu;R<sZN=G!oh7|MuH4_rE<f|z` zo5?Rxw5&g=#1CrI1#hP9W1z(EkvnpV`l60eg_!U#Q6QrSE#5+|po~ALRIWR_1S#8a z18@+U!~_?1Yt*N9Kb#6LTjb0oftF>3NY9ODCv)l{$a11}Gj}O320sSymO`3H<dR7M z?HJR|Gcx>s3(ifO2r*teE}qi2<6{=;DDK&lSZYO7ed#`g2^O)P3)u}rm`D(zkD{`^ z63J^4nx<@`nWYk}Z9+pQ&8-!$gZR+pNR5&7jZQzt*@<dka2kGPet<n=j9b5b(;QVm zSX}T_@u9&3n@Plv)Ybjtl*`=amZHoE0FouZL+3%c+||3AdZ&u<SVJ3!p}~VdocW43 zrcZ$Z>vf{<CeF^DU13G9Uc^uJB*W~lSVZ4RqP1|s^vu&urBrNSg(z{pWunZ<e1DYg zkuH8?0e5hy8@jl{(<-oOfkKfx-iFiOHK%dEfc(a^9Pia+am>E$gP<DGc9_6xCjezN z@p85pk=S_HCZdGZQ(C52y{QpcCV%qhMMP(+>baidUL0Bm+0r%czf-pwWZ9TTA9^Q1 zT3^t36Ng{PUwj~J)t5PKipi&jaIJ|+2l>i-Jv(MWq%J|8(ro+5xSx|kxRKWhOUlfF zD*mUhsbpRwm@x$rmsv@z=ECxq6mWZhR1WKG{)?881tB{eWSMxFc*7y%7y9XxA2P+a zT~{9xb*shc#I0(JUvU}yLP8aSaX?8zqghDYRGYcWFAu-gG1W{;uIs4klWwOEiu|Z) zW&M<ByuFO8%lRSnmcAs=NWa8aMo4%>msZl_sZXIuKNfxkrb6F(ES)rA6=*;aSu`gn zeFcT&AYOlX9@-k>akYD-GhSKFUV?6Wj4p2aD2IkPzk7UqYO%(z&3q1meA~sYS}1-; z=F^ueF|5e`V<3h!HQ0ajy;gd_z3^#vGg=6IB^Uj;gB>ebD7As}qHBwI*b`IB#9DuJ zFADE{aJ(j-M;jnWI{P(G2so38zE{1S7>nUi;W=n54QVR7eJ)isdt-;<JD-eu?C<vB zD6IisIBGz*UehpBCPqG6(m$#^Iy&2r6lE#jf}ruq`}^!D9(H@D7kfy>k{_|e&vEc@ z{Pve6@3<+KnW3HLmCtWD4gxFQ5($Y|x{}n+Hb$kU)Dj^F*nPh%o&?%|(7iz0V%uQ{ zNY6U8(MBdsuSCE4=u;?B$2)pA3=s@skHPLexwqSN_~9{z7kD-Y6MsF7Hy~r;hlkG_ zNrPfqc|0wZU-JFAa4O1dwnPv>pi0{R`@;FxwS)Y7u=wEUX65L{`my#K*#P>BKY-*T zI|<+bUTVO2UNy;4FMR6TjLdHVLt2y^V!0grRQgo}r&I~T;ArNlJ7GGfGN4kTJJ9W~ zZf7z9n1gwiD~gHyTpmG2pq6n~+(`I*owc=s!9CpCfQdu9!z`~&j4=tq`1kHS&o`<k z>BDC?bAY$>W^&L+jL9k`=e~@9HM%BzabUMxmwscW$#NkeHvl^lrJzao)JfbmJw*jM z&4;2$gT<vPXN9JAC2dnsq^@?|;Zl0|7nh=Si)YV-wavRu<mAN_3xT=|qj-J}cZt-U zFfa?lF=m3_cf!gy<9HP<3-8Bx!CXVy6{1<=M)Kd_UNg1*ungadkietURnl&HP618` zSFv5WwM07YBNLPMF>5;~$YVUpQ@IR5$i+;LF7sj@Ss}nm1%l7qQR#~vr|5Z8QSgYe zPKs2wkrn2GpJvY-$#tvShfnm-W-pTm9L3NvnvX<k!BJa*Gg`|YfPyVe>0UN&3pU^B zkCHMGgXJ{iYg8&?u1MiSD>QXXZ6Iu_4wZZT!f4&;^qbS2!bu`^U_HX>YdUcP0+iPE z73a6K9VgRHJDlm7eN18-zr^vZUzWyI@7Vq%;e?y1s?f!*uL<DC!s|k0Hs1ZRKI*yI z=QweKbipDUmvfcFnlKpC+DhU(jw3X44nJ4S_o|_^p(go@UjAV=sK@h-wG<GiM%ltb zNHssJum>Xvc^W6osb)Y=PnJ_JnHE4PP|@e74uqGu2%c%dsE;u3S{k{TlGT|YuBMV0 znY+*p7h`YZZShw!>yK3r%Rma1cYackJ}C9d7eS_|>^pfG<X`f*hc#sSSzL~%yvpgg zvJVh{!}8qRTSVBO*EbQcrU(2&sS61nw~44hkX8AJlyip5LFv~`!b*rjfR>=lE)wiS zMql(4_Lf+cV$9%?;Hl^kZ(xIfT*KMKDcv8e6qO*S!si{DU>V-Uwo-F+E)pJfg5O7y zt(V`QnC$|dOamTWFZW0HSX2gmYV<Ech3$)mC)r(F%)=dZ5F-wBC;{v4!azz`Ge>Gs zTT}Uj^}XGWhdXzTE?#nZ42E;K6+zzNf!qTy{8k5kbt$R~*L*wHD*}ioUZ>D&3*`WZ zT1qAB+I8R6Jt}htZS>bocbPZu$}|Pxt(Z6-dM@0$6KdqPdOLo-*0@4+N-0;>Ni+LY zgExHYJDXchW|)rH$ptVyV95HF&TfU`L~mZ~3E8Q0rz5t-X6a2rH>h*cM2v`tC8wiL z->>E#yLdbAE0Y<mU{|vxFAP0Lb5OL0@ln3<RX)k?9w35Wwb>}~7;tg)wNWHC;jVab zVo$P2Nu0+y>5hP<?=}MKbiwnoKST%ca2W_>--N?+c?{sXhX>{kyu3vu5hCzSS6{+# z7`->858Z)Gq^QgKRs;`WNV?SYX(dqqq(@9j$9;oYfR1Tas;iz*86O_wl@k0TF(sIo zD3?y&HGYP%xvIL>62J2^=@uQuhn}|y(z;vMxv*4vz3*!@u=4Uda46##Ubt|xNv$7! zX*I{|Iw{t|onHVtqTDtI26+tAlbR^BbR6NG6uiaTV1<)+3>#?H)oAp^!AOP^=n@Sh z1oKy+bAp=!PF3Oy9=sYCVb!Rysp6Z(bR2b+_L7se1YK!pEv^xHMgb?J$@Lp{8I8FW zgV!TC`zK_5^?rn}KcHCnv<DE(vJ<oDa<2l)d-&wI@KJyy7H0I3dksZAJ=aGw0e`2v z;;ZB0Pv!!d@VN)9!aW;d=7x2h<hd%Io&*E>0+GE2wiB)CG}2AH0ash)3{)m1{BJrV zsF~QGc5BwD+rEk<=gDaak?3+sV2dWdG-K{caAAG*%ApRf-;l9N*_1M{lwk;Dk3E=+ z7@q6B`z0E9oi72uGiHPpO?%dsWaHL;*#oS@*G#0u<r0WD`VLqtp0cQ5*VZzdVQo-J zV;@yfM9s)byGZ#R*gYPwLCc882z$=oEYQ)UfU{}T7!9%lVI6gDIX-vaUei^r7d^Pi zgU{k7rlSO>QkDysMU-zkC~gsmw`SLwos|f9$<qN+32+|87L%yxo1j8jsl9V*j8qcT zob~tK2}l`as5yi38?MemzAD@*CZwo2`{8~2cNiD~qx?rcvVk_&ORuJJ^|I!dD*|;s zT!D5%rp6TL%T+M$k#dMeU*;~9sxXW;KtAQBS$Ua8zXjfoebx>qj)#Zqy(cfM31MpD z8qxp~r}LZ;`pw;E(kD^SBo<R6z8Hq-W*jmnU}sbku;|#!;<X<#c%<C=we?P^r^M0S zIe2>gcqnF>J7;r8m8vHgO>Ihju@TcplN?=A8XFx>;F#y&&^L8}=E^TB=#)NYnNeKt zt@&0@|3t?FG_f4IR-25`?D!g`wXZsFD-Q(Jhr7hv*<rmz&L<7AhABSjvqlH2H<=%6 zec#yAZZ_XnYsvLwTJ5BKLN2-^WRP9alSiS0>t|7s|FGm+6D^JyAV9C%TZtH9>~=>G z>MMCmm>W`j<@UB+DG8?<5}jJBc`;vPb2um(-3*>~s@fA(n3SG031fR6Ext8~qIm}3 zOCU0z!IL>&EZHFh;T$pqB;l)6dyLO($8Lr~gz%D9^MTIjZKp(W38!0nori0Y?g5mL z(ZIL*7TCg#ktjoe+rB%Y+ZNBe&!W^O)s9367K!FsiH8j2i!3dTGK4Mu#w!I!nqK{S z(~FgP>y9bIiAfXy6IYjeA3M5-=sbYv;Xdcpq1;y`w&Ep@J}kN-aAX-bJC%ODeAdL~ z+8~~>sFx>yvF?O*gzWzGG1np1_DANtCyk8(DKX<n@OKBcshv8=#BPGY7ZHa@2pzdF zt%K7KwKPToD0}G>Zef2uS<8!EWRBvvQ#4n{*4zDR8}N28;alW8!N!BwQV-xNx<oN4 z)a$E%e_mwf=I#ltJBR5F9b3pj$7MmyUSoUKK1Y$ihJfW&@>~&}<3#52Z|UcS;i+UT z(R31Xjf=kP9_7W9?^+1L^qyXXu8`eM$q`#)%&ew251e0zazl4mRV}ohki5gxM}79O zxb2LjWbYlWGy4Q2s>?XPhyp|jXNLv|EqlPH(&ILPVKc0^#>;rh?j|?MP7vfy0}b?j zqS$jww@QWQ1eu$06E**AT(34&mY+5>r11S)aj1}zp>0SS!YJK{PgzMO=!YTA%}1<B z-=C(W5r@ueo1%y)8NIfuEd6xG_uWP+@KgQYL*sXlNc)MuF?5$ZzW~gQ(1U*YKG(cw zx0FtYcQ^?ed#oVhSu>VUejvTpl_T)0(b?j`OB}C3$vO$Cxx?M7N*oirkyG61mEd#m zl9A@;cjCuZ_dGD@zt6jc&AL^Nnc#rSTX`kubeu!;0e{_uZ?!472r)3GzG<dh`}<n+ zkaAhNYG_UNq>b?tyep7|VSk4Yqf1Y9RS5~p!ZZt;kDU3LyL951>-(-Avc~7q1Hz&8 z*o=7>US!Th>(3~;^wzK1t>Xf<amp|?E;nHK6595x@`j!!wP$nmzV<2UZGrn$#w>|9 z%LzKEyBK}5p5&>944Cxw6SH`^)8Mw_L5|qu(5omSZSS%+bzNS>&x@k=C-rS+hq`_B zZB^~T1xwG0rgKolKj^k(<(ojrtKa1mrGKN_zx!gq^MVv$E+O2%U~H!l1=v9d`>%PB zkig$Ep8x0wh0ziJ*N*Qm`TO7Y-GZ2Z&$<31(-C})_;<aomP7a*%wLK$5w6$&-Gu{Q z7U9?aBl>5-=XcA_KZqC|1ah!)Gh_Ye@Lo+31{NEH4f@-&+CNb{%0FyCAZARkohYH+ zAJ+-rrSZytJE<K3f&Kva|D}BVf57?w*ZV)C_B(k0pl}B8iYWeH?=&Pv1S`u8<`8H6 zi!~M}g8j@5t`@}QbTV_ade8RnE&m<3zw1~3@<sL!mmtu0Zg96a%YVFFbA!<(=>NmA z@_=<EsQ(lHKg(M4fOp0IwXDc*Hk${WBS!m|!5?;(2W;>U7KIm#BSuO6@5mWt8X(a8 aF0l3f?s~%cuWd;1g0m&)5K8&}NdE`bK||L7 diff --git a/doc/img/bio_ident_sys.svg b/doc/img/bio_ident_sys.svg index f527c1f8..736c208e 100644 --- a/doc/img/bio_ident_sys.svg +++ b/doc/img/bio_ident_sys.svg @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.2" width="210mm" height="297mm" viewBox="0 0 21000 29700" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve"> +<svg version="1.2" width="210mm" height="148mm" viewBox="0 0 21000 14800" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve"> <defs class="ClipPathGroup"> <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse"> - <rect x="0" y="0" width="21000" height="29700"/> + <rect x="0" y="0" width="21000" height="14800"/> </clipPath> <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse"> - <rect x="21" y="29" width="20958" height="29641"/> + <rect x="21" y="14" width="20958" height="14771"/> </clipPath> </defs> <defs> diff --git a/doc/img/bio_rec_sys.odg b/doc/img/bio_rec_sys.odg index c9bf08934ce1361b83a69bc702d5283bdbcae660..ab32dbd8eab6829347e2e3be3c64c1a2388be947 100644 GIT binary patch delta 10783 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 delta 9177 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 GOZ#7nnXIb- diff --git a/doc/img/bio_rec_sys.svg b/doc/img/bio_rec_sys.svg index b0bbb7e0..8d1f28aa 100644 --- a/doc/img/bio_rec_sys.svg +++ b/doc/img/bio_rec_sys.svg @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.2" width="210mm" height="297mm" viewBox="0 0 21000 29700" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve"> +<svg version="1.2" width="210mm" height="148mm" viewBox="0 0 21000 14800" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve"> <defs class="ClipPathGroup"> <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse"> - <rect x="0" y="0" width="21000" height="29700"/> + <rect x="0" y="0" width="21000" height="14800"/> </clipPath> <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse"> - <rect x="21" y="29" width="20958" height="29641"/> + <rect x="21" y="14" width="20958" height="14771"/> </clipPath> </defs> <defs> diff --git a/doc/img/bio_ver_sys.odg b/doc/img/bio_ver_sys.odg index 40f4eef5642babb105c35185c1a3bab5a514a509..e1fb6377acd1c7354f843168913582af5fe9e7ea 100644 GIT binary patch delta 11432 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 TpCLfRAj={Q2*1StQuBWR`5<4Y delta 9624 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 diff --git a/doc/img/bio_ver_sys.svg b/doc/img/bio_ver_sys.svg index b9b02523..1c79e831 100644 --- a/doc/img/bio_ver_sys.svg +++ b/doc/img/bio_ver_sys.svg @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.2" width="210mm" height="297mm" viewBox="0 0 21000 29700" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve"> +<svg version="1.2" width="210mm" height="148mm" viewBox="0 0 21000 14800" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve"> <defs class="ClipPathGroup"> <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse"> - <rect x="0" y="0" width="21000" height="29700"/> + <rect x="0" y="0" width="21000" height="14800"/> </clipPath> <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse"> - <rect x="21" y="29" width="20958" height="29641"/> + <rect x="21" y="14" width="20958" height="14771"/> </clipPath> </defs> <defs> diff --git a/doc/index.rst b/doc/index.rst index 5cc6e7fd..21ac65cd 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -22,6 +22,19 @@ The ``bob.bio`` packages contain several implementations of each of the above st .. note:: The ``bob.bio`` packages are derived from the former `FaceRecLib <http://pypi.python.org/pypi/facereclib>`__, which is herewith outdated. + +bob.bio.base in one shot +======================== + + +If you are too lazy to go through the documentation, and just want to see what this is about, just run the command below: + +.. code-block:: sh + + bob pipelines vanilla-biometrics --help + + + Structure of the Biometric Recognition Framework ================================================ diff --git a/doc/struct_bio_rec_sys.rst b/doc/struct_bio_rec_sys.rst index 00d41321..e4574967 100644 --- a/doc/struct_bio_rec_sys.rst +++ b/doc/struct_bio_rec_sys.rst @@ -196,3 +196,4 @@ The protocol also defines, which models should be compared to which probes. .. include:: links.rst + diff --git a/setup.py b/setup.py index 75b615eb..ce5f07a1 100644 --- a/setup.py +++ b/setup.py @@ -142,6 +142,7 @@ setup( # run pipelines 'bob.pipelines.cli':[ 'vanilla-biometrics = bob.bio.base.script.vanilla_biometrics:vanilla_biometrics', + 'vanilla-biometrics-template = bob.bio.base.script.vanilla_biometrics:vanilla_biometrics_template' ], -- GitLab