Commit 8f0492db42d247336a02c0897781b3260cee78ce

Authored by Scott Klum
2 parents bee4a6fe 210701f8

Merge branch 'master' of https://github.com/biometrics/openbr

Showing 60 changed files with 1310 additions and 1841 deletions
app/examples/face_recognition_train.cpp 0 → 100644
  1 +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  2 + * Copyright 2012 The MITRE Corporation *
  3 + * *
  4 + * Licensed under the Apache License, Version 2.0 (the "License"); *
  5 + * you may not use this file except in compliance with the License. *
  6 + * You may obtain a copy of the License at *
  7 + * *
  8 + * http://www.apache.org/licenses/LICENSE-2.0 *
  9 + * *
  10 + * Unless required by applicable law or agreed to in writing, software *
  11 + * distributed under the License is distributed on an "AS IS" BASIS, *
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
  13 + * See the License for the specific language governing permissions and *
  14 + * limitations under the License. *
  15 + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  16 +
  17 +/*!
  18 + * \ingroup cli
  19 + * \page cli_face_recognition_train Face Recognition Train
  20 + * \ref cpp_face_recognition_train "C++ Equivalent"
  21 + * \code
  22 + * $ br -algorithm 'Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(128,128,0.33,0.45)+(Grid(10,10)+SIFTDescriptor(12)+ByRow)/(Blur(1.1)+Gamma(0.2)+DoG(1,2)+ContrastEq(0.1,10)+LBP(1,2)+RectRegions(8,8,6,6)+Hist(59))+PCA(0.95)+Normalize(L2)+Dup(12)+RndSubspace(0.05,1)+LDA(0.98)+Cat+PCA(0.95)+Normalize(L1)+Quantize:NegativeLogPlusOne(ByteL1)' -train ../data/ATT/img FaceRecognitionATT
  23 + * \endcode
  24 + */
  25 +
  26 +//! [face_recognition_train]
  27 +#include <openbr/openbr_plugin.h>
  28 +
  29 +int main(int argc, char *argv[])
  30 +{
  31 + br::Context::initialize(argc, argv);
  32 +
  33 + const QString trainedModelFile = "FaceRecognitionATT";
  34 + if (QFile(trainedModelFile).exists())
  35 + return 0; // Already trained
  36 +
  37 + br::Globals->algorithm = "Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(128,128,0.33,0.45)+(Grid(10,10)+SIFTDescriptor(12)+ByRow)/(Blur(1.1)+Gamma(0.2)+DoG(1,2)+ContrastEq(0.1,10)+LBP(1,2)+RectRegions(8,8,6,6)+Hist(59))+PCA(0.95)+Normalize(L2)+Dup(12)+RndSubspace(0.05,1)+LDA(0.98)+Cat+PCA(0.95)+Normalize(L1)+Quantize:NegativeLogPlusOne(ByteL1)";
  38 + // br::Globals->algorithm = "4SF"; // Equally valid alternative. "4SF" is the abbreviation, see openbr/plugins/algorithms.cpp
  39 +
  40 + // Note the structure of the `../data/ATT/img` training data:
  41 + // - Subdirectory for each person
  42 + // - Multiple images per person
  43 + // Run `scripts/downloadDatasets.sh` to obtain these images if you haven't already.
  44 + const QString trainingData = "../data/ATT/img";
  45 +
  46 + // After training completes you can use `FaceRecognitionATT` like `FaceRecognition`:
  47 + // $ br -algorithm FaceRecognitionATT
  48 + // provided the `FaceRecognitionATT` file is in your current working directory or in `share/openbr/models/algorithms`.
  49 + printf("Note: Training will take at least a few minutes to complete.\n");
  50 + br::Train(trainingData, trainedModelFile);
  51 +
  52 + br::Context::finalize();
  53 + return 0;
  54 +}
  55 +//! [face_recognition_train]
... ...
data/ATT/README.md 0 → 100644
  1 +## AT&T Database of Faces
  2 +40 subjects with 10 images each.
  3 +* [Website](http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html)
  4 +* [Paper](http://www.cl.cam.ac.uk/Research/DTG/attarchive/abstracts.html#55)
  5 +* [Dataset](http://www.cl.cam.ac.uk/Research/DTG/attarchive/pub/data/att_faces.zip)
... ...
data/KTH/test_9ppl.xml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <biometric-signature-set>
3   - <biometric-signature name="boxing17-1">
  3 + <biometric-signature name="person17">
4 4 <presentation Label="boxing" file-name="boxing/person17_boxing_d1_uncomp.avi" />
5   - </biometric-signature>
6   - <biometric-signature name="boxing17-2">
7 5 <presentation Label="boxing" file-name="boxing/person17_boxing_d2_uncomp.avi" />
8   - </biometric-signature>
9   - <biometric-signature name="boxing17-3">
10 6 <presentation Label="boxing" file-name="boxing/person17_boxing_d3_uncomp.avi" />
11   - </biometric-signature>
12   - <biometric-signature name="boxing17-4">
13 7 <presentation Label="boxing" file-name="boxing/person17_boxing_d4_uncomp.avi" />
14   - </biometric-signature>
15   - <biometric-signature name="boxing18-1">
16   - <presentation Label="boxing" file-name="boxing/person18_boxing_d1_uncomp.avi" />
17   - </biometric-signature>
18   - <biometric-signature name="boxing18-2">
19   - <presentation Label="boxing" file-name="boxing/person18_boxing_d2_uncomp.avi" />
20   - </biometric-signature>
21   - <biometric-signature name="boxing18-3">
22   - <presentation Label="boxing" file-name="boxing/person18_boxing_d3_uncomp.avi" />
23   - </biometric-signature>
24   - <biometric-signature name="boxing18-4">
25   - <presentation Label="boxing" file-name="boxing/person18_boxing_d4_uncomp.avi" />
26   - </biometric-signature>
27   - <biometric-signature name="boxing19-1">
28   - <presentation Label="boxing" file-name="boxing/person19_boxing_d1_uncomp.avi" />
29   - </biometric-signature>
30   - <biometric-signature name="boxing19-2">
31   - <presentation Label="boxing" file-name="boxing/person19_boxing_d2_uncomp.avi" />
32   - </biometric-signature>
33   - <biometric-signature name="boxing19-3">
34   - <presentation Label="boxing" file-name="boxing/person19_boxing_d3_uncomp.avi" />
35   - </biometric-signature>
36   - <biometric-signature name="boxing19-4">
37   - <presentation Label="boxing" file-name="boxing/person19_boxing_d4_uncomp.avi" />
38   - </biometric-signature>
39   - <biometric-signature name="boxing20-1">
40   - <presentation Label="boxing" file-name="boxing/person20_boxing_d1_uncomp.avi" />
41   - </biometric-signature>
42   - <biometric-signature name="boxing20-2">
43   - <presentation Label="boxing" file-name="boxing/person20_boxing_d2_uncomp.avi" />
44   - </biometric-signature>
45   - <biometric-signature name="boxing20-3">
46   - <presentation Label="boxing" file-name="boxing/person20_boxing_d3_uncomp.avi" />
47   - </biometric-signature>
48   - <biometric-signature name="boxing20-4">
49   - <presentation Label="boxing" file-name="boxing/person20_boxing_d4_uncomp.avi" />
50   - </biometric-signature>
51   - <biometric-signature name="boxing21-1">
52   - <presentation Label="boxing" file-name="boxing/person21_boxing_d1_uncomp.avi" />
53   - </biometric-signature>
54   - <biometric-signature name="boxing21-2">
55   - <presentation Label="boxing" file-name="boxing/person21_boxing_d2_uncomp.avi" />
56   - </biometric-signature>
57   - <biometric-signature name="boxing21-3">
58   - <presentation Label="boxing" file-name="boxing/person21_boxing_d3_uncomp.avi" />
59   - </biometric-signature>
60   - <biometric-signature name="boxing21-4">
61   - <presentation Label="boxing" file-name="boxing/person21_boxing_d4_uncomp.avi" />
62   - </biometric-signature>
63   - <biometric-signature name="boxing22-1">
64   - <presentation Label="boxing" file-name="boxing/person22_boxing_d1_uncomp.avi" />
65   - </biometric-signature>
66   - <biometric-signature name="boxing22-2">
67   - <presentation Label="boxing" file-name="boxing/person22_boxing_d2_uncomp.avi" />
68   - </biometric-signature>
69   - <biometric-signature name="boxing22-3">
70   - <presentation Label="boxing" file-name="boxing/person22_boxing_d3_uncomp.avi" />
71   - </biometric-signature>
72   - <biometric-signature name="boxing22-4">
73   - <presentation Label="boxing" file-name="boxing/person22_boxing_d4_uncomp.avi" />
74   - </biometric-signature>
75   - <biometric-signature name="boxing23-1">
76   - <presentation Label="boxing" file-name="boxing/person23_boxing_d1_uncomp.avi" />
77   - </biometric-signature>
78   - <biometric-signature name="boxing23-2">
79   - <presentation Label="boxing" file-name="boxing/person23_boxing_d2_uncomp.avi" />
80   - </biometric-signature>
81   - <biometric-signature name="boxing23-3">
82   - <presentation Label="boxing" file-name="boxing/person23_boxing_d3_uncomp.avi" />
83   - </biometric-signature>
84   - <biometric-signature name="boxing23-4">
85   - <presentation Label="boxing" file-name="boxing/person23_boxing_d4_uncomp.avi" />
86   - </biometric-signature>
87   - <biometric-signature name="boxing24-1">
88   - <presentation Label="boxing" file-name="boxing/person24_boxing_d1_uncomp.avi" />
89   - </biometric-signature>
90   - <biometric-signature name="boxing24-2">
91   - <presentation Label="boxing" file-name="boxing/person24_boxing_d2_uncomp.avi" />
92   - </biometric-signature>
93   - <biometric-signature name="boxing24-3">
94   - <presentation Label="boxing" file-name="boxing/person24_boxing_d3_uncomp.avi" />
95   - </biometric-signature>
96   - <biometric-signature name="boxing24-4">
97   - <presentation Label="boxing" file-name="boxing/person24_boxing_d4_uncomp.avi" />
98   - </biometric-signature>
99   - <biometric-signature name="boxing25-1">
100   - <presentation Label="boxing" file-name="boxing/person25_boxing_d1_uncomp.avi" />
101   - </biometric-signature>
102   - <biometric-signature name="boxing25-2">
103   - <presentation Label="boxing" file-name="boxing/person25_boxing_d2_uncomp.avi" />
104   - </biometric-signature>
105   - <biometric-signature name="boxing25-3">
106   - <presentation Label="boxing" file-name="boxing/person25_boxing_d3_uncomp.avi" />
107   - </biometric-signature>
108   - <biometric-signature name="boxing25-4">
109   - <presentation Label="boxing" file-name="boxing/person25_boxing_d4_uncomp.avi" />
110   - </biometric-signature>
111   - <biometric-signature name="handclapping17-1">
112 8 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d1_uncomp.avi" />
113   - </biometric-signature>
114   - <biometric-signature name="handclapping17-2">
115 9 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d2_uncomp.avi" />
116   - </biometric-signature>
117   - <biometric-signature name="handclapping17-3">
118 10 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d3_uncomp.avi" />
119   - </biometric-signature>
120   - <biometric-signature name="handclapping17-4">
121 11 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d4_uncomp.avi" />
122   - </biometric-signature>
123   - <biometric-signature name="handclapping18-1">
124   - <presentation Label="handclapping" file-name="handclapping/person18_handclapping_d1_uncomp.avi" />
125   - </biometric-signature>
126   - <biometric-signature name="handclapping18-2">
127   - <presentation Label="handclapping" file-name="handclapping/person18_handclapping_d2_uncomp.avi" />
128   - </biometric-signature>
129   - <biometric-signature name="handclapping18-3">
130   - <presentation Label="handclapping" file-name="handclapping/person18_handclapping_d3_uncomp.avi" />
131   - </biometric-signature>
132   - <biometric-signature name="handclapping18-4">
133   - <presentation Label="handclapping" file-name="handclapping/person18_handclapping_d4_uncomp.avi" />
134   - </biometric-signature>
135   - <biometric-signature name="handclapping19-1">
136   - <presentation Label="handclapping" file-name="handclapping/person19_handclapping_d1_uncomp.avi" />
137   - </biometric-signature>
138   - <biometric-signature name="handclapping19-2">
139   - <presentation Label="handclapping" file-name="handclapping/person19_handclapping_d2_uncomp.avi" />
140   - </biometric-signature>
141   - <biometric-signature name="handclapping19-3">
142   - <presentation Label="handclapping" file-name="handclapping/person19_handclapping_d3_uncomp.avi" />
143   - </biometric-signature>
144   - <biometric-signature name="handclapping19-4">
145   - <presentation Label="handclapping" file-name="handclapping/person19_handclapping_d4_uncomp.avi" />
146   - </biometric-signature>
147   - <biometric-signature name="handclapping20-1">
148   - <presentation Label="handclapping" file-name="handclapping/person20_handclapping_d1_uncomp.avi" />
149   - </biometric-signature>
150   - <biometric-signature name="handclapping20-2">
151   - <presentation Label="handclapping" file-name="handclapping/person20_handclapping_d2_uncomp.avi" />
152   - </biometric-signature>
153   - <biometric-signature name="handclapping20-3">
154   - <presentation Label="handclapping" file-name="handclapping/person20_handclapping_d3_uncomp.avi" />
155   - </biometric-signature>
156   - <biometric-signature name="handclapping20-4">
157   - <presentation Label="handclapping" file-name="handclapping/person20_handclapping_d4_uncomp.avi" />
158   - </biometric-signature>
159   - <biometric-signature name="handclapping21-1">
160   - <presentation Label="handclapping" file-name="handclapping/person21_handclapping_d1_uncomp.avi" />
161   - </biometric-signature>
162   - <biometric-signature name="handclapping21-2">
163   - <presentation Label="handclapping" file-name="handclapping/person21_handclapping_d2_uncomp.avi" />
164   - </biometric-signature>
165   - <biometric-signature name="handclapping21-3">
166   - <presentation Label="handclapping" file-name="handclapping/person21_handclapping_d3_uncomp.avi" />
167   - </biometric-signature>
168   - <biometric-signature name="handclapping21-4">
169   - <presentation Label="handclapping" file-name="handclapping/person21_handclapping_d4_uncomp.avi" />
170   - </biometric-signature>
171   - <biometric-signature name="handclapping22-1">
172   - <presentation Label="handclapping" file-name="handclapping/person22_handclapping_d1_uncomp.avi" />
173   - </biometric-signature>
174   - <biometric-signature name="handclapping22-2">
175   - <presentation Label="handclapping" file-name="handclapping/person22_handclapping_d2_uncomp.avi" />
176   - </biometric-signature>
177   - <biometric-signature name="handclapping22-3">
178   - <presentation Label="handclapping" file-name="handclapping/person22_handclapping_d3_uncomp.avi" />
179   - </biometric-signature>
180   - <biometric-signature name="handclapping22-4">
181   - <presentation Label="handclapping" file-name="handclapping/person22_handclapping_d4_uncomp.avi" />
182   - </biometric-signature>
183   - <biometric-signature name="handclapping23-1">
184   - <presentation Label="handclapping" file-name="handclapping/person23_handclapping_d1_uncomp.avi" />
185   - </biometric-signature>
186   - <biometric-signature name="handclapping23-2">
187   - <presentation Label="handclapping" file-name="handclapping/person23_handclapping_d2_uncomp.avi" />
188   - </biometric-signature>
189   - <biometric-signature name="handclapping23-3">
190   - <presentation Label="handclapping" file-name="handclapping/person23_handclapping_d3_uncomp.avi" />
191   - </biometric-signature>
192   - <biometric-signature name="handclapping23-4">
193   - <presentation Label="handclapping" file-name="handclapping/person23_handclapping_d4_uncomp.avi" />
194   - </biometric-signature>
195   - <biometric-signature name="handclapping24-1">
196   - <presentation Label="handclapping" file-name="handclapping/person24_handclapping_d1_uncomp.avi" />
197   - </biometric-signature>
198   - <biometric-signature name="handclapping24-2">
199   - <presentation Label="handclapping" file-name="handclapping/person24_handclapping_d2_uncomp.avi" />
200   - </biometric-signature>
201   - <biometric-signature name="handclapping24-3">
202   - <presentation Label="handclapping" file-name="handclapping/person24_handclapping_d3_uncomp.avi" />
203   - </biometric-signature>
204   - <biometric-signature name="handclapping24-4">
205   - <presentation Label="handclapping" file-name="handclapping/person24_handclapping_d4_uncomp.avi" />
206   - </biometric-signature>
207   - <biometric-signature name="handclapping25-1">
208   - <presentation Label="handclapping" file-name="handclapping/person25_handclapping_d1_uncomp.avi" />
209   - </biometric-signature>
210   - <biometric-signature name="handclapping25-2">
211   - <presentation Label="handclapping" file-name="handclapping/person25_handclapping_d2_uncomp.avi" />
212   - </biometric-signature>
213   - <biometric-signature name="handclapping25-3">
214   - <presentation Label="handclapping" file-name="handclapping/person25_handclapping_d3_uncomp.avi" />
215   - </biometric-signature>
216   - <biometric-signature name="handclapping25-4">
217   - <presentation Label="handclapping" file-name="handclapping/person25_handclapping_d4_uncomp.avi" />
218   - </biometric-signature>
219   - <biometric-signature name="handwaving17-1">
220 12 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d1_uncomp.avi" />
221   - </biometric-signature>
222   - <biometric-signature name="handwaving17-2">
223 13 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d2_uncomp.avi" />
224   - </biometric-signature>
225   - <biometric-signature name="handwaving17-3">
226 14 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d3_uncomp.avi" />
227   - </biometric-signature>
228   - <biometric-signature name="handwaving17-4">
229 15 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d4_uncomp.avi" />
230   - </biometric-signature>
231   - <biometric-signature name="handwaving18-1">
232   - <presentation Label="handwaving" file-name="handwaving/person18_handwaving_d1_uncomp.avi" />
233   - </biometric-signature>
234   - <biometric-signature name="handwaving18-2">
235   - <presentation Label="handwaving" file-name="handwaving/person18_handwaving_d2_uncomp.avi" />
236   - </biometric-signature>
237   - <biometric-signature name="handwaving18-3">
238   - <presentation Label="handwaving" file-name="handwaving/person18_handwaving_d3_uncomp.avi" />
239   - </biometric-signature>
240   - <biometric-signature name="handwaving18-4">
241   - <presentation Label="handwaving" file-name="handwaving/person18_handwaving_d4_uncomp.avi" />
242   - </biometric-signature>
243   - <biometric-signature name="handwaving19-1">
244   - <presentation Label="handwaving" file-name="handwaving/person19_handwaving_d1_uncomp.avi" />
245   - </biometric-signature>
246   - <biometric-signature name="handwaving19-2">
247   - <presentation Label="handwaving" file-name="handwaving/person19_handwaving_d2_uncomp.avi" />
248   - </biometric-signature>
249   - <biometric-signature name="handwaving19-3">
250   - <presentation Label="handwaving" file-name="handwaving/person19_handwaving_d3_uncomp.avi" />
251   - </biometric-signature>
252   - <biometric-signature name="handwaving19-4">
253   - <presentation Label="handwaving" file-name="handwaving/person19_handwaving_d4_uncomp.avi" />
254   - </biometric-signature>
255   - <biometric-signature name="handwaving20-1">
256   - <presentation Label="handwaving" file-name="handwaving/person20_handwaving_d1_uncomp.avi" />
257   - </biometric-signature>
258   - <biometric-signature name="handwaving20-2">
259   - <presentation Label="handwaving" file-name="handwaving/person20_handwaving_d2_uncomp.avi" />
260   - </biometric-signature>
261   - <biometric-signature name="handwaving20-3">
262   - <presentation Label="handwaving" file-name="handwaving/person20_handwaving_d3_uncomp.avi" />
263   - </biometric-signature>
264   - <biometric-signature name="handwaving20-4">
265   - <presentation Label="handwaving" file-name="handwaving/person20_handwaving_d4_uncomp.avi" />
266   - </biometric-signature>
267   - <biometric-signature name="handwaving21-1">
268   - <presentation Label="handwaving" file-name="handwaving/person21_handwaving_d1_uncomp.avi" />
269   - </biometric-signature>
270   - <biometric-signature name="handwaving21-2">
271   - <presentation Label="handwaving" file-name="handwaving/person21_handwaving_d2_uncomp.avi" />
272   - </biometric-signature>
273   - <biometric-signature name="handwaving21-3">
274   - <presentation Label="handwaving" file-name="handwaving/person21_handwaving_d3_uncomp.avi" />
275   - </biometric-signature>
276   - <biometric-signature name="handwaving21-4">
277   - <presentation Label="handwaving" file-name="handwaving/person21_handwaving_d4_uncomp.avi" />
278   - </biometric-signature>
279   - <biometric-signature name="handwaving22-1">
280   - <presentation Label="handwaving" file-name="handwaving/person22_handwaving_d1_uncomp.avi" />
281   - </biometric-signature>
282   - <biometric-signature name="handwaving22-2">
283   - <presentation Label="handwaving" file-name="handwaving/person22_handwaving_d2_uncomp.avi" />
284   - </biometric-signature>
285   - <biometric-signature name="handwaving22-3">
286   - <presentation Label="handwaving" file-name="handwaving/person22_handwaving_d3_uncomp.avi" />
287   - </biometric-signature>
288   - <biometric-signature name="handwaving22-4">
289   - <presentation Label="handwaving" file-name="handwaving/person22_handwaving_d4_uncomp.avi" />
290   - </biometric-signature>
291   - <biometric-signature name="handwaving23-1">
292   - <presentation Label="handwaving" file-name="handwaving/person23_handwaving_d1_uncomp.avi" />
293   - </biometric-signature>
294   - <biometric-signature name="handwaving23-2">
295   - <presentation Label="handwaving" file-name="handwaving/person23_handwaving_d2_uncomp.avi" />
296   - </biometric-signature>
297   - <biometric-signature name="handwaving23-3">
298   - <presentation Label="handwaving" file-name="handwaving/person23_handwaving_d3_uncomp.avi" />
299   - </biometric-signature>
300   - <biometric-signature name="handwaving23-4">
301   - <presentation Label="handwaving" file-name="handwaving/person23_handwaving_d4_uncomp.avi" />
302   - </biometric-signature>
303   - <biometric-signature name="handwaving24-1">
304   - <presentation Label="handwaving" file-name="handwaving/person24_handwaving_d1_uncomp.avi" />
305   - </biometric-signature>
306   - <biometric-signature name="handwaving24-2">
307   - <presentation Label="handwaving" file-name="handwaving/person24_handwaving_d2_uncomp.avi" />
308   - </biometric-signature>
309   - <biometric-signature name="handwaving24-3">
310   - <presentation Label="handwaving" file-name="handwaving/person24_handwaving_d3_uncomp.avi" />
311   - </biometric-signature>
312   - <biometric-signature name="handwaving24-4">
313   - <presentation Label="handwaving" file-name="handwaving/person24_handwaving_d4_uncomp.avi" />
314   - </biometric-signature>
315   - <biometric-signature name="handwaving25-1">
316   - <presentation Label="handwaving" file-name="handwaving/person25_handwaving_d1_uncomp.avi" />
317   - </biometric-signature>
318   - <biometric-signature name="handwaving25-2">
319   - <presentation Label="handwaving" file-name="handwaving/person25_handwaving_d2_uncomp.avi" />
320   - </biometric-signature>
321   - <biometric-signature name="handwaving25-3">
322   - <presentation Label="handwaving" file-name="handwaving/person25_handwaving_d3_uncomp.avi" />
323   - </biometric-signature>
324   - <biometric-signature name="handwaving25-4">
325   - <presentation Label="handwaving" file-name="handwaving/person25_handwaving_d4_uncomp.avi" />
326   - </biometric-signature>
327   - <biometric-signature name="jogging17-1">
328 16 <presentation Label="jogging" file-name="jogging/person17_jogging_d1_uncomp.avi" />
329   - </biometric-signature>
330   - <biometric-signature name="jogging17-2">
331 17 <presentation Label="jogging" file-name="jogging/person17_jogging_d2_uncomp.avi" />
332   - </biometric-signature>
333   - <biometric-signature name="jogging17-3">
334 18 <presentation Label="jogging" file-name="jogging/person17_jogging_d3_uncomp.avi" />
335   - </biometric-signature>
336   - <biometric-signature name="jogging17-4">
337   - <presentation Label="jogging" file-name="jogging/person17_jogging_d4_uncomp.avi" />
338   - </biometric-signature>
339   - <biometric-signature name="jogging18-1">
340   - <presentation Label="jogging" file-name="jogging/person18_jogging_d1_uncomp.avi" />
341   - </biometric-signature>
342   - <biometric-signature name="jogging18-2">
343   - <presentation Label="jogging" file-name="jogging/person18_jogging_d2_uncomp.avi" />
344   - </biometric-signature>
345   - <biometric-signature name="jogging18-3">
346   - <presentation Label="jogging" file-name="jogging/person18_jogging_d3_uncomp.avi" />
347   - </biometric-signature>
348   - <biometric-signature name="jogging18-4">
349   - <presentation Label="jogging" file-name="jogging/person18_jogging_d4_uncomp.avi" />
350   - </biometric-signature>
351   - <biometric-signature name="jogging19-1">
352   - <presentation Label="jogging" file-name="jogging/person19_jogging_d1_uncomp.avi" />
353   - </biometric-signature>
354   - <biometric-signature name="jogging19-2">
355   - <presentation Label="jogging" file-name="jogging/person19_jogging_d2_uncomp.avi" />
356   - </biometric-signature>
357   - <biometric-signature name="jogging19-3">
358   - <presentation Label="jogging" file-name="jogging/person19_jogging_d3_uncomp.avi" />
359   - </biometric-signature>
360   - <biometric-signature name="jogging19-4">
361   - <presentation Label="jogging" file-name="jogging/person19_jogging_d4_uncomp.avi" />
362   - </biometric-signature>
363   - <biometric-signature name="jogging20-1">
364   - <presentation Label="jogging" file-name="jogging/person20_jogging_d1_uncomp.avi" />
365   - </biometric-signature>
366   - <biometric-signature name="jogging20-2">
367   - <presentation Label="jogging" file-name="jogging/person20_jogging_d2_uncomp.avi" />
368   - </biometric-signature>
369   - <biometric-signature name="jogging20-3">
370   - <presentation Label="jogging" file-name="jogging/person20_jogging_d3_uncomp.avi" />
371   - </biometric-signature>
372   - <biometric-signature name="jogging20-4">
373   - <presentation Label="jogging" file-name="jogging/person20_jogging_d4_uncomp.avi" />
374   - </biometric-signature>
375   - <biometric-signature name="jogging21-1">
376   - <presentation Label="jogging" file-name="jogging/person21_jogging_d1_uncomp.avi" />
377   - </biometric-signature>
378   - <biometric-signature name="jogging21-2">
379   - <presentation Label="jogging" file-name="jogging/person21_jogging_d2_uncomp.avi" />
380   - </biometric-signature>
381   - <biometric-signature name="jogging21-3">
382   - <presentation Label="jogging" file-name="jogging/person21_jogging_d3_uncomp.avi" />
383   - </biometric-signature>
384   - <biometric-signature name="jogging21-4">
385   - <presentation Label="jogging" file-name="jogging/person21_jogging_d4_uncomp.avi" />
386   - </biometric-signature>
387   - <biometric-signature name="jogging22-1">
388   - <presentation Label="jogging" file-name="jogging/person22_jogging_d1_uncomp.avi" />
389   - </biometric-signature>
390   - <biometric-signature name="jogging22-2">
391   - <presentation Label="jogging" file-name="jogging/person22_jogging_d2_uncomp.avi" />
392   - </biometric-signature>
393   - <biometric-signature name="jogging22-3">
394   - <presentation Label="jogging" file-name="jogging/person22_jogging_d3_uncomp.avi" />
395   - </biometric-signature>
396   - <biometric-signature name="jogging22-4">
397   - <presentation Label="jogging" file-name="jogging/person22_jogging_d4_uncomp.avi" />
398   - </biometric-signature>
399   - <biometric-signature name="jogging23-1">
400   - <presentation Label="jogging" file-name="jogging/person23_jogging_d1_uncomp.avi" />
401   - </biometric-signature>
402   - <biometric-signature name="jogging23-2">
403   - <presentation Label="jogging" file-name="jogging/person23_jogging_d2_uncomp.avi" />
404   - </biometric-signature>
405   - <biometric-signature name="jogging23-3">
406   - <presentation Label="jogging" file-name="jogging/person23_jogging_d3_uncomp.avi" />
407   - </biometric-signature>
408   - <biometric-signature name="jogging23-4">
409   - <presentation Label="jogging" file-name="jogging/person23_jogging_d4_uncomp.avi" />
410   - </biometric-signature>
411   - <biometric-signature name="jogging24-1">
412   - <presentation Label="jogging" file-name="jogging/person24_jogging_d1_uncomp.avi" />
413   - </biometric-signature>
414   - <biometric-signature name="jogging24-2">
415   - <presentation Label="jogging" file-name="jogging/person24_jogging_d2_uncomp.avi" />
416   - </biometric-signature>
417   - <biometric-signature name="jogging24-3">
418   - <presentation Label="jogging" file-name="jogging/person24_jogging_d3_uncomp.avi" />
419   - </biometric-signature>
420   - <biometric-signature name="jogging24-4">
421   - <presentation Label="jogging" file-name="jogging/person24_jogging_d4_uncomp.avi" />
422   - </biometric-signature>
423   - <biometric-signature name="jogging25-1">
424   - <presentation Label="jogging" file-name="jogging/person25_jogging_d1_uncomp.avi" />
425   - </biometric-signature>
426   - <biometric-signature name="jogging25-2">
427   - <presentation Label="jogging" file-name="jogging/person25_jogging_d2_uncomp.avi" />
428   - </biometric-signature>
429   - <biometric-signature name="jogging25-3">
430   - <presentation Label="jogging" file-name="jogging/person25_jogging_d3_uncomp.avi" />
431   - </biometric-signature>
432   - <biometric-signature name="jogging25-4">
433   - <presentation Label="jogging" file-name="jogging/person25_jogging_d4_uncomp.avi" />
434   - </biometric-signature>
435   - <biometric-signature name="running17-1">
  19 + <presentation Label="jogging" file-name="jogging/person17_jogging_d4_uncomp.avi" />
436 20 <presentation Label="running" file-name="running/person17_running_d1_uncomp.avi" />
437   - </biometric-signature>
438   - <biometric-signature name="running17-2">
439 21 <presentation Label="running" file-name="running/person17_running_d2_uncomp.avi" />
440   - </biometric-signature>
441   - <biometric-signature name="running17-3">
442 22 <presentation Label="running" file-name="running/person17_running_d3_uncomp.avi" />
443   - </biometric-signature>
444   - <biometric-signature name="running17-4">
445 23 <presentation Label="running" file-name="running/person17_running_d4_uncomp.avi" />
446   - </biometric-signature>
447   - <biometric-signature name="running18-1">
448   - <presentation Label="running" file-name="running/person18_running_d1_uncomp.avi" />
449   - </biometric-signature>
450   - <biometric-signature name="running18-2">
451   - <presentation Label="running" file-name="running/person18_running_d2_uncomp.avi" />
452   - </biometric-signature>
453   - <biometric-signature name="running18-3">
454   - <presentation Label="running" file-name="running/person18_running_d3_uncomp.avi" />
455   - </biometric-signature>
456   - <biometric-signature name="running18-4">
457   - <presentation Label="running" file-name="running/person18_running_d4_uncomp.avi" />
458   - </biometric-signature>
459   - <biometric-signature name="running19-1">
460   - <presentation Label="running" file-name="running/person19_running_d1_uncomp.avi" />
461   - </biometric-signature>
462   - <biometric-signature name="running19-2">
463   - <presentation Label="running" file-name="running/person19_running_d2_uncomp.avi" />
464   - </biometric-signature>
465   - <biometric-signature name="running19-3">
466   - <presentation Label="running" file-name="running/person19_running_d3_uncomp.avi" />
467   - </biometric-signature>
468   - <biometric-signature name="running19-4">
469   - <presentation Label="running" file-name="running/person19_running_d4_uncomp.avi" />
470   - </biometric-signature>
471   - <biometric-signature name="running20-1">
472   - <presentation Label="running" file-name="running/person20_running_d1_uncomp.avi" />
473   - </biometric-signature>
474   - <biometric-signature name="running20-2">
475   - <presentation Label="running" file-name="running/person20_running_d2_uncomp.avi" />
476   - </biometric-signature>
477   - <biometric-signature name="running20-3">
478   - <presentation Label="running" file-name="running/person20_running_d3_uncomp.avi" />
479   - </biometric-signature>
480   - <biometric-signature name="running20-4">
481   - <presentation Label="running" file-name="running/person20_running_d4_uncomp.avi" />
482   - </biometric-signature>
483   - <biometric-signature name="running21-1">
484   - <presentation Label="running" file-name="running/person21_running_d1_uncomp.avi" />
485   - </biometric-signature>
486   - <biometric-signature name="running21-2">
487   - <presentation Label="running" file-name="running/person21_running_d2_uncomp.avi" />
488   - </biometric-signature>
489   - <biometric-signature name="running21-3">
490   - <presentation Label="running" file-name="running/person21_running_d3_uncomp.avi" />
491   - </biometric-signature>
492   - <biometric-signature name="running21-4">
493   - <presentation Label="running" file-name="running/person21_running_d4_uncomp.avi" />
494   - </biometric-signature>
495   - <biometric-signature name="running22-1">
496   - <presentation Label="running" file-name="running/person22_running_d1_uncomp.avi" />
497   - </biometric-signature>
498   - <biometric-signature name="running22-2">
499   - <presentation Label="running" file-name="running/person22_running_d2_uncomp.avi" />
500   - </biometric-signature>
501   - <biometric-signature name="running22-3">
502   - <presentation Label="running" file-name="running/person22_running_d3_uncomp.avi" />
503   - </biometric-signature>
504   - <biometric-signature name="running22-4">
505   - <presentation Label="running" file-name="running/person22_running_d4_uncomp.avi" />
506   - </biometric-signature>
507   - <biometric-signature name="running23-1">
508   - <presentation Label="running" file-name="running/person23_running_d1_uncomp.avi" />
509   - </biometric-signature>
510   - <biometric-signature name="running23-2">
511   - <presentation Label="running" file-name="running/person23_running_d2_uncomp.avi" />
512   - </biometric-signature>
513   - <biometric-signature name="running23-3">
514   - <presentation Label="running" file-name="running/person23_running_d3_uncomp.avi" />
515   - </biometric-signature>
516   - <biometric-signature name="running23-4">
517   - <presentation Label="running" file-name="running/person23_running_d4_uncomp.avi" />
518   - </biometric-signature>
519   - <biometric-signature name="running24-1">
520   - <presentation Label="running" file-name="running/person24_running_d1_uncomp.avi" />
521   - </biometric-signature>
522   - <biometric-signature name="running24-2">
523   - <presentation Label="running" file-name="running/person24_running_d2_uncomp.avi" />
524   - </biometric-signature>
525   - <biometric-signature name="running24-3">
526   - <presentation Label="running" file-name="running/person24_running_d3_uncomp.avi" />
527   - </biometric-signature>
528   - <biometric-signature name="running24-4">
529   - <presentation Label="running" file-name="running/person24_running_d4_uncomp.avi" />
530   - </biometric-signature>
531   - <biometric-signature name="running25-1">
532   - <presentation Label="running" file-name="running/person25_running_d1_uncomp.avi" />
533   - </biometric-signature>
534   - <biometric-signature name="running25-2">
535   - <presentation Label="running" file-name="running/person25_running_d2_uncomp.avi" />
536   - </biometric-signature>
537   - <biometric-signature name="running25-3">
538   - <presentation Label="running" file-name="running/person25_running_d3_uncomp.avi" />
539   - </biometric-signature>
540   - <biometric-signature name="running25-4">
541   - <presentation Label="running" file-name="running/person25_running_d4_uncomp.avi" />
542   - </biometric-signature>
543   - <biometric-signature name="walking17-1">
544 24 <presentation Label="walking" file-name="walking/person17_walking_d1_uncomp.avi" />
545   - </biometric-signature>
546   - <biometric-signature name="walking17-2">
547 25 <presentation Label="walking" file-name="walking/person17_walking_d2_uncomp.avi" />
548   - </biometric-signature>
549   - <biometric-signature name="walking17-3">
550 26 <presentation Label="walking" file-name="walking/person17_walking_d3_uncomp.avi" />
551   - </biometric-signature>
552   - <biometric-signature name="walking17-4">
553 27 <presentation Label="walking" file-name="walking/person17_walking_d4_uncomp.avi" />
554 28 </biometric-signature>
555   - <biometric-signature name="walking18-1">
  29 + <biometric-signature name="person18">
  30 + <presentation Label="boxing" file-name="boxing/person18_boxing_d1_uncomp.avi" />
  31 + <presentation Label="boxing" file-name="boxing/person18_boxing_d2_uncomp.avi" />
  32 + <presentation Label="boxing" file-name="boxing/person18_boxing_d3_uncomp.avi" />
  33 + <presentation Label="boxing" file-name="boxing/person18_boxing_d4_uncomp.avi" />
  34 + <presentation Label="handclapping" file-name="handclapping/person18_handclapping_d1_uncomp.avi" />
  35 + <presentation Label="handclapping" file-name="handclapping/person18_handclapping_d2_uncomp.avi" />
  36 + <presentation Label="handclapping" file-name="handclapping/person18_handclapping_d3_uncomp.avi" />
  37 + <presentation Label="handclapping" file-name="handclapping/person18_handclapping_d4_uncomp.avi" />
  38 + <presentation Label="handwaving" file-name="handwaving/person18_handwaving_d1_uncomp.avi" />
  39 + <presentation Label="handwaving" file-name="handwaving/person18_handwaving_d2_uncomp.avi" />
  40 + <presentation Label="handwaving" file-name="handwaving/person18_handwaving_d3_uncomp.avi" />
  41 + <presentation Label="handwaving" file-name="handwaving/person18_handwaving_d4_uncomp.avi" />
  42 + <presentation Label="jogging" file-name="jogging/person18_jogging_d1_uncomp.avi" />
  43 + <presentation Label="jogging" file-name="jogging/person18_jogging_d2_uncomp.avi" />
  44 + <presentation Label="jogging" file-name="jogging/person18_jogging_d3_uncomp.avi" />
  45 + <presentation Label="jogging" file-name="jogging/person18_jogging_d4_uncomp.avi" />
  46 + <presentation Label="running" file-name="running/person18_running_d1_uncomp.avi" />
  47 + <presentation Label="running" file-name="running/person18_running_d2_uncomp.avi" />
  48 + <presentation Label="running" file-name="running/person18_running_d3_uncomp.avi" />
  49 + <presentation Label="running" file-name="running/person18_running_d4_uncomp.avi" />
556 50 <presentation Label="walking" file-name="walking/person18_walking_d1_uncomp.avi" />
557   - </biometric-signature>
558   - <biometric-signature name="walking18-2">
559 51 <presentation Label="walking" file-name="walking/person18_walking_d2_uncomp.avi" />
560   - </biometric-signature>
561   - <biometric-signature name="walking18-3">
562 52 <presentation Label="walking" file-name="walking/person18_walking_d3_uncomp.avi" />
563   - </biometric-signature>
564   - <biometric-signature name="walking18-4">
565 53 <presentation Label="walking" file-name="walking/person18_walking_d4_uncomp.avi" />
566 54 </biometric-signature>
567   - <biometric-signature name="walking19-1">
  55 + <biometric-signature name="person19">
  56 + <presentation Label="boxing" file-name="boxing/person19_boxing_d1_uncomp.avi" />
  57 + <presentation Label="boxing" file-name="boxing/person19_boxing_d2_uncomp.avi" />
  58 + <presentation Label="boxing" file-name="boxing/person19_boxing_d3_uncomp.avi" />
  59 + <presentation Label="boxing" file-name="boxing/person19_boxing_d4_uncomp.avi" />
  60 + <presentation Label="handclapping" file-name="handclapping/person19_handclapping_d1_uncomp.avi" />
  61 + <presentation Label="handclapping" file-name="handclapping/person19_handclapping_d2_uncomp.avi" />
  62 + <presentation Label="handclapping" file-name="handclapping/person19_handclapping_d3_uncomp.avi" />
  63 + <presentation Label="handclapping" file-name="handclapping/person19_handclapping_d4_uncomp.avi" />
  64 + <presentation Label="handwaving" file-name="handwaving/person19_handwaving_d1_uncomp.avi" />
  65 + <presentation Label="handwaving" file-name="handwaving/person19_handwaving_d2_uncomp.avi" />
  66 + <presentation Label="handwaving" file-name="handwaving/person19_handwaving_d3_uncomp.avi" />
  67 + <presentation Label="handwaving" file-name="handwaving/person19_handwaving_d4_uncomp.avi" />
  68 + <presentation Label="jogging" file-name="jogging/person19_jogging_d1_uncomp.avi" />
  69 + <presentation Label="jogging" file-name="jogging/person19_jogging_d2_uncomp.avi" />
  70 + <presentation Label="jogging" file-name="jogging/person19_jogging_d3_uncomp.avi" />
  71 + <presentation Label="jogging" file-name="jogging/person19_jogging_d4_uncomp.avi" />
  72 + <presentation Label="running" file-name="running/person19_running_d1_uncomp.avi" />
  73 + <presentation Label="running" file-name="running/person19_running_d2_uncomp.avi" />
  74 + <presentation Label="running" file-name="running/person19_running_d3_uncomp.avi" />
  75 + <presentation Label="running" file-name="running/person19_running_d4_uncomp.avi" />
568 76 <presentation Label="walking" file-name="walking/person19_walking_d1_uncomp.avi" />
569   - </biometric-signature>
570   - <biometric-signature name="walking19-2">
571 77 <presentation Label="walking" file-name="walking/person19_walking_d2_uncomp.avi" />
572   - </biometric-signature>
573   - <biometric-signature name="walking19-3">
574 78 <presentation Label="walking" file-name="walking/person19_walking_d3_uncomp.avi" />
575   - </biometric-signature>
576   - <biometric-signature name="walking19-4">
577 79 <presentation Label="walking" file-name="walking/person19_walking_d4_uncomp.avi" />
578 80 </biometric-signature>
579   - <biometric-signature name="walking20-1">
  81 + <biometric-signature name="person20">
  82 + <presentation Label="boxing" file-name="boxing/person20_boxing_d1_uncomp.avi" />
  83 + <presentation Label="boxing" file-name="boxing/person20_boxing_d2_uncomp.avi" />
  84 + <presentation Label="boxing" file-name="boxing/person20_boxing_d3_uncomp.avi" />
  85 + <presentation Label="boxing" file-name="boxing/person20_boxing_d4_uncomp.avi" />
  86 + <presentation Label="handclapping" file-name="handclapping/person20_handclapping_d1_uncomp.avi" />
  87 + <presentation Label="handclapping" file-name="handclapping/person20_handclapping_d2_uncomp.avi" />
  88 + <presentation Label="handclapping" file-name="handclapping/person20_handclapping_d3_uncomp.avi" />
  89 + <presentation Label="handclapping" file-name="handclapping/person20_handclapping_d4_uncomp.avi" />
  90 + <presentation Label="handwaving" file-name="handwaving/person20_handwaving_d1_uncomp.avi" />
  91 + <presentation Label="handwaving" file-name="handwaving/person20_handwaving_d2_uncomp.avi" />
  92 + <presentation Label="handwaving" file-name="handwaving/person20_handwaving_d3_uncomp.avi" />
  93 + <presentation Label="handwaving" file-name="handwaving/person20_handwaving_d4_uncomp.avi" />
  94 + <presentation Label="jogging" file-name="jogging/person20_jogging_d1_uncomp.avi" />
  95 + <presentation Label="jogging" file-name="jogging/person20_jogging_d2_uncomp.avi" />
  96 + <presentation Label="jogging" file-name="jogging/person20_jogging_d3_uncomp.avi" />
  97 + <presentation Label="jogging" file-name="jogging/person20_jogging_d4_uncomp.avi" />
  98 + <presentation Label="running" file-name="running/person20_running_d1_uncomp.avi" />
  99 + <presentation Label="running" file-name="running/person20_running_d2_uncomp.avi" />
  100 + <presentation Label="running" file-name="running/person20_running_d3_uncomp.avi" />
  101 + <presentation Label="running" file-name="running/person20_running_d4_uncomp.avi" />
580 102 <presentation Label="walking" file-name="walking/person20_walking_d1_uncomp.avi" />
581   - </biometric-signature>
582   - <biometric-signature name="walking20-2">
583 103 <presentation Label="walking" file-name="walking/person20_walking_d2_uncomp.avi" />
584   - </biometric-signature>
585   - <biometric-signature name="walking20-3">
586 104 <presentation Label="walking" file-name="walking/person20_walking_d3_uncomp.avi" />
587   - </biometric-signature>
588   - <biometric-signature name="walking20-4">
589 105 <presentation Label="walking" file-name="walking/person20_walking_d4_uncomp.avi" />
590 106 </biometric-signature>
591   - <biometric-signature name="walking21-1">
  107 + <biometric-signature name="person21">
  108 + <presentation Label="boxing" file-name="boxing/person21_boxing_d1_uncomp.avi" />
  109 + <presentation Label="boxing" file-name="boxing/person21_boxing_d2_uncomp.avi" />
  110 + <presentation Label="boxing" file-name="boxing/person21_boxing_d3_uncomp.avi" />
  111 + <presentation Label="boxing" file-name="boxing/person21_boxing_d4_uncomp.avi" />
  112 + <presentation Label="handclapping" file-name="handclapping/person21_handclapping_d1_uncomp.avi" />
  113 + <presentation Label="handclapping" file-name="handclapping/person21_handclapping_d2_uncomp.avi" />
  114 + <presentation Label="handclapping" file-name="handclapping/person21_handclapping_d3_uncomp.avi" />
  115 + <presentation Label="handclapping" file-name="handclapping/person21_handclapping_d4_uncomp.avi" />
  116 + <presentation Label="handwaving" file-name="handwaving/person21_handwaving_d1_uncomp.avi" />
  117 + <presentation Label="handwaving" file-name="handwaving/person21_handwaving_d2_uncomp.avi" />
  118 + <presentation Label="handwaving" file-name="handwaving/person21_handwaving_d3_uncomp.avi" />
  119 + <presentation Label="handwaving" file-name="handwaving/person21_handwaving_d4_uncomp.avi" />
  120 + <presentation Label="jogging" file-name="jogging/person21_jogging_d1_uncomp.avi" />
  121 + <presentation Label="jogging" file-name="jogging/person21_jogging_d2_uncomp.avi" />
  122 + <presentation Label="jogging" file-name="jogging/person21_jogging_d3_uncomp.avi" />
  123 + <presentation Label="jogging" file-name="jogging/person21_jogging_d4_uncomp.avi" />
  124 + <presentation Label="running" file-name="running/person21_running_d1_uncomp.avi" />
  125 + <presentation Label="running" file-name="running/person21_running_d2_uncomp.avi" />
  126 + <presentation Label="running" file-name="running/person21_running_d3_uncomp.avi" />
  127 + <presentation Label="running" file-name="running/person21_running_d4_uncomp.avi" />
592 128 <presentation Label="walking" file-name="walking/person21_walking_d1_uncomp.avi" />
593   - </biometric-signature>
594   - <biometric-signature name="walking21-2">
595 129 <presentation Label="walking" file-name="walking/person21_walking_d2_uncomp.avi" />
596   - </biometric-signature>
597   - <biometric-signature name="walking21-3">
598 130 <presentation Label="walking" file-name="walking/person21_walking_d3_uncomp.avi" />
599   - </biometric-signature>
600   - <biometric-signature name="walking21-4">
601 131 <presentation Label="walking" file-name="walking/person21_walking_d4_uncomp.avi" />
602 132 </biometric-signature>
603   - <biometric-signature name="walking22-1">
  133 + <biometric-signature name="person22">
  134 + <presentation Label="boxing" file-name="boxing/person22_boxing_d1_uncomp.avi" />
  135 + <presentation Label="boxing" file-name="boxing/person22_boxing_d2_uncomp.avi" />
  136 + <presentation Label="boxing" file-name="boxing/person22_boxing_d3_uncomp.avi" />
  137 + <presentation Label="boxing" file-name="boxing/person22_boxing_d4_uncomp.avi" />
  138 + <presentation Label="handclapping" file-name="handclapping/person22_handclapping_d1_uncomp.avi" />
  139 + <presentation Label="handclapping" file-name="handclapping/person22_handclapping_d2_uncomp.avi" />
  140 + <presentation Label="handclapping" file-name="handclapping/person22_handclapping_d3_uncomp.avi" />
  141 + <presentation Label="handclapping" file-name="handclapping/person22_handclapping_d4_uncomp.avi" />
  142 + <presentation Label="handwaving" file-name="handwaving/person22_handwaving_d1_uncomp.avi" />
  143 + <presentation Label="handwaving" file-name="handwaving/person22_handwaving_d2_uncomp.avi" />
  144 + <presentation Label="handwaving" file-name="handwaving/person22_handwaving_d3_uncomp.avi" />
  145 + <presentation Label="handwaving" file-name="handwaving/person22_handwaving_d4_uncomp.avi" />
  146 + <presentation Label="jogging" file-name="jogging/person22_jogging_d1_uncomp.avi" />
  147 + <presentation Label="jogging" file-name="jogging/person22_jogging_d2_uncomp.avi" />
  148 + <presentation Label="jogging" file-name="jogging/person22_jogging_d3_uncomp.avi" />
  149 + <presentation Label="jogging" file-name="jogging/person22_jogging_d4_uncomp.avi" />
  150 + <presentation Label="running" file-name="running/person22_running_d1_uncomp.avi" />
  151 + <presentation Label="running" file-name="running/person22_running_d2_uncomp.avi" />
  152 + <presentation Label="running" file-name="running/person22_running_d3_uncomp.avi" />
  153 + <presentation Label="running" file-name="running/person22_running_d4_uncomp.avi" />
604 154 <presentation Label="walking" file-name="walking/person22_walking_d1_uncomp.avi" />
605   - </biometric-signature>
606   - <biometric-signature name="walking22-2">
607 155 <presentation Label="walking" file-name="walking/person22_walking_d2_uncomp.avi" />
608   - </biometric-signature>
609   - <biometric-signature name="walking22-3">
610 156 <presentation Label="walking" file-name="walking/person22_walking_d3_uncomp.avi" />
611   - </biometric-signature>
612   - <biometric-signature name="walking22-4">
613 157 <presentation Label="walking" file-name="walking/person22_walking_d4_uncomp.avi" />
614 158 </biometric-signature>
615   - <biometric-signature name="walking23-1">
  159 + <biometric-signature name="person23">
  160 + <presentation Label="boxing" file-name="boxing/person23_boxing_d1_uncomp.avi" />
  161 + <presentation Label="boxing" file-name="boxing/person23_boxing_d2_uncomp.avi" />
  162 + <presentation Label="boxing" file-name="boxing/person23_boxing_d3_uncomp.avi" />
  163 + <presentation Label="boxing" file-name="boxing/person23_boxing_d4_uncomp.avi" />
  164 + <presentation Label="handclapping" file-name="handclapping/person23_handclapping_d1_uncomp.avi" />
  165 + <presentation Label="handclapping" file-name="handclapping/person23_handclapping_d2_uncomp.avi" />
  166 + <presentation Label="handclapping" file-name="handclapping/person23_handclapping_d3_uncomp.avi" />
  167 + <presentation Label="handclapping" file-name="handclapping/person23_handclapping_d4_uncomp.avi" />
  168 + <presentation Label="handwaving" file-name="handwaving/person23_handwaving_d1_uncomp.avi" />
  169 + <presentation Label="handwaving" file-name="handwaving/person23_handwaving_d2_uncomp.avi" />
  170 + <presentation Label="handwaving" file-name="handwaving/person23_handwaving_d3_uncomp.avi" />
  171 + <presentation Label="handwaving" file-name="handwaving/person23_handwaving_d4_uncomp.avi" />
  172 + <presentation Label="jogging" file-name="jogging/person23_jogging_d1_uncomp.avi" />
  173 + <presentation Label="jogging" file-name="jogging/person23_jogging_d2_uncomp.avi" />
  174 + <presentation Label="jogging" file-name="jogging/person23_jogging_d3_uncomp.avi" />
  175 + <presentation Label="jogging" file-name="jogging/person23_jogging_d4_uncomp.avi" />
  176 + <presentation Label="running" file-name="running/person23_running_d1_uncomp.avi" />
  177 + <presentation Label="running" file-name="running/person23_running_d2_uncomp.avi" />
  178 + <presentation Label="running" file-name="running/person23_running_d3_uncomp.avi" />
  179 + <presentation Label="running" file-name="running/person23_running_d4_uncomp.avi" />
616 180 <presentation Label="walking" file-name="walking/person23_walking_d1_uncomp.avi" />
617   - </biometric-signature>
618   - <biometric-signature name="walking23-2">
619 181 <presentation Label="walking" file-name="walking/person23_walking_d2_uncomp.avi" />
620   - </biometric-signature>
621   - <biometric-signature name="walking23-3">
622 182 <presentation Label="walking" file-name="walking/person23_walking_d3_uncomp.avi" />
623   - </biometric-signature>
624   - <biometric-signature name="walking23-4">
625 183 <presentation Label="walking" file-name="walking/person23_walking_d4_uncomp.avi" />
626 184 </biometric-signature>
627   - <biometric-signature name="walking24-1">
  185 + <biometric-signature name="person24">
  186 + <presentation Label="boxing" file-name="boxing/person24_boxing_d1_uncomp.avi" />
  187 + <presentation Label="boxing" file-name="boxing/person24_boxing_d2_uncomp.avi" />
  188 + <presentation Label="boxing" file-name="boxing/person24_boxing_d3_uncomp.avi" />
  189 + <presentation Label="boxing" file-name="boxing/person24_boxing_d4_uncomp.avi" />
  190 + <presentation Label="handclapping" file-name="handclapping/person24_handclapping_d1_uncomp.avi" />
  191 + <presentation Label="handclapping" file-name="handclapping/person24_handclapping_d2_uncomp.avi" />
  192 + <presentation Label="handclapping" file-name="handclapping/person24_handclapping_d3_uncomp.avi" />
  193 + <presentation Label="handclapping" file-name="handclapping/person24_handclapping_d4_uncomp.avi" />
  194 + <presentation Label="handwaving" file-name="handwaving/person24_handwaving_d1_uncomp.avi" />
  195 + <presentation Label="handwaving" file-name="handwaving/person24_handwaving_d2_uncomp.avi" />
  196 + <presentation Label="handwaving" file-name="handwaving/person24_handwaving_d3_uncomp.avi" />
  197 + <presentation Label="handwaving" file-name="handwaving/person24_handwaving_d4_uncomp.avi" />
  198 + <presentation Label="jogging" file-name="jogging/person24_jogging_d1_uncomp.avi" />
  199 + <presentation Label="jogging" file-name="jogging/person24_jogging_d2_uncomp.avi" />
  200 + <presentation Label="jogging" file-name="jogging/person24_jogging_d3_uncomp.avi" />
  201 + <presentation Label="jogging" file-name="jogging/person24_jogging_d4_uncomp.avi" />
  202 + <presentation Label="running" file-name="running/person24_running_d1_uncomp.avi" />
  203 + <presentation Label="running" file-name="running/person24_running_d2_uncomp.avi" />
  204 + <presentation Label="running" file-name="running/person24_running_d3_uncomp.avi" />
  205 + <presentation Label="running" file-name="running/person24_running_d4_uncomp.avi" />
628 206 <presentation Label="walking" file-name="walking/person24_walking_d1_uncomp.avi" />
629   - </biometric-signature>
630   - <biometric-signature name="walking24-2">
631 207 <presentation Label="walking" file-name="walking/person24_walking_d2_uncomp.avi" />
632   - </biometric-signature>
633   - <biometric-signature name="walking24-3">
634 208 <presentation Label="walking" file-name="walking/person24_walking_d3_uncomp.avi" />
635   - </biometric-signature>
636   - <biometric-signature name="walking24-4">
637 209 <presentation Label="walking" file-name="walking/person24_walking_d4_uncomp.avi" />
638 210 </biometric-signature>
639   - <biometric-signature name="walking25-1">
  211 + <biometric-signature name="person25">
  212 + <presentation Label="boxing" file-name="boxing/person25_boxing_d1_uncomp.avi" />
  213 + <presentation Label="boxing" file-name="boxing/person25_boxing_d2_uncomp.avi" />
  214 + <presentation Label="boxing" file-name="boxing/person25_boxing_d3_uncomp.avi" />
  215 + <presentation Label="boxing" file-name="boxing/person25_boxing_d4_uncomp.avi" />
  216 + <presentation Label="handclapping" file-name="handclapping/person25_handclapping_d1_uncomp.avi" />
  217 + <presentation Label="handclapping" file-name="handclapping/person25_handclapping_d2_uncomp.avi" />
  218 + <presentation Label="handclapping" file-name="handclapping/person25_handclapping_d3_uncomp.avi" />
  219 + <presentation Label="handclapping" file-name="handclapping/person25_handclapping_d4_uncomp.avi" />
  220 + <presentation Label="handwaving" file-name="handwaving/person25_handwaving_d1_uncomp.avi" />
  221 + <presentation Label="handwaving" file-name="handwaving/person25_handwaving_d2_uncomp.avi" />
  222 + <presentation Label="handwaving" file-name="handwaving/person25_handwaving_d3_uncomp.avi" />
  223 + <presentation Label="handwaving" file-name="handwaving/person25_handwaving_d4_uncomp.avi" />
  224 + <presentation Label="jogging" file-name="jogging/person25_jogging_d1_uncomp.avi" />
  225 + <presentation Label="jogging" file-name="jogging/person25_jogging_d2_uncomp.avi" />
  226 + <presentation Label="jogging" file-name="jogging/person25_jogging_d3_uncomp.avi" />
  227 + <presentation Label="jogging" file-name="jogging/person25_jogging_d4_uncomp.avi" />
  228 + <presentation Label="running" file-name="running/person25_running_d1_uncomp.avi" />
  229 + <presentation Label="running" file-name="running/person25_running_d2_uncomp.avi" />
  230 + <presentation Label="running" file-name="running/person25_running_d3_uncomp.avi" />
  231 + <presentation Label="running" file-name="running/person25_running_d4_uncomp.avi" />
640 232 <presentation Label="walking" file-name="walking/person25_walking_d1_uncomp.avi" />
641   - </biometric-signature>
642   - <biometric-signature name="walking25-2">
643 233 <presentation Label="walking" file-name="walking/person25_walking_d2_uncomp.avi" />
644   - </biometric-signature>
645   - <biometric-signature name="walking25-3">
646 234 <presentation Label="walking" file-name="walking/person25_walking_d3_uncomp.avi" />
647   - </biometric-signature>
648   - <biometric-signature name="walking25-4">
649 235 <presentation Label="walking" file-name="walking/person25_walking_d4_uncomp.avi" />
650 236 </biometric-signature>
651 237 </biometric-signature-set>
... ...
data/KTH/train_16ppl.xml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <biometric-signature-set>
3   - <biometric-signature name="boxing1-1">
  3 + <biometric-signature name="person01">
4 4 <presentation Label="boxing" file-name="boxing/person01_boxing_d1_uncomp.avi" />
5   - </biometric-signature>
6   - <biometric-signature name="boxing1-2">
7 5 <presentation Label="boxing" file-name="boxing/person01_boxing_d2_uncomp.avi" />
8   - </biometric-signature>
9   - <biometric-signature name="boxing1-3">
10 6 <presentation Label="boxing" file-name="boxing/person01_boxing_d3_uncomp.avi" />
11   - </biometric-signature>
12   - <biometric-signature name="boxing2-1">
13   - <presentation Label="boxing" file-name="boxing/person02_boxing_d1_uncomp.avi" />
14   - </biometric-signature>
15   - <biometric-signature name="boxing2-2">
16   - <presentation Label="boxing" file-name="boxing/person02_boxing_d2_uncomp.avi" />
17   - </biometric-signature>
18   - <biometric-signature name="boxing2-3">
19   - <presentation Label="boxing" file-name="boxing/person02_boxing_d3_uncomp.avi" />
20   - </biometric-signature>
21   - <biometric-signature name="boxing2-4">
22   - <presentation Label="boxing" file-name="boxing/person02_boxing_d4_uncomp.avi" />
23   - </biometric-signature>
24   - <biometric-signature name="boxing3-1">
25   - <presentation Label="boxing" file-name="boxing/person03_boxing_d1_uncomp.avi" />
26   - </biometric-signature>
27   - <biometric-signature name="boxing3-2">
28   - <presentation Label="boxing" file-name="boxing/person03_boxing_d2_uncomp.avi" />
29   - </biometric-signature>
30   - <biometric-signature name="boxing3-3">
31   - <presentation Label="boxing" file-name="boxing/person03_boxing_d3_uncomp.avi" />
32   - </biometric-signature>
33   - <biometric-signature name="boxing3-4">
34   - <presentation Label="boxing" file-name="boxing/person03_boxing_d4_uncomp.avi" />
35   - </biometric-signature>
36   - <biometric-signature name="boxing4-1">
37   - <presentation Label="boxing" file-name="boxing/person04_boxing_d1_uncomp.avi" />
38   - </biometric-signature>
39   - <biometric-signature name="boxing4-2">
40   - <presentation Label="boxing" file-name="boxing/person04_boxing_d2_uncomp.avi" />
41   - </biometric-signature>
42   - <biometric-signature name="boxing4-3">
43   - <presentation Label="boxing" file-name="boxing/person04_boxing_d3_uncomp.avi" />
44   - </biometric-signature>
45   - <biometric-signature name="boxing4-4">
46   - <presentation Label="boxing" file-name="boxing/person04_boxing_d4_uncomp.avi" />
47   - </biometric-signature>
48   - <biometric-signature name="boxing5-1">
49   - <presentation Label="boxing" file-name="boxing/person05_boxing_d1_uncomp.avi" />
50   - </biometric-signature>
51   - <biometric-signature name="boxing5-2">
52   - <presentation Label="boxing" file-name="boxing/person05_boxing_d2_uncomp.avi" />
53   - </biometric-signature>
54   - <biometric-signature name="boxing5-3">
55   - <presentation Label="boxing" file-name="boxing/person05_boxing_d3_uncomp.avi" />
56   - </biometric-signature>
57   - <biometric-signature name="boxing5-4">
58   - <presentation Label="boxing" file-name="boxing/person05_boxing_d4_uncomp.avi" />
59   - </biometric-signature>
60   - <biometric-signature name="boxing6-1">
61   - <presentation Label="boxing" file-name="boxing/person06_boxing_d1_uncomp.avi" />
62   - </biometric-signature>
63   - <biometric-signature name="boxing6-2">
64   - <presentation Label="boxing" file-name="boxing/person06_boxing_d2_uncomp.avi" />
65   - </biometric-signature>
66   - <biometric-signature name="boxing6-3">
67   - <presentation Label="boxing" file-name="boxing/person06_boxing_d3_uncomp.avi" />
68   - </biometric-signature>
69   - <biometric-signature name="boxing6-4">
70   - <presentation Label="boxing" file-name="boxing/person06_boxing_d4_uncomp.avi" />
71   - </biometric-signature>
72   - <biometric-signature name="boxing7-1">
73   - <presentation Label="boxing" file-name="boxing/person07_boxing_d1_uncomp.avi" />
74   - </biometric-signature>
75   - <biometric-signature name="boxing7-2">
76   - <presentation Label="boxing" file-name="boxing/person07_boxing_d2_uncomp.avi" />
77   - </biometric-signature>
78   - <biometric-signature name="boxing7-3">
79   - <presentation Label="boxing" file-name="boxing/person07_boxing_d3_uncomp.avi" />
80   - </biometric-signature>
81   - <biometric-signature name="boxing7-4">
82   - <presentation Label="boxing" file-name="boxing/person07_boxing_d4_uncomp.avi" />
83   - </biometric-signature>
84   - <biometric-signature name="boxing8-1">
85   - <presentation Label="boxing" file-name="boxing/person08_boxing_d1_uncomp.avi" />
86   - </biometric-signature>
87   - <biometric-signature name="boxing8-2">
88   - <presentation Label="boxing" file-name="boxing/person08_boxing_d2_uncomp.avi" />
89   - </biometric-signature>
90   - <biometric-signature name="boxing8-3">
91   - <presentation Label="boxing" file-name="boxing/person08_boxing_d3_uncomp.avi" />
92   - </biometric-signature>
93   - <biometric-signature name="boxing8-4">
94   - <presentation Label="boxing" file-name="boxing/person08_boxing_d4_uncomp.avi" />
95   - </biometric-signature>
96   - <biometric-signature name="boxing9-1">
97   - <presentation Label="boxing" file-name="boxing/person09_boxing_d1_uncomp.avi" />
98   - </biometric-signature>
99   - <biometric-signature name="boxing9-2">
100   - <presentation Label="boxing" file-name="boxing/person09_boxing_d2_uncomp.avi" />
101   - </biometric-signature>
102   - <biometric-signature name="boxing9-3">
103   - <presentation Label="boxing" file-name="boxing/person09_boxing_d3_uncomp.avi" />
104   - </biometric-signature>
105   - <biometric-signature name="boxing9-4">
106   - <presentation Label="boxing" file-name="boxing/person09_boxing_d4_uncomp.avi" />
107   - </biometric-signature>
108   - <biometric-signature name="boxing10-1">
109   - <presentation Label="boxing" file-name="boxing/person10_boxing_d1_uncomp.avi" />
110   - </biometric-signature>
111   - <biometric-signature name="boxing10-2">
112   - <presentation Label="boxing" file-name="boxing/person10_boxing_d2_uncomp.avi" />
113   - </biometric-signature>
114   - <biometric-signature name="boxing10-3">
115   - <presentation Label="boxing" file-name="boxing/person10_boxing_d3_uncomp.avi" />
116   - </biometric-signature>
117   - <biometric-signature name="boxing10-4">
118   - <presentation Label="boxing" file-name="boxing/person10_boxing_d4_uncomp.avi" />
119   - </biometric-signature>
120   - <biometric-signature name="boxing11-1">
121   - <presentation Label="boxing" file-name="boxing/person11_boxing_d1_uncomp.avi" />
122   - </biometric-signature>
123   - <biometric-signature name="boxing11-2">
124   - <presentation Label="boxing" file-name="boxing/person11_boxing_d2_uncomp.avi" />
125   - </biometric-signature>
126   - <biometric-signature name="boxing11-3">
127   - <presentation Label="boxing" file-name="boxing/person11_boxing_d3_uncomp.avi" />
128   - </biometric-signature>
129   - <biometric-signature name="boxing11-4">
130   - <presentation Label="boxing" file-name="boxing/person11_boxing_d4_uncomp.avi" />
131   - </biometric-signature>
132   - <biometric-signature name="boxing12-1">
133   - <presentation Label="boxing" file-name="boxing/person12_boxing_d1_uncomp.avi" />
134   - </biometric-signature>
135   - <biometric-signature name="boxing12-2">
136   - <presentation Label="boxing" file-name="boxing/person12_boxing_d2_uncomp.avi" />
137   - </biometric-signature>
138   - <biometric-signature name="boxing12-3">
139   - <presentation Label="boxing" file-name="boxing/person12_boxing_d3_uncomp.avi" />
140   - </biometric-signature>
141   - <biometric-signature name="boxing12-4">
142   - <presentation Label="boxing" file-name="boxing/person12_boxing_d4_uncomp.avi" />
143   - </biometric-signature>
144   - <biometric-signature name="boxing13-1">
145   - <presentation Label="boxing" file-name="boxing/person13_boxing_d1_uncomp.avi" />
146   - </biometric-signature>
147   - <biometric-signature name="boxing13-2">
148   - <presentation Label="boxing" file-name="boxing/person13_boxing_d2_uncomp.avi" />
149   - </biometric-signature>
150   - <biometric-signature name="boxing13-3">
151   - <presentation Label="boxing" file-name="boxing/person13_boxing_d3_uncomp.avi" />
152   - </biometric-signature>
153   - <biometric-signature name="boxing13-4">
154   - <presentation Label="boxing" file-name="boxing/person13_boxing_d4_uncomp.avi" />
155   - </biometric-signature>
156   - <biometric-signature name="boxing14-1">
157   - <presentation Label="boxing" file-name="boxing/person14_boxing_d1_uncomp.avi" />
158   - </biometric-signature>
159   - <biometric-signature name="boxing14-2">
160   - <presentation Label="boxing" file-name="boxing/person14_boxing_d2_uncomp.avi" />
161   - </biometric-signature>
162   - <biometric-signature name="boxing14-3">
163   - <presentation Label="boxing" file-name="boxing/person14_boxing_d3_uncomp.avi" />
164   - </biometric-signature>
165   - <biometric-signature name="boxing14-4">
166   - <presentation Label="boxing" file-name="boxing/person14_boxing_d4_uncomp.avi" />
167   - </biometric-signature>
168   - <biometric-signature name="boxing15-1">
169   - <presentation Label="boxing" file-name="boxing/person15_boxing_d1_uncomp.avi" />
170   - </biometric-signature>
171   - <biometric-signature name="boxing15-2">
172   - <presentation Label="boxing" file-name="boxing/person15_boxing_d2_uncomp.avi" />
173   - </biometric-signature>
174   - <biometric-signature name="boxing15-3">
175   - <presentation Label="boxing" file-name="boxing/person15_boxing_d3_uncomp.avi" />
176   - </biometric-signature>
177   - <biometric-signature name="boxing15-4">
178   - <presentation Label="boxing" file-name="boxing/person15_boxing_d4_uncomp.avi" />
179   - </biometric-signature>
180   - <biometric-signature name="boxing16-1">
181   - <presentation Label="boxing" file-name="boxing/person16_boxing_d1_uncomp.avi" />
182   - </biometric-signature>
183   - <biometric-signature name="boxing16-2">
184   - <presentation Label="boxing" file-name="boxing/person16_boxing_d2_uncomp.avi" />
185   - </biometric-signature>
186   - <biometric-signature name="boxing16-3">
187   - <presentation Label="boxing" file-name="boxing/person16_boxing_d3_uncomp.avi" />
188   - </biometric-signature>
189   - <biometric-signature name="boxing16-4">
190   - <presentation Label="boxing" file-name="boxing/person16_boxing_d4_uncomp.avi" />
191   - </biometric-signature>
192   - <biometric-signature name="handclapping1-1">
193 7 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d1_uncomp.avi" />
194   - </biometric-signature>
195   - <biometric-signature name="handclapping1-2">
196 8 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d2_uncomp.avi" />
197   - </biometric-signature>
198   - <biometric-signature name="handclapping1-3">
199 9 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d3_uncomp.avi" />
200   - </biometric-signature>
201   - <biometric-signature name="handclapping1-4">
202 10 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d4_uncomp.avi" />
  11 + <presentation Label="handwaving" file-name="handwaving/person01_handwaving_d1_uncomp.avi" />
  12 + <presentation Label="handwaving" file-name="handwaving/person01_handwaving_d2_uncomp.avi" />
  13 + <presentation Label="handwaving" file-name="handwaving/person01_handwaving_d3_uncomp.avi" />
  14 + <presentation Label="handwaving" file-name="handwaving/person01_handwaving_d4_uncomp.avi" />
  15 + <presentation Label="jogging" file-name="jogging/person01_jogging_d1_uncomp.avi" />
  16 + <presentation Label="jogging" file-name="jogging/person01_jogging_d2_uncomp.avi" />
  17 + <presentation Label="jogging" file-name="jogging/person01_jogging_d3_uncomp.avi" />
  18 + <presentation Label="jogging" file-name="jogging/person01_jogging_d4_uncomp.avi" />
  19 + <presentation Label="running" file-name="running/person01_running_d1_uncomp.avi" />
  20 + <presentation Label="running" file-name="running/person01_running_d2_uncomp.avi" />
  21 + <presentation Label="running" file-name="running/person01_running_d3_uncomp.avi" />
  22 + <presentation Label="running" file-name="running/person01_running_d4_uncomp.avi" />
  23 + <presentation Label="walking" file-name="walking/person01_walking_d1_uncomp.avi" />
  24 + <presentation Label="walking" file-name="walking/person01_walking_d2_uncomp.avi" />
  25 + <presentation Label="walking" file-name="walking/person01_walking_d3_uncomp.avi" />
  26 + <presentation Label="walking" file-name="walking/person01_walking_d4_uncomp.avi" />
203 27 </biometric-signature>
204   - <biometric-signature name="handclapping2-1">
  28 + <biometric-signature name="person02">
  29 + <presentation Label="boxing" file-name="boxing/person02_boxing_d1_uncomp.avi" />
  30 + <presentation Label="boxing" file-name="boxing/person02_boxing_d2_uncomp.avi" />
  31 + <presentation Label="boxing" file-name="boxing/person02_boxing_d3_uncomp.avi" />
  32 + <presentation Label="boxing" file-name="boxing/person02_boxing_d4_uncomp.avi" />
205 33 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d1_uncomp.avi" />
206   - </biometric-signature>
207   - <biometric-signature name="handclapping2-2">
208 34 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d2_uncomp.avi" />
209   - </biometric-signature>
210   - <biometric-signature name="handclapping2-3">
211 35 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d3_uncomp.avi" />
212   - </biometric-signature>
213   - <biometric-signature name="handclapping2-4">
214 36 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d4_uncomp.avi" />
  37 + <presentation Label="handwaving" file-name="handwaving/person02_handwaving_d1_uncomp.avi" />
  38 + <presentation Label="handwaving" file-name="handwaving/person02_handwaving_d2_uncomp.avi" />
  39 + <presentation Label="handwaving" file-name="handwaving/person02_handwaving_d3_uncomp.avi" />
  40 + <presentation Label="handwaving" file-name="handwaving/person02_handwaving_d4_uncomp.avi" />
  41 + <presentation Label="jogging" file-name="jogging/person02_jogging_d1_uncomp.avi" />
  42 + <presentation Label="jogging" file-name="jogging/person02_jogging_d2_uncomp.avi" />
  43 + <presentation Label="jogging" file-name="jogging/person02_jogging_d3_uncomp.avi" />
  44 + <presentation Label="jogging" file-name="jogging/person02_jogging_d4_uncomp.avi" />
  45 + <presentation Label="running" file-name="running/person02_running_d1_uncomp.avi" />
  46 + <presentation Label="running" file-name="running/person02_running_d2_uncomp.avi" />
  47 + <presentation Label="running" file-name="running/person02_running_d3_uncomp.avi" />
  48 + <presentation Label="running" file-name="running/person02_running_d4_uncomp.avi" />
  49 + <presentation Label="walking" file-name="walking/person02_walking_d1_uncomp.avi" />
  50 + <presentation Label="walking" file-name="walking/person02_walking_d2_uncomp.avi" />
  51 + <presentation Label="walking" file-name="walking/person02_walking_d3_uncomp.avi" />
  52 + <presentation Label="walking" file-name="walking/person02_walking_d4_uncomp.avi" />
215 53 </biometric-signature>
216   - <biometric-signature name="handclapping3-1">
  54 + <biometric-signature name="person03">
  55 + <presentation Label="boxing" file-name="boxing/person03_boxing_d1_uncomp.avi" />
  56 + <presentation Label="boxing" file-name="boxing/person03_boxing_d2_uncomp.avi" />
  57 + <presentation Label="boxing" file-name="boxing/person03_boxing_d3_uncomp.avi" />
  58 + <presentation Label="boxing" file-name="boxing/person03_boxing_d4_uncomp.avi" />
217 59 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d1_uncomp.avi" />
218   - </biometric-signature>
219   - <biometric-signature name="handclapping3-2">
220 60 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d2_uncomp.avi" />
221   - </biometric-signature>
222   - <biometric-signature name="handclapping3-3">
223 61 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d3_uncomp.avi" />
224   - </biometric-signature>
225   - <biometric-signature name="handclapping3-4">
226 62 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d4_uncomp.avi" />
  63 + <presentation Label="handwaving" file-name="handwaving/person03_handwaving_d1_uncomp.avi" />
  64 + <presentation Label="handwaving" file-name="handwaving/person03_handwaving_d2_uncomp.avi" />
  65 + <presentation Label="handwaving" file-name="handwaving/person03_handwaving_d3_uncomp.avi" />
  66 + <presentation Label="handwaving" file-name="handwaving/person03_handwaving_d4_uncomp.avi" />
  67 + <presentation Label="jogging" file-name="jogging/person03_jogging_d1_uncomp.avi" />
  68 + <presentation Label="jogging" file-name="jogging/person03_jogging_d2_uncomp.avi" />
  69 + <presentation Label="jogging" file-name="jogging/person03_jogging_d3_uncomp.avi" />
  70 + <presentation Label="jogging" file-name="jogging/person03_jogging_d4_uncomp.avi" />
  71 + <presentation Label="running" file-name="running/person03_running_d1_uncomp.avi" />
  72 + <presentation Label="running" file-name="running/person03_running_d2_uncomp.avi" />
  73 + <presentation Label="running" file-name="running/person03_running_d3_uncomp.avi" />
  74 + <presentation Label="running" file-name="running/person03_running_d4_uncomp.avi" />
  75 + <presentation Label="walking" file-name="walking/person03_walking_d1_uncomp.avi" />
  76 + <presentation Label="walking" file-name="walking/person03_walking_d2_uncomp.avi" />
  77 + <presentation Label="walking" file-name="walking/person03_walking_d3_uncomp.avi" />
  78 + <presentation Label="walking" file-name="walking/person03_walking_d4_uncomp.avi" />
227 79 </biometric-signature>
228   - <biometric-signature name="handclapping4-1">
  80 + <biometric-signature name="person04">
  81 + <presentation Label="boxing" file-name="boxing/person04_boxing_d1_uncomp.avi" />
  82 + <presentation Label="boxing" file-name="boxing/person04_boxing_d2_uncomp.avi" />
  83 + <presentation Label="boxing" file-name="boxing/person04_boxing_d3_uncomp.avi" />
  84 + <presentation Label="boxing" file-name="boxing/person04_boxing_d4_uncomp.avi" />
229 85 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d1_uncomp.avi" />
230   - </biometric-signature>
231   - <biometric-signature name="handclapping4-2">
232 86 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d2_uncomp.avi" />
233   - </biometric-signature>
234   - <biometric-signature name="handclapping4-3">
235 87 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d3_uncomp.avi" />
236   - </biometric-signature>
237   - <biometric-signature name="handclapping4-4">
238 88 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d4_uncomp.avi" />
  89 + <presentation Label="handwaving" file-name="handwaving/person04_handwaving_d1_uncomp.avi" />
  90 + <presentation Label="handwaving" file-name="handwaving/person04_handwaving_d2_uncomp.avi" />
  91 + <presentation Label="handwaving" file-name="handwaving/person04_handwaving_d3_uncomp.avi" />
  92 + <presentation Label="handwaving" file-name="handwaving/person04_handwaving_d4_uncomp.avi" />
  93 + <presentation Label="jogging" file-name="jogging/person04_jogging_d1_uncomp.avi" />
  94 + <presentation Label="jogging" file-name="jogging/person04_jogging_d2_uncomp.avi" />
  95 + <presentation Label="jogging" file-name="jogging/person04_jogging_d3_uncomp.avi" />
  96 + <presentation Label="jogging" file-name="jogging/person04_jogging_d4_uncomp.avi" />
  97 + <presentation Label="running" file-name="running/person04_running_d1_uncomp.avi" />
  98 + <presentation Label="running" file-name="running/person04_running_d2_uncomp.avi" />
  99 + <presentation Label="running" file-name="running/person04_running_d3_uncomp.avi" />
  100 + <presentation Label="running" file-name="running/person04_running_d4_uncomp.avi" />
  101 + <presentation Label="walking" file-name="walking/person04_walking_d1_uncomp.avi" />
  102 + <presentation Label="walking" file-name="walking/person04_walking_d2_uncomp.avi" />
  103 + <presentation Label="walking" file-name="walking/person04_walking_d3_uncomp.avi" />
  104 + <presentation Label="walking" file-name="walking/person04_walking_d4_uncomp.avi" />
239 105 </biometric-signature>
240   - <biometric-signature name="handclapping5-1">
  106 + <biometric-signature name="person05">
  107 + <presentation Label="boxing" file-name="boxing/person05_boxing_d1_uncomp.avi" />
  108 + <presentation Label="boxing" file-name="boxing/person05_boxing_d2_uncomp.avi" />
  109 + <presentation Label="boxing" file-name="boxing/person05_boxing_d3_uncomp.avi" />
  110 + <presentation Label="boxing" file-name="boxing/person05_boxing_d4_uncomp.avi" />
241 111 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d1_uncomp.avi" />
242   - </biometric-signature>
243   - <biometric-signature name="handclapping5-2">
244 112 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d2_uncomp.avi" />
245   - </biometric-signature>
246   - <biometric-signature name="handclapping5-3">
247 113 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d3_uncomp.avi" />
248   - </biometric-signature>
249   - <biometric-signature name="handclapping5-4">
250 114 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d4_uncomp.avi" />
251   - </biometric-signature>
252   - <biometric-signature name="handclapping6-1">
253   - <presentation Label="handclapping" file-name="handclapping/person06_handclapping_d1_uncomp.avi" />
254   - </biometric-signature>
255   - <biometric-signature name="handclapping6-2">
256   - <presentation Label="handclapping" file-name="handclapping/person06_handclapping_d2_uncomp.avi" />
257   - </biometric-signature>
258   - <biometric-signature name="handclapping6-3">
259   - <presentation Label="handclapping" file-name="handclapping/person06_handclapping_d3_uncomp.avi" />
260   - </biometric-signature>
261   - <biometric-signature name="handclapping6-4">
262   - <presentation Label="handclapping" file-name="handclapping/person06_handclapping_d4_uncomp.avi" />
263   - </biometric-signature>
264   - <biometric-signature name="handclapping7-1">
265   - <presentation Label="handclapping" file-name="handclapping/person07_handclapping_d1_uncomp.avi" />
266   - </biometric-signature>
267   - <biometric-signature name="handclapping7-2">
268   - <presentation Label="handclapping" file-name="handclapping/person07_handclapping_d2_uncomp.avi" />
269   - </biometric-signature>
270   - <biometric-signature name="handclapping7-3">
271   - <presentation Label="handclapping" file-name="handclapping/person07_handclapping_d3_uncomp.avi" />
272   - </biometric-signature>
273   - <biometric-signature name="handclapping7-4">
274   - <presentation Label="handclapping" file-name="handclapping/person07_handclapping_d4_uncomp.avi" />
275   - </biometric-signature>
276   - <biometric-signature name="handclapping8-1">
277   - <presentation Label="handclapping" file-name="handclapping/person08_handclapping_d1_uncomp.avi" />
278   - </biometric-signature>
279   - <biometric-signature name="handclapping8-2">
280   - <presentation Label="handclapping" file-name="handclapping/person08_handclapping_d2_uncomp.avi" />
281   - </biometric-signature>
282   - <biometric-signature name="handclapping8-3">
283   - <presentation Label="handclapping" file-name="handclapping/person08_handclapping_d3_uncomp.avi" />
284   - </biometric-signature>
285   - <biometric-signature name="handclapping8-4">
286   - <presentation Label="handclapping" file-name="handclapping/person08_handclapping_d4_uncomp.avi" />
287   - </biometric-signature>
288   - <biometric-signature name="handclapping9-1">
289   - <presentation Label="handclapping" file-name="handclapping/person09_handclapping_d1_uncomp.avi" />
290   - </biometric-signature>
291   - <biometric-signature name="handclapping9-2">
292   - <presentation Label="handclapping" file-name="handclapping/person09_handclapping_d2_uncomp.avi" />
293   - </biometric-signature>
294   - <biometric-signature name="handclapping9-3">
295   - <presentation Label="handclapping" file-name="handclapping/person09_handclapping_d3_uncomp.avi" />
296   - </biometric-signature>
297   - <biometric-signature name="handclapping9-4">
298   - <presentation Label="handclapping" file-name="handclapping/person09_handclapping_d4_uncomp.avi" />
299   - </biometric-signature>
300   - <biometric-signature name="handclapping10-1">
301   - <presentation Label="handclapping" file-name="handclapping/person10_handclapping_d1_uncomp.avi" />
302   - </biometric-signature>
303   - <biometric-signature name="handclapping10-2">
304   - <presentation Label="handclapping" file-name="handclapping/person10_handclapping_d2_uncomp.avi" />
305   - </biometric-signature>
306   - <biometric-signature name="handclapping10-3">
307   - <presentation Label="handclapping" file-name="handclapping/person10_handclapping_d3_uncomp.avi" />
308   - </biometric-signature>
309   - <biometric-signature name="handclapping10-4">
310   - <presentation Label="handclapping" file-name="handclapping/person10_handclapping_d4_uncomp.avi" />
311   - </biometric-signature>
312   - <biometric-signature name="handclapping11-1">
313   - <presentation Label="handclapping" file-name="handclapping/person11_handclapping_d1_uncomp.avi" />
314   - </biometric-signature>
315   - <biometric-signature name="handclapping11-2">
316   - <presentation Label="handclapping" file-name="handclapping/person11_handclapping_d2_uncomp.avi" />
317   - </biometric-signature>
318   - <biometric-signature name="handclapping11-3">
319   - <presentation Label="handclapping" file-name="handclapping/person11_handclapping_d3_uncomp.avi" />
320   - </biometric-signature>
321   - <biometric-signature name="handclapping11-4">
322   - <presentation Label="handclapping" file-name="handclapping/person11_handclapping_d4_uncomp.avi" />
323   - </biometric-signature>
324   - <biometric-signature name="handclapping12-1">
325   - <presentation Label="handclapping" file-name="handclapping/person12_handclapping_d1_uncomp.avi" />
326   - </biometric-signature>
327   - <biometric-signature name="handclapping12-2">
328   - <presentation Label="handclapping" file-name="handclapping/person12_handclapping_d2_uncomp.avi" />
329   - </biometric-signature>
330   - <biometric-signature name="handclapping12-3">
331   - <presentation Label="handclapping" file-name="handclapping/person12_handclapping_d3_uncomp.avi" />
332   - </biometric-signature>
333   - <biometric-signature name="handclapping12-4">
334   - <presentation Label="handclapping" file-name="handclapping/person12_handclapping_d4_uncomp.avi" />
335   - </biometric-signature>
336   - <biometric-signature name="handclapping13-1">
337   - <presentation Label="handclapping" file-name="handclapping/person13_handclapping_d1_uncomp.avi" />
338   - </biometric-signature>
339   - <biometric-signature name="handclapping13-2">
340   - <presentation Label="handclapping" file-name="handclapping/person13_handclapping_d2_uncomp.avi" />
341   - </biometric-signature>
342   - <biometric-signature name="handclapping13-4">
343   - <presentation Label="handclapping" file-name="handclapping/person13_handclapping_d4_uncomp.avi" />
344   - </biometric-signature>
345   - <biometric-signature name="handclapping14-1">
346   - <presentation Label="handclapping" file-name="handclapping/person14_handclapping_d1_uncomp.avi" />
347   - </biometric-signature>
348   - <biometric-signature name="handclapping14-2">
349   - <presentation Label="handclapping" file-name="handclapping/person14_handclapping_d2_uncomp.avi" />
350   - </biometric-signature>
351   - <biometric-signature name="handclapping14-3">
352   - <presentation Label="handclapping" file-name="handclapping/person14_handclapping_d3_uncomp.avi" />
353   - </biometric-signature>
354   - <biometric-signature name="handclapping14-4">
355   - <presentation Label="handclapping" file-name="handclapping/person14_handclapping_d4_uncomp.avi" />
356   - </biometric-signature>
357   - <biometric-signature name="handclapping15-1">
358   - <presentation Label="handclapping" file-name="handclapping/person15_handclapping_d1_uncomp.avi" />
359   - </biometric-signature>
360   - <biometric-signature name="handclapping15-2">
361   - <presentation Label="handclapping" file-name="handclapping/person15_handclapping_d2_uncomp.avi" />
362   - </biometric-signature>
363   - <biometric-signature name="handclapping15-3">
364   - <presentation Label="handclapping" file-name="handclapping/person15_handclapping_d3_uncomp.avi" />
365   - </biometric-signature>
366   - <biometric-signature name="handclapping15-4">
367   - <presentation Label="handclapping" file-name="handclapping/person15_handclapping_d4_uncomp.avi" />
368   - </biometric-signature>
369   - <biometric-signature name="handclapping16-1">
370   - <presentation Label="handclapping" file-name="handclapping/person16_handclapping_d1_uncomp.avi" />
371   - </biometric-signature>
372   - <biometric-signature name="handclapping16-2">
373   - <presentation Label="handclapping" file-name="handclapping/person16_handclapping_d2_uncomp.avi" />
374   - </biometric-signature>
375   - <biometric-signature name="handclapping16-3">
376   - <presentation Label="handclapping" file-name="handclapping/person16_handclapping_d3_uncomp.avi" />
377   - </biometric-signature>
378   - <biometric-signature name="handclapping16-4">
379   - <presentation Label="handclapping" file-name="handclapping/person16_handclapping_d4_uncomp.avi" />
380   - </biometric-signature>
381   - <biometric-signature name="handwaving1-1">
382   - <presentation Label="handwaving" file-name="handwaving/person01_handwaving_d1_uncomp.avi" />
383   - </biometric-signature>
384   - <biometric-signature name="handwaving1-2">
385   - <presentation Label="handwaving" file-name="handwaving/person01_handwaving_d2_uncomp.avi" />
386   - </biometric-signature>
387   - <biometric-signature name="handwaving1-3">
388   - <presentation Label="handwaving" file-name="handwaving/person01_handwaving_d3_uncomp.avi" />
389   - </biometric-signature>
390   - <biometric-signature name="handwaving1-4">
391   - <presentation Label="handwaving" file-name="handwaving/person01_handwaving_d4_uncomp.avi" />
392   - </biometric-signature>
393   - <biometric-signature name="handwaving2-1">
394   - <presentation Label="handwaving" file-name="handwaving/person02_handwaving_d1_uncomp.avi" />
395   - </biometric-signature>
396   - <biometric-signature name="handwaving2-2">
397   - <presentation Label="handwaving" file-name="handwaving/person02_handwaving_d2_uncomp.avi" />
398   - </biometric-signature>
399   - <biometric-signature name="handwaving2-3">
400   - <presentation Label="handwaving" file-name="handwaving/person02_handwaving_d3_uncomp.avi" />
401   - </biometric-signature>
402   - <biometric-signature name="handwaving2-4">
403   - <presentation Label="handwaving" file-name="handwaving/person02_handwaving_d4_uncomp.avi" />
404   - </biometric-signature>
405   - <biometric-signature name="handwaving3-1">
406   - <presentation Label="handwaving" file-name="handwaving/person03_handwaving_d1_uncomp.avi" />
407   - </biometric-signature>
408   - <biometric-signature name="handwaving3-2">
409   - <presentation Label="handwaving" file-name="handwaving/person03_handwaving_d2_uncomp.avi" />
410   - </biometric-signature>
411   - <biometric-signature name="handwaving3-3">
412   - <presentation Label="handwaving" file-name="handwaving/person03_handwaving_d3_uncomp.avi" />
413   - </biometric-signature>
414   - <biometric-signature name="handwaving3-4">
415   - <presentation Label="handwaving" file-name="handwaving/person03_handwaving_d4_uncomp.avi" />
416   - </biometric-signature>
417   - <biometric-signature name="handwaving4-1">
418   - <presentation Label="handwaving" file-name="handwaving/person04_handwaving_d1_uncomp.avi" />
419   - </biometric-signature>
420   - <biometric-signature name="handwaving4-2">
421   - <presentation Label="handwaving" file-name="handwaving/person04_handwaving_d2_uncomp.avi" />
422   - </biometric-signature>
423   - <biometric-signature name="handwaving4-3">
424   - <presentation Label="handwaving" file-name="handwaving/person04_handwaving_d3_uncomp.avi" />
425   - </biometric-signature>
426   - <biometric-signature name="handwaving4-4">
427   - <presentation Label="handwaving" file-name="handwaving/person04_handwaving_d4_uncomp.avi" />
428   - </biometric-signature>
429   - <biometric-signature name="handwaving5-1">
430 115 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d1_uncomp.avi" />
431   - </biometric-signature>
432   - <biometric-signature name="handwaving5-2">
433 116 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d2_uncomp.avi" />
434   - </biometric-signature>
435   - <biometric-signature name="handwaving5-3">
436 117 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d3_uncomp.avi" />
437   - </biometric-signature>
438   - <biometric-signature name="handwaving5-4">
439 118 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d4_uncomp.avi" />
440   - </biometric-signature>
441   - <biometric-signature name="handwaving6-1">
442   - <presentation Label="handwaving" file-name="handwaving/person06_handwaving_d1_uncomp.avi" />
443   - </biometric-signature>
444   - <biometric-signature name="handwaving6-2">
445   - <presentation Label="handwaving" file-name="handwaving/person06_handwaving_d2_uncomp.avi" />
446   - </biometric-signature>
447   - <biometric-signature name="handwaving6-3">
448   - <presentation Label="handwaving" file-name="handwaving/person06_handwaving_d3_uncomp.avi" />
449   - </biometric-signature>
450   - <biometric-signature name="handwaving6-4">
451   - <presentation Label="handwaving" file-name="handwaving/person06_handwaving_d4_uncomp.avi" />
452   - </biometric-signature>
453   - <biometric-signature name="handwaving7-1">
454   - <presentation Label="handwaving" file-name="handwaving/person07_handwaving_d1_uncomp.avi" />
455   - </biometric-signature>
456   - <biometric-signature name="handwaving7-2">
457   - <presentation Label="handwaving" file-name="handwaving/person07_handwaving_d2_uncomp.avi" />
458   - </biometric-signature>
459   - <biometric-signature name="handwaving7-3">
460   - <presentation Label="handwaving" file-name="handwaving/person07_handwaving_d3_uncomp.avi" />
461   - </biometric-signature>
462   - <biometric-signature name="handwaving7-4">
463   - <presentation Label="handwaving" file-name="handwaving/person07_handwaving_d4_uncomp.avi" />
464   - </biometric-signature>
465   - <biometric-signature name="handwaving8-1">
466   - <presentation Label="handwaving" file-name="handwaving/person08_handwaving_d1_uncomp.avi" />
467   - </biometric-signature>
468   - <biometric-signature name="handwaving8-2">
469   - <presentation Label="handwaving" file-name="handwaving/person08_handwaving_d2_uncomp.avi" />
470   - </biometric-signature>
471   - <biometric-signature name="handwaving8-3">
472   - <presentation Label="handwaving" file-name="handwaving/person08_handwaving_d3_uncomp.avi" />
473   - </biometric-signature>
474   - <biometric-signature name="handwaving8-4">
475   - <presentation Label="handwaving" file-name="handwaving/person08_handwaving_d4_uncomp.avi" />
476   - </biometric-signature>
477   - <biometric-signature name="handwaving9-1">
478   - <presentation Label="handwaving" file-name="handwaving/person09_handwaving_d1_uncomp.avi" />
479   - </biometric-signature>
480   - <biometric-signature name="handwaving9-2">
481   - <presentation Label="handwaving" file-name="handwaving/person09_handwaving_d2_uncomp.avi" />
482   - </biometric-signature>
483   - <biometric-signature name="handwaving9-3">
484   - <presentation Label="handwaving" file-name="handwaving/person09_handwaving_d3_uncomp.avi" />
485   - </biometric-signature>
486   - <biometric-signature name="handwaving9-4">
487   - <presentation Label="handwaving" file-name="handwaving/person09_handwaving_d4_uncomp.avi" />
488   - </biometric-signature>
489   - <biometric-signature name="handwaving10-1">
490   - <presentation Label="handwaving" file-name="handwaving/person10_handwaving_d1_uncomp.avi" />
491   - </biometric-signature>
492   - <biometric-signature name="handwaving10-2">
493   - <presentation Label="handwaving" file-name="handwaving/person10_handwaving_d2_uncomp.avi" />
494   - </biometric-signature>
495   - <biometric-signature name="handwaving10-3">
496   - <presentation Label="handwaving" file-name="handwaving/person10_handwaving_d3_uncomp.avi" />
497   - </biometric-signature>
498   - <biometric-signature name="handwaving10-4">
499   - <presentation Label="handwaving" file-name="handwaving/person10_handwaving_d4_uncomp.avi" />
500   - </biometric-signature>
501   - <biometric-signature name="handwaving11-1">
502   - <presentation Label="handwaving" file-name="handwaving/person11_handwaving_d1_uncomp.avi" />
503   - </biometric-signature>
504   - <biometric-signature name="handwaving11-2">
505   - <presentation Label="handwaving" file-name="handwaving/person11_handwaving_d2_uncomp.avi" />
506   - </biometric-signature>
507   - <biometric-signature name="handwaving11-3">
508   - <presentation Label="handwaving" file-name="handwaving/person11_handwaving_d3_uncomp.avi" />
509   - </biometric-signature>
510   - <biometric-signature name="handwaving11-4">
511   - <presentation Label="handwaving" file-name="handwaving/person11_handwaving_d4_uncomp.avi" />
512   - </biometric-signature>
513   - <biometric-signature name="handwaving12-1">
514   - <presentation Label="handwaving" file-name="handwaving/person12_handwaving_d1_uncomp.avi" />
515   - </biometric-signature>
516   - <biometric-signature name="handwaving12-2">
517   - <presentation Label="handwaving" file-name="handwaving/person12_handwaving_d2_uncomp.avi" />
518   - </biometric-signature>
519   - <biometric-signature name="handwaving12-3">
520   - <presentation Label="handwaving" file-name="handwaving/person12_handwaving_d3_uncomp.avi" />
521   - </biometric-signature>
522   - <biometric-signature name="handwaving12-4">
523   - <presentation Label="handwaving" file-name="handwaving/person12_handwaving_d4_uncomp.avi" />
524   - </biometric-signature>
525   - <biometric-signature name="handwaving13-1">
526   - <presentation Label="handwaving" file-name="handwaving/person13_handwaving_d1_uncomp.avi" />
527   - </biometric-signature>
528   - <biometric-signature name="handwaving13-2">
529   - <presentation Label="handwaving" file-name="handwaving/person13_handwaving_d2_uncomp.avi" />
530   - </biometric-signature>
531   - <biometric-signature name="handwaving13-3">
532   - <presentation Label="handwaving" file-name="handwaving/person13_handwaving_d3_uncomp.avi" />
533   - </biometric-signature>
534   - <biometric-signature name="handwaving13-4">
535   - <presentation Label="handwaving" file-name="handwaving/person13_handwaving_d4_uncomp.avi" />
536   - </biometric-signature>
537   - <biometric-signature name="handwaving14-1">
538   - <presentation Label="handwaving" file-name="handwaving/person14_handwaving_d1_uncomp.avi" />
539   - </biometric-signature>
540   - <biometric-signature name="handwaving14-2">
541   - <presentation Label="handwaving" file-name="handwaving/person14_handwaving_d2_uncomp.avi" />
542   - </biometric-signature>
543   - <biometric-signature name="handwaving14-3">
544   - <presentation Label="handwaving" file-name="handwaving/person14_handwaving_d3_uncomp.avi" />
545   - </biometric-signature>
546   - <biometric-signature name="handwaving14-4">
547   - <presentation Label="handwaving" file-name="handwaving/person14_handwaving_d4_uncomp.avi" />
548   - </biometric-signature>
549   - <biometric-signature name="handwaving15-1">
550   - <presentation Label="handwaving" file-name="handwaving/person15_handwaving_d1_uncomp.avi" />
551   - </biometric-signature>
552   - <biometric-signature name="handwaving15-2">
553   - <presentation Label="handwaving" file-name="handwaving/person15_handwaving_d2_uncomp.avi" />
554   - </biometric-signature>
555   - <biometric-signature name="handwaving15-3">
556   - <presentation Label="handwaving" file-name="handwaving/person15_handwaving_d3_uncomp.avi" />
557   - </biometric-signature>
558   - <biometric-signature name="handwaving15-4">
559   - <presentation Label="handwaving" file-name="handwaving/person15_handwaving_d4_uncomp.avi" />
560   - </biometric-signature>
561   - <biometric-signature name="handwaving16-1">
562   - <presentation Label="handwaving" file-name="handwaving/person16_handwaving_d1_uncomp.avi" />
563   - </biometric-signature>
564   - <biometric-signature name="handwaving16-2">
565   - <presentation Label="handwaving" file-name="handwaving/person16_handwaving_d2_uncomp.avi" />
566   - </biometric-signature>
567   - <biometric-signature name="handwaving16-3">
568   - <presentation Label="handwaving" file-name="handwaving/person16_handwaving_d3_uncomp.avi" />
569   - </biometric-signature>
570   - <biometric-signature name="handwaving16-4">
571   - <presentation Label="handwaving" file-name="handwaving/person16_handwaving_d4_uncomp.avi" />
572   - </biometric-signature>
573   - <biometric-signature name="jogging1-1">
574   - <presentation Label="jogging" file-name="jogging/person01_jogging_d1_uncomp.avi" />
575   - </biometric-signature>
576   - <biometric-signature name="jogging1-2">
577   - <presentation Label="jogging" file-name="jogging/person01_jogging_d2_uncomp.avi" />
578   - </biometric-signature>
579   - <biometric-signature name="jogging1-3">
580   - <presentation Label="jogging" file-name="jogging/person01_jogging_d3_uncomp.avi" />
581   - </biometric-signature>
582   - <biometric-signature name="jogging1-4">
583   - <presentation Label="jogging" file-name="jogging/person01_jogging_d4_uncomp.avi" />
584   - </biometric-signature>
585   - <biometric-signature name="jogging2-1">
586   - <presentation Label="jogging" file-name="jogging/person02_jogging_d1_uncomp.avi" />
587   - </biometric-signature>
588   - <biometric-signature name="jogging2-2">
589   - <presentation Label="jogging" file-name="jogging/person02_jogging_d2_uncomp.avi" />
590   - </biometric-signature>
591   - <biometric-signature name="jogging2-3">
592   - <presentation Label="jogging" file-name="jogging/person02_jogging_d3_uncomp.avi" />
593   - </biometric-signature>
594   - <biometric-signature name="jogging2-4">
595   - <presentation Label="jogging" file-name="jogging/person02_jogging_d4_uncomp.avi" />
596   - </biometric-signature>
597   - <biometric-signature name="jogging3-1">
598   - <presentation Label="jogging" file-name="jogging/person03_jogging_d1_uncomp.avi" />
599   - </biometric-signature>
600   - <biometric-signature name="jogging3-2">
601   - <presentation Label="jogging" file-name="jogging/person03_jogging_d2_uncomp.avi" />
602   - </biometric-signature>
603   - <biometric-signature name="jogging3-3">
604   - <presentation Label="jogging" file-name="jogging/person03_jogging_d3_uncomp.avi" />
605   - </biometric-signature>
606   - <biometric-signature name="jogging3-4">
607   - <presentation Label="jogging" file-name="jogging/person03_jogging_d4_uncomp.avi" />
608   - </biometric-signature>
609   - <biometric-signature name="jogging4-1">
610   - <presentation Label="jogging" file-name="jogging/person04_jogging_d1_uncomp.avi" />
611   - </biometric-signature>
612   - <biometric-signature name="jogging4-2">
613   - <presentation Label="jogging" file-name="jogging/person04_jogging_d2_uncomp.avi" />
614   - </biometric-signature>
615   - <biometric-signature name="jogging4-3">
616   - <presentation Label="jogging" file-name="jogging/person04_jogging_d3_uncomp.avi" />
617   - </biometric-signature>
618   - <biometric-signature name="jogging4-4">
619   - <presentation Label="jogging" file-name="jogging/person04_jogging_d4_uncomp.avi" />
620   - </biometric-signature>
621   - <biometric-signature name="jogging5-1">
622 119 <presentation Label="jogging" file-name="jogging/person05_jogging_d1_uncomp.avi" />
623   - </biometric-signature>
624   - <biometric-signature name="jogging5-2">
625 120 <presentation Label="jogging" file-name="jogging/person05_jogging_d2_uncomp.avi" />
626   - </biometric-signature>
627   - <biometric-signature name="jogging5-3">
628 121 <presentation Label="jogging" file-name="jogging/person05_jogging_d3_uncomp.avi" />
629   - </biometric-signature>
630   - <biometric-signature name="jogging5-4">
631 122 <presentation Label="jogging" file-name="jogging/person05_jogging_d4_uncomp.avi" />
632   - </biometric-signature>
633   - <biometric-signature name="jogging6-1">
634   - <presentation Label="jogging" file-name="jogging/person06_jogging_d1_uncomp.avi" />
635   - </biometric-signature>
636   - <biometric-signature name="jogging6-2">
637   - <presentation Label="jogging" file-name="jogging/person06_jogging_d2_uncomp.avi" />
638   - </biometric-signature>
639   - <biometric-signature name="jogging6-3">
640   - <presentation Label="jogging" file-name="jogging/person06_jogging_d3_uncomp.avi" />
641   - </biometric-signature>
642   - <biometric-signature name="jogging6-4">
643   - <presentation Label="jogging" file-name="jogging/person06_jogging_d4_uncomp.avi" />
644   - </biometric-signature>
645   - <biometric-signature name="jogging7-1">
646   - <presentation Label="jogging" file-name="jogging/person07_jogging_d1_uncomp.avi" />
647   - </biometric-signature>
648   - <biometric-signature name="jogging7-2">
649   - <presentation Label="jogging" file-name="jogging/person07_jogging_d2_uncomp.avi" />
650   - </biometric-signature>
651   - <biometric-signature name="jogging7-3">
652   - <presentation Label="jogging" file-name="jogging/person07_jogging_d3_uncomp.avi" />
653   - </biometric-signature>
654   - <biometric-signature name="jogging7-4">
655   - <presentation Label="jogging" file-name="jogging/person07_jogging_d4_uncomp.avi" />
656   - </biometric-signature>
657   - <biometric-signature name="jogging8-1">
658   - <presentation Label="jogging" file-name="jogging/person08_jogging_d1_uncomp.avi" />
659   - </biometric-signature>
660   - <biometric-signature name="jogging8-2">
661   - <presentation Label="jogging" file-name="jogging/person08_jogging_d2_uncomp.avi" />
662   - </biometric-signature>
663   - <biometric-signature name="jogging8-3">
664   - <presentation Label="jogging" file-name="jogging/person08_jogging_d3_uncomp.avi" />
665   - </biometric-signature>
666   - <biometric-signature name="jogging8-4">
667   - <presentation Label="jogging" file-name="jogging/person08_jogging_d4_uncomp.avi" />
668   - </biometric-signature>
669   - <biometric-signature name="jogging9-1">
670   - <presentation Label="jogging" file-name="jogging/person09_jogging_d1_uncomp.avi" />
671   - </biometric-signature>
672   - <biometric-signature name="jogging9-2">
673   - <presentation Label="jogging" file-name="jogging/person09_jogging_d2_uncomp.avi" />
674   - </biometric-signature>
675   - <biometric-signature name="jogging9-3">
676   - <presentation Label="jogging" file-name="jogging/person09_jogging_d3_uncomp.avi" />
677   - </biometric-signature>
678   - <biometric-signature name="jogging9-4">
679   - <presentation Label="jogging" file-name="jogging/person09_jogging_d4_uncomp.avi" />
680   - </biometric-signature>
681   - <biometric-signature name="jogging10-1">
682   - <presentation Label="jogging" file-name="jogging/person10_jogging_d1_uncomp.avi" />
683   - </biometric-signature>
684   - <biometric-signature name="jogging10-2">
685   - <presentation Label="jogging" file-name="jogging/person10_jogging_d2_uncomp.avi" />
686   - </biometric-signature>
687   - <biometric-signature name="jogging10-3">
688   - <presentation Label="jogging" file-name="jogging/person10_jogging_d3_uncomp.avi" />
689   - </biometric-signature>
690   - <biometric-signature name="jogging10-4">
691   - <presentation Label="jogging" file-name="jogging/person10_jogging_d4_uncomp.avi" />
692   - </biometric-signature>
693   - <biometric-signature name="jogging11-1">
694   - <presentation Label="jogging" file-name="jogging/person11_jogging_d1_uncomp.avi" />
695   - </biometric-signature>
696   - <biometric-signature name="jogging11-2">
697   - <presentation Label="jogging" file-name="jogging/person11_jogging_d2_uncomp.avi" />
698   - </biometric-signature>
699   - <biometric-signature name="jogging11-3">
700   - <presentation Label="jogging" file-name="jogging/person11_jogging_d3_uncomp.avi" />
701   - </biometric-signature>
702   - <biometric-signature name="jogging11-4">
703   - <presentation Label="jogging" file-name="jogging/person11_jogging_d4_uncomp.avi" />
704   - </biometric-signature>
705   - <biometric-signature name="jogging12-1">
706   - <presentation Label="jogging" file-name="jogging/person12_jogging_d1_uncomp.avi" />
707   - </biometric-signature>
708   - <biometric-signature name="jogging12-2">
709   - <presentation Label="jogging" file-name="jogging/person12_jogging_d2_uncomp.avi" />
710   - </biometric-signature>
711   - <biometric-signature name="jogging12-3">
712   - <presentation Label="jogging" file-name="jogging/person12_jogging_d3_uncomp.avi" />
713   - </biometric-signature>
714   - <biometric-signature name="jogging12-4">
715   - <presentation Label="jogging" file-name="jogging/person12_jogging_d4_uncomp.avi" />
716   - </biometric-signature>
717   - <biometric-signature name="jogging13-1">
718   - <presentation Label="jogging" file-name="jogging/person13_jogging_d1_uncomp.avi" />
719   - </biometric-signature>
720   - <biometric-signature name="jogging13-2">
721   - <presentation Label="jogging" file-name="jogging/person13_jogging_d2_uncomp.avi" />
722   - </biometric-signature>
723   - <biometric-signature name="jogging13-3">
724   - <presentation Label="jogging" file-name="jogging/person13_jogging_d3_uncomp.avi" />
725   - </biometric-signature>
726   - <biometric-signature name="jogging13-4">
727   - <presentation Label="jogging" file-name="jogging/person13_jogging_d4_uncomp.avi" />
728   - </biometric-signature>
729   - <biometric-signature name="jogging14-1">
730   - <presentation Label="jogging" file-name="jogging/person14_jogging_d1_uncomp.avi" />
731   - </biometric-signature>
732   - <biometric-signature name="jogging14-2">
733   - <presentation Label="jogging" file-name="jogging/person14_jogging_d2_uncomp.avi" />
734   - </biometric-signature>
735   - <biometric-signature name="jogging14-3">
736   - <presentation Label="jogging" file-name="jogging/person14_jogging_d3_uncomp.avi" />
737   - </biometric-signature>
738   - <biometric-signature name="jogging14-4">
739   - <presentation Label="jogging" file-name="jogging/person14_jogging_d4_uncomp.avi" />
740   - </biometric-signature>
741   - <biometric-signature name="jogging15-1">
742   - <presentation Label="jogging" file-name="jogging/person15_jogging_d1_uncomp.avi" />
743   - </biometric-signature>
744   - <biometric-signature name="jogging15-2">
745   - <presentation Label="jogging" file-name="jogging/person15_jogging_d2_uncomp.avi" />
746   - </biometric-signature>
747   - <biometric-signature name="jogging15-3">
748   - <presentation Label="jogging" file-name="jogging/person15_jogging_d3_uncomp.avi" />
749   - </biometric-signature>
750   - <biometric-signature name="jogging15-4">
751   - <presentation Label="jogging" file-name="jogging/person15_jogging_d4_uncomp.avi" />
752   - </biometric-signature>
753   - <biometric-signature name="jogging16-1">
754   - <presentation Label="jogging" file-name="jogging/person16_jogging_d1_uncomp.avi" />
755   - </biometric-signature>
756   - <biometric-signature name="jogging16-2">
757   - <presentation Label="jogging" file-name="jogging/person16_jogging_d2_uncomp.avi" />
758   - </biometric-signature>
759   - <biometric-signature name="jogging16-3">
760   - <presentation Label="jogging" file-name="jogging/person16_jogging_d3_uncomp.avi" />
761   - </biometric-signature>
762   - <biometric-signature name="jogging16-4">
763   - <presentation Label="jogging" file-name="jogging/person16_jogging_d4_uncomp.avi" />
764   - </biometric-signature>
765   - <biometric-signature name="running1-1">
766   - <presentation Label="running" file-name="running/person01_running_d1_uncomp.avi" />
767   - </biometric-signature>
768   - <biometric-signature name="running1-2">
769   - <presentation Label="running" file-name="running/person01_running_d2_uncomp.avi" />
770   - </biometric-signature>
771   - <biometric-signature name="running1-3">
772   - <presentation Label="running" file-name="running/person01_running_d3_uncomp.avi" />
773   - </biometric-signature>
774   - <biometric-signature name="running1-4">
775   - <presentation Label="running" file-name="running/person01_running_d4_uncomp.avi" />
776   - </biometric-signature>
777   - <biometric-signature name="running2-1">
778   - <presentation Label="running" file-name="running/person02_running_d1_uncomp.avi" />
779   - </biometric-signature>
780   - <biometric-signature name="running2-2">
781   - <presentation Label="running" file-name="running/person02_running_d2_uncomp.avi" />
782   - </biometric-signature>
783   - <biometric-signature name="running2-3">
784   - <presentation Label="running" file-name="running/person02_running_d3_uncomp.avi" />
785   - </biometric-signature>
786   - <biometric-signature name="running2-4">
787   - <presentation Label="running" file-name="running/person02_running_d4_uncomp.avi" />
788   - </biometric-signature>
789   - <biometric-signature name="running3-1">
790   - <presentation Label="running" file-name="running/person03_running_d1_uncomp.avi" />
791   - </biometric-signature>
792   - <biometric-signature name="running3-2">
793   - <presentation Label="running" file-name="running/person03_running_d2_uncomp.avi" />
794   - </biometric-signature>
795   - <biometric-signature name="running3-3">
796   - <presentation Label="running" file-name="running/person03_running_d3_uncomp.avi" />
797   - </biometric-signature>
798   - <biometric-signature name="running3-4">
799   - <presentation Label="running" file-name="running/person03_running_d4_uncomp.avi" />
800   - </biometric-signature>
801   - <biometric-signature name="running4-1">
802   - <presentation Label="running" file-name="running/person04_running_d1_uncomp.avi" />
803   - </biometric-signature>
804   - <biometric-signature name="running4-2">
805   - <presentation Label="running" file-name="running/person04_running_d2_uncomp.avi" />
806   - </biometric-signature>
807   - <biometric-signature name="running4-3">
808   - <presentation Label="running" file-name="running/person04_running_d3_uncomp.avi" />
809   - </biometric-signature>
810   - <biometric-signature name="running4-4">
811   - <presentation Label="running" file-name="running/person04_running_d4_uncomp.avi" />
812   - </biometric-signature>
813   - <biometric-signature name="running5-1">
814 123 <presentation Label="running" file-name="running/person05_running_d1_uncomp.avi" />
815   - </biometric-signature>
816   - <biometric-signature name="running5-2">
817 124 <presentation Label="running" file-name="running/person05_running_d2_uncomp.avi" />
818   - </biometric-signature>
819   - <biometric-signature name="running5-3">
820 125 <presentation Label="running" file-name="running/person05_running_d3_uncomp.avi" />
821   - </biometric-signature>
822   - <biometric-signature name="running5-4">
823   - <presentation Label="running" file-name="running/person05_running_d4_uncomp.avi" />
824   - </biometric-signature>
825   - <biometric-signature name="running6-1">
826   - <presentation Label="running" file-name="running/person06_running_d1_uncomp.avi" />
827   - </biometric-signature>
828   - <biometric-signature name="running6-2">
829   - <presentation Label="running" file-name="running/person06_running_d2_uncomp.avi" />
830   - </biometric-signature>
831   - <biometric-signature name="running6-3">
832   - <presentation Label="running" file-name="running/person06_running_d3_uncomp.avi" />
833   - </biometric-signature>
834   - <biometric-signature name="running6-4">
835   - <presentation Label="running" file-name="running/person06_running_d4_uncomp.avi" />
836   - </biometric-signature>
837   - <biometric-signature name="running7-1">
838   - <presentation Label="running" file-name="running/person07_running_d1_uncomp.avi" />
839   - </biometric-signature>
840   - <biometric-signature name="running7-2">
841   - <presentation Label="running" file-name="running/person07_running_d2_uncomp.avi" />
842   - </biometric-signature>
843   - <biometric-signature name="running7-3">
844   - <presentation Label="running" file-name="running/person07_running_d3_uncomp.avi" />
845   - </biometric-signature>
846   - <biometric-signature name="running7-4">
847   - <presentation Label="running" file-name="running/person07_running_d4_uncomp.avi" />
848   - </biometric-signature>
849   - <biometric-signature name="running8-1">
850   - <presentation Label="running" file-name="running/person08_running_d1_uncomp.avi" />
851   - </biometric-signature>
852   - <biometric-signature name="running8-2">
853   - <presentation Label="running" file-name="running/person08_running_d2_uncomp.avi" />
854   - </biometric-signature>
855   - <biometric-signature name="running8-3">
856   - <presentation Label="running" file-name="running/person08_running_d3_uncomp.avi" />
857   - </biometric-signature>
858   - <biometric-signature name="running8-4">
859   - <presentation Label="running" file-name="running/person08_running_d4_uncomp.avi" />
860   - </biometric-signature>
861   - <biometric-signature name="running9-1">
862   - <presentation Label="running" file-name="running/person09_running_d1_uncomp.avi" />
863   - </biometric-signature>
864   - <biometric-signature name="running9-2">
865   - <presentation Label="running" file-name="running/person09_running_d2_uncomp.avi" />
866   - </biometric-signature>
867   - <biometric-signature name="running9-3">
868   - <presentation Label="running" file-name="running/person09_running_d3_uncomp.avi" />
869   - </biometric-signature>
870   - <biometric-signature name="running9-4">
871   - <presentation Label="running" file-name="running/person09_running_d4_uncomp.avi" />
872   - </biometric-signature>
873   - <biometric-signature name="running10-1">
874   - <presentation Label="running" file-name="running/person10_running_d1_uncomp.avi" />
875   - </biometric-signature>
876   - <biometric-signature name="running10-2">
877   - <presentation Label="running" file-name="running/person10_running_d2_uncomp.avi" />
878   - </biometric-signature>
879   - <biometric-signature name="running10-3">
880   - <presentation Label="running" file-name="running/person10_running_d3_uncomp.avi" />
881   - </biometric-signature>
882   - <biometric-signature name="running10-4">
883   - <presentation Label="running" file-name="running/person10_running_d4_uncomp.avi" />
884   - </biometric-signature>
885   - <biometric-signature name="running11-1">
886   - <presentation Label="running" file-name="running/person11_running_d1_uncomp.avi" />
887   - </biometric-signature>
888   - <biometric-signature name="running11-2">
889   - <presentation Label="running" file-name="running/person11_running_d2_uncomp.avi" />
890   - </biometric-signature>
891   - <biometric-signature name="running11-3">
892   - <presentation Label="running" file-name="running/person11_running_d3_uncomp.avi" />
893   - </biometric-signature>
894   - <biometric-signature name="running11-4">
895   - <presentation Label="running" file-name="running/person11_running_d4_uncomp.avi" />
896   - </biometric-signature>
897   - <biometric-signature name="running12-1">
898   - <presentation Label="running" file-name="running/person12_running_d1_uncomp.avi" />
899   - </biometric-signature>
900   - <biometric-signature name="running12-2">
901   - <presentation Label="running" file-name="running/person12_running_d2_uncomp.avi" />
902   - </biometric-signature>
903   - <biometric-signature name="running12-3">
904   - <presentation Label="running" file-name="running/person12_running_d3_uncomp.avi" />
905   - </biometric-signature>
906   - <biometric-signature name="running12-4">
907   - <presentation Label="running" file-name="running/person12_running_d4_uncomp.avi" />
908   - </biometric-signature>
909   - <biometric-signature name="running13-1">
910   - <presentation Label="running" file-name="running/person13_running_d1_uncomp.avi" />
911   - </biometric-signature>
912   - <biometric-signature name="running13-2">
913   - <presentation Label="running" file-name="running/person13_running_d2_uncomp.avi" />
914   - </biometric-signature>
915   - <biometric-signature name="running13-3">
916   - <presentation Label="running" file-name="running/person13_running_d3_uncomp.avi" />
917   - </biometric-signature>
918   - <biometric-signature name="running13-4">
919   - <presentation Label="running" file-name="running/person13_running_d4_uncomp.avi" />
920   - </biometric-signature>
921   - <biometric-signature name="running14-1">
922   - <presentation Label="running" file-name="running/person14_running_d1_uncomp.avi" />
923   - </biometric-signature>
924   - <biometric-signature name="running14-2">
925   - <presentation Label="running" file-name="running/person14_running_d2_uncomp.avi" />
926   - </biometric-signature>
927   - <biometric-signature name="running14-3">
928   - <presentation Label="running" file-name="running/person14_running_d3_uncomp.avi" />
929   - </biometric-signature>
930   - <biometric-signature name="running14-4">
931   - <presentation Label="running" file-name="running/person14_running_d4_uncomp.avi" />
932   - </biometric-signature>
933   - <biometric-signature name="running15-1">
934   - <presentation Label="running" file-name="running/person15_running_d1_uncomp.avi" />
935   - </biometric-signature>
936   - <biometric-signature name="running15-2">
937   - <presentation Label="running" file-name="running/person15_running_d2_uncomp.avi" />
938   - </biometric-signature>
939   - <biometric-signature name="running15-3">
940   - <presentation Label="running" file-name="running/person15_running_d3_uncomp.avi" />
941   - </biometric-signature>
942   - <biometric-signature name="running15-4">
943   - <presentation Label="running" file-name="running/person15_running_d4_uncomp.avi" />
944   - </biometric-signature>
945   - <biometric-signature name="running16-1">
946   - <presentation Label="running" file-name="running/person16_running_d1_uncomp.avi" />
947   - </biometric-signature>
948   - <biometric-signature name="running16-2">
949   - <presentation Label="running" file-name="running/person16_running_d2_uncomp.avi" />
950   - </biometric-signature>
951   - <biometric-signature name="running16-3">
952   - <presentation Label="running" file-name="running/person16_running_d3_uncomp.avi" />
953   - </biometric-signature>
954   - <biometric-signature name="running16-4">
955   - <presentation Label="running" file-name="running/person16_running_d4_uncomp.avi" />
956   - </biometric-signature>
957   - <biometric-signature name="walking1-1">
958   - <presentation Label="walking" file-name="walking/person01_walking_d1_uncomp.avi" />
959   - </biometric-signature>
960   - <biometric-signature name="walking1-2">
961   - <presentation Label="walking" file-name="walking/person01_walking_d2_uncomp.avi" />
962   - </biometric-signature>
963   - <biometric-signature name="walking1-3">
964   - <presentation Label="walking" file-name="walking/person01_walking_d3_uncomp.avi" />
965   - </biometric-signature>
966   - <biometric-signature name="walking1-4">
967   - <presentation Label="walking" file-name="walking/person01_walking_d4_uncomp.avi" />
968   - </biometric-signature>
969   - <biometric-signature name="walking2-1">
970   - <presentation Label="walking" file-name="walking/person02_walking_d1_uncomp.avi" />
971   - </biometric-signature>
972   - <biometric-signature name="walking2-2">
973   - <presentation Label="walking" file-name="walking/person02_walking_d2_uncomp.avi" />
974   - </biometric-signature>
975   - <biometric-signature name="walking2-3">
976   - <presentation Label="walking" file-name="walking/person02_walking_d3_uncomp.avi" />
977   - </biometric-signature>
978   - <biometric-signature name="walking2-4">
979   - <presentation Label="walking" file-name="walking/person02_walking_d4_uncomp.avi" />
980   - </biometric-signature>
981   - <biometric-signature name="walking3-1">
982   - <presentation Label="walking" file-name="walking/person03_walking_d1_uncomp.avi" />
983   - </biometric-signature>
984   - <biometric-signature name="walking3-2">
985   - <presentation Label="walking" file-name="walking/person03_walking_d2_uncomp.avi" />
986   - </biometric-signature>
987   - <biometric-signature name="walking3-3">
988   - <presentation Label="walking" file-name="walking/person03_walking_d3_uncomp.avi" />
989   - </biometric-signature>
990   - <biometric-signature name="walking3-4">
991   - <presentation Label="walking" file-name="walking/person03_walking_d4_uncomp.avi" />
992   - </biometric-signature>
993   - <biometric-signature name="walking4-1">
994   - <presentation Label="walking" file-name="walking/person04_walking_d1_uncomp.avi" />
995   - </biometric-signature>
996   - <biometric-signature name="walking4-2">
997   - <presentation Label="walking" file-name="walking/person04_walking_d2_uncomp.avi" />
998   - </biometric-signature>
999   - <biometric-signature name="walking4-3">
1000   - <presentation Label="walking" file-name="walking/person04_walking_d3_uncomp.avi" />
1001   - </biometric-signature>
1002   - <biometric-signature name="walking4-4">
1003   - <presentation Label="walking" file-name="walking/person04_walking_d4_uncomp.avi" />
1004   - </biometric-signature>
1005   - <biometric-signature name="walking5-1">
  126 + <presentation Label="running" file-name="running/person05_running_d4_uncomp.avi" />
1006 127 <presentation Label="walking" file-name="walking/person05_walking_d1_uncomp.avi" />
1007   - </biometric-signature>
1008   - <biometric-signature name="walking5-2">
1009 128 <presentation Label="walking" file-name="walking/person05_walking_d2_uncomp.avi" />
1010   - </biometric-signature>
1011   - <biometric-signature name="walking5-3">
1012 129 <presentation Label="walking" file-name="walking/person05_walking_d3_uncomp.avi" />
1013   - </biometric-signature>
1014   - <biometric-signature name="walking5-4">
1015 130 <presentation Label="walking" file-name="walking/person05_walking_d4_uncomp.avi" />
1016 131 </biometric-signature>
1017   - <biometric-signature name="walking6-1">
  132 + <biometric-signature name="person06">
  133 + <presentation Label="boxing" file-name="boxing/person06_boxing_d1_uncomp.avi" />
  134 + <presentation Label="boxing" file-name="boxing/person06_boxing_d2_uncomp.avi" />
  135 + <presentation Label="boxing" file-name="boxing/person06_boxing_d3_uncomp.avi" />
  136 + <presentation Label="boxing" file-name="boxing/person06_boxing_d4_uncomp.avi" />
  137 + <presentation Label="handclapping" file-name="handclapping/person06_handclapping_d1_uncomp.avi" />
  138 + <presentation Label="handclapping" file-name="handclapping/person06_handclapping_d2_uncomp.avi" />
  139 + <presentation Label="handclapping" file-name="handclapping/person06_handclapping_d3_uncomp.avi" />
  140 + <presentation Label="handclapping" file-name="handclapping/person06_handclapping_d4_uncomp.avi" />
  141 + <presentation Label="handwaving" file-name="handwaving/person06_handwaving_d1_uncomp.avi" />
  142 + <presentation Label="handwaving" file-name="handwaving/person06_handwaving_d2_uncomp.avi" />
  143 + <presentation Label="handwaving" file-name="handwaving/person06_handwaving_d3_uncomp.avi" />
  144 + <presentation Label="handwaving" file-name="handwaving/person06_handwaving_d4_uncomp.avi" />
  145 + <presentation Label="jogging" file-name="jogging/person06_jogging_d1_uncomp.avi" />
  146 + <presentation Label="jogging" file-name="jogging/person06_jogging_d2_uncomp.avi" />
  147 + <presentation Label="jogging" file-name="jogging/person06_jogging_d3_uncomp.avi" />
  148 + <presentation Label="jogging" file-name="jogging/person06_jogging_d4_uncomp.avi" />
  149 + <presentation Label="running" file-name="running/person06_running_d1_uncomp.avi" />
  150 + <presentation Label="running" file-name="running/person06_running_d2_uncomp.avi" />
  151 + <presentation Label="running" file-name="running/person06_running_d3_uncomp.avi" />
  152 + <presentation Label="running" file-name="running/person06_running_d4_uncomp.avi" />
1018 153 <presentation Label="walking" file-name="walking/person06_walking_d1_uncomp.avi" />
1019   - </biometric-signature>
1020   - <biometric-signature name="walking6-2">
1021 154 <presentation Label="walking" file-name="walking/person06_walking_d2_uncomp.avi" />
1022   - </biometric-signature>
1023   - <biometric-signature name="walking6-3">
1024 155 <presentation Label="walking" file-name="walking/person06_walking_d3_uncomp.avi" />
1025   - </biometric-signature>
1026   - <biometric-signature name="walking6-4">
1027 156 <presentation Label="walking" file-name="walking/person06_walking_d4_uncomp.avi" />
1028 157 </biometric-signature>
1029   - <biometric-signature name="walking7-1">
  158 + <biometric-signature name="person07">
  159 + <presentation Label="boxing" file-name="boxing/person07_boxing_d1_uncomp.avi" />
  160 + <presentation Label="boxing" file-name="boxing/person07_boxing_d2_uncomp.avi" />
  161 + <presentation Label="boxing" file-name="boxing/person07_boxing_d3_uncomp.avi" />
  162 + <presentation Label="boxing" file-name="boxing/person07_boxing_d4_uncomp.avi" />
  163 + <presentation Label="handclapping" file-name="handclapping/person07_handclapping_d1_uncomp.avi" />
  164 + <presentation Label="handclapping" file-name="handclapping/person07_handclapping_d2_uncomp.avi" />
  165 + <presentation Label="handclapping" file-name="handclapping/person07_handclapping_d3_uncomp.avi" />
  166 + <presentation Label="handclapping" file-name="handclapping/person07_handclapping_d4_uncomp.avi" />
  167 + <presentation Label="handwaving" file-name="handwaving/person07_handwaving_d1_uncomp.avi" />
  168 + <presentation Label="handwaving" file-name="handwaving/person07_handwaving_d2_uncomp.avi" />
  169 + <presentation Label="handwaving" file-name="handwaving/person07_handwaving_d3_uncomp.avi" />
  170 + <presentation Label="handwaving" file-name="handwaving/person07_handwaving_d4_uncomp.avi" />
  171 + <presentation Label="jogging" file-name="jogging/person07_jogging_d1_uncomp.avi" />
  172 + <presentation Label="jogging" file-name="jogging/person07_jogging_d2_uncomp.avi" />
  173 + <presentation Label="jogging" file-name="jogging/person07_jogging_d3_uncomp.avi" />
  174 + <presentation Label="jogging" file-name="jogging/person07_jogging_d4_uncomp.avi" />
  175 + <presentation Label="running" file-name="running/person07_running_d1_uncomp.avi" />
  176 + <presentation Label="running" file-name="running/person07_running_d2_uncomp.avi" />
  177 + <presentation Label="running" file-name="running/person07_running_d3_uncomp.avi" />
  178 + <presentation Label="running" file-name="running/person07_running_d4_uncomp.avi" />
1030 179 <presentation Label="walking" file-name="walking/person07_walking_d1_uncomp.avi" />
1031   - </biometric-signature>
1032   - <biometric-signature name="walking7-2">
1033 180 <presentation Label="walking" file-name="walking/person07_walking_d2_uncomp.avi" />
1034   - </biometric-signature>
1035   - <biometric-signature name="walking7-3">
1036 181 <presentation Label="walking" file-name="walking/person07_walking_d3_uncomp.avi" />
1037   - </biometric-signature>
1038   - <biometric-signature name="walking7-4">
1039 182 <presentation Label="walking" file-name="walking/person07_walking_d4_uncomp.avi" />
1040 183 </biometric-signature>
1041   - <biometric-signature name="walking8-1">
  184 + <biometric-signature name="person08">
  185 + <presentation Label="boxing" file-name="boxing/person08_boxing_d1_uncomp.avi" />
  186 + <presentation Label="boxing" file-name="boxing/person08_boxing_d2_uncomp.avi" />
  187 + <presentation Label="boxing" file-name="boxing/person08_boxing_d3_uncomp.avi" />
  188 + <presentation Label="boxing" file-name="boxing/person08_boxing_d4_uncomp.avi" />
  189 + <presentation Label="handclapping" file-name="handclapping/person08_handclapping_d1_uncomp.avi" />
  190 + <presentation Label="handclapping" file-name="handclapping/person08_handclapping_d2_uncomp.avi" />
  191 + <presentation Label="handclapping" file-name="handclapping/person08_handclapping_d3_uncomp.avi" />
  192 + <presentation Label="handclapping" file-name="handclapping/person08_handclapping_d4_uncomp.avi" />
  193 + <presentation Label="handwaving" file-name="handwaving/person08_handwaving_d1_uncomp.avi" />
  194 + <presentation Label="handwaving" file-name="handwaving/person08_handwaving_d2_uncomp.avi" />
  195 + <presentation Label="handwaving" file-name="handwaving/person08_handwaving_d3_uncomp.avi" />
  196 + <presentation Label="handwaving" file-name="handwaving/person08_handwaving_d4_uncomp.avi" />
  197 + <presentation Label="jogging" file-name="jogging/person08_jogging_d1_uncomp.avi" />
  198 + <presentation Label="jogging" file-name="jogging/person08_jogging_d2_uncomp.avi" />
  199 + <presentation Label="jogging" file-name="jogging/person08_jogging_d3_uncomp.avi" />
  200 + <presentation Label="jogging" file-name="jogging/person08_jogging_d4_uncomp.avi" />
  201 + <presentation Label="running" file-name="running/person08_running_d1_uncomp.avi" />
  202 + <presentation Label="running" file-name="running/person08_running_d2_uncomp.avi" />
  203 + <presentation Label="running" file-name="running/person08_running_d3_uncomp.avi" />
  204 + <presentation Label="running" file-name="running/person08_running_d4_uncomp.avi" />
1042 205 <presentation Label="walking" file-name="walking/person08_walking_d1_uncomp.avi" />
1043   - </biometric-signature>
1044   - <biometric-signature name="walking8-2">
1045 206 <presentation Label="walking" file-name="walking/person08_walking_d2_uncomp.avi" />
1046   - </biometric-signature>
1047   - <biometric-signature name="walking8-3">
1048 207 <presentation Label="walking" file-name="walking/person08_walking_d3_uncomp.avi" />
1049   - </biometric-signature>
1050   - <biometric-signature name="walking8-4">
1051 208 <presentation Label="walking" file-name="walking/person08_walking_d4_uncomp.avi" />
1052 209 </biometric-signature>
1053   - <biometric-signature name="walking9-1">
  210 + <biometric-signature name="person09">
  211 + <presentation Label="boxing" file-name="boxing/person09_boxing_d1_uncomp.avi" />
  212 + <presentation Label="boxing" file-name="boxing/person09_boxing_d2_uncomp.avi" />
  213 + <presentation Label="boxing" file-name="boxing/person09_boxing_d3_uncomp.avi" />
  214 + <presentation Label="boxing" file-name="boxing/person09_boxing_d4_uncomp.avi" />
  215 + <presentation Label="handclapping" file-name="handclapping/person09_handclapping_d1_uncomp.avi" />
  216 + <presentation Label="handclapping" file-name="handclapping/person09_handclapping_d2_uncomp.avi" />
  217 + <presentation Label="handclapping" file-name="handclapping/person09_handclapping_d3_uncomp.avi" />
  218 + <presentation Label="handclapping" file-name="handclapping/person09_handclapping_d4_uncomp.avi" />
  219 + <presentation Label="handwaving" file-name="handwaving/person09_handwaving_d1_uncomp.avi" />
  220 + <presentation Label="handwaving" file-name="handwaving/person09_handwaving_d2_uncomp.avi" />
  221 + <presentation Label="handwaving" file-name="handwaving/person09_handwaving_d3_uncomp.avi" />
  222 + <presentation Label="handwaving" file-name="handwaving/person09_handwaving_d4_uncomp.avi" />
  223 + <presentation Label="jogging" file-name="jogging/person09_jogging_d1_uncomp.avi" />
  224 + <presentation Label="jogging" file-name="jogging/person09_jogging_d2_uncomp.avi" />
  225 + <presentation Label="jogging" file-name="jogging/person09_jogging_d3_uncomp.avi" />
  226 + <presentation Label="jogging" file-name="jogging/person09_jogging_d4_uncomp.avi" />
  227 + <presentation Label="running" file-name="running/person09_running_d1_uncomp.avi" />
  228 + <presentation Label="running" file-name="running/person09_running_d2_uncomp.avi" />
  229 + <presentation Label="running" file-name="running/person09_running_d3_uncomp.avi" />
  230 + <presentation Label="running" file-name="running/person09_running_d4_uncomp.avi" />
1054 231 <presentation Label="walking" file-name="walking/person09_walking_d1_uncomp.avi" />
1055   - </biometric-signature>
1056   - <biometric-signature name="walking9-2">
1057 232 <presentation Label="walking" file-name="walking/person09_walking_d2_uncomp.avi" />
1058   - </biometric-signature>
1059   - <biometric-signature name="walking9-3">
1060 233 <presentation Label="walking" file-name="walking/person09_walking_d3_uncomp.avi" />
1061   - </biometric-signature>
1062   - <biometric-signature name="walking9-4">
1063 234 <presentation Label="walking" file-name="walking/person09_walking_d4_uncomp.avi" />
1064 235 </biometric-signature>
1065   - <biometric-signature name="walking10-1">
  236 + <biometric-signature name="person10">
  237 + <presentation Label="boxing" file-name="boxing/person10_boxing_d1_uncomp.avi" />
  238 + <presentation Label="boxing" file-name="boxing/person10_boxing_d2_uncomp.avi" />
  239 + <presentation Label="boxing" file-name="boxing/person10_boxing_d3_uncomp.avi" />
  240 + <presentation Label="boxing" file-name="boxing/person10_boxing_d4_uncomp.avi" />
  241 + <presentation Label="handclapping" file-name="handclapping/person10_handclapping_d1_uncomp.avi" />
  242 + <presentation Label="handclapping" file-name="handclapping/person10_handclapping_d2_uncomp.avi" />
  243 + <presentation Label="handclapping" file-name="handclapping/person10_handclapping_d3_uncomp.avi" />
  244 + <presentation Label="handclapping" file-name="handclapping/person10_handclapping_d4_uncomp.avi" />
  245 + <presentation Label="handwaving" file-name="handwaving/person10_handwaving_d1_uncomp.avi" />
  246 + <presentation Label="handwaving" file-name="handwaving/person10_handwaving_d2_uncomp.avi" />
  247 + <presentation Label="handwaving" file-name="handwaving/person10_handwaving_d3_uncomp.avi" />
  248 + <presentation Label="handwaving" file-name="handwaving/person10_handwaving_d4_uncomp.avi" />
  249 + <presentation Label="jogging" file-name="jogging/person10_jogging_d1_uncomp.avi" />
  250 + <presentation Label="jogging" file-name="jogging/person10_jogging_d2_uncomp.avi" />
  251 + <presentation Label="jogging" file-name="jogging/person10_jogging_d3_uncomp.avi" />
  252 + <presentation Label="jogging" file-name="jogging/person10_jogging_d4_uncomp.avi" />
  253 + <presentation Label="running" file-name="running/person10_running_d1_uncomp.avi" />
  254 + <presentation Label="running" file-name="running/person10_running_d2_uncomp.avi" />
  255 + <presentation Label="running" file-name="running/person10_running_d3_uncomp.avi" />
  256 + <presentation Label="running" file-name="running/person10_running_d4_uncomp.avi" />
1066 257 <presentation Label="walking" file-name="walking/person10_walking_d1_uncomp.avi" />
1067   - </biometric-signature>
1068   - <biometric-signature name="walking10-2">
1069 258 <presentation Label="walking" file-name="walking/person10_walking_d2_uncomp.avi" />
1070   - </biometric-signature>
1071   - <biometric-signature name="walking10-3">
1072 259 <presentation Label="walking" file-name="walking/person10_walking_d3_uncomp.avi" />
1073   - </biometric-signature>
1074   - <biometric-signature name="walking10-4">
1075 260 <presentation Label="walking" file-name="walking/person10_walking_d4_uncomp.avi" />
1076 261 </biometric-signature>
1077   - <biometric-signature name="walking11-1">
  262 + <biometric-signature name="person11">
  263 + <presentation Label="boxing" file-name="boxing/person11_boxing_d1_uncomp.avi" />
  264 + <presentation Label="boxing" file-name="boxing/person11_boxing_d2_uncomp.avi" />
  265 + <presentation Label="boxing" file-name="boxing/person11_boxing_d3_uncomp.avi" />
  266 + <presentation Label="boxing" file-name="boxing/person11_boxing_d4_uncomp.avi" />
  267 + <presentation Label="handclapping" file-name="handclapping/person11_handclapping_d1_uncomp.avi" />
  268 + <presentation Label="handclapping" file-name="handclapping/person11_handclapping_d2_uncomp.avi" />
  269 + <presentation Label="handclapping" file-name="handclapping/person11_handclapping_d3_uncomp.avi" />
  270 + <presentation Label="handclapping" file-name="handclapping/person11_handclapping_d4_uncomp.avi" />
  271 + <presentation Label="handwaving" file-name="handwaving/person11_handwaving_d1_uncomp.avi" />
  272 + <presentation Label="handwaving" file-name="handwaving/person11_handwaving_d2_uncomp.avi" />
  273 + <presentation Label="handwaving" file-name="handwaving/person11_handwaving_d3_uncomp.avi" />
  274 + <presentation Label="handwaving" file-name="handwaving/person11_handwaving_d4_uncomp.avi" />
  275 + <presentation Label="jogging" file-name="jogging/person11_jogging_d1_uncomp.avi" />
  276 + <presentation Label="jogging" file-name="jogging/person11_jogging_d2_uncomp.avi" />
  277 + <presentation Label="jogging" file-name="jogging/person11_jogging_d3_uncomp.avi" />
  278 + <presentation Label="jogging" file-name="jogging/person11_jogging_d4_uncomp.avi" />
  279 + <presentation Label="running" file-name="running/person11_running_d1_uncomp.avi" />
  280 + <presentation Label="running" file-name="running/person11_running_d2_uncomp.avi" />
  281 + <presentation Label="running" file-name="running/person11_running_d3_uncomp.avi" />
  282 + <presentation Label="running" file-name="running/person11_running_d4_uncomp.avi" />
1078 283 <presentation Label="walking" file-name="walking/person11_walking_d1_uncomp.avi" />
1079   - </biometric-signature>
1080   - <biometric-signature name="walking11-2">
1081 284 <presentation Label="walking" file-name="walking/person11_walking_d2_uncomp.avi" />
1082   - </biometric-signature>
1083   - <biometric-signature name="walking11-3">
1084 285 <presentation Label="walking" file-name="walking/person11_walking_d3_uncomp.avi" />
1085   - </biometric-signature>
1086   - <biometric-signature name="walking11-4">
1087 286 <presentation Label="walking" file-name="walking/person11_walking_d4_uncomp.avi" />
1088 287 </biometric-signature>
1089   - <biometric-signature name="walking12-1">
  288 + <biometric-signature name="person12">
  289 + <presentation Label="boxing" file-name="boxing/person12_boxing_d1_uncomp.avi" />
  290 + <presentation Label="boxing" file-name="boxing/person12_boxing_d2_uncomp.avi" />
  291 + <presentation Label="boxing" file-name="boxing/person12_boxing_d3_uncomp.avi" />
  292 + <presentation Label="boxing" file-name="boxing/person12_boxing_d4_uncomp.avi" />
  293 + <presentation Label="handclapping" file-name="handclapping/person12_handclapping_d1_uncomp.avi" />
  294 + <presentation Label="handclapping" file-name="handclapping/person12_handclapping_d2_uncomp.avi" />
  295 + <presentation Label="handclapping" file-name="handclapping/person12_handclapping_d3_uncomp.avi" />
  296 + <presentation Label="handclapping" file-name="handclapping/person12_handclapping_d4_uncomp.avi" />
  297 + <presentation Label="handwaving" file-name="handwaving/person12_handwaving_d1_uncomp.avi" />
  298 + <presentation Label="handwaving" file-name="handwaving/person12_handwaving_d2_uncomp.avi" />
  299 + <presentation Label="handwaving" file-name="handwaving/person12_handwaving_d3_uncomp.avi" />
  300 + <presentation Label="handwaving" file-name="handwaving/person12_handwaving_d4_uncomp.avi" />
  301 + <presentation Label="jogging" file-name="jogging/person12_jogging_d1_uncomp.avi" />
  302 + <presentation Label="jogging" file-name="jogging/person12_jogging_d2_uncomp.avi" />
  303 + <presentation Label="jogging" file-name="jogging/person12_jogging_d3_uncomp.avi" />
  304 + <presentation Label="jogging" file-name="jogging/person12_jogging_d4_uncomp.avi" />
  305 + <presentation Label="running" file-name="running/person12_running_d1_uncomp.avi" />
  306 + <presentation Label="running" file-name="running/person12_running_d2_uncomp.avi" />
  307 + <presentation Label="running" file-name="running/person12_running_d3_uncomp.avi" />
  308 + <presentation Label="running" file-name="running/person12_running_d4_uncomp.avi" />
1090 309 <presentation Label="walking" file-name="walking/person12_walking_d1_uncomp.avi" />
1091   - </biometric-signature>
1092   - <biometric-signature name="walking12-2">
1093 310 <presentation Label="walking" file-name="walking/person12_walking_d2_uncomp.avi" />
1094   - </biometric-signature>
1095   - <biometric-signature name="walking12-3">
1096 311 <presentation Label="walking" file-name="walking/person12_walking_d3_uncomp.avi" />
1097   - </biometric-signature>
1098   - <biometric-signature name="walking12-4">
1099 312 <presentation Label="walking" file-name="walking/person12_walking_d4_uncomp.avi" />
1100 313 </biometric-signature>
1101   - <biometric-signature name="walking13-1">
  314 + <biometric-signature name="person13">
  315 + <presentation Label="boxing" file-name="boxing/person13_boxing_d1_uncomp.avi" />
  316 + <presentation Label="boxing" file-name="boxing/person13_boxing_d2_uncomp.avi" />
  317 + <presentation Label="boxing" file-name="boxing/person13_boxing_d3_uncomp.avi" />
  318 + <presentation Label="boxing" file-name="boxing/person13_boxing_d4_uncomp.avi" />
  319 + <presentation Label="handclapping" file-name="handclapping/person13_handclapping_d1_uncomp.avi" />
  320 + <presentation Label="handclapping" file-name="handclapping/person13_handclapping_d2_uncomp.avi" />
  321 + <presentation Label="handclapping" file-name="handclapping/person13_handclapping_d4_uncomp.avi" />
  322 + <presentation Label="handwaving" file-name="handwaving/person13_handwaving_d1_uncomp.avi" />
  323 + <presentation Label="handwaving" file-name="handwaving/person13_handwaving_d2_uncomp.avi" />
  324 + <presentation Label="handwaving" file-name="handwaving/person13_handwaving_d3_uncomp.avi" />
  325 + <presentation Label="handwaving" file-name="handwaving/person13_handwaving_d4_uncomp.avi" />
  326 + <presentation Label="jogging" file-name="jogging/person13_jogging_d1_uncomp.avi" />
  327 + <presentation Label="jogging" file-name="jogging/person13_jogging_d2_uncomp.avi" />
  328 + <presentation Label="jogging" file-name="jogging/person13_jogging_d3_uncomp.avi" />
  329 + <presentation Label="jogging" file-name="jogging/person13_jogging_d4_uncomp.avi" />
  330 + <presentation Label="running" file-name="running/person13_running_d1_uncomp.avi" />
  331 + <presentation Label="running" file-name="running/person13_running_d2_uncomp.avi" />
  332 + <presentation Label="running" file-name="running/person13_running_d3_uncomp.avi" />
  333 + <presentation Label="running" file-name="running/person13_running_d4_uncomp.avi" />
1102 334 <presentation Label="walking" file-name="walking/person13_walking_d1_uncomp.avi" />
1103   - </biometric-signature>
1104   - <biometric-signature name="walking13-2">
1105 335 <presentation Label="walking" file-name="walking/person13_walking_d2_uncomp.avi" />
1106   - </biometric-signature>
1107   - <biometric-signature name="walking13-3">
1108 336 <presentation Label="walking" file-name="walking/person13_walking_d3_uncomp.avi" />
1109   - </biometric-signature>
1110   - <biometric-signature name="walking13-4">
1111 337 <presentation Label="walking" file-name="walking/person13_walking_d4_uncomp.avi" />
1112 338 </biometric-signature>
1113   - <biometric-signature name="walking14-1">
  339 + <biometric-signature name="person14">
  340 + <presentation Label="boxing" file-name="boxing/person14_boxing_d1_uncomp.avi" />
  341 + <presentation Label="boxing" file-name="boxing/person14_boxing_d2_uncomp.avi" />
  342 + <presentation Label="boxing" file-name="boxing/person14_boxing_d3_uncomp.avi" />
  343 + <presentation Label="boxing" file-name="boxing/person14_boxing_d4_uncomp.avi" />
  344 + <presentation Label="handclapping" file-name="handclapping/person14_handclapping_d1_uncomp.avi" />
  345 + <presentation Label="handclapping" file-name="handclapping/person14_handclapping_d2_uncomp.avi" />
  346 + <presentation Label="handclapping" file-name="handclapping/person14_handclapping_d3_uncomp.avi" />
  347 + <presentation Label="handclapping" file-name="handclapping/person14_handclapping_d4_uncomp.avi" />
  348 + <presentation Label="handwaving" file-name="handwaving/person14_handwaving_d1_uncomp.avi" />
  349 + <presentation Label="handwaving" file-name="handwaving/person14_handwaving_d2_uncomp.avi" />
  350 + <presentation Label="handwaving" file-name="handwaving/person14_handwaving_d3_uncomp.avi" />
  351 + <presentation Label="handwaving" file-name="handwaving/person14_handwaving_d4_uncomp.avi" />
  352 + <presentation Label="jogging" file-name="jogging/person14_jogging_d1_uncomp.avi" />
  353 + <presentation Label="jogging" file-name="jogging/person14_jogging_d2_uncomp.avi" />
  354 + <presentation Label="jogging" file-name="jogging/person14_jogging_d3_uncomp.avi" />
  355 + <presentation Label="jogging" file-name="jogging/person14_jogging_d4_uncomp.avi" />
  356 + <presentation Label="running" file-name="running/person14_running_d1_uncomp.avi" />
  357 + <presentation Label="running" file-name="running/person14_running_d2_uncomp.avi" />
  358 + <presentation Label="running" file-name="running/person14_running_d3_uncomp.avi" />
  359 + <presentation Label="running" file-name="running/person14_running_d4_uncomp.avi" />
1114 360 <presentation Label="walking" file-name="walking/person14_walking_d1_uncomp.avi" />
1115   - </biometric-signature>
1116   - <biometric-signature name="walking14-2">
1117 361 <presentation Label="walking" file-name="walking/person14_walking_d2_uncomp.avi" />
1118   - </biometric-signature>
1119   - <biometric-signature name="walking14-3">
1120 362 <presentation Label="walking" file-name="walking/person14_walking_d3_uncomp.avi" />
1121   - </biometric-signature>
1122   - <biometric-signature name="walking14-4">
1123 363 <presentation Label="walking" file-name="walking/person14_walking_d4_uncomp.avi" />
1124 364 </biometric-signature>
1125   - <biometric-signature name="walking15-1">
  365 + <biometric-signature name="person15">
  366 + <presentation Label="boxing" file-name="boxing/person15_boxing_d1_uncomp.avi" />
  367 + <presentation Label="boxing" file-name="boxing/person15_boxing_d2_uncomp.avi" />
  368 + <presentation Label="boxing" file-name="boxing/person15_boxing_d3_uncomp.avi" />
  369 + <presentation Label="boxing" file-name="boxing/person15_boxing_d4_uncomp.avi" />
  370 + <presentation Label="handclapping" file-name="handclapping/person15_handclapping_d1_uncomp.avi" />
  371 + <presentation Label="handclapping" file-name="handclapping/person15_handclapping_d2_uncomp.avi" />
  372 + <presentation Label="handclapping" file-name="handclapping/person15_handclapping_d3_uncomp.avi" />
  373 + <presentation Label="handclapping" file-name="handclapping/person15_handclapping_d4_uncomp.avi" />
  374 + <presentation Label="handwaving" file-name="handwaving/person15_handwaving_d1_uncomp.avi" />
  375 + <presentation Label="handwaving" file-name="handwaving/person15_handwaving_d2_uncomp.avi" />
  376 + <presentation Label="handwaving" file-name="handwaving/person15_handwaving_d3_uncomp.avi" />
  377 + <presentation Label="handwaving" file-name="handwaving/person15_handwaving_d4_uncomp.avi" />
  378 + <presentation Label="jogging" file-name="jogging/person15_jogging_d1_uncomp.avi" />
  379 + <presentation Label="jogging" file-name="jogging/person15_jogging_d2_uncomp.avi" />
  380 + <presentation Label="jogging" file-name="jogging/person15_jogging_d3_uncomp.avi" />
  381 + <presentation Label="jogging" file-name="jogging/person15_jogging_d4_uncomp.avi" />
  382 + <presentation Label="running" file-name="running/person15_running_d1_uncomp.avi" />
  383 + <presentation Label="running" file-name="running/person15_running_d2_uncomp.avi" />
  384 + <presentation Label="running" file-name="running/person15_running_d3_uncomp.avi" />
  385 + <presentation Label="running" file-name="running/person15_running_d4_uncomp.avi" />
1126 386 <presentation Label="walking" file-name="walking/person15_walking_d1_uncomp.avi" />
1127   - </biometric-signature>
1128   - <biometric-signature name="walking15-2">
1129 387 <presentation Label="walking" file-name="walking/person15_walking_d2_uncomp.avi" />
1130   - </biometric-signature>
1131   - <biometric-signature name="walking15-3">
1132 388 <presentation Label="walking" file-name="walking/person15_walking_d3_uncomp.avi" />
1133   - </biometric-signature>
1134   - <biometric-signature name="walking15-4">
1135 389 <presentation Label="walking" file-name="walking/person15_walking_d4_uncomp.avi" />
1136 390 </biometric-signature>
1137   - <biometric-signature name="walking16-1">
  391 + <biometric-signature name="person16">
  392 + <presentation Label="boxing" file-name="boxing/person16_boxing_d1_uncomp.avi" />
  393 + <presentation Label="boxing" file-name="boxing/person16_boxing_d2_uncomp.avi" />
  394 + <presentation Label="boxing" file-name="boxing/person16_boxing_d3_uncomp.avi" />
  395 + <presentation Label="boxing" file-name="boxing/person16_boxing_d4_uncomp.avi" />
  396 + <presentation Label="handclapping" file-name="handclapping/person16_handclapping_d1_uncomp.avi" />
  397 + <presentation Label="handclapping" file-name="handclapping/person16_handclapping_d2_uncomp.avi" />
  398 + <presentation Label="handclapping" file-name="handclapping/person16_handclapping_d3_uncomp.avi" />
  399 + <presentation Label="handclapping" file-name="handclapping/person16_handclapping_d4_uncomp.avi" />
  400 + <presentation Label="handwaving" file-name="handwaving/person16_handwaving_d1_uncomp.avi" />
  401 + <presentation Label="handwaving" file-name="handwaving/person16_handwaving_d2_uncomp.avi" />
  402 + <presentation Label="handwaving" file-name="handwaving/person16_handwaving_d3_uncomp.avi" />
  403 + <presentation Label="handwaving" file-name="handwaving/person16_handwaving_d4_uncomp.avi" />
  404 + <presentation Label="jogging" file-name="jogging/person16_jogging_d1_uncomp.avi" />
  405 + <presentation Label="jogging" file-name="jogging/person16_jogging_d2_uncomp.avi" />
  406 + <presentation Label="jogging" file-name="jogging/person16_jogging_d3_uncomp.avi" />
  407 + <presentation Label="jogging" file-name="jogging/person16_jogging_d4_uncomp.avi" />
  408 + <presentation Label="running" file-name="running/person16_running_d1_uncomp.avi" />
  409 + <presentation Label="running" file-name="running/person16_running_d2_uncomp.avi" />
  410 + <presentation Label="running" file-name="running/person16_running_d3_uncomp.avi" />
  411 + <presentation Label="running" file-name="running/person16_running_d4_uncomp.avi" />
1138 412 <presentation Label="walking" file-name="walking/person16_walking_d1_uncomp.avi" />
1139   - </biometric-signature>
1140   - <biometric-signature name="walking16-2">
1141 413 <presentation Label="walking" file-name="walking/person16_walking_d2_uncomp.avi" />
1142   - </biometric-signature>
1143   - <biometric-signature name="walking16-3">
1144 414 <presentation Label="walking" file-name="walking/person16_walking_d3_uncomp.avi" />
1145   - </biometric-signature>
1146   - <biometric-signature name="walking16-4">
1147 415 <presentation Label="walking" file-name="walking/person16_walking_d4_uncomp.avi" />
1148 416 </biometric-signature>
1149 417 </biometric-signature-set>
... ...
data/README.md
1 1 # Datasets
2   -* [BioID](BioID/README.md)
  2 +* __[AT&T](ATT/README.md)__
  3 +* __[BioID](BioID/README.md)__
3 4 * [CUFS](CUFS/README.md)
4 5 * [CUFSF](CUFSF/README.md)
5   -* [HFB](HFB/README.md)
  6 +* [FDDB](FDDB/README.md)
6 7 * [FERET](FERET/README.md)
7 8 * [FRGC](FRGC/README.md)
8   -* [LFW](LFW/LFW.md)
9   -* [MEDS](MEDS/README.md)
  9 +* [HFB](HFB/README.md)
  10 +* __[KTH](KTH/README.md)__
  11 +* __[LFW](LFW/LFW.md)__
  12 +* __[MEDS](MEDS/README.md)__
10 13 * [MNIST](MNIST/README.md)
11 14 * [PCSO](PCSO/README.md)
12   -* [KTH](KTH/README.md)
13   -* [FDDB](FDDB/README.md)
14 15  
15   -For both practical and legal reasons we only include images for some of the datasets in this repository.
  16 +For both practical and legal reasons we don't include images for the datasets in this repository.
  17 +Datasets in __bold__ can be downloaded automatically by running `scripts/downloadDatasets.sh`.
16 18 Researchers should contact the respective owners of the other datasets in order to obtain a copy.
17 19 The provided sigsets indicate how the images are expected to be arranged in directories, generally following the conventions established by the original authors.
... ...
openbr/core/bee.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __BEE_H
18   -#define __BEE_H
  17 +#ifndef BEE_BEE_H
  18 +#define BEE_BEE_H
19 19  
20 20 #include <QList>
21 21 #include <QPair>
... ... @@ -52,4 +52,4 @@ namespace BEE
52 52 void combineMasks(const QStringList &inputMasks, const QString &outputMask, const QString &method);
53 53 }
54 54  
55   -#endif // __BEE_H
  55 +#endif // BEE_BEE_H
... ...
openbr/core/cluster.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __CLUSTER_H
18   -#define __CLUSTER_H
  17 +#ifndef BR_CLUSTER_H
  18 +#define BR_CLUSTER_H
19 19  
20 20 #include <QList>
21 21 #include <QString>
... ... @@ -34,4 +34,4 @@ namespace br
34 34 void WriteClusters(const Clusters &clusters, const QString &csv);
35 35 }
36 36  
37   -#endif // __CLUSTER_H
  37 +#endif // BR_CLUSTER_H
... ...
openbr/core/common.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __COMMON_H
18   -#define __COMMON_H
  17 +#ifndef COMMON_COMMON_H
  18 +#define COMMON_COMMON_H
19 19  
20 20 #include <QDebug>
21 21 #include <QList>
... ... @@ -332,4 +332,4 @@ V&lt;T&gt; Downsample(V&lt;T&gt; vals, int k)
332 332  
333 333 }
334 334  
335   -#endif // __COMMON_H
  335 +#endif // COMMON_COMMON_H
... ...
openbr/core/eval.cpp
... ... @@ -79,19 +79,28 @@ float Evaluate(const QString &amp;simmat, const QString &amp;mask, const QString &amp;csv)
79 79  
80 80 // Read similarity matrix
81 81 QString target, query;
82   - const Mat scores = BEE::readSimmat(simmat, &target, &query);
  82 + Mat scores;
  83 + if (simmat.endsWith(".mtx")) {
  84 + scores = BEE::readSimmat(simmat, &target, &query);
  85 + } else {
  86 + QScopedPointer<Format> format(Factory<Format>::make(simmat));
  87 + scores = format->read();
  88 + }
83 89  
84 90 // Read mask matrix
85 91 Mat truth;
86 92 if (mask.isEmpty()) {
87 93 // Use the galleries specified in the similarity matrix
  94 + if (target.isEmpty()) qFatal("Unspecified target gallery.");
  95 + if (query.isEmpty()) qFatal("Unspecified query gallery.");
88 96 truth = BEE::makeMask(TemplateList::fromGallery(target).files(),
89 97 TemplateList::fromGallery(query).files());
90 98 } else {
91 99 File maskFile(mask);
92 100 maskFile.set("rows", scores.rows);
93 101 maskFile.set("columns", scores.cols);
94   - truth = BEE::readMask(maskFile);
  102 + QScopedPointer<Format> format(Factory<Format>::make(maskFile));
  103 + truth = format->read();
95 104 }
96 105  
97 106 return Evaluate(scores, truth, csv);
... ... @@ -477,6 +486,7 @@ float EvalDetection(const QString &amp;predictedGallery, const QString &amp;truthGallery
477 486 }
478 487 averageOverlap = totalOverlap / keep;
479 488 }
  489 + lines.append(QString("AverageOverlap,%1,").arg(QString::number(averageOverlap)));
480 490  
481 491 QtUtils::writeFile(csv, lines);
482 492 qDebug("Average Overlap = %.3f", averageOverlap);
... ...
openbr/core/eval.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __EVAL_H
18   -#define __EVAL_H
  17 +#ifndef BR_EVAL_H
  18 +#define BR_EVAL_H
19 19  
20 20 #include <QList>
21 21 #include <QString>
... ... @@ -32,5 +32,5 @@ namespace br
32 32 void EvalRegression(const QString &predictedGallery, const QString &truthGallery, QString predictedProperty = "", QString truthProperty = "");
33 33 }
34 34  
35   -#endif // __EVAL_H
  35 +#endif // BR_EVAL_H
36 36  
... ...
openbr/core/fuse.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __FUSE_H
18   -#define __FUSE_H
  17 +#ifndef BR_FUSE_H
  18 +#define BR_FUSE_H
19 19  
20 20 #include <QString>
21 21 #include <QStringList>
... ... @@ -25,4 +25,4 @@ namespace br
25 25 void Fuse(const QStringList &inputSimmats, File mask, const QString &normalization, const QString &fusion, const QString &outputSimmat);
26 26 }
27 27  
28   -#endif // __FUSE_H
  28 +#endif // BR_FUSE_H
... ...
openbr/core/opencvutils.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __OPENCVUTILS_H
18   -#define __OPENCVUTILS_H
  17 +#ifndef OPENCVUTILS_OPENCVUTILS_H
  18 +#define OPENCVUTILS_OPENCVUTILS_H
19 19  
20 20 #include <QDataStream>
21 21 #include <QDebug>
... ... @@ -157,4 +157,4 @@ public:
157 157 }
158 158 };
159 159  
160   -#endif // __OPENCVUTILS_H
  160 +#endif // OPENCVUTILS_OPENCVUTILS_H
... ...
openbr/core/plot.cpp
... ... @@ -311,6 +311,7 @@ bool PlotDetection(const QStringList &amp;files, const File &amp;destination, bool show)
311 311 "DiscretePR <- data[grep(\"DiscretePR\",data$Plot),-c(1)]\n"
312 312 "ContinuousPR <- data[grep(\"ContinuousPR\",data$Plot),-c(1)]\n"
313 313 "Overlap <- data[grep(\"Overlap\",data$Plot),-c(1)]\n"
  314 + "AverageOverlap <- data[grep(\"AverageOverlap\",data$Plot),-c(1)]\n"
314 315 "rm(data)\n"
315 316 "\n");
316 317  
... ... @@ -341,6 +342,12 @@ bool PlotDetection(const QStringList &amp;files, const File &amp;destination, bool show)
341 342 (p.major.size > 1 ? (p.minor.size > 1 ? QString(" + facet_grid(%2 ~ %1, scales=\"free\")").arg(p.minor.header, p.major.header) : QString(" + facet_wrap(~ %1, scales = \"free\")").arg(p.major.header)) : QString()) +
342 343 QString(" + theme(aspect.ratio=1)\n\n")));
343 344  
  345 + p.file.write(qPrintable(QString("ggplot(AverageOverlap, aes(x=%1, y=%2, label=round(X,3)), main=\"Average Overlap\") + geom_text() + theme_minimal()").arg(p.minor.size > 1 ? p.minor.header : "'X'", p.major.size > 1 ? p.major.header : "'Y'") +
  346 + QString("%1%2\n\n").arg(p.minor.size > 1 ? "" : " + xlab(NULL)", p.major.size > 1 ? "" : "ylab(NULL)")));
  347 +
  348 + p.file.write(qPrintable(QString("ggplot(AverageOverlap, aes(x=%1, y=%2, fill=X)) + geom_tile() + scale_fill_continuous(\"Average Overlap\") + theme_minimal()").arg(p.minor.size > 1 ? p.minor.header : "'X'", p.major.size > 1 ? p.major.header : "'Y'") +
  349 + QString("%1%2\n\n").arg(p.minor.size > 1 ? "" : " + xlab(NULL)", p.major.size > 1 ? "" : "ylab(NULL)")));
  350 +
344 351 return p.finalize(show);
345 352 }
346 353  
... ...
openbr/core/plot.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __PLOT_H
18   -#define __PLOT_H
  17 +#ifndef BR_PLOT_H
  18 +#define BR_PLOT_H
19 19  
20 20 #include <QPair>
21 21 #include <QString>
... ... @@ -30,4 +30,4 @@ namespace br
30 30 bool PlotMetadata(const QStringList &files, const QString &destination, bool show = false);
31 31 }
32 32  
33   -#endif // __PLOT_H
  33 +#endif // BR_PLOT_H
... ...
openbr/core/qtutils.cpp
... ... @@ -186,8 +186,9 @@ QString find(const QString &amp;file, const QString &amp;alt)
186 186 bool toBool(const QString &string)
187 187 {
188 188 bool ok;
189   - bool result = (bool)string.toInt(&ok); if (!ok) qFatal("Expected integer value, got %s.", qPrintable(string));
190   - return result;
  189 + bool result = (string.toFloat(&ok) != 0.f);
  190 + if (ok) return result;
  191 + else return (string != "FALSE") && (string != "false") && (string != "F") && (string != "f");
191 192 }
192 193  
193 194 int toInt(const QString &string)
... ...
openbr/core/qtutils.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __QTUTILS_H
18   -#define __QTUTILS_H
  17 +#ifndef QTUTILS_QTUTILS_H
  18 +#define QTUTILS_QTUTILS_H
19 19  
20 20 #include <QByteArray>
21 21 #include <QDir>
... ... @@ -78,4 +78,4 @@ namespace QtUtils
78 78 float euclideanLength(const QPointF &point);
79 79 }
80 80  
81   -#endif // __QTUTILS_H
  81 +#endif // QTUTILS_QTUTILS_H
... ...
openbr/core/resource.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __RESOURCE_H
18   -#define __RESOURCE_H
  17 +#ifndef BR_RESOURCE_H
  18 +#define BR_RESOURCE_H
19 19  
20 20 #include <QHash>
21 21 #include <QList>
... ... @@ -26,6 +26,9 @@
26 26 #include <QThread>
27 27 #include <openbr/openbr_plugin.h>
28 28  
  29 +namespace br
  30 +{
  31 +
29 32 template <typename T>
30 33 class ResourceMaker
31 34 {
... ... @@ -97,4 +100,6 @@ public:
97 100 }
98 101 };
99 102  
100   -#endif //__RESOURCE_H
  103 +} // namespace br
  104 +
  105 +#endif // BR_RESOURCE_H
... ...
openbr/frvt2012.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef _FRVT2012_H_
18   -#define _FRVT2012_H_
  17 +#ifndef FRVT2012_H
  18 +#define FRVT2012_H
19 19  
20 20 #include <string>
21 21 #include <vector>
... ... @@ -413,4 +413,4 @@ struct BR_EXPORT SdkEstimator : public Estimator
413 413  
414 414 /*! @}*/
415 415  
416   -#endif // _FRVT2012_H_
  416 +#endif // FRVT2012_H
... ...
openbr/gui/algorithm.h
1   -#ifndef __ALGORITHM_H
2   -#define __ALGORITHM_H
  1 +#ifndef BR_ALGORITHM_H
  2 +#define BR_ALGORITHM_H
3 3  
4 4 #include <QComboBox>
5 5 #include <QString>
... ... @@ -29,4 +29,4 @@ signals:
29 29  
30 30 }
31 31  
32   -#endif // __ALGORITHM_H
  32 +#endif // BR_ALGORITHM_H
... ...
openbr/gui/classifier.h
1   -#ifndef __CLASSIFIER_H
2   -#define __CLASSIFIER_H
  1 +#ifndef BR_CLASSIFIER_H
  2 +#define BR_CLASSIFIER_H
3 3  
4 4 #include <QLabel>
5 5 #include <QWidget>
... ... @@ -33,4 +33,4 @@ signals:
33 33  
34 34 } // namespace br
35 35  
36   -#endif // __CLASSIFIER_H
  36 +#endif // BR_CLASSIFIER_H
... ...
openbr/gui/dataset.h
1   -#ifndef __DATASET_H
2   -#define __DATASET_H
  1 +#ifndef BR_DATASET_H
  2 +#define BR_DATASET_H
3 3  
4 4 #include <QComboBox>
5 5 #include <QString>
... ... @@ -30,4 +30,4 @@ signals:
30 30  
31 31 } // namespace br
32 32  
33   -#endif // __DATASET_H
  33 +#endif // BR_DATASET_H
... ...
openbr/gui/gallerytoolbar.h
1   -#ifndef __GALLERYTOOLBAR_H
2   -#define __GALLERYTOOLBAR_H
  1 +#ifndef BR_GALLERYTOOLBAR_H
  2 +#define BR_GALLERYTOOLBAR_H
3 3  
4 4 #include <QFutureWatcher>
5 5 #include <QImage>
... ... @@ -55,4 +55,4 @@ signals:
55 55  
56 56 } // namespace br
57 57  
58   -#endif // GALLERYTOOLBAR_H
  58 +#endif // BR_GALLERYTOOLBAR_H
... ...
openbr/gui/galleryviewer.h
1   -#ifndef GALLERYVIEWER_H
2   -#define GALLERYVIEWER_H
  1 +#ifndef BR_GALLERYVIEWER_H
  2 +#define BR_GALLERYVIEWER_H
3 3  
4 4 #include <QMainWindow>
5 5 #include <QWidget>
... ... @@ -30,4 +30,4 @@ public slots:
30 30  
31 31 } // namespace br
32 32  
33   -#endif // GALLERYVIEWER_H
  33 +#endif // BR_GALLERYVIEWER_H
... ...
openbr/gui/help.h
1   -#ifndef HELP_H
2   -#define HELP_H
  1 +#ifndef BR_HELP_H
  2 +#define BR_HELP_H
3 3  
4 4 #include <QAction>
5 5 #include <QList>
... ... @@ -27,4 +27,4 @@ public slots:
27 27  
28 28 } // namespace br
29 29  
30   -#endif // HELP_H
  30 +#endif // BR_HELP_H
... ...
openbr/gui/imageviewer.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __IMAGEVIEWER_H
18   -#define __IMAGEVIEWER_H
  17 +#ifndef BR_IMAGEVIEWER_H
  18 +#define BR_IMAGEVIEWER_H
19 19  
20 20 #include <QImage>
21 21 #include <QKeyEvent>
... ... @@ -61,4 +61,4 @@ private slots:
61 61  
62 62 } // namespace br
63 63  
64   -#endif // __IMAGEVIEWER_H
  64 +#endif // BR_IMAGEVIEWER_H
... ...
openbr/gui/progress.h
1   -#ifndef __PROGRESS_H
2   -#define __PROGRESS_H
  1 +#ifndef BR_PROGRESS_H
  2 +#define BR_PROGRESS_H
3 3  
4 4 #include <QLabel>
5 5 #include <QProgressBar>
... ... @@ -28,4 +28,4 @@ private slots:
28 28  
29 29 }
30 30  
31   -#endif // __PROGRESS_H
  31 +#endif // BR_PROGRESS_H
... ...
openbr/gui/score.h
1   -#ifndef __SCORE_H
2   -#define __SCORE_H
  1 +#ifndef BR_SCORE_H
  2 +#define BR_SCORE_H
3 3  
4 4 #include <QLabel>
5 5 #include <QWidget>
... ... @@ -21,4 +21,4 @@ public slots:
21 21  
22 22 }
23 23  
24   -#endif // __SCORE_H
  24 +#endif // BR_SCORE_H
... ...
openbr/gui/splashscreen.h
1   -#ifndef __SPLASHSCREEN_H
2   -#define __SPLASHSCREEN_H
  1 +#ifndef BR_SPLASHSCREEN_H
  2 +#define BR_SPLASHSCREEN_H
3 3  
4 4 #include <QCloseEvent>
5 5 #include <QLabel>
... ... @@ -28,4 +28,4 @@ private slots:
28 28  
29 29 } // namespace br
30 30  
31   -#endif // __SPLASHSCREEN_H
  31 +#endif // BR_SPLASHSCREEN_H
... ...
openbr/gui/templatemetadata.h
1   -#ifndef __TEMPLATEMETADATA_H
2   -#define __TEMPLATEMETADATA_H
  1 +#ifndef BR_TEMPLATEMETADATA_H
  2 +#define BR_TEMPLATEMETADATA_H
3 3  
4 4 #include <QLabel>
5 5 #include <QList>
... ... @@ -43,4 +43,4 @@ public slots:
43 43  
44 44 } // namespace br
45 45  
46   -#endif // TEMPLATEMETADATA_H
  46 +#endif // BR_TEMPLATEMETADATA_H
... ...
openbr/gui/templateviewer.h
1   -#ifndef __TEMPLATEVIEWER_H
2   -#define __TEMPLATEVIEWER_H
  1 +#ifndef BR_TEMPLATEVIEWER_H
  2 +#define BR_TEMPLATEVIEWER_H
3 3  
4 4 #include <QDragEnterEvent>
5 5 #include <QDropEvent>
... ... @@ -58,4 +58,4 @@ signals:
58 58  
59 59 }
60 60  
61   -#endif // TEMPLATEVIEWER_H
  61 +#endif // BR_TEMPLATEVIEWER_H
... ...
openbr/gui/templateviewergrid.h
1   -#ifndef __TEMPLATE_VIEWER_GRID_H
2   -#define __TEMPLATE_VIEWER_GRID_H
  1 +#ifndef BR_TEMPLATEVIEWERGRID_H
  2 +#define BR_TEMPLATEVIEWERGRID_H
3 3  
4 4 #include <QGridLayout>
5 5 #include <QList>
... ... @@ -35,4 +35,4 @@ signals:
35 35  
36 36 } // namespace br
37 37  
38   -#endif // __TEMPLATE_VIEWER_GRID_H
  38 +#endif // BR_TEMPLATEVIEWERGRID_H
... ...
openbr/gui/transformeditor.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __TRANSFORMEDITOR_H
18   -#define __TRANSFORMEDITOR_H
  17 +#ifndef BR_TRANSFORMEDITOR_H
  18 +#define BR_TRANSFORMEDITOR_H
19 19  
20 20 #include <QHBoxLayout>
21 21 #include <QComboBox>
... ... @@ -38,4 +38,4 @@ public:
38 38  
39 39 } // namespace br
40 40  
41   -#endif // __TRANSFORMEDITOR_H
  41 +#endif // BR_TRANSFORMEDITOR_H
... ...
openbr/gui/transformlisteditor.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __TRANSFORMLISTEDITOR_H
18   -#define __TRANSFORMLISTEDITOR_H
  17 +#ifndef BR_TRANSFORMLISTEDITOR_H
  18 +#define BR_TRANSFORMLISTEDITOR_H
19 19  
20 20 #include <QHBoxLayout>
21 21 #include <QLabel>
... ... @@ -43,4 +43,4 @@ private slots:
43 43  
44 44 } // namespace br
45 45  
46   -#endif // __TRANSFORMLISTEDITOR_H
  46 +#endif // BR_TRANSFORMLISTEDITOR_H
... ...
openbr/gui/utility.h
1   -#ifndef UTILITY_H
2   -#define UTILITY_H
  1 +#ifndef BR_UTILITY_H
  2 +#define BR_UTILITY_H
3 3  
4 4 #include <QImage>
5 5 #include <opencv2/core/core.hpp>
6 6  
7 7 QImage toQImage(const cv::Mat &mat);
8 8  
9   -#endif // UTILITY_H
  9 +#endif // BR_UTILITY_H
... ...
openbr/gui/view.h
1   -#ifndef VIEW_H
2   -#define VIEW_H
  1 +#ifndef BR_VIEW_H
  2 +#define BR_VIEW_H
3 3  
4 4 #include <QAction>
5 5 #include <QActionGroup>
... ... @@ -34,4 +34,4 @@ signals:
34 34  
35 35 } // namespace br
36 36  
37   -#endif // VIEW_H
  37 +#endif // BR_VIEW_H
... ...
openbr/openbr.cpp
... ... @@ -72,7 +72,7 @@ float br_eval(const char *simmat, const char *mask, const char *csv)
72 72 return Evaluate(simmat, mask, csv);
73 73 }
74 74  
75   -void br_eval_classification(const char *predicted_gallery, const char *truth_gallery, const char *predicted_property, const char * truth_property)
  75 +void br_eval_classification(const char *predicted_gallery, const char *truth_gallery, const char *predicted_property, const char *truth_property)
76 76 {
77 77 EvalClassification(predicted_gallery, truth_gallery, predicted_property, truth_property);
78 78 }
... ... @@ -92,7 +92,7 @@ float br_eval_landmarking(const char *predicted_gallery, const char *truth_galle
92 92 return EvalLandmarking(predicted_gallery, truth_gallery, csv, normalization_index_a, normalization_index_b);
93 93 }
94 94  
95   -void br_eval_regression(const char *predicted_gallery, const char *truth_gallery, const char * predicted_property, const char * truth_property)
  95 +void br_eval_regression(const char *predicted_gallery, const char *truth_gallery, const char *predicted_property, const char *truth_property)
96 96 {
97 97 EvalRegression(predicted_gallery, truth_gallery, predicted_property, truth_property);
98 98 }
... ...
openbr/openbr.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __OPENBR_H
18   -#define __OPENBR_H
  17 +#ifndef OPENBR_H
  18 +#define OPENBR_H
19 19  
20 20 #include <openbr/openbr_export.h>
21 21  
... ... @@ -41,18 +41,6 @@ extern &quot;C&quot; {
41 41 * \section managed_return_value Managed Return Value
42 42 * Memory for <tt>const char*</tt> return values is managed internally and guaranteed until the next call to the function.
43 43 *
44   - * \section python_api Python API
45   - * A Python API is available via <a href="http://www.swig.org/">SWIG</a>.
46   - * \code
47   - * $ ls include/br/python
48   - * \endcode
49   - *
50   - * \section java_api Java API
51   - * A Java API is available via <a href="http://www.swig.org/">SWIG</a>.
52   - * \code
53   - * $ ls include/br/java
54   - * \endcode
55   - *
56 44 * \section examples Examples
57 45 * - \ref c_face_recognition_evaluation
58 46 *
... ... @@ -148,8 +136,10 @@ BR_EXPORT float br_eval(const char *simmat, const char *mask, const char *csv =
148 136 * \brief Evaluates and prints classification accuracy to terminal.
149 137 * \param predicted_gallery The predicted br::Gallery.
150 138 * \param truth_gallery The ground truth br::Gallery.
  139 + * \param predicted_property (Optional) which metadata key to use from <i>predicted_gallery</i>.
  140 + * \param truth_property (Optional) which metadata key to use from <i>truth_gallery</i>.
151 141 */
152   -BR_EXPORT void br_eval_classification(const char *predicted_gallery, const char *truth_gallery, const char * predicted_property="", const char * truth_property="");
  142 +BR_EXPORT void br_eval_classification(const char *predicted_gallery, const char *truth_gallery, const char *predicted_property = "", const char *truth_property = "");
153 143  
154 144 /*!
155 145 * \brief Evaluates and prints clustering accuracy to the terminal.
... ... @@ -182,8 +172,10 @@ BR_EXPORT float br_eval_landmarking(const char *predicted_gallery, const char *t
182 172 * \brief Evaluates regression accuracy to disk.
183 173 * \param predicted_gallery The predicted br::Gallery.
184 174 * \param truth_gallery The ground truth br::Gallery.
  175 + * \param predicted_property (Optional) which metadata key to use from <i>predicted_gallery</i>.
  176 + * \param truth_property (Optional) which metadata key to use from <i>truth_gallery</i>.
185 177 */
186   -BR_EXPORT void br_eval_regression(const char *predicted_gallery, const char *truth_gallery, const char * predicted_property="", const char * truth_property="");
  178 +BR_EXPORT void br_eval_regression(const char *predicted_gallery, const char *truth_gallery, const char *predicted_property = "", const char *truth_property = "");
187 179  
188 180 /*!
189 181 * \brief Wraps br::Context::finalize()
... ... @@ -267,7 +259,7 @@ BR_EXPORT const char *br_objects(const char *abstractions = &quot;.*&quot;, const char *im
267 259 *
268 260 * OpenBR uses file and folder names to automatically determine the plot legend.
269 261 * For example, let's consider the case where three algorithms (<tt>A</tt>, <tt>B</tt>, & <tt>C</tt>) were each evaluated on two datasets (<tt>Y</tt> & <tt>Z</tt>).
270   - * The suggested way to plot these experiments on the same graph is to create a folder named <tt>Algorithm_Dataset</tt> that contains the six <tt>.csv</tt> files produced by \ref br_eval: <tt>A_Y.csv</tt>, <tt>A_Z.csv</tt>, <tt>B_Y.csv</tt>, <tt>B_Z.csv</tt>, <tt>C_Y.csv</tt>, & <tt>C_Z.csv</tt>.
  262 + * The suggested way to plot these experiments on the same graph is to create a folder named <tt>Algorithm_Dataset</tt> that contains the six <tt>.csv</tt> files produced by br_eval <tt>A_Y.csv</tt>, <tt>A_Z.csv</tt>, <tt>B_Y.csv</tt>, <tt>B_Z.csv</tt>, <tt>C_Y.csv</tt>, & <tt>C_Z.csv</tt>.
271 263 * The '<tt>_</tt>' character plays a special role in determining the legend title(s) and value(s).
272 264 * In this case, <tt>A</tt>, <tt>B</tt>, & <tt>C</tt> will be identified as different values of type <tt>Algorithm</tt>, and each will be assigned its own color; <tt>Y</tt> & <tt>Z</tt> will be identified as different values of type Dataset, and each will be assigned its own line style.
273 265 *
... ... @@ -291,6 +283,8 @@ BR_EXPORT bool br_plot(int num_files, const char *files[], const char *destinati
291 283 * -# Discrete Precision Recall (DiscretePR)
292 284 * -# Continuous Precision Recall (ContinuousPR)
293 285 * -# Bounding Box Overlap Histogram (Overlap)
  286 + * -# Average Overlap Table (AverageOverlap)
  287 + * -# Average Overlap Heatmap (AverageOverlap)
294 288 *
295 289 * Detection accuracy is measured with <i>overlap fraction = bounding box intersection / union</i>.
296 290 * When computing <i>discrete</i> curves, an overlap >= 0.5 is considered a true positive, otherwise it is considered a false negative.
... ... @@ -421,4 +415,4 @@ BR_EXPORT const char *br_version();
421 415 }
422 416 #endif
423 417  
424   -#endif // __OPENBR_H
  418 +#endif // OPENBR_H
... ...
openbr/openbr_export.cpp
... ... @@ -29,7 +29,7 @@
29 29 * \section get_started Get Started
30 30 * - \ref introduction - A high-level technical overview of OpenBR.
31 31 * - \ref installation - A hacker's guide to building, editing, and running OpenBR.
32   - * - \ref qmake_integration - Add OpenBR to your Qt <tt>.pro</tt> project.
  32 + * - \ref examples - Source code illustrating common use cases.
33 33 *
34 34 * \section learn_more Learn More
35 35 * - \ref algorithm_grammar - How algorithms are constructed from string descriptions.
... ... @@ -37,6 +37,7 @@
37 37 * - \ref c_sdk - High-level API for running algorithms and evaluating results.
38 38 * - \ref cpp_plugin_sdk - Plugin API for extending OpenBR functionality.
39 39 * - \ref bee - A <a href="http://www.nist.gov/index.html">NIST</a> standard for evaluating biometric algorithms.
  40 + * - \ref qmake_integration - Add OpenBR to your Qt <tt>.pro</tt> project.
40 41 */
41 42  
42 43 /*!
... ... @@ -331,7 +332,7 @@ $ br -help
331 332 * \code
332 333 * $ sudo apt-get install cmake cmake-curses-gui
333 334 * \endcode
334   - * -# <a href="http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.5/opencv-2.4.5.tar.gz">Download OpenCV 2.4.5</a>
  335 + * -# <a href="http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.5/opencv-2.4.5.tar.gz">Download OpenCV 2.4.5</a>, note <a href="https://github.com/biometrics/openbr/wiki/Build-OpenCV-with-Video-Support-on-Ubuntu">this</a>
335 336 * \code
336 337 * $ cd ~/Downloads
337 338 * $ tar -xf opencv-2.4.5.tar.gz
... ...
openbr/openbr_export.h
... ... @@ -14,25 +14,21 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __OPENBR_EXPORT_H
18   -#define __OPENBR_EXPORT_H
  17 +#ifndef OPENBR_EXPORT_H
  18 +#define OPENBR_EXPORT_H
19 19  
20   -#if defined SWIG
21   -# define BR_EXPORT extern
  20 +#if defined BR_LIBRARY
  21 +# if defined _WIN32 || defined __CYGWIN__
  22 +# define BR_EXPORT __declspec(dllexport)
  23 +# else
  24 +# define BR_EXPORT __attribute__((visibility("default")))
  25 +# endif
22 26 #else
23   -# if defined BR_LIBRARY
24   -# if defined _WIN32 || defined __CYGWIN__
25   -# define BR_EXPORT __declspec(dllexport)
26   -# else
27   -# define BR_EXPORT __attribute__((visibility("default")))
28   -# endif
  27 +# if defined _WIN32 || defined __CYGWIN__
  28 +# define BR_EXPORT __declspec(dllimport)
29 29 # else
30   -# if defined _WIN32 || defined __CYGWIN__
31   -# define BR_EXPORT __declspec(dllimport)
32   -# else
33   -# define BR_EXPORT
34   -# endif
  30 +# define BR_EXPORT
35 31 # endif
36 32 #endif
37 33  
38   -#endif // __OPENBR_EXPORT_H
  34 +#endif // OPENBR_EXPORT_H
... ...
openbr/openbr_plugin.cpp
... ... @@ -996,9 +996,9 @@ void br::Context::messageHandler(QtMsgType type, const QMessageLogContext &amp;conte
996 996 switch (type) {
997 997 case QtWarningMsg: txt = QString("Warning: %1\n" ).arg(msg); break;
998 998 case QtCriticalMsg: txt = QString("Critical: %1\n").arg(msg); break;
999   - default: txt = QString("Fatal: %1\n" ).arg(msg);
  999 + default: txt = QString("Fatal: %1\n" ).arg(msg); break;
1000 1000 }
1001   - txt += " File: " + QString(context.file) + "\n Function: " + QString(context.function) + "\n Line: " + QString::number(context.line) + "\n";
  1001 + txt += " SDK Path: " + Globals->sdkPath + "\n File: " + QString(context.file) + "\n Function: " + QString(context.function) + "\n Line: " + QString::number(context.line) + "\n";
1002 1002 }
1003 1003  
1004 1004 std::cerr << txt.toStdString();
... ... @@ -1225,6 +1225,26 @@ TemplateEvent * Transform::getEvent(const QString &amp; name)
1225 1225 return NULL;
1226 1226 }
1227 1227  
  1228 +void Transform::train(const TemplateList &data)
  1229 +{
  1230 + if (!trainable) {
  1231 + qWarning("Train called on untrainable transform %s", this->metaObject()->className());
  1232 + return;
  1233 + }
  1234 + QList<TemplateList> input;
  1235 + input.append(data);
  1236 + train(input);
  1237 +}
  1238 +
  1239 +void Transform::train(const QList<TemplateList> &data)
  1240 +{
  1241 + TemplateList combined;
  1242 + foreach(const TemplateList & set, data) {
  1243 + combined.append(set);
  1244 + }
  1245 + train(combined);
  1246 +}
  1247 +
1228 1248 /* Distance - public methods */
1229 1249 Distance *Distance::make(QString str, QObject *parent)
1230 1250 {
... ...
openbr/openbr_plugin.h
... ... @@ -14,8 +14,8 @@
14 14 * limitations under the License. *
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17   -#ifndef __OPENBR_PLUGIN_H
18   -#define __OPENBR_PLUGIN_H
  17 +#ifndef BR_OPENBR_PLUGIN_H
  18 +#define BR_OPENBR_PLUGIN_H
19 19  
20 20 #ifdef __cplusplus
21 21  
... ... @@ -74,6 +74,10 @@
74 74 * \ref cli_face_recognition_search "Command Line Interface Equivalent"
75 75 * \snippet app/examples/face_recognition_search.cpp face_recognition_search
76 76 *
  77 + * \subsection cpp_face_recognition_train Face Recognition Train
  78 + * \ref cli_face_recognition_train "Command Line Interface Equivalent"
  79 + * \snippet app/examples/face_recognition_train.cpp face_recognition_train
  80 + *
77 81 * \subsection cpp_age_estimation Age Estimation
78 82 * \ref cli_age_estimation "Command Line Interface Equivalent"
79 83 * \snippet app/examples/age_estimation.cpp age_estimation
... ... @@ -1037,7 +1041,7 @@ private:
1037 1041  
1038 1042 /*!
1039 1043 * \brief For asynchronous events during template projection.
1040   - * \see #Transform::getEvent
  1044 + * \see Transform::getEvent
1041 1045 */
1042 1046 class TemplateEvent : public QObject
1043 1047 {
... ... @@ -1073,17 +1077,41 @@ public:
1073 1077 static QSharedPointer<Transform> fromAlgorithm(const QString &algorithm); /*!< \brief Retrieve an algorithm's transform. */
1074 1078  
1075 1079 virtual Transform *clone() const; /*!< \brief Copy the transform. */
1076   - virtual void train(const TemplateList &data) = 0; /*!< \brief Train the transform. */
1077   - virtual void project(const Template &src, Template &dst) const = 0; /*!< \brief Apply the transform. */
1078   - virtual void project(const TemplateList &src, TemplateList &dst) const; /*!< \brief Apply the transform. */
1079 1080  
1080   - /*!< \brief Apply the transform, may update the transform's internal state */
  1081 + /*!< \brief Train the transform. */
  1082 + virtual void train(const TemplateList &data);
  1083 +
  1084 + /*!< \brief Train the transform, separate list items represent the way calls to project would be broken up
  1085 + * Transforms that have to call train on another transform should implement train(QList), the strucutre of the
  1086 + * list should mirror the calls that would be made to project by the parent transform. For example, DistributeTemplates
  1087 + * would make a separate project call for each template it receives, and therefore sets the QList to contain single item
  1088 + * template lists before passing it on.
  1089 + * This version of train(QList) is appropriate for transforms that perform training on themselves, and don't call train
  1090 + * on other transforms. It combines everything in data into a single TemplateList, then calls train(TemplateList)
  1091 + */
  1092 + virtual void train(const QList<TemplateList> &data);
  1093 +
  1094 + /*!< \brief Apply the transform to a single template. Typically used by independent transforms */
  1095 + virtual void project(const Template &src, Template &dst) const = 0;
  1096 + /*!< \brief Apply the transform, taking the full template list as input.
  1097 + * A TemplateList is what is typically passed from transform to transform. Transforms that just
  1098 + * need to operatoe on a single template at a time (and want to output exactly 1 template) can implement
  1099 + * project(template), but transforms that want to change the structure of the TemplateList (such as flatten), or
  1100 + * or output more or less than one template (e.g. detection methods) should implement project(TemplateList) directly
  1101 + */
  1102 + virtual void project(const TemplateList &src, TemplateList &dst) const;
  1103 +
  1104 + /*!< \brief Apply the transform to a single template, may update the transform's internal state
  1105 + * By default, just call project, we can always call a const function from a non-const function.
  1106 + * If a transform implements projectUpdate, it should report true to timeVarying so that it can be
  1107 + * handled correctly by e.g. Stream.
  1108 + */
1081 1109 virtual void projectUpdate(const Template &src, Template &dst)
1082 1110 {
1083 1111 project(src, dst);
1084 1112 }
1085 1113  
1086   - /*!< \brief Apply the transform, may update the transform's internal state */
  1114 + /*!< \brief Apply the transform, may update the transform's internal state. */
1087 1115 virtual void projectUpdate(const TemplateList &src, TemplateList &dst)
1088 1116 {
1089 1117 project(src,dst);
... ... @@ -1145,7 +1173,9 @@ public:
1145 1173 * \brief Perform the minimum amount of work necessary to make a
1146 1174 * transform that can be used safely from a different thread than this
1147 1175 * transform. For transforms that aren't time-varying, nothing needs to be
1148   - * done, returning this is sufficient.
  1176 + * done, returning this is sufficient. Time varying transforms should implement this method
  1177 + * and copy enough of their state that projectUpdate can safely be called on the original
  1178 + * instance, and the copy concurrently.
1149 1179 */
1150 1180 virtual Transform * smartCopy() { return this;}
1151 1181  
... ... @@ -1292,4 +1322,4 @@ Q_DECLARE_METATYPE(QList&lt;br::Distance*&gt;)
1292 1322  
1293 1323 #endif // __cplusplus
1294 1324  
1295   -#endif // __OPENBR_PLUGIN_H
  1325 +#endif // BR_OPENBR_PLUGIN_H
... ...
openbr/plugins/algorithms.cpp
... ... @@ -44,6 +44,7 @@ class AlgorithmsInitializer : public Initializer
44 44 Globals->abbreviations.insert("AgeEstimation", "AgeRegression");
45 45 Globals->abbreviations.insert("FaceRecognition2", "{PP5Register+Affine(128,128,0.25,0.35)+Cvt(Gray)}+(Gradient+Bin(0,360,9,true))/(Blur(1)+Gamma(0.2)+DoG(1,2)+ContrastEq(0.1,10)+LBP(1,2,true)+Bin(0,10,10,true))+Merge+Integral+RecursiveIntegralSampler(4,2,8,LDA(.98)+Normalize(L1))+Cat+PCA(768)+Normalize(L1)+Quantize:UCharL1");
46 46 Globals->abbreviations.insert("CropFace", "Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(128,128,0.25,0.35)");
  47 + Globals->abbreviations.insert("4SF", "Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(128,128,0.33,0.45)+(Grid(10,10)+SIFTDescriptor(12)+ByRow)/(Blur(1.1)+Gamma(0.2)+DoG(1,2)+ContrastEq(0.1,10)+LBP(1,2)+RectRegions(8,8,6,6)+Hist(59))+PCA(0.95)+Normalize(L2)+Dup(12)+RndSubspace(0.05,1)+LDA(0.98)+Cat+PCA(0.95)+Normalize(L1)+Quantize:NegativeLogPlusOne(ByteL1)");
47 48  
48 49 // Video
49 50 Globals->abbreviations.insert("DisplayVideo", "Stream(FPSLimit(30)+Show(false,[FrameNumber])+Discard)");
... ...
openbr/plugins/cluster.cpp
... ... @@ -91,12 +91,14 @@ class KNNTransform : public Transform
91 91 Q_PROPERTY(int numSubjects READ get_numSubjects WRITE set_numSubjects RESET reset_numSubjects STORED false)
92 92 Q_PROPERTY(QString inputVariable READ get_inputVariable WRITE set_inputVariable RESET reset_inputVariable STORED false)
93 93 Q_PROPERTY(QString outputVariable READ get_outputVariable WRITE set_outputVariable RESET reset_outputVariable STORED false)
  94 + Q_PROPERTY(QString galleryName READ get_galleryName WRITE set_galleryName RESET reset_galleryName STORED false)
94 95 BR_PROPERTY(int, k, 1)
95 96 BR_PROPERTY(br::Distance*, distance, NULL)
96 97 BR_PROPERTY(bool, weighted, false)
97 98 BR_PROPERTY(int, numSubjects, 1)
98 99 BR_PROPERTY(QString, inputVariable, "Label")
99 100 BR_PROPERTY(QString, outputVariable, "KNN")
  101 + BR_PROPERTY(QString, galleryName, "")
100 102  
101 103 TemplateList gallery;
102 104  
... ... @@ -126,6 +128,7 @@ class KNNTransform : public Transform
126 128 }
127 129  
128 130 dst.file.set(outputVariable, subjects.size() > 1 ? "[" + subjects.join(",") + "]" : subjects.first());
  131 + dst.file.set("Nearest", gallery[sortedScores[0].second].file.name);
129 132 }
130 133  
131 134 void store(QDataStream &stream) const
... ... @@ -137,11 +140,69 @@ class KNNTransform : public Transform
137 140 {
138 141 stream >> gallery;
139 142 }
  143 +
  144 + void init()
  145 + {
  146 + if (!galleryName.isEmpty())
  147 + gallery = TemplateList::fromGallery(galleryName);
  148 + }
140 149 };
141 150  
142 151 BR_REGISTER(Transform, KNNTransform)
143 152  
  153 +/*!
  154 + * \ingroup transforms
  155 + * \brief Chooses k random points to be centroids.
  156 + * \author Austin Blanton \cite imaus10
  157 + * \see KMeansTransform
  158 + */
  159 +class RandomCentroidsTransform : public Transform
  160 +{
  161 + Q_OBJECT
  162 + Q_PROPERTY(int kTrain READ get_kTrain WRITE set_kTrain RESET reset_kTrain STORED false)
  163 + Q_PROPERTY(int kSearch READ get_kSearch WRITE set_kSearch RESET reset_kSearch STORED false)
  164 + BR_PROPERTY(int, kTrain, 256)
  165 + BR_PROPERTY(int, kSearch, 1)
  166 +
  167 + Mat centers;
  168 + mutable QScopedPointer<flann::Index> index;
  169 + mutable QMutex mutex;
  170 +
  171 + void reindex()
  172 + {
  173 + index.reset(new flann::Index(centers, flann::LinearIndexParams()));
  174 + }
  175 +
  176 + void train(const TemplateList &data)
  177 + {
  178 + Mat flat = OpenCVUtils::toMatByRow(data.data());
  179 + QList<int> sample = Common::RandSample(kTrain, flat.rows, 0, true);
  180 + foreach (const int &idx, sample)
  181 + centers.push_back(flat.row(idx));
  182 + reindex();
  183 + }
  184 +
  185 + void project(const Template &src, Template &dst) const
  186 + {
  187 + QMutexLocker locker(&mutex);
  188 + Mat dists, indicies;
  189 + index->knnSearch(src, indicies, dists, kSearch);
  190 + dst = indicies.reshape(1, 1);
  191 + }
  192 +
  193 + void load(QDataStream &stream)
  194 + {
  195 + stream >> centers;
  196 + reindex();
  197 + }
  198 +
  199 + void store(QDataStream &stream) const
  200 + {
  201 + stream << centers;
  202 + }
  203 +};
144 204  
  205 +BR_REGISTER(Transform, RandomCentroidsTransform)
145 206  
146 207 } // namespace br
147 208  
... ...
openbr/plugins/draw.cpp
... ... @@ -15,6 +15,8 @@
15 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16  
17 17 #include <opencv2/highgui/highgui.hpp>
  18 +#include <opencv2/imgproc/imgproc.hpp>
  19 +#include <vector>
18 20 #include "openbr_internal.h"
19 21 #include "openbr/core/opencvutils.h"
20 22  
... ... @@ -248,6 +250,100 @@ class MeanTransform : public Transform
248 250  
249 251 BR_REGISTER(Transform, MeanTransform)
250 252  
  253 +/*!
  254 + * \ingroup transforms
  255 + * \brief Load the image named in the specified property, draw it on the current matrix adjacent to the rect specified in the other property.
  256 + * \author Charles Otto \cite caotto
  257 + */
  258 +class AdjacentOverlayTransform : public Transform
  259 +{
  260 + Q_OBJECT
  261 +
  262 + Q_PROPERTY(QString imgName READ get_imgName WRITE set_imgName RESET reset_imgName STORED false)
  263 + Q_PROPERTY(QString targetName READ get_targetName WRITE set_targetName RESET reset_targetName STORED false)
  264 + BR_PROPERTY(QString, imgName, "")
  265 + BR_PROPERTY(QString, targetName, "")
  266 +
  267 + QSharedPointer<Transform> opener;
  268 + void project(const Template &src, Template &dst) const
  269 + {
  270 + dst = src;
  271 + if (imgName.isEmpty() || targetName.isEmpty() || !dst.file.contains(imgName) || !dst.file.contains(targetName))
  272 + return;
  273 +
  274 + QString im_name = src.file.get<QString>(imgName);
  275 + QRectF target_location = src.file.get<QRectF>(targetName);
  276 + Template temp_im;
  277 + opener->project(File(im_name), temp_im);
  278 + cv::Mat im = temp_im.m();
  279 +
  280 + // match width with target region
  281 + qreal target_width = target_location.width();
  282 + qreal current_width = im.cols;
  283 + qreal current_height = im.rows;
  284 +
  285 + qreal aspect_ratio = current_height / current_width;
  286 + qreal target_height = target_width * aspect_ratio;
  287 +
  288 + cv::resize(im, im, cv::Size(target_width, target_height));
  289 +
  290 + cv::Rect clip_roi;
  291 + clip_roi.x = 0;
  292 + clip_roi.y = 0;
  293 + clip_roi.width = im.cols;
  294 + clip_roi.height= im.rows;
  295 +
  296 + int half_width = src.m().cols / 2;
  297 + int out_x = 0;
  298 + cv::Rect target_roi;
  299 + // Place left
  300 + if (target_location.center().rx() > half_width) {
  301 + out_x = target_location.left() - im.cols;
  302 + if (out_x < 0) {
  303 + clip_roi.width += out_x;
  304 + out_x = 0;
  305 + }
  306 + }
  307 + // place right
  308 + else {
  309 + out_x = target_location.right();
  310 + int high = out_x + im.cols;
  311 + if (high >= src.m().cols) {
  312 + clip_roi.width -= high - src.m().cols + 1;
  313 + }
  314 + }
  315 + target_roi.x = out_x;
  316 + target_roi.width = clip_roi.width;
  317 + target_roi.y = target_location.top();
  318 + target_roi.height = clip_roi.height;
  319 +
  320 + im = im(clip_roi);
  321 +
  322 + cv::Mat outIm = dst.m();
  323 + std::vector<cv::Mat> channels;
  324 + cv::split(outIm, channels);
  325 +
  326 + std::vector<cv::Mat> patch_channels;
  327 + cv::split(im, patch_channels);
  328 +
  329 + for (size_t i=0; i < channels.size(); i++)
  330 + {
  331 + cv::addWeighted(channels[i](target_roi), 0, patch_channels[i % patch_channels.size()], 1, 0,channels[i](target_roi));
  332 + }
  333 + cv::merge(channels, outIm);
  334 + dst.m() = outIm;
  335 + }
  336 +
  337 + void init()
  338 + {
  339 + opener = br::Transform::fromAlgorithm("Cache(Open)");
  340 +
  341 + }
  342 +
  343 +};
  344 +
  345 +BR_REGISTER(Transform, AdjacentOverlayTransform)
  346 +
251 347 // TODO: re-implement EditTransform using Qt
252 348 #if 0
253 349 /*!
... ...
openbr/plugins/eigen3.cpp
... ... @@ -84,7 +84,7 @@ private:
84 84 for (int i=0; i<instances; i++)
85 85 data.col(i) = Eigen::Map<const Eigen::MatrixXf>(trainingSet[i].m().ptr<float>(), dimsIn, 1).cast<double>();
86 86  
87   - train(data);
  87 + trainCore(data);
88 88 }
89 89  
90 90 void project(const Template &src, Template &dst) const
... ... @@ -110,7 +110,7 @@ private:
110 110 }
111 111  
112 112 protected:
113   - void train(Eigen::MatrixXd data)
  113 + void trainCore(Eigen::MatrixXd data)
114 114 {
115 115 int dimsIn = data.rows();
116 116 int instances = data.cols();
... ... @@ -227,7 +227,7 @@ class RowWisePCATransform : public PCATransform
227 227 for (int i=0; i<t.m().rows; i++)
228 228 data.col(index++) = Eigen::Map<const Eigen::MatrixXf>(t.m().ptr<float>(i), dimsIn, 1).cast<double>();
229 229  
230   - PCATransform::train(data);
  230 + PCATransform::trainCore(data);
231 231 }
232 232  
233 233 void project(const Template &src, Template &dst) const
... ... @@ -358,7 +358,7 @@ class LDATransform : public Transform
358 358 // one per class), the total rank of the covariance/scatter
359 359 // matrix that will be computed in PCA is bound by instances - numClasses.
360 360 space1.keep = std::min(dimsIn, instances-numClasses);
361   - space1.train(data);
  361 + space1.trainCore(data);
362 362  
363 363 // Divide each eigenvector by sqrt of eigenvalue.
364 364 // This has the effect of whitening the within-class scatter.
... ... @@ -369,7 +369,7 @@ class LDATransform : public Transform
369 369 {
370 370 space1.drop = instances - numClasses;
371 371 space1.keep = std::min(dimsIn, instances) - space1.drop;
372   - space1.train(data);
  372 + space1.trainCore(data);
373 373 }
374 374 else
375 375 {
... ... @@ -381,7 +381,7 @@ class LDATransform : public Transform
381 381 // to discard Null space). We keep the Null space b/c this is where
382 382 // the within-class scatter goes to zero, i.e. it is very useful.
383 383 space1.keep = dimsIn;
384   - space1.train(data);
  384 + space1.trainCore(data);
385 385  
386 386 if (dimsIn > instances - numClasses) {
387 387 // Here, we are replacing the eigenvalue of the null space
... ... @@ -445,7 +445,7 @@ class LDATransform : public Transform
445 445 int dim2 = std::min((int)space1.keep, numClasses-1);
446 446 PCATransform space2;
447 447 space2.keep = dim2;
448   - space2.train(data2);
  448 + space2.trainCore(data2);
449 449  
450 450 // Compute final projection matrix
451 451 projection = ((space2.eVecs.transpose() * space1.eVecs.transpose()) * pca.eVecs.transpose()).transpose();
... ...
openbr/plugins/format.cpp
... ... @@ -726,6 +726,58 @@ class xmlFormat : public Format
726 726  
727 727 BR_REGISTER(Format, xmlFormat)
728 728  
  729 +/*!
  730 + * \ingroup formats
  731 + * \brief Reads in scores or ground truth from a text table.
  732 + * \author Josh Klontz
  733 + *
  734 + * Example of the format:
  735 + * \code
  736 + * 2.2531514 FALSE 99990377 99990164
  737 + * 2.2549822 TRUE 99990101 99990101
  738 + * \endcode
  739 + */
  740 +class scoresFormat : public Format
  741 +{
  742 + Q_OBJECT
  743 + Q_PROPERTY(int column READ get_column WRITE set_column RESET reset_column STORED false)
  744 + Q_PROPERTY(bool groundTruth READ get_groundTruth WRITE set_groundTruth RESET reset_groundTruth STORED false)
  745 + Q_PROPERTY(QString delimiter READ get_delimiter WRITE set_delimiter RESET reset_delimiter STORED false)
  746 + BR_PROPERTY(int, column, 0)
  747 + BR_PROPERTY(bool, groundTruth, false)
  748 + BR_PROPERTY(QString, delimiter, "\t")
  749 +
  750 + Template read() const
  751 + {
  752 + QFile f(file.name);
  753 + if (!f.open(QFile::ReadOnly | QFile::Text))
  754 + qFatal("Failed to open %s for reading.", qPrintable(f.fileName()));
  755 + QList<float> values;
  756 + while (!f.atEnd()) {
  757 + const QStringList words = QString(f.readLine()).split(delimiter);
  758 + if (words.size() <= column) qFatal("Expected file to have at least %d columns.", column+1);
  759 + const QString &word = words[column];
  760 + bool ok;
  761 + float value = word.toFloat(&ok);
  762 + if (!ok) value = (QtUtils::toBool(word) ? BEE::Match : BEE::NonMatch);
  763 + values.append(value);
  764 + }
  765 + if (values.size() == 1)
  766 + qWarning("Only one value read, double check file line endings.");
  767 + Mat result = OpenCVUtils::toMat(values);
  768 + if (groundTruth) result.convertTo(result, CV_8U);
  769 + return result;
  770 + }
  771 +
  772 + void write(const Template &t) const
  773 + {
  774 + (void) t;
  775 + qFatal("Not implemented.");
  776 + }
  777 +};
  778 +
  779 +BR_REGISTER(Format, scoresFormat)
  780 +
729 781 } // namespace br
730 782  
731 783 #include "format.moc"
... ...
openbr/plugins/hist.cpp
... ... @@ -54,7 +54,7 @@ class HistTransform : public UntrainableTransform
54 54 const float* ranges[] = {range};
55 55 Mat hist, chan = mv[i];
56 56 // calcHist requires F or U, might as well convert just in case
57   - if (mv[i].depth() != CV_8U || mv[i].depth() == CV_32F)
  57 + if (mv[i].depth() != CV_8U && mv[i].depth() != CV_32F)
58 58 mv[i].convertTo(chan, CV_32F);
59 59 calcHist(&chan, 1, channels, Mat(), hist, 1, histSize, ranges);
60 60 memcpy(m.ptr(i), hist.ptr(), dims * sizeof(float));
... ...
openbr/plugins/jni.cmake 0 → 100644
  1 +set(BR_WITH_JAVA OFF CACHE BOOL "Use Java Code")
  2 +
  3 +if (${BR_WITH_JAVA})
  4 + find_package(JNI REQUIRED)
  5 + find_package(JAVA REQUIRED)
  6 + set(BR_THIRDPARTY_SRC ${BR_THIRDPARTY_SRC} plugins/jni.cpp)
  7 + set(BR_THIRDPARTY_LIBS ${BR_THIRDPARTY_LIBS} ${JNI_LIBRARIES})
  8 +
  9 + include_directories(${JAVA_INCLUDE_PATH})
  10 + include_directories(${JAVA_INCLUDE_PATH2})
  11 +
  12 +endif()
... ...
openbr/plugins/jni.cpp 0 → 100644
  1 +//Need to include location of jvm.dll (jdk version) and its parent directory in the environment variables
  2 +
  3 +#include <limits>
  4 +#include "openbr_internal.h"
  5 +#include "openbr/core/resource.h"
  6 +#include <jni.h>
  7 +
  8 +namespace br
  9 +{
  10 +
  11 +/*!
  12 + * \ingroup initializers
  13 + * \brief Initialize JNI
  14 + * \author Jordan Cheney \cite jcheney
  15 + */
  16 +class JNIInitializer : public Initializer
  17 +{
  18 + Q_OBJECT
  19 + public:
  20 + static JavaVM* jvm;
  21 + static JavaVMInitArgs vm_args;
  22 +
  23 + void initialize() const
  24 + {
  25 + JNIEnv *env;
  26 + JavaVMOption options[1];
  27 +
  28 + //Location of Java files
  29 + QByteArray classpath = QString("-Djava.class.path=").append(Globals->sdkPath).append(QString("/share/openbr/Java/jniLibraries/")).toLocal8Bit();
  30 + char *charClasspath = classpath.data();
  31 +
  32 + options[0].optionString = charClasspath;
  33 + vm_args.version = JNI_VERSION_1_6;
  34 + vm_args.nOptions = 1;
  35 + vm_args.options = options;
  36 + vm_args.ignoreUnrecognized = JNI_FALSE;
  37 +
  38 + JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
  39 +
  40 + Globals->abbreviations.insert("JNIHelloWorld","Open+JNI(HelloWorld)");
  41 + }
  42 +
  43 + void finalize() const
  44 + {
  45 + jvm->DestroyJavaVM();
  46 + }
  47 +};
  48 +
  49 +JavaVM *JNIInitializer::jvm;
  50 +JavaVMInitArgs JNIInitializer::vm_args;
  51 +
  52 +BR_REGISTER(Initializer, JNIInitializer)
  53 +
  54 +/*!
  55 + * \ingroup transforms
  56 + * \brief Execute Java code from OpenBR using the JNI
  57 + * \author Jordan Cheney \cite jcheney
  58 + */
  59 +
  60 +class JNITransform : public UntrainableTransform
  61 +{
  62 + Q_OBJECT
  63 + Q_PROPERTY(QString className READ get_className WRITE set_className RESET reset_className STORED false)
  64 + BR_PROPERTY(QString, className, "")
  65 +
  66 + void project(const Template &src, Template &dst) const
  67 + {
  68 + (void)dst; //Eliminates a compiler warning.
  69 +
  70 + JNIEnv *env;
  71 +
  72 + //Attach current thread to the thread of the JavaVM and access env
  73 + JNIInitializer::jvm->AttachCurrentThreadAsDaemon((void**)&env, NULL);
  74 + if (JNIInitializer::jvm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) {
  75 + qFatal("Failed to initialize JNI environment");
  76 + }
  77 +
  78 + //Convert QString to const char*
  79 + QByteArray tmpClass = className.toLocal8Bit();
  80 + const char* charClassName = tmpClass.constData();
  81 +
  82 + //Call java method
  83 + jclass cls = env->FindClass(charClassName);
  84 + if (cls == NULL) { qFatal("Class not found"); }
  85 + jmethodID mid = env->GetStaticMethodID(cls, "project", "(Ljava/lang/String;)V");
  86 + if (mid == NULL) { qFatal("MethodID not found"); }
  87 +
  88 + QByteArray tmp = src.file.name.toLocal8Bit();
  89 + const char* fileName = tmp.constData();
  90 +
  91 + //Convert char* to java compatible string
  92 + jstring jfileName = env->NewStringUTF(fileName);
  93 +
  94 + env->CallStaticObjectMethod(cls, mid, jfileName);
  95 +
  96 + JNIInitializer::jvm->DetachCurrentThread();
  97 + }
  98 +};
  99 +
  100 +BR_REGISTER(Transform, JNITransform)
  101 +
  102 +} // namespace br
  103 +
  104 +#include "jni.moc"
... ...
openbr/plugins/keypoint.cpp
... ... @@ -97,6 +97,7 @@ class KeyPointDescriptorTransform : public UntrainableTransform
97 97 else
98 98 foreach (const QPointF &landmark, src.file.points())
99 99 keyPoints.push_back(KeyPoint(landmark.x(), landmark.y(), size));
  100 + if (keyPoints.empty()) return;
100 101 descriptorExtractor->compute(src, keyPoints, dst);
101 102 }
102 103 };
... ...
openbr/plugins/mask.cpp
... ... @@ -180,6 +180,26 @@ class LargestConvexAreaTransform : public UntrainableTransform
180 180  
181 181 BR_REGISTER(Transform, LargestConvexAreaTransform)
182 182  
  183 +/*!
  184 + * \ingroup transforms
  185 + * \brief Applies a mask from the metadata.
  186 + * \author Austin Blanton \cite imaus10
  187 + */
  188 +class ApplyMaskTransform : public UntrainableTransform
  189 +{
  190 + Q_OBJECT
  191 +
  192 + void project(const Template &src, Template &dst) const
  193 + {
  194 + if (src.file.contains("Mask"))
  195 + src.m().copyTo(dst, src.file.get<Mat>("Mask"));
  196 + else
  197 + dst = src;
  198 + }
  199 +};
  200 +
  201 +BR_REGISTER(Transform, ApplyMaskTransform)
  202 +
183 203 } // namespace br
184 204  
185 205 #include "mask.moc"
... ...
openbr/plugins/meta.cpp
... ... @@ -57,7 +57,7 @@ static TemplateList Expanded(const TemplateList &amp;templates)
57 57 return expanded;
58 58 }
59 59  
60   -static void _train(Transform *transform, const TemplateList *data)
  60 +static void _train(Transform *transform, const QList<TemplateList> *data)
61 61 {
62 62 transform->train(*data);
63 63 }
... ... @@ -82,18 +82,11 @@ class PipeTransform : public CompositeTransform
82 82 *srcdst >> *transforms[i];
83 83 }
84 84  
85   - void train(const TemplateList &data)
  85 + void train(const QList<TemplateList> &data)
86 86 {
87 87 if (!trainable) return;
88 88  
89   - TemplateList copy(data);
90   - QList<TemplateList> singleItemLists;
91   - for (int i=0; i < copy.size(); i++)
92   - {
93   - TemplateList temp;
94   - temp.append(copy[i]);
95   - singleItemLists.append(temp);
96   - }
  89 + QList<TemplateList> dataLines(data);
97 90  
98 91 int i = 0;
99 92 while (i < transforms.size()) {
... ... @@ -102,23 +95,18 @@ class PipeTransform : public CompositeTransform
102 95 // Conditional statement covers likely case that first transform is untrainable
103 96 if (transforms[i]->trainable) {
104 97 fprintf(stderr, " training...");
105   - transforms[i]->train(copy);
  98 + transforms[i]->train(dataLines);
106 99 }
107 100  
108 101 // if the transform is time varying, we can't project it in parallel
109 102 if (transforms[i]->timeVarying()) {
110 103 fprintf(stderr, "\n%s projecting...", qPrintable(transforms[i]->objectName()));
111   - for (int j=0; j < singleItemLists.size();j++)
112   - transforms[i]->projectUpdate(singleItemLists[j], singleItemLists[j]);
  104 + for (int j=0; j < dataLines.size();j++)
  105 + transforms[i]->projectUpdate(dataLines[j], dataLines[j]);
113 106  
114 107 // advance i since we already projected for this stage.
115 108 i++;
116 109  
117   - // set up copy again
118   - copy.clear();
119   - for (int j=0; j < singleItemLists.size(); j++)
120   - copy.append(singleItemLists[j]);
121   -
122 110 // the next stage might be trainable, so continue to evaluate it.
123 111 continue;
124 112 }
... ... @@ -136,14 +124,10 @@ class PipeTransform : public CompositeTransform
136 124  
137 125 fprintf(stderr, " projecting...");
138 126 QFutureSynchronizer<void> futures;
139   - for (int j=0; j < singleItemLists.size(); j++)
140   - futures.addFuture(QtConcurrent::run(this, &PipeTransform::_projectPartial, &singleItemLists[j], i, nextTrainableTransform));
  127 + for (int j=0; j < dataLines.size(); j++)
  128 + futures.addFuture(QtConcurrent::run(this, &PipeTransform::_projectPartial, &dataLines[j], i, nextTrainableTransform));
141 129 futures.waitForFinished();
142 130  
143   - copy.clear();
144   - for (int j=0; j < singleItemLists.size(); j++)
145   - copy.append(singleItemLists[j]);
146   -
147 131 i = nextTrainableTransform;
148 132 }
149 133 }
... ... @@ -195,6 +179,26 @@ class PipeTransform : public CompositeTransform
195 179 }
196 180 }
197 181  
  182 + void init()
  183 + {
  184 + QList<Transform *> flattened;
  185 + for (int i=0;i < transforms.size(); i++)
  186 + {
  187 + PipeTransform * probe = dynamic_cast<PipeTransform *> (transforms[i]);
  188 + if (!probe) {
  189 + flattened.append(transforms[i]);
  190 + continue;
  191 + }
  192 + for (int j=0; j < probe->transforms.size(); j++)
  193 + {
  194 + flattened.append(probe->transforms[j]);
  195 + }
  196 + }
  197 + transforms = flattened;
  198 +
  199 + CompositeTransform::init();
  200 + }
  201 +
198 202 protected:
199 203 // Template list project -- process templates in parallel through Transform::project
200 204 // or if parallelism is disabled, handle them sequentially
... ... @@ -296,7 +300,7 @@ class ForkTransform : public CompositeTransform
296 300 {
297 301 Q_OBJECT
298 302  
299   - void train(const TemplateList &data)
  303 + void train(const QList<TemplateList> &data)
300 304 {
301 305 if (!trainable) return;
302 306 QFutureSynchronizer<void> futures;
... ... @@ -440,7 +444,7 @@ private:
440 444 }
441 445 }
442 446  
443   - void train(const TemplateList &data)
  447 + void train(const QList<TemplateList> &data)
444 448 {
445 449 transform->train(data);
446 450 }
... ... @@ -612,14 +616,22 @@ public:
612 616 return output;
613 617 }
614 618  
615   - void train(const TemplateList &data)
  619 + void train(const QList<TemplateList> &data)
616 620 {
617 621 if (!transform->trainable) {
618 622 qWarning("Attempted to train untrainable transform, nothing will happen.");
619 623 return;
620 624 }
621 625  
622   - transform->train(data);
  626 + QList<TemplateList> separated;
  627 + foreach (const TemplateList & list, data) {
  628 + foreach(const Template & t, list) {
  629 + separated.append(TemplateList());
  630 + separated.last().append(t);
  631 + }
  632 + }
  633 +
  634 + transform->train(separated);
623 635 }
624 636  
625 637 void project(const Template &src, Template &dst) const
... ...
openbr/plugins/misc.cpp
... ... @@ -496,14 +496,16 @@ class IncrementalOutputTransform : public TimeVaryingTransform
496 496 }
497 497  
498 498 dst = src;
  499 + int idx =0;
499 500 foreach(const Template & t, src) {
500 501 if (t.empty())
501 502 continue;
502 503  
503 504 // Build the output filename for this template
504 505 QFileInfo finfo(t.file.name);
505   - QString outputName = finfo.baseName() +"_" + t.file.get<QString>("FrameNumber") + fileFormat;
  506 + QString outputName = finfo.baseName() +"_" + t.file.get<QString>("FrameNumber") + "_" + QString::number(idx)+ fileFormat;
506 507  
  508 + idx++;
507 509 Template out = t;
508 510 out.file.name = outputName;
509 511 writer->write(out);
... ...
openbr/plugins/opticalflow.cpp renamed to openbr/plugins/motion.cpp
1 1 #include <opencv2/video/tracking.hpp>
  2 +#include <opencv2/video/background_segm.hpp>
2 3 #include "openbr_internal.h"
3 4 #include "openbr/core/opencvutils.h"
4 5  
... ... @@ -52,6 +53,45 @@ class OpticalFlowTransform : public UntrainableMetaTransform
52 53  
53 54 BR_REGISTER(Transform, OpticalFlowTransform)
54 55  
  56 +/*!
  57 + * \ingroup transforms
  58 + * \brief Wraps OpenCV's BackgroundSubtractorMOG2 and puts the foreground mask in the Template metadata.
  59 + * \author Austin Blanton \cite imaus10
  60 + */
  61 +class SubtractBackgroundTransform : public TimeVaryingTransform
  62 +{
  63 + Q_OBJECT
  64 +
  65 + BackgroundSubtractorMOG2 mog;
  66 +
  67 +public:
  68 + SubtractBackgroundTransform() : TimeVaryingTransform(false, false) {}
  69 +
  70 +private:
  71 + void projectUpdate(const Template &src, Template &dst)
  72 + {
  73 + dst = src;
  74 + Mat mask;
  75 + mog(src, mask);
  76 + erode(mask, mask, Mat());
  77 + dilate(mask, mask, Mat());
  78 + dst.file.set("Mask", QVariant::fromValue(mask));
  79 + }
  80 +
  81 + void project(const Template &src, Template &dst) const
  82 + {
  83 + (void) src; (void) dst; qFatal("no way");
  84 + }
  85 +
  86 + void finalize(TemplateList &output)
  87 + {
  88 + (void) output;
  89 + mog = BackgroundSubtractorMOG2();
  90 + }
  91 +};
  92 +
  93 +BR_REGISTER(Transform, SubtractBackgroundTransform)
  94 +
55 95 } // namespace br
56 96  
57   -#include "opticalflow.moc"
  97 +#include "motion.moc"
... ...
openbr/plugins/openbr_internal.h
1   -#ifndef __OPENBR_INTERNAL_H
2   -#define __OPENBR_INTERNAL_H
  1 +#ifndef OPENBR_INTERNAL_H
  2 +#define OPENBR_INTERNAL_H
3 3  
4 4 #include "openbr/openbr_plugin.h"
5 5 #include "openbr/core/resource.h"
... ... @@ -88,7 +88,7 @@ public:
88 88 transformSource.release(aTransform);
89 89 }
90 90  
91   - void train(const TemplateList &data)
  91 + void train(const QList<TemplateList> &data)
92 92 {
93 93 baseTransform->train(data);
94 94 }
... ... @@ -242,4 +242,4 @@ protected:
242 242  
243 243 }
244 244  
245   -#endif
  245 +#endif // OPENBR_INTERNAL_H
... ...
openbr/plugins/stream.cpp
... ... @@ -1016,7 +1016,27 @@ public:
1016 1016  
1017 1017 };
1018 1018  
  1019 +// Semi-functional, doesn't do anything productive outside of stream::train
  1020 +class CollectSets : public TimeVaryingTransform
  1021 +{
  1022 + Q_OBJECT
  1023 +public:
  1024 + CollectSets() : TimeVaryingTransform(false, false) {}
  1025 +
  1026 + QList<TemplateList> sets;
  1027 +
  1028 + void projectUpdate(const TemplateList &src, TemplateList &dst)
  1029 + {
  1030 + (void) dst;
  1031 + sets.append(src);
  1032 + }
1019 1033  
  1034 + void train(const TemplateList & data)
  1035 + {
  1036 + (void) data;
  1037 + }
  1038 +
  1039 +};
1020 1040  
1021 1041 class DirectStreamTransform : public CompositeTransform
1022 1042 {
... ... @@ -1027,16 +1047,52 @@ public:
1027 1047  
1028 1048 friend class StreamTransfrom;
1029 1049  
1030   - void train(const TemplateList & data)
  1050 + void subProject(QList<TemplateList> & data, int end_idx)
  1051 + {
  1052 + if (end_idx == 0)
  1053 + return;
  1054 +
  1055 + CollectSets collector;
  1056 +
  1057 + // Set transforms to the start, up to end_idx
  1058 + QList<Transform *> backup = this->transforms;
  1059 + transforms = backup.mid(0,end_idx);
  1060 + // We use collector to retain the project structure at the end of the
  1061 + // truncated stream.
  1062 + transforms.append(&collector);
  1063 +
  1064 + // Reinitialize, we now act as a shorter stream.
  1065 + init();
  1066 +
  1067 + QList<TemplateList> output;
  1068 + for (int i=0; i < data.size(); i++) {
  1069 + projectUpdate(data[i], data[i]);
  1070 + output.append(collector.sets);
  1071 + collector.sets.clear();
  1072 + }
  1073 + data = output;
  1074 + transforms = backup;
  1075 + }
  1076 +
  1077 + void train(const QList<TemplateList> & data)
1031 1078 {
1032 1079 if (!trainable) {
1033 1080 qWarning("Attempted to train untrainable transform, nothing will happen.");
1034 1081 return;
1035 1082 }
1036   - qFatal("Stream train is currently not implemented.");
1037   - foreach(Transform * transform, transforms) {
1038   - transform->train(data);
  1083 +
  1084 + for (int i=0; i < transforms.size(); i++) {
  1085 + // OK we have a trainable transform, we need to get input data for it.
  1086 + if (transforms[i]->trainable) {
  1087 + QList<TemplateList> copy = data;
  1088 + // Project from the start to the trainable stage.
  1089 + subProject(copy,i);
  1090 +
  1091 + transforms[i]->train(copy);
  1092 + }
1039 1093 }
  1094 + // Re-initialize because subProject probably messed us up.
  1095 + init();
1040 1096 }
1041 1097  
1042 1098 bool timeVarying() const { return true; }
... ... @@ -1287,8 +1343,7 @@ public:
1287 1343 basis.projectUpdate(src,dst);
1288 1344 }
1289 1345  
1290   -
1291   - void train(const TemplateList & data)
  1346 + void train(const QList<TemplateList> & data)
1292 1347 {
1293 1348 basis.train(data);
1294 1349 }
... ...
openbr/plugins/validate.cpp
... ... @@ -7,6 +7,11 @@
7 7 namespace br
8 8 {
9 9  
  10 +static void _train(Transform * transform, TemplateList data) // think data has to be a copy -cao
  11 +{
  12 + transform->train(data);
  13 +}
  14 +
10 15 /*!
11 16 * \ingroup transforms
12 17 * \brief Cross validate a trainable transform.
... ... @@ -23,8 +28,12 @@ class CrossValidateTransform : public MetaTransform
23 28 BR_PROPERTY(QString, description, "Identity")
24 29 BR_PROPERTY(bool, leaveOneImageOut, false)
25 30  
  31 + // numPartitions copies of transform specified by description.
26 32 QList<br::Transform*> transforms;
27 33  
  34 + // Treating this transform as a leaf (in terms of update training scheme), the child transform
  35 + // of this transform will lose any structure present in the training QList<TemplateList>, which
  36 + // is generally incorrect behavior.
28 37 void train(const TemplateList &data)
29 38 {
30 39 int numPartitions = 0;
... ... @@ -84,7 +93,7 @@ class CrossValidateTransform : public MetaTransform
84 93 } else j--;
85 94 }
86 95 // Train on the remaining templates
87   - futures.addFuture(QtConcurrent::run(transforms[i], &Transform::train, partitionedData));
  96 + futures.addFuture(QtConcurrent::run(_train, transforms[i], partitionedData));
88 97 }
89 98 futures.waitForFinished();
90 99 }
... ...
scripts/downloadDatasets.sh
... ... @@ -5,6 +5,21 @@ if [ ! -f downloadDatasets.sh ]; then
5 5 exit
6 6 fi
7 7  
  8 +# AT&T
  9 +if [ ! -d ../data/ATT/img ]; then
  10 + echo "Downloading AT&T…"
  11 + if hash curl 2>/dev/null; then
  12 + curl -OL http://www.cl.cam.ac.uk/Research/DTG/attarchive/pub/data/att_faces.zip
  13 + else
  14 + wget http://www.cl.cam.ac.uk/Research/DTG/attarchive/pub/data/att_faces.zip
  15 + fi
  16 +
  17 + unzip att_faces.zip -d att_faces
  18 + mv att_faces ../data/ATT/img
  19 + rm ../data/ATT/img/README att_faces.zip
  20 +fi
  21 +
  22 +
8 23 # BioID
9 24 if [ ! -d ../data/BioID/img ]; then
10 25 echo "Downloading BioID..."
... ... @@ -20,6 +35,24 @@ if [ ! -d ../data/BioID/img ]; then
20 35 rm *.eye description.txt BioID-FaceDatabase-V1.2.zip
21 36 fi
22 37  
  38 +# KTH
  39 +if [ ! -d ../data/KTH/vid ]; then
  40 + echo "Downloading KTH..."
  41 + mkdir ../data/KTH/vid
  42 + for vidclass in {'boxing','handclapping','handwaving','jogging','running','walking'}; do
  43 + if hash curl 2>/dev/null; then
  44 + curl -OL http://www.nada.kth.se/cvap/actions/${vidclass}.zip
  45 + else
  46 + wget http://www.nada.kth.se/cvap/actions/${vidclass}.zip
  47 + fi
  48 + mkdir ../data/KTH/vid/${vidclass}
  49 + unzip ${vidclass}.zip -d ../data/KTH/vid/${vidclass}
  50 + rm ${vidclass}.zip
  51 + done
  52 + # this file is corrupted
  53 + rm -f ../data/KTH/vid/boxing/person01_boxing_d4_uncomp.avi
  54 +fi
  55 +
23 56 # LFW
24 57 if [ ! -d ../data/LFW/img ]; then
25 58 echo "Downloading LFW..."
... ... @@ -48,21 +81,3 @@ if [ ! -d ../data/MEDS/img ]; then
48 81 mv data/*/*.jpg ../data/MEDS/img
49 82 rm -r data NIST_SD32_MEDS-II_face.zip
50 83 fi
51   -
52   -# KTH
53   -if [ ! -d ../data/KTH/vid ]; then
54   - echo "Downloading KTH..."
55   - mkdir ../data/KTH/vid
56   - for vidclass in {'boxing','handclapping','handwaving','jogging','running','walking'}; do
57   - if hash curl 2>/dev/null; then
58   - curl -OL http://www.nada.kth.se/cvap/actions/${vidclass}.zip
59   - else
60   - wget http://www.nada.kth.se/cvap/actions/${vidclass}.zip
61   - fi
62   - mkdir ../data/KTH/vid/${vidclass}
63   - unzip ${vidclass}.zip -d ../data/KTH/vid/${vidclass}
64   - rm ${vidclass}.zip
65   - done
66   - # this file is corrupted
67   - rm -f ../data/KTH/vid/boxing/person01_boxing_d4_uncomp.avi
68   -fi
... ...
share/openbr/Java/jniLibraries/HelloWorld.jar 0 → 100644
No preview for this file type
share/openbr/Java/jniLibraries/HelloWorld.java 0 → 100644
  1 +public class HelloWorld {
  2 + public static void project(String imgPath) {
  3 + System.out.println();
  4 + System.out.println("Welcome to the OpenBR JNI transform! The image path string " + imgPath + " has been passed here from C++.");
  5 + System.out.println("To incorporate your Java code into OpenBR assemble a jar file will of the relevant classes and save it in the openbr/share/openbr/Java/jniLibraries folder.");
  6 + System.out.println("For documentation and additional resources on the JNI visit 'https://docs.oracle.com/javase/1.5.0/docs/guide/jni/specs/functions.html'");
  7 + System.out.println();
  8 + }
  9 +}
0 10 \ No newline at end of file
... ...