From 4d6ba8c56b29d00352178703c12f53cb66facd31 Mon Sep 17 00:00:00 2001 From: YadiraF Date: Thu, 19 Jul 2018 09:32:13 +0800 Subject: [PATCH] add comments --- examples/results/3dmm/fitted.jpg | Bin 4631 -> 4658 bytes examples/results/3dmm/generated.jpg | Bin 4666 -> 4686 bytes .../posmap_300WLP/IBUG_image_008_1_0.jpg | Bin 12224 -> 11757 bytes .../IBUG_image_008_1_0_posmap.jpg | Bin 3661 -> 3639 bytes face3d/mesh/transform.py | 3 ++- 5 files changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/results/3dmm/fitted.jpg b/examples/results/3dmm/fitted.jpg index 062a2040fa30f8c810e013f40fe81227f7c120f8..ed1a333ca60583a377c7d74eaa554771301a18cf 100644 GIT binary patch delta 3576 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 delta 3696 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 H&-DKQucqHR delta 3678 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 diff --git a/examples/results/posmap_300WLP/IBUG_image_008_1_0.jpg b/examples/results/posmap_300WLP/IBUG_image_008_1_0.jpg index b9d843989e1d2e0af256087010c43af8db01b411..f8b442f8b42c972bc688975d8bc8537cec638848 100644 GIT binary patch delta 11229 zcmV<3D29dNS9!0fc(!G<&gG0s!M4eeLyPim7R-v1^UtCGUI;`Wj5(BR@=UIVfPgD zU#YCy>&UGjmg-z2Ys7Id<&RIqn$o#2*xJi0KbXYsIO{78-$7ng;(c!7{^UU^B!>)F z`3k2N$wfaF>dqmK-*Gn%cRGWWjCLO8nWI2-+ZSmU=P9~FpSr!5>si*;GiqA8yX_I6 zKRbQY0CG?C_pN_DN^v9x&Ja(S<7yw`$2mXNow^d_R#6d0xSfn*M)^ll+<%c<_7XFo zARK@R+`|#4b|==k%gGVthCE>)Kpp-1nsAzJL03+)R~F9sk^caWW9js&u?*MMb=TGB zO)E=@q=8NVQU0*{{VTK5G`ONz+E9+^f_CRFM`7($yfuH}=CZXR|A2{on4$VG(KdZRK5rUl0B;Fi09_X$3QBjqXLV#Fvs2XHFaEV z%AcvEhtx&~7$kw|P`rQ;2M4*S7`6^M%|<{2>CF#f)rLEbpbmMeayAKUckfnYV!*C; z)iwc>IpcpklUXx(6lXaM8=ieDIz|Jp0Cpm^CqiF-PBGH6CyC@NbA#_$Slw)A&e&6y z7&Vc2;O^rY;$*N_RV-57o0ir|?HQ#@=rRwBJE)8#yI*1UiJ09uH{t4cAA+}4oZ$2CRNiY6K0 zRj20?4xw;=3Z)pv39Hb2;IFMY3MRFqEb$l*IXPcy#JNcAMaYP=NJ$KFfTR3s^`yHb zN8n^sy0xH|XLy_DnL*p?d*kt_gR`*auC8;LFA(+VP}J%gE$He)BMgJuqHqJZpf%8r zbLoFOhFhu2zI?6Ze7t0z@aanPyhJ&~awp7B`ygWck8JWuL!bYRtoSM(Rxo3h~ zbiwloR$zI@KtEjm70S-!g;H#7WtEE=Wdmu?O!`)ppO;}A_YUJY$t-wP$0oCN2vQY- z7^T9ZhLa~CdSal~W(%W99vuCr0YLQZDJ_4&tCY3vM&{}pck?z!E?fXHkUD0(>4RTt zN;fj10@AQN06qQdwed92+5YKrscme$XPw8ft{2R4VDLlMVj5G>fu06yMD9a1Me;SQ zR`D@KKQq4{hu}KZDXx}KE`brp_aa00%8smlrl{S|5-5da%7MB-qX7G6sL46Ga0!14 z5*#yQp!5|=CT*KVV504(2_eFWRBL}Haz^n6NM^^7ziX&75 zud(e}(OgEkU;$(4{uOZ@pS}h!4u>jRMszZM6QgP{Hvr3IoUJ)$uak_ z*#7{HWZXv4&gkHV9AMVn^{G{P2pECS9^I=hNe$JpcK-ldA5;D1t>S;~j(ICH=xez= zm=)Cr5rE83R&V~bWjB(G?0;uVX zzGFt%V2IAek0AENW+i{vxshOSU$2*pfTui?d-SIjp`4wWm*P1L+LVs&O32$XPXvnQ zgRD}UjQp{yJ_oNsS{Kf5E`&P>Z#9)$J#uR|Qj^VQSd~vZLXYAKKgP94$+I4Lqnv^c3Xe5x|JD1+^T@Q0KI=2 z=7@^(6{KLoJT|>rD|CZH|#nNjw48p=Uvix`XwuZ&TIpjDbbFZEpLp zD+2pazlt)_TON1^sHnO&va`(Exy^zMS z<9W|?JSwTl_2JO*x`fUOmxj2-08BI+@3sI(w$$5H81 z!nu9EqZJOTD1C0~LC7-ot5(HUb$>u{^&=Hh*pykeBu5*8%IBYTlHYSE^D8OiJs?p0YYSBkC@h!rJU$mK#IjD2F~pCL0QvG%+sta z6e<)_M_iCNqG`(C?=BI-5(lX0DwWAFi4@7TNl}r=C$ICxVSQ|MY>93pjteOaZhXWT z!u5ZUXQ?%t5qO?SrEp|ix`1*3KD8y-CPmx1K)_wYsP?F4@@?#=G7zixKpYn5t!lJJ zZ&MCLHc+j}m0nr*VSA=~{#DNE51WXiM%Ynu2(9U3H&?9DM(?>s6b=XZ#dCMRy}ppD zft~=ZAZ0y=hH2k(sPjL(IM3F#tzvKo%rk$HfCXn-p)Qd}^GeJReNSxG<++7*DDC0- z#6Kx+%-zq@oQa9p_-{m8nS)Bb0LBJMHSAhem2Y8Z9BC2;BbLV}>s)7npz}|fNZH0n z{#EHp1^^3_Sfz7z+C&VSc8m-Tf|Tw(c;}$21Pl^KG~K*{YVBffF;x1TQ_5s~-1~nD zMr;5%6-wh#NCr*^y(@xEmJO_IGR$+H)eNH25z4O}$*kAbN0!n82pxdVYt6h*@e)gB zc&%eB{Q$=!>*+@0<+iNuwQYM&wG1E1Vmb=*&k%UZ*LwphDr4@0(!BonRMhop&zUJw zPDl(CW4|>{O*;^Yfms#3{c4piq{@G)S|oH5c)Hwjq00K>tzOf0wZ37u3^C3{aT6j# z05TBL=Y>I#7PLG+e;v9q4j(*HoFb6v)NSf_p)IFuG$`2it$0us01iC`a+X&QBa9rL z_1S5W7f=u9SR~GsYZ5FR4l!6>Ak^c8JRdKY7vCqj^sczUv}0~-$$U{X@OXc!?kQns ziCi*Z;9!omq*k_OQ+gQMjIeu$(muUrftltozmde)XbF=qt{VJ)w zNvf|C&>)FsK`~YtA2B}N>ptN#aU86~Mx+seo<>jWio7Lr6C#xbzFdDN7*R~qM6Y?| zm`gwdJgXqcW6@9Z=AtU>)v*(7cCy__3!R2t$AE;4;;^s7CYff;;g)#JhX*7R(>2vz z1fN2>`HQEPVU2;>=IIkbfD+09Pq_bM~w07%2mBC)jos zab!sq;|~mAfJ2;se!c5wNrjB1h$CudsqANrOVM+*){UuQ3{8R+PnO@#i9H7xu4CN1 z2W*2$N5R}k1lMq^x#^1FyajNwXt9LP$_{XS>$na89Fb8IT8n>D$lHQNApnfjTgFE` zRDgrVYeO3qr5lG*D>8c(ow4)%NX>4tjB!w~1GnQ@xRn`Lz_`$-mIq6DS|Y<6z{V?- zgW)ciuRQvl-Ne&K*~*@S-n}T3j0&qeIgEs2r~BTN_8zSAt$)BeBo>bFJ03teJmR>y z{2LMv+|F4@&Iy10E7SG;BUheNBq1(T@>LLuWiUz^!irq0?T(|F}bL=`*%WW0qb=~(zQAxQl<%-yDnWlW}C>T;Y zV!J&i*eZ&G#>7T}2@l>u1b3<`hXyi=#E-ottnGP3z@G2C>o zOqWZZ;xc0y$m?9rv!_cG4{t1FH{McxX-!*Tj;P};Evx|jUADD4Wz0-{Lj~fhzQYs@RnA{UqJd_?s(zmqbEhHaG$CeWe?-OuPkber- z(n)KZe3E|wIODx^RM_T*lCv~tUA7lXjtj3!t6=+XR~<$w?5fG7T`}rN#bvsAOX4>h46d#H<_G##e3AX9OTD)Pb0FRaxU0o?yWsTz{*_k2v8v&^NDgR@fh|ss zYmYB`M!}rtEKh86Q|U5FEU%}EM)|hJ7@nsipXYyA<~x%Qk}>AEXLH#X>sxwJio;5= zNQU7ouQaT~orpiFI26*d8+T>BQr;l($0o*D-EztgL>+%T*E@9y)h}97$8K{ZhyA0P z*b>V%h0BZwB!*|`fzC<%1yq=<_RR&Xgj*m4oM6iRkJA-I5O|i=f3dWrw`-aAOI3QHGYy;0|+E6ySHOQZkfF zyYeu4)NBiI4MZH{`qZjNTD#oEs|*SK?$sM8BRKpj%K&9jIs`$UEeYl~(H7 z(&b9sTgN6xRvi9yEVE-g)_u*`P{fh#%}cSmjm!;OL$$UdTQxg#f`_$IjuwxCgdTsq zio18IZVwriX14&$9jV87h?m!HFAy7 zlxL~r62j0<(J<(E%{EwrMstIKU2cE1r9(Jp3>IY>9)`J0<0^O}v1sapx#d1C)4s*5 z8GyuduHZfDwv0#G?ZM6i6UWlJ?;qReMoW+4jzRc?#c`TbVnuG42l*P)c$i8ynYiRW zlR4x4VvaijSqOJRpmhve^{rLM_B5ThIQ*+7-GqhQa5{dqnpyIK$?C9EDDxw7n zy+?dw(<3#@+Pt@S(8mB(QZjZ9gFVe`%`&XPQ)q_PKRQgGymN&gT-C^!vP;|F^owf< zctW7eJx()&?@iO#-Q5k!2tt2Y6aC)RTT5n=d+XO3OcdRog}eSjtXQ}rNf3~YCeQ~z zDC_+wV?ub9)!HEBhL8AEanE1rT*SIw^;way!=5Xl*Jp&no?hX&$m|bpfPX5^gUs5Z zNSOnSu6v5Lq869bw*>0;!CM8Cb5B{H=w5$GJ3)9)tQS0!NBTzRy4Oe&m{ZQHgqJBVeU5_ z#GhKLb$mi?9S>4F)md&i+P{rNpFamUtjWEPUGOo9ygC~LF5K5i@`lL8c;AP-Q*q(4 z*7Kp3$(uWumS4iRCitJHo*<4_Z%l2jg*9WAbX=tDdSR7NXK;V4%lp(w$z}tL*O*^? zO`PosXEGt`R|d2H0O29J)Kkq8N)+~Q@TDrcXjCxVy0d>&)yvN&#>n)nhsl&~9FdxV zu2Km6$#7VX2dSpp+%?tK_dJu^r_!^%&8)f@e-M~M;l+%Rx=B>-)-4&qukE@#H?ebbR2OmE{TiVe%CjH}nNfc=8Glm#HnZ;(>FYXW= z<=&=|_uDd&!5^L}VvUP~j&Yuzy(>4O4cVg#9gVpBuKj8kOzKv#;AeK@R~|np;u!gn zK4H@)q0^J?8n>7^RKNzJ+7vB=9XiP(i9x%&!V*si4?KT<6<<@I2q6H6FTPKF4hQw9 ztS?ktO?M&Bk_nA5##{UvFFzMh#p z(qoAih!uZgL$HQrMGQw{jGTUT6YA1S1*=}o7%33juw#Mi?@`^eO(HJVZOyv`j8*Mk z))SzXlp@I(StBcgPI$&@lF*j*C^o4BxDgV^lBABNty-LcT*mB68z{!!E1|P~2dxbn zLRUAfN6b%7)$85|W^E*M!tg7{tzS6xuUGICqx*j~fnlA;0<+nhy<&EQfl)Z?QUX0{ zHv_Sz%#lWQAm=#ais!WrT03Sc9}Vm2TerlBnD-qk&UIqO<+6CrNvLN^dQk}1AYu>iN>O7|m}Y--ZK906MJTkS!TDjQfrkV4~%(?OLdXa=ez zyO2GsWkyCbSyNd=WWd4au&u@hKnHWhQJxnEhR`;Um3E&}Y@8 z0p8s99jiLrDyeMe9V>rNwK3btAwM&6PC90=ljv-;S0mJCSkgyOT0(J?+NIH9Huh}q z_m~#Waf+cL{kKp7f7OBjKDD8!$>dlxYx0&~EFVnuG`xeQ&Qr`dRK^B!0ISv$$893q zItJJoww|1HABiLKstSx%9lLS$r_O(`(_i90VEpF-X)iII7t5h{Z*x5#4;R!H+AofQe%lcWCQ{!8Myk^b%o;3Y#mQ06>rSXCX0~Pr9D9A0s+U;xP5Xh zkTU=?*FLq{-kiq6jFHA`lGT5Qnt%a-M?YGYYX@T&!@4tG892vQClymxfZ53WayZR) zeiV&ivXtZo!OyK=_>lyz*ylAZXbtLcI-^|%OO4VSY;9nt?w?w_;aDNmT46B_u;3DF zVhdo=Y-I&VHCFR?8eI&T?zAwebd%c{BNU9#a4Z?~tZ`nX3~` zXFEn#;@z-IDH0B7bisdOCbvg0mUlK57ZXhTWsVaflhAs8wapc|nd9>$FL5%4cRfZ$ zb$%|??PRc98+i<0O z?Yo(FsqUlJyxAfo<-7N-j}YpOtLoEE4r5=IKcKAS#yQ74R@8sv%M+e*a*;G_ktuc` zDi8bU)G=?6liZxn$A4<5k;`;MF|kO&>(leCA!s6wIAUF^jPLGi4L3F0K(UNO2~arc$9l)sE=<<| z1C<>Iuf1Q?FH(OCQ3QDz7z__S=j&K^QU{c5I8ZkJRdA0|B`$*@iJl1?`=oWLCueAa zmnC`N^sQL*=#xmdof<(i%E>CS{G-zbvu)`*Uzwuh2G3bNlT?gpbs!!UU8 zGuEfuy-77Jq+Pe0IKcYW#kAakn&%@XHUm6Xj1!PKHJe7zm5*8Qj=jDVw0Ap~r?{@q z?HiGK?~H%fh3Wc>+D?-p!!PP9({xQ`FKv9lzzp|252Zs!yPLPNHqqI0*13DR!G2qg zc&*vlUL($Po=0ltZlfy4p0zBbi~3dAk9=bvFseGJ63d)pjAEnHV{>*DbDZ&7H}(=K zRwzb!!4$d+sf`pw4m#DypbSoX)1tO~;2}Bg1!{l8qt7nhi=SGkl_z3=f#c>kVffS% z&vzNgP~38HT{OBC!bA!X{B#wOJVqwlARy>9^zLRsP=~b(mjfrewpXUK0vX7xSx8#@xHJ9ou;Or17hOuC5ZkM zuIhgcvD-eQ{^|fCQR{(PMO~a#syA~30VBxnI25rjnIKWX@4K}N zz0Prt*)@41iZoT)6P`@xWm2_dbb1r0Ix;2mKjzg zEZ)6p#Mx;;VmB!D&tGcBQf%5OM7L&R0O5a0&pyVi+!y(aaq2xistXlH^8)jr*jOPZjbsJ!tn6oLt055Z%mAiW9@9!NoORXvVniu zSDtb)&(Qw>O3p^8;Y%2hF-0X?fJf_BZ!Ov@7nRYx!ow`bJx2ngl@)F2=cqNTbw z7Z%F_kgx>I%b(&kabz@B(U<)$F@Q!%=jdvzcD{SI-ab;?*1Fm@pQVeJ`|>Brj@hcW z3bt|t2j_J_dHhW~rt~H3XGHB0;P8KYR+Ma#fWwbkf_q@&%uN3Pv?@5uL`Db9I*J(4 zq2**}6tRpP9+c>1S)%3~T!IczpPdi$tT_Hrp7i0I z=ia5GMWO6A8mw1V%G-&`@s5hB$LSYuQt;4nXH_~%uGj)y(_A>)>eN-3}qZ1 zDlBN4XHTZaV!TNd1|a?J)w(QXxwtnMmk%*Nbq4`Oa#lK=Ya-<52eoy!SAo=$a8FFo zDMzVl-%WuS5ykwl3@q5Gey;|y0-+ER#^ya;OPy|J@(M~@q@mVB!C6F!@ z25jKqb*-tRny!Vt@Y{^5gg@RqpTJPEK^%U2?q)sPjMWHNduIb`kC=a&WRjV(Pfpc* zsE%z7dux}JFhvojIc#(psn$e$w%Lp?1c8j=vn?Er!H*{cp4Dmx+FX&6ROYjiu~BzA zO#q2voB(pM6O4DwY~3L8vUtb@RyT(w5$X#ODnya(IjyM(HV6sHQc=B#H8C~a9LAyD zx*mqP$p*`?J8s2vm*0PX2b`Mb?|8Z-c05+7!bfYW-AldPkU?A~RAZ0+y*?SFYbc`5 z!tP6sxWb%)_2Q~siEg2d5sBE_ov=Vv?OIkb+N4(Z5)#q7HErtZE748=u4PJ`M;jLwu#~7YxkHZx-_V67`&5(be-b{#8^()-g(k8-H z?TW9Q1Fu3kZ zd0B#iG`}DRqKd}U*j#vW%00~4I|G`JwrW!y%KH0b1#7aLC<=|({5 zPur1GaidDtR&-!s>4w zoKB#I$gc^G{&>z+&m42wwJm&0aSH5W*vC+5S)kFL$ohmz4oDwbf?Zt|e)!MUywG@| zM9%E#;{{UW;-Yje8 zI|V_`SkiwT(loUji0u47d3P%eBxEmavEvouF5td#l6zNG;*S!YQ*D*IAF;%D6aN4` z8~iJpMFLI4e7WEX=!&v9>PwnK0L+MjWS>zTB9i)VZBoE+bX*5JI+sD+=_Y_+VU8NPQ+q!+nxny zSX_U9rI}?OaVld0z51VO(zO9Rp|oaK*m3>Pa!>Lfjbi-GlOmXXx5W_K#=C@4DdQa% zujgBm+{bsQTyBw;C{ER0m;*oKQs@>i#jCWjG8c<2BeCk|qWu7C{3=8t zfjHnCiqVp{G!jE`5kJI(q3>HT-N&hDtzmS(=@D}Tx#SP-pKnU%ZP=u$LG~ck#Fu}` zon{%>P7P$yqAlstk(i|5gN%9_(gP=)X0siXY6|1-%)DdPv|?@Ox%8>AXm}attvmzM zG~`TE_I)!+jS&_6=|DN=rx6gFx&ivr2pFlkLs>YerJmm1cTFOw$8%CXJ?op+513^q zwg9V-yvdxbi?euw*&k)JO)GzR@G5_kc#8Q+`C}f~tcbo@M_;{)e7|^)bBftTBL_KH z(N7U-Qa;flCVdv7x|Z(j9rq6VPH~(H%u|O}tr;ZQc&z`@{; zLr9!#&Os)wO8{uMBK)n-<5fTfwvp4lG{n%3-#OaH6(T4j7$lx*vM?ay?*o5UP>>Q& z;qOw$w;OQ@jrwEjS1lYeh{?bwC{M4YT)(su*hMmoutB@rR#XIKp_3s<%Chz~H@Ys( zGf?g^vJvwGTehT0go8|b(>lZ zG1t)~$+6iIKzNYyK8Mn1tM1bsgqhs z6}Yum^DbuKxc(IGN2g3yE$VKSk)z>@c@C8K7ZWd)B&0&8g7Rml(y4#z^T`Z0mL^nY z4oro5WS_fQHZncB+e#N~7LYN9A>F!eKU2+fo+7(JEKr$Dh6DwqJ$I3sX4~?-EQ1-%~1s7>(;K> zleay6t2StfHig zYNHgG#tmCX29rgh?pg810O$uwVHxASNxPo3jKGSU6jz*KGwFZLa{7TU6s_uOdirc3 z0P=XO9Yf`{Vd_O(G-gwJ8L=BcL#?Gg&xsfR+V;A}lA z{sgv6r1H37?Nl+j276Vz76w9{m|)Xjw=L<{8j^s1YrpTj+EKsWh5M6^0e3_=pVO3Lj-i%L#(iyIR-%l zrhPlsKBr>VvL8a&QV&DvR&5=C-y31j?o<55Y~4W?p=M@WA2o36{nP7M-pt!{a~9I= zA-nV-)~sYt7FCYr>59c&F@Qr|Ui{(~>VP!uA5LLbRS}$x+yM#d7+dyA+Z^ zAKKA^N3nlMmxWx`R(ChLv8fiOixWW1s#-jC>yyCz1##N6@=tK&l1rWjD&p!^^3Nk1 zh`|Kmi;kG487=R%6p?OWMe>WWX9JKsRlzbO)r_eOYk3+4+G9Y3d-~GNIF2PCV2o$+ z%~un`ZdO;3Op+F6)WMBP6)?tYBhMqS9;)| zT3zXu1=oR&wPYf~a`8Uo+JMN0~A?_vN_v)q-TLy zI;q=gf8G^*PX^qXqyGTDg=Ok<#_zrd7g+nP5#01con1V>k=e1IBv7Qw1 z*B-R!=2STjxd*9XPr7(;9a#uJdk2wB32g4RxDF3J#cWznG%UeL3n$BhIOe&9l|p~~ zu0J}`v%ZMO*@65}INQqv1YWd&M5J9>Lo0yFNz0to&r*FgrMAC@C&;yZd0 z;;}VFg=F(#nJ{{VAmWH$W)po;e%j??O{{XKqc3AxkWbK~e(-hAMjuM#tmaj?8{`F8 z;N;e#vLXG|#98VAVZ{z2jE++#jG9$SD{}#J?M8T{qJS4Pb)=$z7LznlKn7`PD4+$R zl8OLYDJY-?qLPXLT+y0JC;@2AB@_T=jL}5^E@;gq6achRQ9uitDJY-?qcoII0@0dE HC-9CmB;@rw6SA5bs*^du(H}52rkGqcFty;HSMUSgnr){iF$O(VltDpOI+{-QPxk)FT{Im={00vJL}h!JS9@^F1VC&Vz!|{llj&1OrvwpAByE2>kGPGM+(| z6=aw$Pbi<%)zr4swWkiqV1V$EpvnILKK0yqd%!ZV6WkO)K>0|?#Ww6U8}4FgT1&{- zjum`#cFunX;oiLh!$U-k1f`j}`U>2#(X8zvQygO;Ric4YK9!qIo5z(IiE4@%9P@w$ zM=TMi%eU~W(lE*5s?Gy1PEA8b(MEjskh>G*h!8 z&S}9Oe|v7$_h+AxxdhWNs&^Lejw__q^zk*T;eKJt*D4sPZ2EFN>v+4Pl2NlRp;Ds* zl{K@by3GWZk{^-AKfuL9 zaE*T&ZD7aH`qrkQ8qaLEaO4>mYvZQuaDNf}t2Xj*lG{q_@=F*F5Ah!KqVK3lbTG^g z0bn-)-Fc>C)~($sx0ie@%B1u)5i2k!XjcO{9Sv=B8xUfGDEjrHn2)D#W|HSqQyid{ z#Br~t4qd+ifmc#U<(7FQkhE6d7Lf1`2RMKA=CNQa3K;-gDijz#zkBmF9;EX}XBC_* z!0iRe;XvvZxo)m^Sd}LiF82-?yD>ykI}=(4FwP@D*}|w$r{?FTeJZV}K6qa*5x@q_ za56_N?^k|k*u)eo0lryy{o3{G>p+;ZyimrXD44|^YAobE ziSE2Zb+29+9556|_<$mn*v6NF`Zt8M}W0?Ougv z2FO!vWmo&S#y*uT^hK{TBTMky7IgT30K$w4a-sA9dS;y2Bc>PI ztt5)LAC-6@lh+jtp8YB1@WwSh^%TrG`ciDtB{@j-!1bz9Nsw|$^a8C)!)eLM#~7^J zf`0HMAFW{~bi}VSxeUX%TvmT{>~I&H551bTHVU?Lk4*Kd6E+8@tx7GkI{H9Er_HxK z8o-%>Bm>g5ZreQ?vR*tNuQjwzS(PMp)hO|vwQ}8nDh>@?jFGdX&L)aWSq6VYj12ZQm#fB7 z(k!VAkF<<*#Xc8hobF;s&JU;@)`qDIUfVpXa>YjB=xa5ki;}!j4o_7o!20o7 zyo%7cKV^m(G7AHjAm<*{PEm%)?^~k=MVemJ5t=(y5`8JA#9AhjQ?mzt2;k$TKHg~L zzPNeSOpE)#NyuVGF^YdDx@3k{#!I0%>9F<{MiugHKY6szE8q`7Tx{<~ot*MK%(x9M z(fh3DJkzdBdS!%?+_7aWT0y)0W1iniZl24h*-Jd!NZ_1-%Bc74T&Ib3xu0^Rdt*rV zeB6=g#Z*>=^)UQF;yG?_;#gRsMoHMbjP$NoPJ&HOTax90AQFH1Jm3S%A8L5rKA|vO zy8ztGJrAd*Yh23>u=_o;A}LUAB+sYtk6=0a)e_kbr7E}CZDZkHLeGv%`e*g3^8WW! zD+{YETrTbxkN&+x)9jKaaE11k)Ydxi9zF(C_ zJxy3_GY|pdp)qdCo(FuI&6>rOr^CMj1IZU6{JiiQYn+ynx(1RthRE3I-#vinQUNYqna(~M{3Z*OGC?t z3|HS3YAylhlJ+5QsLvicKNO1n4!}AZ+3aAJrO|>Bj%!lK_wdPX-^L35J*z4lyiS1n02qG3(Zg!0W0- z8wEaC4qbWzdH(?GR8}&@CD!*03<%P&E%&pGVyi=NFK*5$p*Av|I3H7;T zn$~~P&1Mm`#lnXj%I6?`E0^(P;x@eb*X8}zM_l5%dxclk;Fd+p!xK0JXLEG@GhTPC zO4n1$B{@MONrB$2YoQWmb2x(98$?nil!us(r_fYaQtV@H!~h5HNIBi@?M?GcQOweF zg&xGQtXH@N**3Qak`Gf_C380HX&a}zy%>MXMz|*@j1GdeG<$2kLsKr#<$~P4I^(bv zfe*}xzF68j16%f2W-*_#l~MA7UYjKy+$^@yGJtmuq+pVL@mrcxMk58u0CSJxZ^F2Z zDoHLIYY`o~a?P9r?V9W?Z&u}Dx3`Oh80p9O=j&L>o22?3UY!q_zH6P4tADD6e(`_z zKGn4WNRwzFliRgo+FCm@q7$9FnDzZ@Vk~HINK<;;lM?&jTH5xjlV9oectG836^4rfQss z3E<&-p0#b%kW`!lRqjg0rFRU}v|N8)rcJ>_X2SAEQ&?9_sNF#)n$*3WRNyu_*f#fH61#9`$BS?KtUBGUo*6ilm5<5Kw8&9%Ic-G#>M0dj>fGS%SEZ@-X@F5)(hk1ahjnB+_^t@psn3t+v8dyh(V-$H7{#kq-MlL&W4 z-!dOjP>w3hfSVz>e9^uQR_}jZ2on~ z%*(DAUZ{9^$0%4_en` zX7zS2TZoKNtHc2;OE@GGTNY74^Ez7|PYlHLs&;W4pfR3L9r>>7!`>Wg=MLHA?HR15 z&8fu^Y4$VfGQ|XH&O3h<8&@AeUYVnKZraKyz>hL_Zh5UuE5p{BWC0;k9D%)?sjWb& ztUgiz=mllVb5}cPh+?%^I0|rhBQ-iA5}JCEQHI=PoQ(AyE113UN(O&rjfmUWEpNS)37yZJ z`&JI1bjxWx$6~B|1B{x7BUmjAJHHn^Dp_V@&UWXFS226>0_Z#C$}s81L8@zyUAGx<=&S`@g2&x6vT_r8nlt_siT7j+qtBTI%;8Sw_n-TeqlIbIIaa& z{{UCGV;Zx6w0`KW)5LeyQ#Sd==waYzqaW*BWd0?YrSk2f2^#jt^sQljhc!mJn~~`7 z>AG#q(mKg;$S1+qy8jwRjtPi2#%k1Qv47D+6+XDNr~EfuHl~T(Mdm zvSnMOU$Ev!Dz6|Uw^qe-lNO%k+Tvb~fI-d$YHNQx#Hnu}D)DVNJ;}#vt8nWUl{iFA z@`D*9bII%ZRiYWlF=x1uhDm1htt&W7%#lVjBb;&D)~icy_QxzR?lK3UJ?eNRYhW5O zL$d4#&>pp~LmO&zI#`J6M-9Cbg~xNAwe4ODvQr3<#sOY(f2DYqg%;9S00!kwf6ujj z3E_WxUnfn2<^*FsYZ-2D74F>Vb|`H3prHH2^{1#(I6ZsQwtxXOcF>)OLUKu=m@l9L zq+x(fRGc#c6oKw)b_J+QdlXp(vs7+%h@pj~b_k$#Bvm_`87?0ofgkVUv9;|hQ@GP! z-pbu1k%l)uPCk^Bn>4aU2Z=r-+S&$+63u@p-~emPue?#JYEzLDln0!SO?OayAk`*` zE-!Db#LbpuIov-Q#nwCleWqeKu9xQd_}~%`0-nhHTuluKjVG=AgQV z%GzCmy8uFi(z-jX4^=`0vJX%}(DVt^3LMRb1_ z7cA}+bSAm2J4aY?`^L%R8LqQQuyh|V=y5o zz=&tkmf-@gLxaUWT>-nE7T57=N__ctgs-HR==&wBV!vaB$@`DA{RpWdVQ+mI1Z^kus`d;%%PJ9(w?BW8sc#oC zhvOrU!k1FI9L}!+x798q{{U}r`Wm6uw>(0D#jVil>9voztT1uKb-~>nQ&y8ba>QER z2J@G2i9`8=fW)4M*kZ2VY2xn2!qG`mXHz_xz&puc2hd`m(;ep1{G~;6b3VYpVD0uD zJ5%oDkuTzyO2HJozFU3VV`_ho$W{kaFg2w~wRxC6VvV*2C!BN{{Hi9jjMyyKOp62& zJLCR)KTyA=C)sAa)L1N^yDSSfI2fbFP)@hDmarqbi*Qi~J$j$5HMpL~FC@!xc=9uE z&n$nXNK+5H1JoaCE$x1GObjD(M^bA+ZQa5~$Alj*u=J{INoZcMmt}v#BAuvMI@i!X z9*`X}02pIv9X+e(V$B)1LNT-z&N)5n+GxY{z3kZMV^IIJO!Ozyb(_Fl{7ey}OmN18oLC51>s`044okOAlIb$mr4q+G-w8SBeim=8aMFQJBhM)*x)={rxT|v;c?|Q za6Juik$kSL*cyNKU0Y9Es~KV=hf=t&9+C#PouZHs=;cr0Tho5+j4MXXG;i3m8+(E~ zV;;2aR27EHj1r%vCYr!SaQW%C>r!hYm0fI`L(fJuJ;6N;>!|+G;l~G-fx~|f>s;C7S6yQnmMhzL83j&0 zwaBvVBzFe}x1!E^%UhnyYSHP|7H|??NbTBv-GMwVKDAooH#TtqH%T_s1e^uhK5|dx zQQfg%4(};QSin8N7+h65>*f1H>9O++1hWu&w;9jlStFs6%(?RI?Lwuza(QNKlG3ws zPta9g7_fg^mX;|_^@IWe#~A{wX>zpEtb=%tF}rB!2{n`AKxDm;?_I3BcITXfO+7@` zhHa#YB-1QsBYu9hrhoOAdU89S5e}0$0`MSAH#dV z1_bRp@1Bajrn^ z)~d-UQ_VW!aEp?DgS}*3UMygeYFjsi87;-oRmsmahdu0a&P$Pj(1FsbYC4WvZhQLH zN7{c5K`qm@X5?$^&V?(i6=<6a9gjfdj^|j1X^XX zqNqCoJawl8AYgJ$yKMHIxq-+3DkyE^Z0nKd`a!O6T3~f@`Wq_$r zM{sM;^-V5I2~3J}3m&7jciN@eMH@M6U{`+yf2w)vVmyLz^{l09oix;~b23kvdSq9X zc*fanJVID57EmAjYt;}IYzp&#h?xG|w^7tZlaH-BdzD%HrgfRco2mXHGgq~oDqHU3 zY(qa@)tzd zI}00m@nB~@hpjrznPk}AjzwCzxrS@$W>^y45B#$y?$uVggfa5SEIwS1Q`CRc8fE19 zvPtS|PffzyME%u)tea!I8R=T~V~~AM=}{wiZhNhkB(;ghbqDmTEVV~Nb0(DwZR2hQ zXiffw>dZlsy*J~z%k%*X|RWtxEWfF$!wg5lMfjlV)84|{5|8V z8LU#?@=4_>3z&1K$R*}4RGm=tPXQY4J`141%IQwF@ zKe#jes}k?xWrMp%1;Pd$H}RVDPCX6#uMu48 z2Wt>jy(+1mJ7BK=05hEJUsF_6g-?-r9Wz<7Nbhh7ZN!`(YKz-)m7d!j6@!K?BM=m2 zi9Nk*$h=LcuBqZ1o0We#j5fr_psugQJ|Jx}z-iXai>cT5j6Z=t#Mhrj3mg-`>V2!G znzA`-Pg^5K(aN~p_fZ}?ozH(JvQJX&WLeUqai-l& zIA&9f)(zm_aVvEh$LK4loqo@wgj0fXn&wy>ax+y8$eBI8!$*4*#S6#|@G+dR=s!Bx z{?A!1yoR0FkDlP;o#&S4+t=2z>?eZJTIyxq=@=-#?H-@ju0g6bmYF13%=g4RkAd<= zIuFF=s?NgdS{Hw!>h@ceR!<;cF>W^WPzSC#tl75Q-p3s0cY$S=(gs=yQPOqolAj{R#s z-VJKzJ@Eom61?%qriRrr+f|4MYhijCyNxB>B@cfPI9wVm43bR9K_HHCP$ajHFinik zdl6b!Qrzi!d{aXb8K#s)&+zA|p+qO9g?ot>({gSbx{>HAjhX@);zAZQ23F7KP$Y8Q zU6_j&EORTKr`oeTWvh!DA*5QLo?d2Q*?lS_@5;o<^2Fk`8^*rWXS#Avn8zN&wI#K) z%ENy-!RP8KIHBCYk<+iRtEI#??7-l+%7Z<2hg5(a}&2H)NWUPz;1bn$Y1!Fd814bym&19%>7nXi{@l-VUjm_Yh^RZ7E9V&av zp?@kv4-iB#kUshK`c=3DcJ`&n3JB!qu&jUfF2!9^v}Y?NCoT=vauT_V2A26T9(nlJRW7aj#!+M9S9)TAuzLcK4zZ_KR{gps*emY zgXG3x&qEUw$K-0Ags^hmGqZmdD7VI87tBJh-RWGni0&bmU$(S@RFXK0$omdJeDpOy z&2$(q+iy0$Gntsw_Ih{7*BdYp@J~`tdWUOhH9}CVRfM;)a1}{8?rX|#E?)Nb zOQ|wiMkk)b(z^cu9qPfSO&$lz$MZ}_cJ!__fItIqdeu^gDln@)XJUUuLd*wJaZ$`f zll-8Nyb63IplNx+Ddc+grL~4x7_rD&rtPT-bVbWJc;6ubdhM+^(tGFHKX(G~aZIrh8V+u#PyFZW|piJJ&R&snN@1R$FxqwFbzOsXcL3@9$%2Ry1I-ugv2eanM!E zr*ACr@BZ%`w+X zcAW8?cc>T@k(aAPm1Kp=9nHdyz53#&B}rJ(YZo?tb#mZJO==(G<|`%Aab6XpVN^ILOaEYTlK-(Z)^> zQ%{!Jnr_T{j9?1X(9~PBhB!pBZQwUg#-t?lF>bA0Wgvs?L@^RVfzPFNE2T*|c`n^N z*E}i?1z)t%A&BoF9CR3}NIBJxYTr$|k;cf*Dr<`w;6H!7jMrb}ELmkh4J3fc9@YSZ z>MKNy+|CAQQMhbyDukAZTRG$FT}G{??LzQ?8@R4r;*m+*e*;;`w9R2B+(@lZ3%B9TW}`OnyznY76J7Zp9=v5ID*+#g;;Ihl&Z~V-9=M&ZZtgFoIca5Q z1J@>*8u@>uWbFs5<23kf%!B4-0eH#nR=!x5;YnIev z+q;YrU7hj;88|h{>PT2P>)d9wiImZf5AH$k4k=aoQ#1Rw9^lgf$2qM!86C!_W1BeV zB!KCa&sG)9#yq=`CNjzQLGFLfE3c57i)bytQar!C+zjw5nvM^$-ng9$Ff2;?ka!h@ zUZ#KYAk`jgk0n_K*cWD0bz{`juW0tRV%)Fqu1cogY>Ly1Pbn3;v`xNe-6JB~G@>W$Ihp4OP=!xX&W4KskmftxA&VGY|ROYrZzIv$~8k<^)>@|s_$qgAQ zefg)uI^04qe-BE&gmoDN-dO>ODtr1?mkfWS9D`ZH9Fn9Qp5C=$64s0sR|Yoe&1TC) z#Yi}*)a_q$`cm!OyN5o8g&g9OMyPad(XcDVE348xM9mnAQa2CQxqz7+DK;{;SAr^9 zDK?KtO-s!gW*;#1t(`Yej6W^TF^ck=TlpevHb@n{r)yqZig+WoPc)h@nKRfeW)goQ z^U15xkVx8j?_Pgn;z+~pY-7^89Xnf&bIIG1cqg?9*oj2y7y>bYnubDp0aeA~5OUn& znr{(EA-^+Mdy&e=wWxA(Gg*3ug=adG{;E#Ro+{MZqN)4CHO}f@AZ7$dpU#tLxW$^ji} zb}E`9%$jL2@&c$2YD6OjW*fGg0(+W;Np=a6a&QKCsjiMT!l&gy+t#`cMA;iiWR+w* zpF`TT5=LuK3CYGkI?d%ux4sQujeb%TbzU)3B9VIE1~foAKk}}-MwdE10QrBQmy_&G zagZ?B4+kCVqR^!QWrsiO6_k(mx{AZ8vSzNR04J-;WbuXC;G3$UUn$#F4 zW69>UM9jimmSy!6+;LN=gip@?w7y(tAzX|f;uUu>XQA2Jq-h+I%YtJbQ5{>Jy!Nb% zOEmj(OEZ!sXK;F)DL<}%m0y3gK7OJDIb$4Xy*L9Iz^d9ri*w>-kP@-P9Iyb82Wsa> zO^vG|0JybB4io~|>$oV-KaXnSd_?TmD#R6&CQf}b#dcnQpA^?S!o<6Zs`20St`}C3 z?lm`7&USa}PM)$IT_PSTVJ-YuYTJbIha`{U$2E?O(K53BHM6S2yTgCBR|7c`GM>FU z)*N{tuj5@E4r5L?Ge@}?h8!MxRm)TtL7-*KgNzQQvMuFkCEUM_Xp4tgQtmQ$2FPL5 z8qJoOEu_+0PHp7v(|3B(+6gQG1oozD4R5GfL#aSET><`)5FP&jygszsNqpEr>cDpI zNVLgE8P0Q029yr;p>u!rsA!?Ao#|6{I5j2-9Vo^P7bub|myCi57_AF^cH$S^pTv54 zR$yG7loaNjlO5UFT6n?E(9T9U!K*Feb0F)^dgiz{F+`-xBB1pqv*z&ytUHzh^DycM z0)-2U+9Y}$n)67^10PPkYN5T}*)8<1Jw7UR8T&SW;8dyNi@AS6^5Km=$<04z!`sJW z(0KlP8Z4fC6kLOwUdWG%Wif(3Ri11W&6;4o4mFUB# zy=e&8!lh1ahuZ*$c>p#t1w?YkC%+_$nQ^&>?t+*JKPbjNm2X2ZF_v5rgO28`*tf~G zh{!k;(3`*+CyIZCHzcEz?Nhk+G@@UX)Mq*E`Btu+?32m2r~&@~F14E*mygU)GttMr zTDO^DyoOKVJU8Q5vsCPE%Yqn!Nc;R(IehIV{pwCeMRX(-LmKi>@JDglvM*w2+2@EB zh$-B;$p`693?^bTN9Gf;zyx$^ml1ibv0aG%7Cah{3Z#FYc0M@tG&d6DbvPolGCNyH zhT$A)M3Sk0ewYLCHLv0QC2irqXn=o^#AQ70bITFzGm6G?Vv1X++Z|$!M_|3r=Upa~ zYjyts2;@#0kO?GyHN*Mw-D)OSv$=!2l6sO&X+>FTMQ3+oR_+}9 zI)&MZ&DQ|%IUTEwQMB{UI@f=$1z(5yY;nfKf*II!7_I>F3G6^7w_6xJ>`E{|Y}Lz0 z#^iswjDzTEk{^_e`-+-8hW4qENt%{2h~_a!epi3}Y4&HxnpnCNZa>}aRU`z)jz0Gl zYk2!qQe*vM6*UE>YXQHdN{D?jeJZ>ylvCV}YT6w3Iiyv#9k|If0?xY<0S3z+KYFcQOMjZzu-m`Ab z=7}bbe%fP!EO^{FbU(x^Q4%+VJb7dzJ5Nw+8by-Ya;GZ8?~i)DYd+EeZbwEZwKlqo zslRD(lOR*n4XvL_&$%Dz1T=y$r-C|tDe%eUOtNHoZTE#us7EK3&jBYtd2z!nX0(50 zH=&&^sJq=Nua!ACWFzHoaB8r&nkhh$8ZtP^9MzY*Qvg8_QI2`fjKfI6wJC4XZ53O`7b0bMCyH+)hB)7ASjO0S2{OmH{vU(()Q+9ih~jq1$YOy70uZq zZj&UB-H;A(gI2Ft+)fdI`J12~^%3%g%;rD4{35nmBROtqYWHQdWq=dHDB2GLrE;L) zmFtcxUr?D=H&96!$3EDsb^F}+IjvU4FLCklpK6;p$MdMOhU4i|e+FqXk)eMMS{!#H zk7|4%JHkQWG0uB&MWD=F`c(GOhAi2}4+67hi56ofGqjuzwQ?yr4^VENLAd1;+bG^u0J3fY(N6)&Y+mKeGQMobbYL>*Z>VEdg zhB8p*q_U7J06yakReJ^@f)n?~G4DhyQgWxE{V5f4;84Moeeu$&K2^5`=RDPk2}_Vy zjMSG9tg#6(gPcA;oh7i?*c@YUI48HIZ|S!lOo3nhMBgj>A6n(Zh?{?cN%Z!uJ8OlO z5~Ha88i_=>GWNHp7?*hYnL4okCGA+Tu}<5U(z-Y&n(EzPD6GI|aXqUOQL=j(H>k*N z;*?)O%ei{aWh=4rSJ2j#q}y%s;qGU diff --git a/examples/results/posmap_300WLP/IBUG_image_008_1_0_posmap.jpg b/examples/results/posmap_300WLP/IBUG_image_008_1_0_posmap.jpg index 686d72777c7b13dec37d1980c99af1eeda3d8888..d396b5fe73abb8e0ba06310d94deef377a01cfec 100644 GIT binary patch delta 2986 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 delta 3030 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 diff --git a/face3d/mesh/transform.py b/face3d/mesh/transform.py index 93a3267..5eda05b 100644 --- a/face3d/mesh/transform.py +++ b/face3d/mesh/transform.py @@ -106,6 +106,7 @@ def similarity_transform(vertices, s, R, t3d): ## -------------- Camera. from world space to camera space +# Ref: https://cs184.eecs.berkeley.edu/lecture/transforms-2 def normalize(x): epsilon = 1e-12 norm = np.sqrt(np.sum(x**2, axis = 0)) @@ -198,7 +199,7 @@ def perspective_project(vertices, fovy, aspect_ratio = 1., near = 0.1, far = 100 def to_image(vertices, h, w, is_perspective = False): ''' change vertices to image coord system 3d system: XYZ, center(0, 0, 0) - 2d image: X(w), Y(h). center(w/2, h/2), flip Y(h). + 2d image: x(u), y(v). center(w/2, h/2), flip y-axis. ''' image_vertices = vertices.copy() if is_perspective: