1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
|
#N canvas 478 34 785 700 10;
#X obj 473 46 cnv 15 300 500 empty empty empty 20 12 0 14 -228992 -66577
0;
#X obj 12 67 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 12 318 cnv 15 450 380 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 14 326 Inlets:;
#X obj 12 278 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577
0;
#X text 21 277 Arguments:;
#X text 13 497 Outlets:;
#X text 479 31 Example:;
#X text 59 32 Class: pix_opencv;
#X text 67 287 none;
#X obj 354 536 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577
0;
#N canvas 1 162 450 300 gemwin 0;
#X obj 132 156 gemwin;
#X obj 67 89 outlet;
#X obj 67 10 inlet;
#X obj 67 41 route create;
#X msg 67 70 set destroy;
#X msg 142 68 set create;
#X msg 198 112 destroy;
#X msg 132 132 reset \, dimen 640 480 \, offset 10 640 \, create \,
1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 7 0;
#X connect 3 1 5 0;
#X connect 3 1 6 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X restore 359 575 pd gemwin;
#X msg 359 556 destroy;
#X text 355 535 Create window:;
#X text 26 508 Outlet 1: gemlist output;
#X text 17 730 bug \, feedback \, comment... on the pd-list;
#X obj 477 114 cnv 15 280 160 empty empty empty 20 12 0 14 -4034 -66577
0;
#X obj 488 58 gemhead 1;
#X obj 488 291 pix_texture;
#X msg 500 190 reset;
#X obj 488 88 pix_video;
#X text 31 340 Inlet 1: gemlist input;
#X text 38 16 Synopsis: [pix_opencv_facetracker];
#X text 12 71 Description: finds face;
#X text 39 87 [pix_opencv_facetracker] uses the FaceTracker library
by Jason Saragih and Kyle Macdonald to track face features.;
#X text 27 710 by antoine villeret - 2013;
#X msg 548 190 show \$1;
#X obj 548 171 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 31 355 Inlet 1: message reset : reset the tracker;
#X text 31 370 Inlet 1: message show : draw tracking data on image
;
#X msg 604 190 tolerance \$1;
#X floatatom 604 173 5 0 0 0 - - -;
#X floatatom 688 173 5 0 0 0 - - -;
#X msg 688 190 clamp \$1;
#X msg 576 142 filter \$1;
#X floatatom 576 125 5 0 0 0 - - -;
#X text 31 443 Inlet 1: message filter : Maximum number of optimization
steps to perform. default 5;
#X text 31 413 Inlet 1: message clamp : shape model parameters clamping
factor (in standard dev's). default 3;
#X text 31 385 Inlet 1: message tolerance : convergence tolerance of
optimization. default 0.01;
#N canvas 1373 557 410 415 draw_contour_gemvertexbuffer 0;
#N canvas 1 100 548 451 mouse 0;
#X obj 25 145 translateXYZ -0.5 -0.5 0;
#X obj 25 122 scaleXYZ 10.6666 -8 1;
#X obj 25 97 alpha 0;
#X obj 25 71 gemhead 10000;
#X obj 25 52 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 221 203 route float;
#X obj 221 225 sel 1;
#X obj 221 182 route gem_state;
#X msg 44 191 position MOUTH;
#X obj 25 167 t a b b;
#X obj 25 375 gemvertexbuffer 200;
#X msg 81 253 draw lineloop \, colorG colorR \, colorA colorA \, draw_range
0 12;
#X connect 0 0 9 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 7 0;
#X connect 4 0 3 0;
#X connect 5 0 6 0;
#X connect 6 0 11 0;
#X connect 7 0 5 0;
#X connect 8 0 10 0;
#X connect 9 0 10 0;
#X connect 9 1 8 0;
#X connect 11 0 10 0;
#X restore 38 28 pd mouse;
#N canvas 1 95 631 351 jaw 0;
#X obj 128 124 translateXYZ -0.5 -0.5 0;
#X obj 128 101 scaleXYZ 10.6666 -8 1;
#X obj 128 76 alpha 0;
#X obj 128 40 gemhead 10000;
#X obj 128 146 t a b b;
#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 156 170 position JAW;
#X obj 128 304 gemvertexbuffer 200;
#X obj 264 182 route float;
#X obj 264 204 sel 1;
#X obj 264 161 route gem_state;
#X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \,
draw_range 0 17;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 10 0;
#X connect 4 0 7 0;
#X connect 4 1 6 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 8 0 9 0;
#X connect 9 0 11 0;
#X connect 10 0 8 0;
#X connect 11 0 7 0;
#X restore 38 78 pd jaw;
#N canvas 1 110 631 351 left_eye 0;
#X obj 128 124 translateXYZ -0.5 -0.5 0;
#X obj 128 101 scaleXYZ 10.6666 -8 1;
#X obj 128 76 alpha 0;
#X obj 128 40 gemhead 10000;
#X obj 128 146 t a b b;
#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 128 304 gemvertexbuffer 200;
#X obj 280 182 route float;
#X obj 280 204 sel 1;
#X obj 280 161 route gem_state;
#X msg 156 170 position LEFT_EYE;
#X msg 168 252 draw lineloop \, colorG colorR \, colorA colorA \, draw_range
0 6;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 9 0;
#X connect 4 0 6 0;
#X connect 4 1 10 0;
#X connect 5 0 3 0;
#X connect 7 0 8 0;
#X connect 8 0 11 0;
#X connect 9 0 7 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X restore 38 98 pd left_eye;
#N canvas 1 115 631 351 right_eye 0;
#X obj 128 124 translateXYZ -0.5 -0.5 0;
#X obj 128 101 scaleXYZ 10.6666 -8 1;
#X obj 128 76 alpha 0;
#X obj 128 40 gemhead 10000;
#X obj 128 146 t a b b;
#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 128 304 gemvertexbuffer 200;
#X obj 280 182 route float;
#X obj 280 204 sel 1;
#X obj 280 161 route gem_state;
#X msg 156 170 position RIGHT_EYE;
#X msg 168 252 draw lineloop \, colorG colorR \, colorA colorA \, draw_range
0 6;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 9 0;
#X connect 4 0 6 0;
#X connect 4 1 10 0;
#X connect 5 0 3 0;
#X connect 7 0 8 0;
#X connect 8 0 11 0;
#X connect 9 0 7 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X restore 38 118 pd right_eye;
#N canvas 352 670 631 351 right_eyebrow 0;
#X obj 128 124 translateXYZ -0.5 -0.5 0;
#X obj 128 101 scaleXYZ 10.6666 -8 1;
#X obj 128 76 alpha 0;
#X obj 128 40 gemhead 10000;
#X obj 128 146 t a b b;
#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 128 304 gemvertexbuffer 200;
#X obj 318 176 route float;
#X obj 318 198 sel 1;
#X obj 318 155 route gem_state;
#X msg 156 170 position RIGHT_EYEBROW;
#X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \,
draw_range 0 5;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 9 0;
#X connect 4 0 6 0;
#X connect 4 1 10 0;
#X connect 5 0 3 0;
#X connect 7 0 8 0;
#X connect 8 0 11 0;
#X connect 9 0 7 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X restore 38 138 pd right_eyebrow;
#N canvas 596 689 631 351 right_eyebrow 0;
#X obj 128 124 translateXYZ -0.5 -0.5 0;
#X obj 128 101 scaleXYZ 10.6666 -8 1;
#X obj 128 76 alpha 0;
#X obj 128 40 gemhead 10000;
#X obj 128 146 t a b b;
#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 128 304 gemvertexbuffer 200;
#X obj 318 176 route float;
#X obj 318 198 sel 1;
#X obj 318 155 route gem_state;
#X msg 156 170 position LEFT_EYEBROW;
#X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \,
draw_range 0 5;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 9 0;
#X connect 4 0 6 0;
#X connect 4 1 10 0;
#X connect 5 0 3 0;
#X connect 7 0 8 0;
#X connect 8 0 11 0;
#X connect 9 0 7 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X restore 38 158 pd right_eyebrow;
#N canvas 592 699 631 351 nose_base 0;
#X obj 128 124 translateXYZ -0.5 -0.5 0;
#X obj 128 101 scaleXYZ 10.6666 -8 1;
#X obj 128 76 alpha 0;
#X obj 128 40 gemhead 10000;
#X obj 128 146 t a b b;
#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 128 304 gemvertexbuffer 200;
#X obj 318 176 route float;
#X obj 318 198 sel 1;
#X obj 318 155 route gem_state;
#X msg 156 170 position NOSE_BASE;
#X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \,
draw_range 0 5;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 9 0;
#X connect 4 0 6 0;
#X connect 4 1 10 0;
#X connect 5 0 3 0;
#X connect 7 0 8 0;
#X connect 8 0 11 0;
#X connect 9 0 7 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X restore 38 178 pd nose_base;
#N canvas 592 699 631 351 nose_bridge 0;
#X obj 128 124 translateXYZ -0.5 -0.5 0;
#X obj 128 101 scaleXYZ 10.6666 -8 1;
#X obj 128 76 alpha 0;
#X obj 128 40 gemhead 10000;
#X obj 128 146 t a b b;
#X obj 128 21 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 128 304 gemvertexbuffer 200;
#X obj 318 176 route float;
#X obj 318 198 sel 1;
#X obj 318 155 route gem_state;
#X msg 156 170 position NOSE_BRIDGE;
#X msg 168 252 draw linestrip \, colorG colorR \, colorA colorA \,
draw_range 0 4;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 9 0;
#X connect 4 0 6 0;
#X connect 4 1 10 0;
#X connect 5 0 3 0;
#X connect 7 0 8 0;
#X connect 8 0 11 0;
#X connect 9 0 7 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X restore 38 198 pd nose_bridge;
#N canvas 980 217 548 451 inner_mouse 0;
#X obj 25 145 translateXYZ -0.5 -0.5 0;
#X obj 25 122 scaleXYZ 10.6666 -8 1;
#X obj 25 97 alpha 0;
#X obj 25 71 gemhead 10000;
#X obj 25 52 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 221 203 route float;
#X obj 221 225 sel 1;
#X obj 221 182 route gem_state;
#X obj 25 167 t a b b;
#X obj 25 375 gemvertexbuffer 200;
#X msg 45 191 position INNER_MOUTH;
#X floatatom 157 77 5 0 0 0 - - -;
#X msg 81 253 draw lineloop \, colorG colorR \, colorA colorA \, draw_range
0 8;
#X connect 0 0 8 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 7 0;
#X connect 4 0 3 0;
#X connect 5 0 6 0;
#X connect 6 0 12 0;
#X connect 7 0 5 0;
#X connect 8 0 9 0;
#X connect 8 1 10 0;
#X connect 10 0 9 0;
#X connect 11 0 1 1;
#X connect 12 0 9 0;
#X restore 38 48 pd inner_mouse;
#X restore 490 366 pd draw_contour_gemvertexbuffer;
#X obj 488 313 rectangle 5.3333 4;
#N canvas 1 205 450 300 settab 0;
#X obj 60 76 loadbang;
#X obj 60 224 outlet;
#X msg 73 178 settab OUTER_MOUTH MOUTH;
#X msg 60 96 settab LEFT_EYE LEFT_EYE \, settab RIGHT_EYE RIGHT_EYE
\, settab OUTER_MOUTH MOUTH \, settab JAW JAW \, settab NOSE_BRIDGE
NOSE_BRIDGE \, settab NOSE_BASE NOSE_BASE \, settab INNER_MOUTH INNER_MOUTH
\, settab RIGHT_EYEBROW RIGHT_EYEBROW \, settab LEFT_EYEBROW LEFT_EYEBROW
;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 1 0;
#X restore 501 150 pd settab;
#N canvas 118 701 450 349 fill_tables 0;
#X obj 196 84 until;
#X obj 196 106 f;
#X obj 221 106 + 1;
#X obj 196 20 loadbang;
#X obj 196 148 t b f;
#X obj 196 200 tabwrite colorR;
#X obj 186 220 tabwrite colorA;
#X msg 196 170 1;
#X obj 196 40 t b b;
#X msg 250 67 0;
#X obj 177 21 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 196 63 200;
#X obj -111 45 table LEFT_EYE 100;
#X obj -111 65 table RIGHT_EYE 100;
#X obj -111 85 table MOUTH 100;
#X obj -111 145 table JAW 100;
#X obj -111 165 table NOSE_BRIDGE 100;
#X obj -111 105 table INNER_MOUTH 100;
#X obj -111 185 table NOSE_BASE 100;
#X obj -111 205 table FACE_OUTLINE 100;
#X obj -111 264 table colorR 100;
#X obj -110 285 table colorA 100;
#X obj -111 5 table LEFT_EYEBROW 100;
#X obj -111 25 table RIGHT_EYEBROW 100;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 0 4 0;
#X connect 2 0 1 1;
#X connect 3 0 8 0;
#X connect 4 0 7 0;
#X connect 4 1 5 1;
#X connect 4 1 6 1;
#X connect 7 0 5 0;
#X connect 7 0 6 0;
#X connect 8 0 11 0;
#X connect 8 1 9 0;
#X connect 9 0 1 1;
#X connect 10 0 8 0;
#X connect 11 0 0 0;
#X restore 490 386 pd fill_tables;
#X obj 488 219 pix_opencv_facetracker;
#X text 27 137 supported features : LEFT_EYEBROW \, RIGHT_EYEBROW \,
LEFT_EYE \, RIGHT_EYE \, LEFT_JAW \, RIGHT_JAW \, JAW \, OUTER_MOUTH
\, INNER_MOUTH \, NOSE_BRIDGE \, NOSE_BASE \, FACE_OUTLINE \, ALL_FEATURES
;
#X obj 488 119 pix_rgba;
#X connect 11 0 12 0;
#X connect 12 0 11 0;
#X connect 17 0 20 0;
#X connect 18 0 40 0;
#X connect 19 0 43 0;
#X connect 20 0 45 0;
#X connect 26 0 43 0;
#X connect 27 0 26 0;
#X connect 30 0 43 0;
#X connect 31 0 30 0;
#X connect 32 0 33 0;
#X connect 33 0 43 0;
#X connect 34 0 43 0;
#X connect 35 0 34 0;
#X connect 41 0 43 0;
#X connect 43 0 18 0;
#X connect 45 0 43 0;
|