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 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <biometric-signature-set> 2 <biometric-signature-set>
3 - <biometric-signature name="boxing17-1"> 3 + <biometric-signature name="person17">
4 <presentation Label="boxing" file-name="boxing/person17_boxing_d1_uncomp.avi" /> 4 <presentation Label="boxing" file-name="boxing/person17_boxing_d1_uncomp.avi" />
5 - </biometric-signature>  
6 - <biometric-signature name="boxing17-2">  
7 <presentation Label="boxing" file-name="boxing/person17_boxing_d2_uncomp.avi" /> 5 <presentation Label="boxing" file-name="boxing/person17_boxing_d2_uncomp.avi" />
8 - </biometric-signature>  
9 - <biometric-signature name="boxing17-3">  
10 <presentation Label="boxing" file-name="boxing/person17_boxing_d3_uncomp.avi" /> 6 <presentation Label="boxing" file-name="boxing/person17_boxing_d3_uncomp.avi" />
11 - </biometric-signature>  
12 - <biometric-signature name="boxing17-4">  
13 <presentation Label="boxing" file-name="boxing/person17_boxing_d4_uncomp.avi" /> 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 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d1_uncomp.avi" /> 8 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d1_uncomp.avi" />
113 - </biometric-signature>  
114 - <biometric-signature name="handclapping17-2">  
115 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d2_uncomp.avi" /> 9 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d2_uncomp.avi" />
116 - </biometric-signature>  
117 - <biometric-signature name="handclapping17-3">  
118 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d3_uncomp.avi" /> 10 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d3_uncomp.avi" />
119 - </biometric-signature>  
120 - <biometric-signature name="handclapping17-4">  
121 <presentation Label="handclapping" file-name="handclapping/person17_handclapping_d4_uncomp.avi" /> 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 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d1_uncomp.avi" /> 12 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d1_uncomp.avi" />
221 - </biometric-signature>  
222 - <biometric-signature name="handwaving17-2">  
223 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d2_uncomp.avi" /> 13 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d2_uncomp.avi" />
224 - </biometric-signature>  
225 - <biometric-signature name="handwaving17-3">  
226 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d3_uncomp.avi" /> 14 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d3_uncomp.avi" />
227 - </biometric-signature>  
228 - <biometric-signature name="handwaving17-4">  
229 <presentation Label="handwaving" file-name="handwaving/person17_handwaving_d4_uncomp.avi" /> 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 <presentation Label="jogging" file-name="jogging/person17_jogging_d1_uncomp.avi" /> 16 <presentation Label="jogging" file-name="jogging/person17_jogging_d1_uncomp.avi" />
329 - </biometric-signature>  
330 - <biometric-signature name="jogging17-2">  
331 <presentation Label="jogging" file-name="jogging/person17_jogging_d2_uncomp.avi" /> 17 <presentation Label="jogging" file-name="jogging/person17_jogging_d2_uncomp.avi" />
332 - </biometric-signature>  
333 - <biometric-signature name="jogging17-3">  
334 <presentation Label="jogging" file-name="jogging/person17_jogging_d3_uncomp.avi" /> 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 <presentation Label="running" file-name="running/person17_running_d1_uncomp.avi" /> 20 <presentation Label="running" file-name="running/person17_running_d1_uncomp.avi" />
437 - </biometric-signature>  
438 - <biometric-signature name="running17-2">  
439 <presentation Label="running" file-name="running/person17_running_d2_uncomp.avi" /> 21 <presentation Label="running" file-name="running/person17_running_d2_uncomp.avi" />
440 - </biometric-signature>  
441 - <biometric-signature name="running17-3">  
442 <presentation Label="running" file-name="running/person17_running_d3_uncomp.avi" /> 22 <presentation Label="running" file-name="running/person17_running_d3_uncomp.avi" />
443 - </biometric-signature>  
444 - <biometric-signature name="running17-4">  
445 <presentation Label="running" file-name="running/person17_running_d4_uncomp.avi" /> 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 <presentation Label="walking" file-name="walking/person17_walking_d1_uncomp.avi" /> 24 <presentation Label="walking" file-name="walking/person17_walking_d1_uncomp.avi" />
545 - </biometric-signature>  
546 - <biometric-signature name="walking17-2">  
547 <presentation Label="walking" file-name="walking/person17_walking_d2_uncomp.avi" /> 25 <presentation Label="walking" file-name="walking/person17_walking_d2_uncomp.avi" />
548 - </biometric-signature>  
549 - <biometric-signature name="walking17-3">  
550 <presentation Label="walking" file-name="walking/person17_walking_d3_uncomp.avi" /> 26 <presentation Label="walking" file-name="walking/person17_walking_d3_uncomp.avi" />
551 - </biometric-signature>  
552 - <biometric-signature name="walking17-4">  
553 <presentation Label="walking" file-name="walking/person17_walking_d4_uncomp.avi" /> 27 <presentation Label="walking" file-name="walking/person17_walking_d4_uncomp.avi" />
554 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person18_walking_d1_uncomp.avi" /> 50 <presentation Label="walking" file-name="walking/person18_walking_d1_uncomp.avi" />
557 - </biometric-signature>  
558 - <biometric-signature name="walking18-2">  
559 <presentation Label="walking" file-name="walking/person18_walking_d2_uncomp.avi" /> 51 <presentation Label="walking" file-name="walking/person18_walking_d2_uncomp.avi" />
560 - </biometric-signature>  
561 - <biometric-signature name="walking18-3">  
562 <presentation Label="walking" file-name="walking/person18_walking_d3_uncomp.avi" /> 52 <presentation Label="walking" file-name="walking/person18_walking_d3_uncomp.avi" />
563 - </biometric-signature>  
564 - <biometric-signature name="walking18-4">  
565 <presentation Label="walking" file-name="walking/person18_walking_d4_uncomp.avi" /> 53 <presentation Label="walking" file-name="walking/person18_walking_d4_uncomp.avi" />
566 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person19_walking_d1_uncomp.avi" /> 76 <presentation Label="walking" file-name="walking/person19_walking_d1_uncomp.avi" />
569 - </biometric-signature>  
570 - <biometric-signature name="walking19-2">  
571 <presentation Label="walking" file-name="walking/person19_walking_d2_uncomp.avi" /> 77 <presentation Label="walking" file-name="walking/person19_walking_d2_uncomp.avi" />
572 - </biometric-signature>  
573 - <biometric-signature name="walking19-3">  
574 <presentation Label="walking" file-name="walking/person19_walking_d3_uncomp.avi" /> 78 <presentation Label="walking" file-name="walking/person19_walking_d3_uncomp.avi" />
575 - </biometric-signature>  
576 - <biometric-signature name="walking19-4">  
577 <presentation Label="walking" file-name="walking/person19_walking_d4_uncomp.avi" /> 79 <presentation Label="walking" file-name="walking/person19_walking_d4_uncomp.avi" />
578 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person20_walking_d1_uncomp.avi" /> 102 <presentation Label="walking" file-name="walking/person20_walking_d1_uncomp.avi" />
581 - </biometric-signature>  
582 - <biometric-signature name="walking20-2">  
583 <presentation Label="walking" file-name="walking/person20_walking_d2_uncomp.avi" /> 103 <presentation Label="walking" file-name="walking/person20_walking_d2_uncomp.avi" />
584 - </biometric-signature>  
585 - <biometric-signature name="walking20-3">  
586 <presentation Label="walking" file-name="walking/person20_walking_d3_uncomp.avi" /> 104 <presentation Label="walking" file-name="walking/person20_walking_d3_uncomp.avi" />
587 - </biometric-signature>  
588 - <biometric-signature name="walking20-4">  
589 <presentation Label="walking" file-name="walking/person20_walking_d4_uncomp.avi" /> 105 <presentation Label="walking" file-name="walking/person20_walking_d4_uncomp.avi" />
590 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person21_walking_d1_uncomp.avi" /> 128 <presentation Label="walking" file-name="walking/person21_walking_d1_uncomp.avi" />
593 - </biometric-signature>  
594 - <biometric-signature name="walking21-2">  
595 <presentation Label="walking" file-name="walking/person21_walking_d2_uncomp.avi" /> 129 <presentation Label="walking" file-name="walking/person21_walking_d2_uncomp.avi" />
596 - </biometric-signature>  
597 - <biometric-signature name="walking21-3">  
598 <presentation Label="walking" file-name="walking/person21_walking_d3_uncomp.avi" /> 130 <presentation Label="walking" file-name="walking/person21_walking_d3_uncomp.avi" />
599 - </biometric-signature>  
600 - <biometric-signature name="walking21-4">  
601 <presentation Label="walking" file-name="walking/person21_walking_d4_uncomp.avi" /> 131 <presentation Label="walking" file-name="walking/person21_walking_d4_uncomp.avi" />
602 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person22_walking_d1_uncomp.avi" /> 154 <presentation Label="walking" file-name="walking/person22_walking_d1_uncomp.avi" />
605 - </biometric-signature>  
606 - <biometric-signature name="walking22-2">  
607 <presentation Label="walking" file-name="walking/person22_walking_d2_uncomp.avi" /> 155 <presentation Label="walking" file-name="walking/person22_walking_d2_uncomp.avi" />
608 - </biometric-signature>  
609 - <biometric-signature name="walking22-3">  
610 <presentation Label="walking" file-name="walking/person22_walking_d3_uncomp.avi" /> 156 <presentation Label="walking" file-name="walking/person22_walking_d3_uncomp.avi" />
611 - </biometric-signature>  
612 - <biometric-signature name="walking22-4">  
613 <presentation Label="walking" file-name="walking/person22_walking_d4_uncomp.avi" /> 157 <presentation Label="walking" file-name="walking/person22_walking_d4_uncomp.avi" />
614 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person23_walking_d1_uncomp.avi" /> 180 <presentation Label="walking" file-name="walking/person23_walking_d1_uncomp.avi" />
617 - </biometric-signature>  
618 - <biometric-signature name="walking23-2">  
619 <presentation Label="walking" file-name="walking/person23_walking_d2_uncomp.avi" /> 181 <presentation Label="walking" file-name="walking/person23_walking_d2_uncomp.avi" />
620 - </biometric-signature>  
621 - <biometric-signature name="walking23-3">  
622 <presentation Label="walking" file-name="walking/person23_walking_d3_uncomp.avi" /> 182 <presentation Label="walking" file-name="walking/person23_walking_d3_uncomp.avi" />
623 - </biometric-signature>  
624 - <biometric-signature name="walking23-4">  
625 <presentation Label="walking" file-name="walking/person23_walking_d4_uncomp.avi" /> 183 <presentation Label="walking" file-name="walking/person23_walking_d4_uncomp.avi" />
626 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person24_walking_d1_uncomp.avi" /> 206 <presentation Label="walking" file-name="walking/person24_walking_d1_uncomp.avi" />
629 - </biometric-signature>  
630 - <biometric-signature name="walking24-2">  
631 <presentation Label="walking" file-name="walking/person24_walking_d2_uncomp.avi" /> 207 <presentation Label="walking" file-name="walking/person24_walking_d2_uncomp.avi" />
632 - </biometric-signature>  
633 - <biometric-signature name="walking24-3">  
634 <presentation Label="walking" file-name="walking/person24_walking_d3_uncomp.avi" /> 208 <presentation Label="walking" file-name="walking/person24_walking_d3_uncomp.avi" />
635 - </biometric-signature>  
636 - <biometric-signature name="walking24-4">  
637 <presentation Label="walking" file-name="walking/person24_walking_d4_uncomp.avi" /> 209 <presentation Label="walking" file-name="walking/person24_walking_d4_uncomp.avi" />
638 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person25_walking_d1_uncomp.avi" /> 232 <presentation Label="walking" file-name="walking/person25_walking_d1_uncomp.avi" />
641 - </biometric-signature>  
642 - <biometric-signature name="walking25-2">  
643 <presentation Label="walking" file-name="walking/person25_walking_d2_uncomp.avi" /> 233 <presentation Label="walking" file-name="walking/person25_walking_d2_uncomp.avi" />
644 - </biometric-signature>  
645 - <biometric-signature name="walking25-3">  
646 <presentation Label="walking" file-name="walking/person25_walking_d3_uncomp.avi" /> 234 <presentation Label="walking" file-name="walking/person25_walking_d3_uncomp.avi" />
647 - </biometric-signature>  
648 - <biometric-signature name="walking25-4">  
649 <presentation Label="walking" file-name="walking/person25_walking_d4_uncomp.avi" /> 235 <presentation Label="walking" file-name="walking/person25_walking_d4_uncomp.avi" />
650 </biometric-signature> 236 </biometric-signature>
651 </biometric-signature-set> 237 </biometric-signature-set>
data/KTH/train_16ppl.xml
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <biometric-signature-set> 2 <biometric-signature-set>
3 - <biometric-signature name="boxing1-1"> 3 + <biometric-signature name="person01">
4 <presentation Label="boxing" file-name="boxing/person01_boxing_d1_uncomp.avi" /> 4 <presentation Label="boxing" file-name="boxing/person01_boxing_d1_uncomp.avi" />
5 - </biometric-signature>  
6 - <biometric-signature name="boxing1-2">  
7 <presentation Label="boxing" file-name="boxing/person01_boxing_d2_uncomp.avi" /> 5 <presentation Label="boxing" file-name="boxing/person01_boxing_d2_uncomp.avi" />
8 - </biometric-signature>  
9 - <biometric-signature name="boxing1-3">  
10 <presentation Label="boxing" file-name="boxing/person01_boxing_d3_uncomp.avi" /> 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 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d1_uncomp.avi" /> 7 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d1_uncomp.avi" />
194 - </biometric-signature>  
195 - <biometric-signature name="handclapping1-2">  
196 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d2_uncomp.avi" /> 8 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d2_uncomp.avi" />
197 - </biometric-signature>  
198 - <biometric-signature name="handclapping1-3">  
199 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d3_uncomp.avi" /> 9 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d3_uncomp.avi" />
200 - </biometric-signature>  
201 - <biometric-signature name="handclapping1-4">  
202 <presentation Label="handclapping" file-name="handclapping/person01_handclapping_d4_uncomp.avi" /> 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 </biometric-signature> 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 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d1_uncomp.avi" /> 33 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d1_uncomp.avi" />
206 - </biometric-signature>  
207 - <biometric-signature name="handclapping2-2">  
208 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d2_uncomp.avi" /> 34 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d2_uncomp.avi" />
209 - </biometric-signature>  
210 - <biometric-signature name="handclapping2-3">  
211 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d3_uncomp.avi" /> 35 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d3_uncomp.avi" />
212 - </biometric-signature>  
213 - <biometric-signature name="handclapping2-4">  
214 <presentation Label="handclapping" file-name="handclapping/person02_handclapping_d4_uncomp.avi" /> 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 </biometric-signature> 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 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d1_uncomp.avi" /> 59 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d1_uncomp.avi" />
218 - </biometric-signature>  
219 - <biometric-signature name="handclapping3-2">  
220 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d2_uncomp.avi" /> 60 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d2_uncomp.avi" />
221 - </biometric-signature>  
222 - <biometric-signature name="handclapping3-3">  
223 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d3_uncomp.avi" /> 61 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d3_uncomp.avi" />
224 - </biometric-signature>  
225 - <biometric-signature name="handclapping3-4">  
226 <presentation Label="handclapping" file-name="handclapping/person03_handclapping_d4_uncomp.avi" /> 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 </biometric-signature> 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 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d1_uncomp.avi" /> 85 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d1_uncomp.avi" />
230 - </biometric-signature>  
231 - <biometric-signature name="handclapping4-2">  
232 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d2_uncomp.avi" /> 86 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d2_uncomp.avi" />
233 - </biometric-signature>  
234 - <biometric-signature name="handclapping4-3">  
235 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d3_uncomp.avi" /> 87 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d3_uncomp.avi" />
236 - </biometric-signature>  
237 - <biometric-signature name="handclapping4-4">  
238 <presentation Label="handclapping" file-name="handclapping/person04_handclapping_d4_uncomp.avi" /> 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 </biometric-signature> 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 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d1_uncomp.avi" /> 111 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d1_uncomp.avi" />
242 - </biometric-signature>  
243 - <biometric-signature name="handclapping5-2">  
244 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d2_uncomp.avi" /> 112 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d2_uncomp.avi" />
245 - </biometric-signature>  
246 - <biometric-signature name="handclapping5-3">  
247 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d3_uncomp.avi" /> 113 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d3_uncomp.avi" />
248 - </biometric-signature>  
249 - <biometric-signature name="handclapping5-4">  
250 <presentation Label="handclapping" file-name="handclapping/person05_handclapping_d4_uncomp.avi" /> 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 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d1_uncomp.avi" /> 115 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d1_uncomp.avi" />
431 - </biometric-signature>  
432 - <biometric-signature name="handwaving5-2">  
433 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d2_uncomp.avi" /> 116 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d2_uncomp.avi" />
434 - </biometric-signature>  
435 - <biometric-signature name="handwaving5-3">  
436 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d3_uncomp.avi" /> 117 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d3_uncomp.avi" />
437 - </biometric-signature>  
438 - <biometric-signature name="handwaving5-4">  
439 <presentation Label="handwaving" file-name="handwaving/person05_handwaving_d4_uncomp.avi" /> 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 <presentation Label="jogging" file-name="jogging/person05_jogging_d1_uncomp.avi" /> 119 <presentation Label="jogging" file-name="jogging/person05_jogging_d1_uncomp.avi" />
623 - </biometric-signature>  
624 - <biometric-signature name="jogging5-2">  
625 <presentation Label="jogging" file-name="jogging/person05_jogging_d2_uncomp.avi" /> 120 <presentation Label="jogging" file-name="jogging/person05_jogging_d2_uncomp.avi" />
626 - </biometric-signature>  
627 - <biometric-signature name="jogging5-3">  
628 <presentation Label="jogging" file-name="jogging/person05_jogging_d3_uncomp.avi" /> 121 <presentation Label="jogging" file-name="jogging/person05_jogging_d3_uncomp.avi" />
629 - </biometric-signature>  
630 - <biometric-signature name="jogging5-4">  
631 <presentation Label="jogging" file-name="jogging/person05_jogging_d4_uncomp.avi" /> 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 <presentation Label="running" file-name="running/person05_running_d1_uncomp.avi" /> 123 <presentation Label="running" file-name="running/person05_running_d1_uncomp.avi" />
815 - </biometric-signature>  
816 - <biometric-signature name="running5-2">  
817 <presentation Label="running" file-name="running/person05_running_d2_uncomp.avi" /> 124 <presentation Label="running" file-name="running/person05_running_d2_uncomp.avi" />
818 - </biometric-signature>  
819 - <biometric-signature name="running5-3">  
820 <presentation Label="running" file-name="running/person05_running_d3_uncomp.avi" /> 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 <presentation Label="walking" file-name="walking/person05_walking_d1_uncomp.avi" /> 127 <presentation Label="walking" file-name="walking/person05_walking_d1_uncomp.avi" />
1007 - </biometric-signature>  
1008 - <biometric-signature name="walking5-2">  
1009 <presentation Label="walking" file-name="walking/person05_walking_d2_uncomp.avi" /> 128 <presentation Label="walking" file-name="walking/person05_walking_d2_uncomp.avi" />
1010 - </biometric-signature>  
1011 - <biometric-signature name="walking5-3">  
1012 <presentation Label="walking" file-name="walking/person05_walking_d3_uncomp.avi" /> 129 <presentation Label="walking" file-name="walking/person05_walking_d3_uncomp.avi" />
1013 - </biometric-signature>  
1014 - <biometric-signature name="walking5-4">  
1015 <presentation Label="walking" file-name="walking/person05_walking_d4_uncomp.avi" /> 130 <presentation Label="walking" file-name="walking/person05_walking_d4_uncomp.avi" />
1016 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person06_walking_d1_uncomp.avi" /> 153 <presentation Label="walking" file-name="walking/person06_walking_d1_uncomp.avi" />
1019 - </biometric-signature>  
1020 - <biometric-signature name="walking6-2">  
1021 <presentation Label="walking" file-name="walking/person06_walking_d2_uncomp.avi" /> 154 <presentation Label="walking" file-name="walking/person06_walking_d2_uncomp.avi" />
1022 - </biometric-signature>  
1023 - <biometric-signature name="walking6-3">  
1024 <presentation Label="walking" file-name="walking/person06_walking_d3_uncomp.avi" /> 155 <presentation Label="walking" file-name="walking/person06_walking_d3_uncomp.avi" />
1025 - </biometric-signature>  
1026 - <biometric-signature name="walking6-4">  
1027 <presentation Label="walking" file-name="walking/person06_walking_d4_uncomp.avi" /> 156 <presentation Label="walking" file-name="walking/person06_walking_d4_uncomp.avi" />
1028 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person07_walking_d1_uncomp.avi" /> 179 <presentation Label="walking" file-name="walking/person07_walking_d1_uncomp.avi" />
1031 - </biometric-signature>  
1032 - <biometric-signature name="walking7-2">  
1033 <presentation Label="walking" file-name="walking/person07_walking_d2_uncomp.avi" /> 180 <presentation Label="walking" file-name="walking/person07_walking_d2_uncomp.avi" />
1034 - </biometric-signature>  
1035 - <biometric-signature name="walking7-3">  
1036 <presentation Label="walking" file-name="walking/person07_walking_d3_uncomp.avi" /> 181 <presentation Label="walking" file-name="walking/person07_walking_d3_uncomp.avi" />
1037 - </biometric-signature>  
1038 - <biometric-signature name="walking7-4">  
1039 <presentation Label="walking" file-name="walking/person07_walking_d4_uncomp.avi" /> 182 <presentation Label="walking" file-name="walking/person07_walking_d4_uncomp.avi" />
1040 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person08_walking_d1_uncomp.avi" /> 205 <presentation Label="walking" file-name="walking/person08_walking_d1_uncomp.avi" />
1043 - </biometric-signature>  
1044 - <biometric-signature name="walking8-2">  
1045 <presentation Label="walking" file-name="walking/person08_walking_d2_uncomp.avi" /> 206 <presentation Label="walking" file-name="walking/person08_walking_d2_uncomp.avi" />
1046 - </biometric-signature>  
1047 - <biometric-signature name="walking8-3">  
1048 <presentation Label="walking" file-name="walking/person08_walking_d3_uncomp.avi" /> 207 <presentation Label="walking" file-name="walking/person08_walking_d3_uncomp.avi" />
1049 - </biometric-signature>  
1050 - <biometric-signature name="walking8-4">  
1051 <presentation Label="walking" file-name="walking/person08_walking_d4_uncomp.avi" /> 208 <presentation Label="walking" file-name="walking/person08_walking_d4_uncomp.avi" />
1052 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person09_walking_d1_uncomp.avi" /> 231 <presentation Label="walking" file-name="walking/person09_walking_d1_uncomp.avi" />
1055 - </biometric-signature>  
1056 - <biometric-signature name="walking9-2">  
1057 <presentation Label="walking" file-name="walking/person09_walking_d2_uncomp.avi" /> 232 <presentation Label="walking" file-name="walking/person09_walking_d2_uncomp.avi" />
1058 - </biometric-signature>  
1059 - <biometric-signature name="walking9-3">  
1060 <presentation Label="walking" file-name="walking/person09_walking_d3_uncomp.avi" /> 233 <presentation Label="walking" file-name="walking/person09_walking_d3_uncomp.avi" />
1061 - </biometric-signature>  
1062 - <biometric-signature name="walking9-4">  
1063 <presentation Label="walking" file-name="walking/person09_walking_d4_uncomp.avi" /> 234 <presentation Label="walking" file-name="walking/person09_walking_d4_uncomp.avi" />
1064 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person10_walking_d1_uncomp.avi" /> 257 <presentation Label="walking" file-name="walking/person10_walking_d1_uncomp.avi" />
1067 - </biometric-signature>  
1068 - <biometric-signature name="walking10-2">  
1069 <presentation Label="walking" file-name="walking/person10_walking_d2_uncomp.avi" /> 258 <presentation Label="walking" file-name="walking/person10_walking_d2_uncomp.avi" />
1070 - </biometric-signature>  
1071 - <biometric-signature name="walking10-3">  
1072 <presentation Label="walking" file-name="walking/person10_walking_d3_uncomp.avi" /> 259 <presentation Label="walking" file-name="walking/person10_walking_d3_uncomp.avi" />
1073 - </biometric-signature>  
1074 - <biometric-signature name="walking10-4">  
1075 <presentation Label="walking" file-name="walking/person10_walking_d4_uncomp.avi" /> 260 <presentation Label="walking" file-name="walking/person10_walking_d4_uncomp.avi" />
1076 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person11_walking_d1_uncomp.avi" /> 283 <presentation Label="walking" file-name="walking/person11_walking_d1_uncomp.avi" />
1079 - </biometric-signature>  
1080 - <biometric-signature name="walking11-2">  
1081 <presentation Label="walking" file-name="walking/person11_walking_d2_uncomp.avi" /> 284 <presentation Label="walking" file-name="walking/person11_walking_d2_uncomp.avi" />
1082 - </biometric-signature>  
1083 - <biometric-signature name="walking11-3">  
1084 <presentation Label="walking" file-name="walking/person11_walking_d3_uncomp.avi" /> 285 <presentation Label="walking" file-name="walking/person11_walking_d3_uncomp.avi" />
1085 - </biometric-signature>  
1086 - <biometric-signature name="walking11-4">  
1087 <presentation Label="walking" file-name="walking/person11_walking_d4_uncomp.avi" /> 286 <presentation Label="walking" file-name="walking/person11_walking_d4_uncomp.avi" />
1088 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person12_walking_d1_uncomp.avi" /> 309 <presentation Label="walking" file-name="walking/person12_walking_d1_uncomp.avi" />
1091 - </biometric-signature>  
1092 - <biometric-signature name="walking12-2">  
1093 <presentation Label="walking" file-name="walking/person12_walking_d2_uncomp.avi" /> 310 <presentation Label="walking" file-name="walking/person12_walking_d2_uncomp.avi" />
1094 - </biometric-signature>  
1095 - <biometric-signature name="walking12-3">  
1096 <presentation Label="walking" file-name="walking/person12_walking_d3_uncomp.avi" /> 311 <presentation Label="walking" file-name="walking/person12_walking_d3_uncomp.avi" />
1097 - </biometric-signature>  
1098 - <biometric-signature name="walking12-4">  
1099 <presentation Label="walking" file-name="walking/person12_walking_d4_uncomp.avi" /> 312 <presentation Label="walking" file-name="walking/person12_walking_d4_uncomp.avi" />
1100 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person13_walking_d1_uncomp.avi" /> 334 <presentation Label="walking" file-name="walking/person13_walking_d1_uncomp.avi" />
1103 - </biometric-signature>  
1104 - <biometric-signature name="walking13-2">  
1105 <presentation Label="walking" file-name="walking/person13_walking_d2_uncomp.avi" /> 335 <presentation Label="walking" file-name="walking/person13_walking_d2_uncomp.avi" />
1106 - </biometric-signature>  
1107 - <biometric-signature name="walking13-3">  
1108 <presentation Label="walking" file-name="walking/person13_walking_d3_uncomp.avi" /> 336 <presentation Label="walking" file-name="walking/person13_walking_d3_uncomp.avi" />
1109 - </biometric-signature>  
1110 - <biometric-signature name="walking13-4">  
1111 <presentation Label="walking" file-name="walking/person13_walking_d4_uncomp.avi" /> 337 <presentation Label="walking" file-name="walking/person13_walking_d4_uncomp.avi" />
1112 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person14_walking_d1_uncomp.avi" /> 360 <presentation Label="walking" file-name="walking/person14_walking_d1_uncomp.avi" />
1115 - </biometric-signature>  
1116 - <biometric-signature name="walking14-2">  
1117 <presentation Label="walking" file-name="walking/person14_walking_d2_uncomp.avi" /> 361 <presentation Label="walking" file-name="walking/person14_walking_d2_uncomp.avi" />
1118 - </biometric-signature>  
1119 - <biometric-signature name="walking14-3">  
1120 <presentation Label="walking" file-name="walking/person14_walking_d3_uncomp.avi" /> 362 <presentation Label="walking" file-name="walking/person14_walking_d3_uncomp.avi" />
1121 - </biometric-signature>  
1122 - <biometric-signature name="walking14-4">  
1123 <presentation Label="walking" file-name="walking/person14_walking_d4_uncomp.avi" /> 363 <presentation Label="walking" file-name="walking/person14_walking_d4_uncomp.avi" />
1124 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person15_walking_d1_uncomp.avi" /> 386 <presentation Label="walking" file-name="walking/person15_walking_d1_uncomp.avi" />
1127 - </biometric-signature>  
1128 - <biometric-signature name="walking15-2">  
1129 <presentation Label="walking" file-name="walking/person15_walking_d2_uncomp.avi" /> 387 <presentation Label="walking" file-name="walking/person15_walking_d2_uncomp.avi" />
1130 - </biometric-signature>  
1131 - <biometric-signature name="walking15-3">  
1132 <presentation Label="walking" file-name="walking/person15_walking_d3_uncomp.avi" /> 388 <presentation Label="walking" file-name="walking/person15_walking_d3_uncomp.avi" />
1133 - </biometric-signature>  
1134 - <biometric-signature name="walking15-4">  
1135 <presentation Label="walking" file-name="walking/person15_walking_d4_uncomp.avi" /> 389 <presentation Label="walking" file-name="walking/person15_walking_d4_uncomp.avi" />
1136 </biometric-signature> 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 <presentation Label="walking" file-name="walking/person16_walking_d1_uncomp.avi" /> 412 <presentation Label="walking" file-name="walking/person16_walking_d1_uncomp.avi" />
1139 - </biometric-signature>  
1140 - <biometric-signature name="walking16-2">  
1141 <presentation Label="walking" file-name="walking/person16_walking_d2_uncomp.avi" /> 413 <presentation Label="walking" file-name="walking/person16_walking_d2_uncomp.avi" />
1142 - </biometric-signature>  
1143 - <biometric-signature name="walking16-3">  
1144 <presentation Label="walking" file-name="walking/person16_walking_d3_uncomp.avi" /> 414 <presentation Label="walking" file-name="walking/person16_walking_d3_uncomp.avi" />
1145 - </biometric-signature>  
1146 - <biometric-signature name="walking16-4">  
1147 <presentation Label="walking" file-name="walking/person16_walking_d4_uncomp.avi" /> 415 <presentation Label="walking" file-name="walking/person16_walking_d4_uncomp.avi" />
1148 </biometric-signature> 416 </biometric-signature>
1149 </biometric-signature-set> 417 </biometric-signature-set>
data/README.md
1 # Datasets 1 # Datasets
2 -* [BioID](BioID/README.md) 2 +* __[AT&T](ATT/README.md)__
  3 +* __[BioID](BioID/README.md)__
3 * [CUFS](CUFS/README.md) 4 * [CUFS](CUFS/README.md)
4 * [CUFSF](CUFSF/README.md) 5 * [CUFSF](CUFSF/README.md)
5 -* [HFB](HFB/README.md) 6 +* [FDDB](FDDB/README.md)
6 * [FERET](FERET/README.md) 7 * [FERET](FERET/README.md)
7 * [FRGC](FRGC/README.md) 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 * [MNIST](MNIST/README.md) 13 * [MNIST](MNIST/README.md)
11 * [PCSO](PCSO/README.md) 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 Researchers should contact the respective owners of the other datasets in order to obtain a copy. 18 Researchers should contact the respective owners of the other datasets in order to obtain a copy.
17 The provided sigsets indicate how the images are expected to be arranged in directories, generally following the conventions established by the original authors. 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,8 +14,8 @@
14 * limitations under the License. * 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 #include <QList> 20 #include <QList>
21 #include <QPair> 21 #include <QPair>
@@ -52,4 +52,4 @@ namespace BEE @@ -52,4 +52,4 @@ namespace BEE
52 void combineMasks(const QStringList &inputMasks, const QString &outputMask, const QString &method); 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,8 +14,8 @@
14 * limitations under the License. * 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 #include <QList> 20 #include <QList>
21 #include <QString> 21 #include <QString>
@@ -34,4 +34,4 @@ namespace br @@ -34,4 +34,4 @@ namespace br
34 void WriteClusters(const Clusters &clusters, const QString &csv); 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,8 +14,8 @@
14 * limitations under the License. * 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 #include <QDebug> 20 #include <QDebug>
21 #include <QList> 21 #include <QList>
@@ -332,4 +332,4 @@ V&lt;T&gt; Downsample(V&lt;T&gt; vals, int k) @@ -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,19 +79,28 @@ float Evaluate(const QString &amp;simmat, const QString &amp;mask, const QString &amp;csv)
79 79
80 // Read similarity matrix 80 // Read similarity matrix
81 QString target, query; 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 // Read mask matrix 90 // Read mask matrix
85 Mat truth; 91 Mat truth;
86 if (mask.isEmpty()) { 92 if (mask.isEmpty()) {
87 // Use the galleries specified in the similarity matrix 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 truth = BEE::makeMask(TemplateList::fromGallery(target).files(), 96 truth = BEE::makeMask(TemplateList::fromGallery(target).files(),
89 TemplateList::fromGallery(query).files()); 97 TemplateList::fromGallery(query).files());
90 } else { 98 } else {
91 File maskFile(mask); 99 File maskFile(mask);
92 maskFile.set("rows", scores.rows); 100 maskFile.set("rows", scores.rows);
93 maskFile.set("columns", scores.cols); 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 return Evaluate(scores, truth, csv); 106 return Evaluate(scores, truth, csv);
@@ -477,6 +486,7 @@ float EvalDetection(const QString &amp;predictedGallery, const QString &amp;truthGallery @@ -477,6 +486,7 @@ float EvalDetection(const QString &amp;predictedGallery, const QString &amp;truthGallery
477 } 486 }
478 averageOverlap = totalOverlap / keep; 487 averageOverlap = totalOverlap / keep;
479 } 488 }
  489 + lines.append(QString("AverageOverlap,%1,").arg(QString::number(averageOverlap)));
480 490
481 QtUtils::writeFile(csv, lines); 491 QtUtils::writeFile(csv, lines);
482 qDebug("Average Overlap = %.3f", averageOverlap); 492 qDebug("Average Overlap = %.3f", averageOverlap);
openbr/core/eval.h
@@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
14 * limitations under the License. * 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 #include <QList> 20 #include <QList>
21 #include <QString> 21 #include <QString>
@@ -32,5 +32,5 @@ namespace br @@ -32,5 +32,5 @@ namespace br
32 void EvalRegression(const QString &predictedGallery, const QString &truthGallery, QString predictedProperty = "", QString truthProperty = ""); 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,8 +14,8 @@
14 * limitations under the License. * 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 #include <QString> 20 #include <QString>
21 #include <QStringList> 21 #include <QStringList>
@@ -25,4 +25,4 @@ namespace br @@ -25,4 +25,4 @@ namespace br
25 void Fuse(const QStringList &inputSimmats, File mask, const QString &normalization, const QString &fusion, const QString &outputSimmat); 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,8 +14,8 @@
14 * limitations under the License. * 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 #include <QDataStream> 20 #include <QDataStream>
21 #include <QDebug> 21 #include <QDebug>
@@ -157,4 +157,4 @@ public: @@ -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,6 +311,7 @@ bool PlotDetection(const QStringList &amp;files, const File &amp;destination, bool show)
311 "DiscretePR <- data[grep(\"DiscretePR\",data$Plot),-c(1)]\n" 311 "DiscretePR <- data[grep(\"DiscretePR\",data$Plot),-c(1)]\n"
312 "ContinuousPR <- data[grep(\"ContinuousPR\",data$Plot),-c(1)]\n" 312 "ContinuousPR <- data[grep(\"ContinuousPR\",data$Plot),-c(1)]\n"
313 "Overlap <- data[grep(\"Overlap\",data$Plot),-c(1)]\n" 313 "Overlap <- data[grep(\"Overlap\",data$Plot),-c(1)]\n"
  314 + "AverageOverlap <- data[grep(\"AverageOverlap\",data$Plot),-c(1)]\n"
314 "rm(data)\n" 315 "rm(data)\n"
315 "\n"); 316 "\n");
316 317
@@ -341,6 +342,12 @@ bool PlotDetection(const QStringList &amp;files, const File &amp;destination, bool show) @@ -341,6 +342,12 @@ bool PlotDetection(const QStringList &amp;files, const File &amp;destination, bool show)
341 (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 (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 QString(" + theme(aspect.ratio=1)\n\n"))); 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 return p.finalize(show); 351 return p.finalize(show);
345 } 352 }
346 353
openbr/core/plot.h
@@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
14 * limitations under the License. * 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 #include <QPair> 20 #include <QPair>
21 #include <QString> 21 #include <QString>
@@ -30,4 +30,4 @@ namespace br @@ -30,4 +30,4 @@ namespace br
30 bool PlotMetadata(const QStringList &files, const QString &destination, bool show = false); 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,8 +186,9 @@ QString find(const QString &amp;file, const QString &amp;alt)
186 bool toBool(const QString &string) 186 bool toBool(const QString &string)
187 { 187 {
188 bool ok; 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 int toInt(const QString &string) 194 int toInt(const QString &string)
openbr/core/qtutils.h
@@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
14 * limitations under the License. * 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 #include <QByteArray> 20 #include <QByteArray>
21 #include <QDir> 21 #include <QDir>
@@ -78,4 +78,4 @@ namespace QtUtils @@ -78,4 +78,4 @@ namespace QtUtils
78 float euclideanLength(const QPointF &point); 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,8 +14,8 @@
14 * limitations under the License. * 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 #include <QHash> 20 #include <QHash>
21 #include <QList> 21 #include <QList>
@@ -26,6 +26,9 @@ @@ -26,6 +26,9 @@
26 #include <QThread> 26 #include <QThread>
27 #include <openbr/openbr_plugin.h> 27 #include <openbr/openbr_plugin.h>
28 28
  29 +namespace br
  30 +{
  31 +
29 template <typename T> 32 template <typename T>
30 class ResourceMaker 33 class ResourceMaker
31 { 34 {
@@ -97,4 +100,6 @@ public: @@ -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,8 +14,8 @@
14 * limitations under the License. * 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 #include <string> 20 #include <string>
21 #include <vector> 21 #include <vector>
@@ -413,4 +413,4 @@ struct BR_EXPORT SdkEstimator : public Estimator @@ -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 #include <QComboBox> 4 #include <QComboBox>
5 #include <QString> 5 #include <QString>
@@ -29,4 +29,4 @@ signals: @@ -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 #include <QLabel> 4 #include <QLabel>
5 #include <QWidget> 5 #include <QWidget>
@@ -33,4 +33,4 @@ signals: @@ -33,4 +33,4 @@ signals:
33 33
34 } // namespace br 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 #include <QComboBox> 4 #include <QComboBox>
5 #include <QString> 5 #include <QString>
@@ -30,4 +30,4 @@ signals: @@ -30,4 +30,4 @@ signals:
30 30
31 } // namespace br 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 #include <QFutureWatcher> 4 #include <QFutureWatcher>
5 #include <QImage> 5 #include <QImage>
@@ -55,4 +55,4 @@ signals: @@ -55,4 +55,4 @@ signals:
55 55
56 } // namespace br 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 #include <QMainWindow> 4 #include <QMainWindow>
5 #include <QWidget> 5 #include <QWidget>
@@ -30,4 +30,4 @@ public slots: @@ -30,4 +30,4 @@ public slots:
30 30
31 } // namespace br 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 #include <QAction> 4 #include <QAction>
5 #include <QList> 5 #include <QList>
@@ -27,4 +27,4 @@ public slots: @@ -27,4 +27,4 @@ public slots:
27 27
28 } // namespace br 28 } // namespace br
29 29
30 -#endif // HELP_H 30 +#endif // BR_HELP_H
openbr/gui/imageviewer.h
@@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
14 * limitations under the License. * 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 #include <QImage> 20 #include <QImage>
21 #include <QKeyEvent> 21 #include <QKeyEvent>
@@ -61,4 +61,4 @@ private slots: @@ -61,4 +61,4 @@ private slots:
61 61
62 } // namespace br 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 #include <QLabel> 4 #include <QLabel>
5 #include <QProgressBar> 5 #include <QProgressBar>
@@ -28,4 +28,4 @@ private slots: @@ -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 #include <QLabel> 4 #include <QLabel>
5 #include <QWidget> 5 #include <QWidget>
@@ -21,4 +21,4 @@ public slots: @@ -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 #include <QCloseEvent> 4 #include <QCloseEvent>
5 #include <QLabel> 5 #include <QLabel>
@@ -28,4 +28,4 @@ private slots: @@ -28,4 +28,4 @@ private slots:
28 28
29 } // namespace br 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 #include <QLabel> 4 #include <QLabel>
5 #include <QList> 5 #include <QList>
@@ -43,4 +43,4 @@ public slots: @@ -43,4 +43,4 @@ public slots:
43 43
44 } // namespace br 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 #include <QDragEnterEvent> 4 #include <QDragEnterEvent>
5 #include <QDropEvent> 5 #include <QDropEvent>
@@ -58,4 +58,4 @@ signals: @@ -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 #include <QGridLayout> 4 #include <QGridLayout>
5 #include <QList> 5 #include <QList>
@@ -35,4 +35,4 @@ signals: @@ -35,4 +35,4 @@ signals:
35 35
36 } // namespace br 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,8 +14,8 @@
14 * limitations under the License. * 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 #include <QHBoxLayout> 20 #include <QHBoxLayout>
21 #include <QComboBox> 21 #include <QComboBox>
@@ -38,4 +38,4 @@ public: @@ -38,4 +38,4 @@ public:
38 38
39 } // namespace br 39 } // namespace br
40 40
41 -#endif // __TRANSFORMEDITOR_H 41 +#endif // BR_TRANSFORMEDITOR_H
openbr/gui/transformlisteditor.h
@@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
14 * limitations under the License. * 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 #include <QHBoxLayout> 20 #include <QHBoxLayout>
21 #include <QLabel> 21 #include <QLabel>
@@ -43,4 +43,4 @@ private slots: @@ -43,4 +43,4 @@ private slots:
43 43
44 } // namespace br 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 #include <QImage> 4 #include <QImage>
5 #include <opencv2/core/core.hpp> 5 #include <opencv2/core/core.hpp>
6 6
7 QImage toQImage(const cv::Mat &mat); 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 #include <QAction> 4 #include <QAction>
5 #include <QActionGroup> 5 #include <QActionGroup>
@@ -34,4 +34,4 @@ signals: @@ -34,4 +34,4 @@ signals:
34 34
35 } // namespace br 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,7 +72,7 @@ float br_eval(const char *simmat, const char *mask, const char *csv)
72 return Evaluate(simmat, mask, csv); 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 EvalClassification(predicted_gallery, truth_gallery, predicted_property, truth_property); 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,7 +92,7 @@ float br_eval_landmarking(const char *predicted_gallery, const char *truth_galle
92 return EvalLandmarking(predicted_gallery, truth_gallery, csv, normalization_index_a, normalization_index_b); 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 EvalRegression(predicted_gallery, truth_gallery, predicted_property, truth_property); 97 EvalRegression(predicted_gallery, truth_gallery, predicted_property, truth_property);
98 } 98 }
openbr/openbr.h
@@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
14 * limitations under the License. * 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 #include <openbr/openbr_export.h> 20 #include <openbr/openbr_export.h>
21 21
@@ -41,18 +41,6 @@ extern &quot;C&quot; { @@ -41,18 +41,6 @@ extern &quot;C&quot; {
41 * \section managed_return_value Managed Return Value 41 * \section managed_return_value Managed Return Value
42 * Memory for <tt>const char*</tt> return values is managed internally and guaranteed until the next call to the function. 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 * \section examples Examples 44 * \section examples Examples
57 * - \ref c_face_recognition_evaluation 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,8 +136,10 @@ BR_EXPORT float br_eval(const char *simmat, const char *mask, const char *csv =
148 * \brief Evaluates and prints classification accuracy to terminal. 136 * \brief Evaluates and prints classification accuracy to terminal.
149 * \param predicted_gallery The predicted br::Gallery. 137 * \param predicted_gallery The predicted br::Gallery.
150 * \param truth_gallery The ground truth br::Gallery. 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 * \brief Evaluates and prints clustering accuracy to the terminal. 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,8 +172,10 @@ BR_EXPORT float br_eval_landmarking(const char *predicted_gallery, const char *t
182 * \brief Evaluates regression accuracy to disk. 172 * \brief Evaluates regression accuracy to disk.
183 * \param predicted_gallery The predicted br::Gallery. 173 * \param predicted_gallery The predicted br::Gallery.
184 * \param truth_gallery The ground truth br::Gallery. 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 * \brief Wraps br::Context::finalize() 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,7 +259,7 @@ BR_EXPORT const char *br_objects(const char *abstractions = &quot;.*&quot;, const char *im
267 * 259 *
268 * OpenBR uses file and folder names to automatically determine the plot legend. 260 * OpenBR uses file and folder names to automatically determine the plot legend.
269 * 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>). 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 * The '<tt>_</tt>' character plays a special role in determining the legend title(s) and value(s). 263 * The '<tt>_</tt>' character plays a special role in determining the legend title(s) and value(s).
272 * 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. 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,6 +283,8 @@ BR_EXPORT bool br_plot(int num_files, const char *files[], const char *destinati
291 * -# Discrete Precision Recall (DiscretePR) 283 * -# Discrete Precision Recall (DiscretePR)
292 * -# Continuous Precision Recall (ContinuousPR) 284 * -# Continuous Precision Recall (ContinuousPR)
293 * -# Bounding Box Overlap Histogram (Overlap) 285 * -# Bounding Box Overlap Histogram (Overlap)
  286 + * -# Average Overlap Table (AverageOverlap)
  287 + * -# Average Overlap Heatmap (AverageOverlap)
294 * 288 *
295 * Detection accuracy is measured with <i>overlap fraction = bounding box intersection / union</i>. 289 * Detection accuracy is measured with <i>overlap fraction = bounding box intersection / union</i>.
296 * When computing <i>discrete</i> curves, an overlap >= 0.5 is considered a true positive, otherwise it is considered a false negative. 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,4 +415,4 @@ BR_EXPORT const char *br_version();
421 } 415 }
422 #endif 416 #endif
423 417
424 -#endif // __OPENBR_H 418 +#endif // OPENBR_H
openbr/openbr_export.cpp
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
29 * \section get_started Get Started 29 * \section get_started Get Started
30 * - \ref introduction - A high-level technical overview of OpenBR. 30 * - \ref introduction - A high-level technical overview of OpenBR.
31 * - \ref installation - A hacker's guide to building, editing, and running OpenBR. 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 * \section learn_more Learn More 34 * \section learn_more Learn More
35 * - \ref algorithm_grammar - How algorithms are constructed from string descriptions. 35 * - \ref algorithm_grammar - How algorithms are constructed from string descriptions.
@@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
37 * - \ref c_sdk - High-level API for running algorithms and evaluating results. 37 * - \ref c_sdk - High-level API for running algorithms and evaluating results.
38 * - \ref cpp_plugin_sdk - Plugin API for extending OpenBR functionality. 38 * - \ref cpp_plugin_sdk - Plugin API for extending OpenBR functionality.
39 * - \ref bee - A <a href="http://www.nist.gov/index.html">NIST</a> standard for evaluating biometric algorithms. 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,7 +332,7 @@ $ br -help
331 * \code 332 * \code
332 * $ sudo apt-get install cmake cmake-curses-gui 333 * $ sudo apt-get install cmake cmake-curses-gui
333 * \endcode 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 * \code 336 * \code
336 * $ cd ~/Downloads 337 * $ cd ~/Downloads
337 * $ tar -xf opencv-2.4.5.tar.gz 338 * $ tar -xf opencv-2.4.5.tar.gz
openbr/openbr_export.h
@@ -14,25 +14,21 @@ @@ -14,25 +14,21 @@
14 * limitations under the License. * 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 #else 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 # else 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 # endif 31 # endif
36 #endif 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,9 +996,9 @@ void br::Context::messageHandler(QtMsgType type, const QMessageLogContext &amp;conte
996 switch (type) { 996 switch (type) {
997 case QtWarningMsg: txt = QString("Warning: %1\n" ).arg(msg); break; 997 case QtWarningMsg: txt = QString("Warning: %1\n" ).arg(msg); break;
998 case QtCriticalMsg: txt = QString("Critical: %1\n").arg(msg); break; 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 std::cerr << txt.toStdString(); 1004 std::cerr << txt.toStdString();
@@ -1225,6 +1225,26 @@ TemplateEvent * Transform::getEvent(const QString &amp; name) @@ -1225,6 +1225,26 @@ TemplateEvent * Transform::getEvent(const QString &amp; name)
1225 return NULL; 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 /* Distance - public methods */ 1248 /* Distance - public methods */
1229 Distance *Distance::make(QString str, QObject *parent) 1249 Distance *Distance::make(QString str, QObject *parent)
1230 { 1250 {
openbr/openbr_plugin.h
@@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
14 * limitations under the License. * 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 #ifdef __cplusplus 20 #ifdef __cplusplus
21 21
@@ -74,6 +74,10 @@ @@ -74,6 +74,10 @@
74 * \ref cli_face_recognition_search "Command Line Interface Equivalent" 74 * \ref cli_face_recognition_search "Command Line Interface Equivalent"
75 * \snippet app/examples/face_recognition_search.cpp face_recognition_search 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 * \subsection cpp_age_estimation Age Estimation 81 * \subsection cpp_age_estimation Age Estimation
78 * \ref cli_age_estimation "Command Line Interface Equivalent" 82 * \ref cli_age_estimation "Command Line Interface Equivalent"
79 * \snippet app/examples/age_estimation.cpp age_estimation 83 * \snippet app/examples/age_estimation.cpp age_estimation
@@ -1037,7 +1041,7 @@ private: @@ -1037,7 +1041,7 @@ private:
1037 1041
1038 /*! 1042 /*!
1039 * \brief For asynchronous events during template projection. 1043 * \brief For asynchronous events during template projection.
1040 - * \see #Transform::getEvent 1044 + * \see Transform::getEvent
1041 */ 1045 */
1042 class TemplateEvent : public QObject 1046 class TemplateEvent : public QObject
1043 { 1047 {
@@ -1073,17 +1077,41 @@ public: @@ -1073,17 +1077,41 @@ public:
1073 static QSharedPointer<Transform> fromAlgorithm(const QString &algorithm); /*!< \brief Retrieve an algorithm's transform. */ 1077 static QSharedPointer<Transform> fromAlgorithm(const QString &algorithm); /*!< \brief Retrieve an algorithm's transform. */
1074 1078
1075 virtual Transform *clone() const; /*!< \brief Copy the transform. */ 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 virtual void projectUpdate(const Template &src, Template &dst) 1109 virtual void projectUpdate(const Template &src, Template &dst)
1082 { 1110 {
1083 project(src, dst); 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 virtual void projectUpdate(const TemplateList &src, TemplateList &dst) 1115 virtual void projectUpdate(const TemplateList &src, TemplateList &dst)
1088 { 1116 {
1089 project(src,dst); 1117 project(src,dst);
@@ -1145,7 +1173,9 @@ public: @@ -1145,7 +1173,9 @@ public:
1145 * \brief Perform the minimum amount of work necessary to make a 1173 * \brief Perform the minimum amount of work necessary to make a
1146 * transform that can be used safely from a different thread than this 1174 * transform that can be used safely from a different thread than this
1147 * transform. For transforms that aren't time-varying, nothing needs to be 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 virtual Transform * smartCopy() { return this;} 1180 virtual Transform * smartCopy() { return this;}
1151 1181
@@ -1292,4 +1322,4 @@ Q_DECLARE_METATYPE(QList&lt;br::Distance*&gt;) @@ -1292,4 +1322,4 @@ Q_DECLARE_METATYPE(QList&lt;br::Distance*&gt;)
1292 1322
1293 #endif // __cplusplus 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,6 +44,7 @@ class AlgorithmsInitializer : public Initializer
44 Globals->abbreviations.insert("AgeEstimation", "AgeRegression"); 44 Globals->abbreviations.insert("AgeEstimation", "AgeRegression");
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"); 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 Globals->abbreviations.insert("CropFace", "Open+Cvt(Gray)+Cascade(FrontalFace)+ASEFEyes+Affine(128,128,0.25,0.35)"); 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 // Video 49 // Video
49 Globals->abbreviations.insert("DisplayVideo", "Stream(FPSLimit(30)+Show(false,[FrameNumber])+Discard)"); 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,12 +91,14 @@ class KNNTransform : public Transform
91 Q_PROPERTY(int numSubjects READ get_numSubjects WRITE set_numSubjects RESET reset_numSubjects STORED false) 91 Q_PROPERTY(int numSubjects READ get_numSubjects WRITE set_numSubjects RESET reset_numSubjects STORED false)
92 Q_PROPERTY(QString inputVariable READ get_inputVariable WRITE set_inputVariable RESET reset_inputVariable STORED false) 92 Q_PROPERTY(QString inputVariable READ get_inputVariable WRITE set_inputVariable RESET reset_inputVariable STORED false)
93 Q_PROPERTY(QString outputVariable READ get_outputVariable WRITE set_outputVariable RESET reset_outputVariable STORED false) 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 BR_PROPERTY(int, k, 1) 95 BR_PROPERTY(int, k, 1)
95 BR_PROPERTY(br::Distance*, distance, NULL) 96 BR_PROPERTY(br::Distance*, distance, NULL)
96 BR_PROPERTY(bool, weighted, false) 97 BR_PROPERTY(bool, weighted, false)
97 BR_PROPERTY(int, numSubjects, 1) 98 BR_PROPERTY(int, numSubjects, 1)
98 BR_PROPERTY(QString, inputVariable, "Label") 99 BR_PROPERTY(QString, inputVariable, "Label")
99 BR_PROPERTY(QString, outputVariable, "KNN") 100 BR_PROPERTY(QString, outputVariable, "KNN")
  101 + BR_PROPERTY(QString, galleryName, "")
100 102
101 TemplateList gallery; 103 TemplateList gallery;
102 104
@@ -126,6 +128,7 @@ class KNNTransform : public Transform @@ -126,6 +128,7 @@ class KNNTransform : public Transform
126 } 128 }
127 129
128 dst.file.set(outputVariable, subjects.size() > 1 ? "[" + subjects.join(",") + "]" : subjects.first()); 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 void store(QDataStream &stream) const 134 void store(QDataStream &stream) const
@@ -137,11 +140,69 @@ class KNNTransform : public Transform @@ -137,11 +140,69 @@ class KNNTransform : public Transform
137 { 140 {
138 stream >> gallery; 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 BR_REGISTER(Transform, KNNTransform) 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 } // namespace br 207 } // namespace br
147 208
openbr/plugins/draw.cpp
@@ -15,6 +15,8 @@ @@ -15,6 +15,8 @@
15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 16
17 #include <opencv2/highgui/highgui.hpp> 17 #include <opencv2/highgui/highgui.hpp>
  18 +#include <opencv2/imgproc/imgproc.hpp>
  19 +#include <vector>
18 #include "openbr_internal.h" 20 #include "openbr_internal.h"
19 #include "openbr/core/opencvutils.h" 21 #include "openbr/core/opencvutils.h"
20 22
@@ -248,6 +250,100 @@ class MeanTransform : public Transform @@ -248,6 +250,100 @@ class MeanTransform : public Transform
248 250
249 BR_REGISTER(Transform, MeanTransform) 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 // TODO: re-implement EditTransform using Qt 347 // TODO: re-implement EditTransform using Qt
252 #if 0 348 #if 0
253 /*! 349 /*!
openbr/plugins/eigen3.cpp
@@ -84,7 +84,7 @@ private: @@ -84,7 +84,7 @@ private:
84 for (int i=0; i<instances; i++) 84 for (int i=0; i<instances; i++)
85 data.col(i) = Eigen::Map<const Eigen::MatrixXf>(trainingSet[i].m().ptr<float>(), dimsIn, 1).cast<double>(); 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 void project(const Template &src, Template &dst) const 90 void project(const Template &src, Template &dst) const
@@ -110,7 +110,7 @@ private: @@ -110,7 +110,7 @@ private:
110 } 110 }
111 111
112 protected: 112 protected:
113 - void train(Eigen::MatrixXd data) 113 + void trainCore(Eigen::MatrixXd data)
114 { 114 {
115 int dimsIn = data.rows(); 115 int dimsIn = data.rows();
116 int instances = data.cols(); 116 int instances = data.cols();
@@ -227,7 +227,7 @@ class RowWisePCATransform : public PCATransform @@ -227,7 +227,7 @@ class RowWisePCATransform : public PCATransform
227 for (int i=0; i<t.m().rows; i++) 227 for (int i=0; i<t.m().rows; i++)
228 data.col(index++) = Eigen::Map<const Eigen::MatrixXf>(t.m().ptr<float>(i), dimsIn, 1).cast<double>(); 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 void project(const Template &src, Template &dst) const 233 void project(const Template &src, Template &dst) const
@@ -358,7 +358,7 @@ class LDATransform : public Transform @@ -358,7 +358,7 @@ class LDATransform : public Transform
358 // one per class), the total rank of the covariance/scatter 358 // one per class), the total rank of the covariance/scatter
359 // matrix that will be computed in PCA is bound by instances - numClasses. 359 // matrix that will be computed in PCA is bound by instances - numClasses.
360 space1.keep = std::min(dimsIn, instances-numClasses); 360 space1.keep = std::min(dimsIn, instances-numClasses);
361 - space1.train(data); 361 + space1.trainCore(data);
362 362
363 // Divide each eigenvector by sqrt of eigenvalue. 363 // Divide each eigenvector by sqrt of eigenvalue.
364 // This has the effect of whitening the within-class scatter. 364 // This has the effect of whitening the within-class scatter.
@@ -369,7 +369,7 @@ class LDATransform : public Transform @@ -369,7 +369,7 @@ class LDATransform : public Transform
369 { 369 {
370 space1.drop = instances - numClasses; 370 space1.drop = instances - numClasses;
371 space1.keep = std::min(dimsIn, instances) - space1.drop; 371 space1.keep = std::min(dimsIn, instances) - space1.drop;
372 - space1.train(data); 372 + space1.trainCore(data);
373 } 373 }
374 else 374 else
375 { 375 {
@@ -381,7 +381,7 @@ class LDATransform : public Transform @@ -381,7 +381,7 @@ class LDATransform : public Transform
381 // to discard Null space). We keep the Null space b/c this is where 381 // to discard Null space). We keep the Null space b/c this is where
382 // the within-class scatter goes to zero, i.e. it is very useful. 382 // the within-class scatter goes to zero, i.e. it is very useful.
383 space1.keep = dimsIn; 383 space1.keep = dimsIn;
384 - space1.train(data); 384 + space1.trainCore(data);
385 385
386 if (dimsIn > instances - numClasses) { 386 if (dimsIn > instances - numClasses) {
387 // Here, we are replacing the eigenvalue of the null space 387 // Here, we are replacing the eigenvalue of the null space
@@ -445,7 +445,7 @@ class LDATransform : public Transform @@ -445,7 +445,7 @@ class LDATransform : public Transform
445 int dim2 = std::min((int)space1.keep, numClasses-1); 445 int dim2 = std::min((int)space1.keep, numClasses-1);
446 PCATransform space2; 446 PCATransform space2;
447 space2.keep = dim2; 447 space2.keep = dim2;
448 - space2.train(data2); 448 + space2.trainCore(data2);
449 449
450 // Compute final projection matrix 450 // Compute final projection matrix
451 projection = ((space2.eVecs.transpose() * space1.eVecs.transpose()) * pca.eVecs.transpose()).transpose(); 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,6 +726,58 @@ class xmlFormat : public Format
726 726
727 BR_REGISTER(Format, xmlFormat) 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 } // namespace br 781 } // namespace br
730 782
731 #include "format.moc" 783 #include "format.moc"
openbr/plugins/hist.cpp
@@ -54,7 +54,7 @@ class HistTransform : public UntrainableTransform @@ -54,7 +54,7 @@ class HistTransform : public UntrainableTransform
54 const float* ranges[] = {range}; 54 const float* ranges[] = {range};
55 Mat hist, chan = mv[i]; 55 Mat hist, chan = mv[i];
56 // calcHist requires F or U, might as well convert just in case 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 mv[i].convertTo(chan, CV_32F); 58 mv[i].convertTo(chan, CV_32F);
59 calcHist(&chan, 1, channels, Mat(), hist, 1, histSize, ranges); 59 calcHist(&chan, 1, channels, Mat(), hist, 1, histSize, ranges);
60 memcpy(m.ptr(i), hist.ptr(), dims * sizeof(float)); 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,6 +97,7 @@ class KeyPointDescriptorTransform : public UntrainableTransform
97 else 97 else
98 foreach (const QPointF &landmark, src.file.points()) 98 foreach (const QPointF &landmark, src.file.points())
99 keyPoints.push_back(KeyPoint(landmark.x(), landmark.y(), size)); 99 keyPoints.push_back(KeyPoint(landmark.x(), landmark.y(), size));
  100 + if (keyPoints.empty()) return;
100 descriptorExtractor->compute(src, keyPoints, dst); 101 descriptorExtractor->compute(src, keyPoints, dst);
101 } 102 }
102 }; 103 };
openbr/plugins/mask.cpp
@@ -180,6 +180,26 @@ class LargestConvexAreaTransform : public UntrainableTransform @@ -180,6 +180,26 @@ class LargestConvexAreaTransform : public UntrainableTransform
180 180
181 BR_REGISTER(Transform, LargestConvexAreaTransform) 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 } // namespace br 203 } // namespace br
184 204
185 #include "mask.moc" 205 #include "mask.moc"
openbr/plugins/meta.cpp
@@ -57,7 +57,7 @@ static TemplateList Expanded(const TemplateList &amp;templates) @@ -57,7 +57,7 @@ static TemplateList Expanded(const TemplateList &amp;templates)
57 return expanded; 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 transform->train(*data); 62 transform->train(*data);
63 } 63 }
@@ -82,18 +82,11 @@ class PipeTransform : public CompositeTransform @@ -82,18 +82,11 @@ class PipeTransform : public CompositeTransform
82 *srcdst >> *transforms[i]; 82 *srcdst >> *transforms[i];
83 } 83 }
84 84
85 - void train(const TemplateList &data) 85 + void train(const QList<TemplateList> &data)
86 { 86 {
87 if (!trainable) return; 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 int i = 0; 91 int i = 0;
99 while (i < transforms.size()) { 92 while (i < transforms.size()) {
@@ -102,23 +95,18 @@ class PipeTransform : public CompositeTransform @@ -102,23 +95,18 @@ class PipeTransform : public CompositeTransform
102 // Conditional statement covers likely case that first transform is untrainable 95 // Conditional statement covers likely case that first transform is untrainable
103 if (transforms[i]->trainable) { 96 if (transforms[i]->trainable) {
104 fprintf(stderr, " training..."); 97 fprintf(stderr, " training...");
105 - transforms[i]->train(copy); 98 + transforms[i]->train(dataLines);
106 } 99 }
107 100
108 // if the transform is time varying, we can't project it in parallel 101 // if the transform is time varying, we can't project it in parallel
109 if (transforms[i]->timeVarying()) { 102 if (transforms[i]->timeVarying()) {
110 fprintf(stderr, "\n%s projecting...", qPrintable(transforms[i]->objectName())); 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 // advance i since we already projected for this stage. 107 // advance i since we already projected for this stage.
115 i++; 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 // the next stage might be trainable, so continue to evaluate it. 110 // the next stage might be trainable, so continue to evaluate it.
123 continue; 111 continue;
124 } 112 }
@@ -136,14 +124,10 @@ class PipeTransform : public CompositeTransform @@ -136,14 +124,10 @@ class PipeTransform : public CompositeTransform
136 124
137 fprintf(stderr, " projecting..."); 125 fprintf(stderr, " projecting...");
138 QFutureSynchronizer<void> futures; 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 futures.waitForFinished(); 129 futures.waitForFinished();
142 130
143 - copy.clear();  
144 - for (int j=0; j < singleItemLists.size(); j++)  
145 - copy.append(singleItemLists[j]);  
146 -  
147 i = nextTrainableTransform; 131 i = nextTrainableTransform;
148 } 132 }
149 } 133 }
@@ -195,6 +179,26 @@ class PipeTransform : public CompositeTransform @@ -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 protected: 202 protected:
199 // Template list project -- process templates in parallel through Transform::project 203 // Template list project -- process templates in parallel through Transform::project
200 // or if parallelism is disabled, handle them sequentially 204 // or if parallelism is disabled, handle them sequentially
@@ -296,7 +300,7 @@ class ForkTransform : public CompositeTransform @@ -296,7 +300,7 @@ class ForkTransform : public CompositeTransform
296 { 300 {
297 Q_OBJECT 301 Q_OBJECT
298 302
299 - void train(const TemplateList &data) 303 + void train(const QList<TemplateList> &data)
300 { 304 {
301 if (!trainable) return; 305 if (!trainable) return;
302 QFutureSynchronizer<void> futures; 306 QFutureSynchronizer<void> futures;
@@ -440,7 +444,7 @@ private: @@ -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 transform->train(data); 449 transform->train(data);
446 } 450 }
@@ -612,14 +616,22 @@ public: @@ -612,14 +616,22 @@ public:
612 return output; 616 return output;
613 } 617 }
614 618
615 - void train(const TemplateList &data) 619 + void train(const QList<TemplateList> &data)
616 { 620 {
617 if (!transform->trainable) { 621 if (!transform->trainable) {
618 qWarning("Attempted to train untrainable transform, nothing will happen."); 622 qWarning("Attempted to train untrainable transform, nothing will happen.");
619 return; 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 void project(const Template &src, Template &dst) const 637 void project(const Template &src, Template &dst) const
openbr/plugins/misc.cpp
@@ -496,14 +496,16 @@ class IncrementalOutputTransform : public TimeVaryingTransform @@ -496,14 +496,16 @@ class IncrementalOutputTransform : public TimeVaryingTransform
496 } 496 }
497 497
498 dst = src; 498 dst = src;
  499 + int idx =0;
499 foreach(const Template & t, src) { 500 foreach(const Template & t, src) {
500 if (t.empty()) 501 if (t.empty())
501 continue; 502 continue;
502 503
503 // Build the output filename for this template 504 // Build the output filename for this template
504 QFileInfo finfo(t.file.name); 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 Template out = t; 509 Template out = t;
508 out.file.name = outputName; 510 out.file.name = outputName;
509 writer->write(out); 511 writer->write(out);
openbr/plugins/opticalflow.cpp renamed to openbr/plugins/motion.cpp
1 #include <opencv2/video/tracking.hpp> 1 #include <opencv2/video/tracking.hpp>
  2 +#include <opencv2/video/background_segm.hpp>
2 #include "openbr_internal.h" 3 #include "openbr_internal.h"
3 #include "openbr/core/opencvutils.h" 4 #include "openbr/core/opencvutils.h"
4 5
@@ -52,6 +53,45 @@ class OpticalFlowTransform : public UntrainableMetaTransform @@ -52,6 +53,45 @@ class OpticalFlowTransform : public UntrainableMetaTransform
52 53
53 BR_REGISTER(Transform, OpticalFlowTransform) 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 } // namespace br 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 #include "openbr/openbr_plugin.h" 4 #include "openbr/openbr_plugin.h"
5 #include "openbr/core/resource.h" 5 #include "openbr/core/resource.h"
@@ -88,7 +88,7 @@ public: @@ -88,7 +88,7 @@ public:
88 transformSource.release(aTransform); 88 transformSource.release(aTransform);
89 } 89 }
90 90
91 - void train(const TemplateList &data) 91 + void train(const QList<TemplateList> &data)
92 { 92 {
93 baseTransform->train(data); 93 baseTransform->train(data);
94 } 94 }
@@ -242,4 +242,4 @@ protected: @@ -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,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 class DirectStreamTransform : public CompositeTransform 1041 class DirectStreamTransform : public CompositeTransform
1022 { 1042 {
@@ -1027,16 +1047,52 @@ public: @@ -1027,16 +1047,52 @@ public:
1027 1047
1028 friend class StreamTransfrom; 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 if (!trainable) { 1079 if (!trainable) {
1033 qWarning("Attempted to train untrainable transform, nothing will happen."); 1080 qWarning("Attempted to train untrainable transform, nothing will happen.");
1034 return; 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 bool timeVarying() const { return true; } 1098 bool timeVarying() const { return true; }
@@ -1287,8 +1343,7 @@ public: @@ -1287,8 +1343,7 @@ public:
1287 basis.projectUpdate(src,dst); 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 basis.train(data); 1348 basis.train(data);
1294 } 1349 }
openbr/plugins/validate.cpp
@@ -7,6 +7,11 @@ @@ -7,6 +7,11 @@
7 namespace br 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 * \ingroup transforms 16 * \ingroup transforms
12 * \brief Cross validate a trainable transform. 17 * \brief Cross validate a trainable transform.
@@ -23,8 +28,12 @@ class CrossValidateTransform : public MetaTransform @@ -23,8 +28,12 @@ class CrossValidateTransform : public MetaTransform
23 BR_PROPERTY(QString, description, "Identity") 28 BR_PROPERTY(QString, description, "Identity")
24 BR_PROPERTY(bool, leaveOneImageOut, false) 29 BR_PROPERTY(bool, leaveOneImageOut, false)
25 30
  31 + // numPartitions copies of transform specified by description.
26 QList<br::Transform*> transforms; 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 void train(const TemplateList &data) 37 void train(const TemplateList &data)
29 { 38 {
30 int numPartitions = 0; 39 int numPartitions = 0;
@@ -84,7 +93,7 @@ class CrossValidateTransform : public MetaTransform @@ -84,7 +93,7 @@ class CrossValidateTransform : public MetaTransform
84 } else j--; 93 } else j--;
85 } 94 }
86 // Train on the remaining templates 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 futures.waitForFinished(); 98 futures.waitForFinished();
90 } 99 }
scripts/downloadDatasets.sh
@@ -5,6 +5,21 @@ if [ ! -f downloadDatasets.sh ]; then @@ -5,6 +5,21 @@ if [ ! -f downloadDatasets.sh ]; then
5 exit 5 exit
6 fi 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 # BioID 23 # BioID
9 if [ ! -d ../data/BioID/img ]; then 24 if [ ! -d ../data/BioID/img ]; then
10 echo "Downloading BioID..." 25 echo "Downloading BioID..."
@@ -20,6 +35,24 @@ if [ ! -d ../data/BioID/img ]; then @@ -20,6 +35,24 @@ if [ ! -d ../data/BioID/img ]; then
20 rm *.eye description.txt BioID-FaceDatabase-V1.2.zip 35 rm *.eye description.txt BioID-FaceDatabase-V1.2.zip
21 fi 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 # LFW 56 # LFW
24 if [ ! -d ../data/LFW/img ]; then 57 if [ ! -d ../data/LFW/img ]; then
25 echo "Downloading LFW..." 58 echo "Downloading LFW..."
@@ -48,21 +81,3 @@ if [ ! -d ../data/MEDS/img ]; then @@ -48,21 +81,3 @@ if [ ! -d ../data/MEDS/img ]; then
48 mv data/*/*.jpg ../data/MEDS/img 81 mv data/*/*.jpg ../data/MEDS/img
49 rm -r data NIST_SD32_MEDS-II_face.zip 82 rm -r data NIST_SD32_MEDS-II_face.zip
50 fi 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 \ No newline at end of file 10 \ No newline at end of file