Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
bob
bob.ip.qualitymeasure
Commits
8559a22f
Commit
8559a22f
authored
Mar 08, 2017
by
Sushil BHATTACHARJEE
Browse files
code update; added example script
parent
9988d042
Changes
7
Hide whitespace changes
Inline
Side-by-side
bob/ip/qualitymeasure/data/real_client001_android_SD_scene01.face
0 → 100755
View file @
8559a22f
0, 283, 107, 500, 375, 330.62, 235.40, 437.58, 232.54
1, 292, 109, 520, 367, 334.61, 233.83, 436.75, 232.13
2, 283, 104, 512, 376, 329.54, 235.68, 436.84, 232.43
3, 284, 109, 499, 374, 330.47, 235.79, 436.46, 232.24
4, 281, 108, 497, 373, 330.09, 235.71, 436.66, 232.40
5, 283, 100, 510, 371, 329.64, 235.59, 436.94, 231.64
6, 287, 102, 519, 378, 330.88, 234.92, 437.30, 232.08
7, 279, 105, 500, 376, 330.70, 235.84, 437.60, 232.44
8, 285, 107, 508, 374, 329.97, 235.24, 437.23, 232.31
9, 282, 105, 501, 375, 329.31, 235.91, 436.97, 232.52
10, 290, 108, 512, 373, 330.55, 234.90, 436.83, 232.57
11, 281, 102, 504, 379, 330.83, 235.72, 438.06, 232.53
12, 278, 106, 498, 376, 331.35, 235.27, 437.81, 231.96
13, 278, 104, 501, 379, 330.75, 235.30, 438.48, 231.51
14, 284, 106, 504, 376, 330.70, 234.71, 437.98, 232.21
15, 283, 105, 502, 375, 330.68, 235.36, 437.02, 232.38
16, 288, 102, 517, 378, 330.70, 235.23, 437.32, 232.34
17, 281, 105, 499, 375, 330.97, 235.02, 438.15, 231.67
18, 283, 104, 505, 380, 331.14, 235.15, 437.72, 231.99
19, 283, 105, 505, 376, 332.25, 236.46, 437.40, 232.29
20, 283, 105, 500, 373, 332.27, 236.47, 437.33, 232.70
21, 292, 104, 515, 373, 332.19, 235.57, 437.55, 232.82
22, 281, 105, 499, 375, 331.53, 235.84, 438.90, 232.99
23, 286, 109, 502, 374, 331.09, 236.09, 438.55, 232.85
24, 281, 102, 504, 376, 330.62, 235.67, 438.13, 231.49
25, 278, 104, 501, 377, 330.74, 235.11, 437.57, 231.56
26, 283, 106, 501, 376, 330.56, 234.71, 438.14, 232.10
27, 286, 102, 508, 377, 330.56, 234.68, 437.65, 231.32
28, 286, 104, 508, 378, 331.22, 234.85, 438.08, 231.08
29, 281, 102, 507, 379, 331.45, 234.83, 438.94, 230.85
30, 281, 98, 510, 380, 331.54, 234.70, 439.48, 230.66
31, 285, 103, 503, 374, 331.22, 234.81, 441.71, 232.00
32, 283, 104, 503, 374, 331.39, 234.67, 439.82, 230.47
33, 282, 105, 505, 378, 332.56, 235.14, 440.82, 231.67
34, 282, 103, 507, 380, 332.86, 234.75, 440.81, 231.19
35, 286, 103, 508, 377, 332.49, 234.76, 439.94, 231.12
36, 283, 101, 511, 380, 332.06, 234.45, 439.63, 230.75
37, 286, 103, 508, 376, 332.15, 234.62, 439.91, 231.76
38, 289, 105, 505, 373, 332.26, 234.77, 439.79, 231.98
39, 284, 100, 512, 381, 332.67, 234.76, 439.93, 230.63
40, 290, 102, 518, 378, 332.92, 234.20, 440.21, 230.33
41, 284, 101, 510, 379, 332.33, 234.40, 440.49, 230.80
42, 286, 104, 507, 374, 331.13, 234.26, 438.62, 230.15
43, 280, 105, 501, 376, 330.96, 234.01, 438.67, 230.06
44, 282, 102, 504, 376, 331.59, 234.18, 438.91, 230.06
45, 281, 102, 507, 378, 331.89, 234.53, 439.76, 230.65
46, 282, 102, 504, 375, 331.75, 234.60, 438.71, 230.37
47, 277, 102, 499, 374, 330.81, 233.35, 438.17, 229.72
48, 281, 103, 504, 377, 331.47, 233.32, 438.86, 229.33
49, 284, 102, 506, 376, 331.35, 233.47, 439.52, 229.56
50, 282, 100, 505, 376, 331.34, 232.89, 439.23, 228.81
51, 280, 100, 506, 377, 331.80, 233.33, 439.18, 228.95
52, 284, 101, 506, 375, 331.31, 233.35, 439.00, 229.05
53, 280, 100, 504, 377, 331.44, 233.62, 439.12, 229.45
54, 285, 103, 506, 374, 332.13, 233.30, 440.20, 229.38
55, 282, 101, 508, 378, 332.65, 232.48, 440.17, 228.42
56, 284, 104, 505, 375, 332.34, 233.33, 439.93, 229.58
57, 284, 103, 506, 375, 332.16, 233.61, 439.57, 229.27
58, 283, 103, 505, 376, 332.32, 234.01, 440.63, 229.85
59, 281, 103, 507, 380, 332.60, 234.32, 440.83, 230.66
60, 280, 100, 509, 383, 333.15, 234.40, 441.21, 230.32
61, 288, 103, 511, 378, 332.18, 234.02, 439.92, 230.38
62, 288, 103, 511, 379, 332.26, 234.26, 440.05, 230.14
63, 284, 104, 507, 379, 332.73, 234.55, 440.96, 230.21
64, 284, 104, 507, 379, 332.73, 234.55, 440.96, 230.21
65, 287, 105, 509, 378, 331.90, 234.24, 440.04, 230.74
66, 291, 105, 516, 377, 331.55, 233.88, 438.97, 230.87
67, 286, 105, 509, 378, 331.80, 234.27, 439.18, 231.02
68, 291, 106, 516, 378, 331.64, 233.98, 438.98, 230.53
69, 294, 109, 511, 373, 331.22, 234.12, 438.57, 230.43
70, 283, 105, 502, 374, 331.46, 234.48, 439.19, 229.93
71, 284, 105, 506, 379, 332.08, 234.02, 440.07, 230.33
72, 280, 98, 514, 385, 332.43, 233.82, 439.56, 229.75
73, 278, 101, 508, 383, 332.16, 234.61, 440.67, 230.40
74, 279, 104, 507, 381, 332.41, 234.82, 440.26, 230.06
75, 278, 101, 509, 384, 332.78, 234.45, 440.90, 230.22
76, 281, 102, 509, 381, 333.03, 234.23, 441.39, 230.33
77, 283, 103, 507, 380, 332.42, 234.14, 440.92, 230.16
78, 283, 102, 511, 384, 333.30, 233.75, 440.71, 230.07
79, 286, 104, 509, 379, 332.65, 234.48, 441.37, 230.48
80, 284, 105, 506, 379, 333.44, 234.62, 442.29, 230.70
81, 281, 105, 504, 380, 333.25, 234.87, 442.09, 230.66
82, 287, 106, 509, 378, 332.44, 234.81, 441.20, 231.14
83, 291, 102, 519, 379, 332.68, 235.43, 440.00, 231.27
84, 288, 106, 509, 376, 333.92, 235.13, 441.70, 231.23
85, 288, 102, 520, 381, 333.74, 234.46, 442.11, 230.91
86, 277, 102, 506, 385, 333.62, 235.92, 441.69, 231.83
87, 279, 107, 501, 381, 333.01, 235.89, 440.19, 231.39
88, 279, 105, 505, 382, 332.29, 236.11, 440.12, 232.22
89, 285, 108, 501, 375, 333.43, 235.72, 441.83, 231.86
90, 287, 101, 517, 381, 334.12, 235.85, 441.43, 231.70
91, 277, 103, 506, 382, 333.67, 234.88, 441.51, 230.92
92, 282, 104, 508, 381, 333.10, 234.71, 441.14, 230.92
93, 282, 104, 509, 382, 333.47, 234.68, 441.90, 230.69
94, 287, 103, 516, 382, 334.72, 234.63, 443.94, 230.67
95, 285, 105, 508, 379, 334.65, 234.46, 442.31, 231.09
96, 287, 104, 512, 380, 333.70, 233.68, 441.33, 230.45
97, 289, 106, 510, 377, 334.18, 234.70, 442.05, 231.06
98, 289, 103, 515, 380, 334.30, 235.18, 443.32, 231.51
99, 278, 89, 531, 392, 333.53, 235.30, 441.89, 231.39
100, 283, 102, 511, 381, 332.87, 235.61, 441.77, 231.61
101, 274, 98, 508, 387, 334.27, 235.26, 442.38, 231.60
102, 291, 100, 509, 369, 334.16, 235.41, 442.79, 231.69
103, 285, 106, 508, 379, 334.40, 234.95, 442.68, 231.08
104, 292, 108, 513, 374, 333.61, 235.19, 442.32, 231.37
105, 292, 109, 513, 375, 334.61, 234.97, 443.08, 231.26
106, 280, 101, 508, 382, 334.25, 235.89, 441.91, 231.48
107, 293, 109, 512, 373, 334.10, 235.13, 442.97, 231.06
108, 298, 109, 510, 373, 333.81, 235.40, 442.41, 231.09
109, 285, 98, 519, 385, 333.67, 235.40, 442.04, 231.70
110, 286, 96, 538, 384, 335.81, 234.28, 441.38, 230.95
111, 288, 99, 537, 384, 335.14, 235.01, 441.20, 231.76
112, 278, 97, 513, 386, 333.38, 235.37, 443.04, 231.42
113, 291, 109, 508, 375, 334.45, 235.19, 443.25, 231.37
114, 287, 107, 504, 375, 334.42, 235.37, 444.04, 231.57
115, 294, 104, 522, 372, 334.23, 235.05, 443.11, 232.14
116, 281, 88, 546, 391, 335.70, 236.18, 441.54, 232.00
117, 285, 95, 522, 388, 333.39, 235.46, 442.39, 231.67
118, 291, 109, 507, 374, 334.52, 235.42, 443.73, 231.72
119, 292, 107, 507, 371, 334.86, 235.25, 443.58, 231.03
120, 294, 108, 511, 373, 334.51, 235.03, 443.81, 231.13
121, 268, 104, 494, 381, 334.16, 234.02, 441.63, 230.45
122, 284, 104, 505, 375, 333.46, 234.41, 441.81, 230.12
123, 281, 105, 503, 376, 332.77, 234.01, 441.94, 230.12
124, 283, 103, 506, 378, 332.67, 233.81, 442.29, 229.96
125, 285, 104, 507, 375, 333.63, 233.40, 442.29, 229.13
126, 284, 103, 506, 375, 333.88, 233.04, 442.28, 228.78
127, 284, 100, 508, 376, 333.30, 232.74, 442.43, 228.72
128, 283, 101, 507, 377, 332.88, 233.31, 442.05, 228.93
129, 287, 105, 506, 374, 333.81, 233.56, 442.43, 229.06
130, 286, 103, 509, 375, 333.88, 233.46, 442.00, 228.71
131, 280, 102, 506, 379, 333.14, 233.15, 442.20, 229.13
132, 285, 104, 508, 375, 334.32, 233.86, 442.59, 229.20
133, 290, 98, 513, 371, 334.23, 232.96, 442.09, 229.28
134, 281, 101, 506, 378, 334.47, 233.15, 442.27, 228.66
135, 281, 101, 505, 377, 334.79, 233.65, 443.28, 228.98
136, 278, 101, 507, 381, 334.93, 233.75, 443.71, 229.44
137, 283, 103, 506, 376, 334.32, 234.20, 442.42, 229.36
138, 282, 102, 506, 378, 334.06, 233.55, 442.18, 229.35
139, 280, 100, 508, 379, 334.56, 233.81, 442.62, 229.42
140, 282, 100, 510, 381, 335.76, 233.69, 444.04, 229.42
141, 283, 102, 510, 379, 335.25, 233.47, 443.86, 229.04
142, 286, 102, 509, 376, 334.03, 233.31, 442.87, 228.96
143, 281, 102, 505, 377, 334.32, 233.81, 442.56, 228.89
144, 283, 99, 511, 380, 335.13, 234.01, 443.02, 229.51
145, 284, 100, 512, 379, 335.00, 234.02, 443.37, 229.09
146, 283, 101, 508, 378, 334.58, 233.76, 443.21, 229.30
147, 281, 99, 509, 378, 334.54, 234.09, 442.80, 228.46
148, 281, 99, 511, 382, 335.59, 233.89, 444.02, 229.32
149, 281, 100, 509, 380, 334.51, 233.69, 443.07, 229.14
150, 291, 101, 515, 378, 334.20, 233.93, 443.49, 228.88
151, 282, 99, 510, 381, 335.40, 233.59, 444.68, 229.12
152, 281, 102, 505, 378, 334.48, 234.26, 442.63, 229.33
153, 281, 96, 514, 379, 334.40, 234.33, 443.27, 228.61
154, 279, 98, 512, 382, 335.58, 233.98, 443.99, 229.10
155, 284, 99, 512, 380, 336.00, 234.30, 444.30, 229.81
156, 282, 101, 510, 382, 335.31, 234.60, 443.87, 230.04
157, 283, 102, 508, 379, 335.52, 234.57, 444.02, 229.81
158, 286, 103, 509, 378, 336.44, 234.66, 445.23, 229.80
159, 285, 101, 512, 377, 336.25, 235.24, 444.43, 230.10
160, 282, 102, 509, 378, 335.68, 234.43, 445.17, 229.99
161, 282, 101, 508, 378, 336.25, 234.19, 444.53, 229.74
162, 283, 101, 511, 379, 335.97, 234.04, 445.75, 229.73
163, 278, 99, 510, 383, 335.77, 234.16, 444.67, 229.24
164, 281, 98, 511, 381, 335.70, 233.81, 444.28, 229.15
165, 291, 100, 520, 378, 335.91, 233.62, 445.09, 229.34
166, 288, 93, 530, 382, 336.46, 233.50, 445.10, 228.53
167, 295, 97, 524, 380, 336.68, 233.33, 445.43, 229.04
168, 284, 98, 513, 380, 336.05, 233.39, 445.72, 228.77
169, 288, 94, 528, 383, 336.27, 232.93, 444.79, 228.72
170, 286, 98, 517, 381, 336.97, 233.66, 445.57, 229.32
171, 289, 93, 529, 384, 336.71, 233.29, 445.48, 228.87
172, 287, 91, 528, 384, 336.12, 233.34, 445.04, 228.51
173, 285, 96, 519, 383, 336.56, 233.40, 445.40, 229.22
174, 291, 96, 525, 382, 337.03, 233.34, 445.93, 228.84
175, 287, 97, 519, 382, 337.54, 233.58, 446.36, 229.27
176, 280, 92, 520, 386, 336.63, 233.24, 445.94, 228.54
177, 284, 98, 515, 381, 336.80, 233.32, 445.88, 228.57
178, 284, 97, 514, 380, 337.09, 233.60, 446.28, 228.94
179, 283, 96, 517, 385, 337.74, 233.40, 447.29, 229.06
180, 277, 92, 517, 387, 337.07, 233.56, 446.05, 228.31
181, 283, 96, 517, 383, 337.25, 233.54, 446.38, 228.84
182, 284, 94, 519, 383, 337.49, 233.57, 446.59, 228.97
183, 280, 98, 514, 385, 337.74, 233.76, 447.16, 229.24
184, 284, 95, 518, 384, 337.91, 233.56, 446.81, 229.14
185, 285, 95, 519, 383, 337.96, 233.11, 446.81, 228.88
186, 285, 98, 515, 381, 337.30, 233.79, 446.75, 229.05
187, 287, 96, 520, 381, 337.64, 233.33, 446.95, 228.90
188, 285, 94, 519, 383, 337.90, 233.51, 446.99, 228.83
189, 285, 95, 519, 383, 337.39, 233.66, 446.89, 228.85
190, 287, 96, 519, 381, 337.38, 233.60, 446.88, 229.32
191, 279, 93, 519, 386, 337.79, 233.96, 446.68, 228.78
192, 289, 94, 530, 382, 336.77, 233.56, 445.88, 228.85
193, 285, 94, 519, 383, 337.74, 233.23, 446.80, 228.64
194, 282, 100, 513, 383, 339.24, 233.62, 448.73, 229.16
195, 294, 97, 526, 380, 339.03, 234.25, 448.39, 229.68
196, 284, 97, 517, 382, 338.77, 233.92, 448.02, 229.07
197, 287, 99, 516, 382, 338.55, 233.81, 447.62, 229.49
198, 287, 101, 515, 379, 337.59, 233.41, 447.21, 228.96
199, 286, 102, 512, 379, 337.57, 234.47, 447.02, 229.76
200, 288, 101, 514, 377, 338.35, 234.15, 448.00, 229.13
201, 302, 100, 526, 374, 338.20, 233.10, 448.23, 227.88
202, 291, 92, 532, 379, 336.52, 232.06, 446.78, 227.12
203, 292, 92, 534, 380, 336.58, 232.53, 446.19, 227.48
204, 297, 99, 522, 375, 336.96, 233.18, 446.60, 228.36
205, 287, 100, 514, 377, 337.51, 233.81, 446.55, 228.40
206, 287, 98, 516, 379, 336.71, 233.54, 445.86, 228.17
207, 295, 96, 526, 379, 336.55, 233.16, 446.12, 227.71
208, 287, 99, 515, 378, 336.68, 233.26, 445.91, 227.93
209, 287, 98, 517, 380, 335.93, 233.45, 444.88, 228.18
210, 284, 98, 514, 380, 335.22, 233.62, 444.24, 228.41
211, 293, 98, 524, 380, 335.93, 233.72, 445.22, 228.62
212, 284, 98, 514, 381, 336.22, 233.56, 445.02, 228.32
213, 284, 97, 515, 380, 335.45, 233.40, 444.38, 227.81
214, 288, 99, 516, 379, 335.42, 233.52, 444.63, 228.32
215, 283, 97, 517, 382, 335.61, 233.83, 445.47, 228.10
216, 291, 96, 526, 385, 336.21, 234.13, 446.08, 228.86
217, 294, 98, 523, 381, 335.75, 234.73, 445.18, 229.24
218, 282, 100, 515, 383, 335.26, 234.45, 445.12, 229.13
219, 293, 98, 523, 381, 334.63, 234.75, 444.11, 229.31
220, 287, 100, 516, 381, 335.19, 234.90, 444.76, 229.61
221, 284, 96, 520, 384, 336.24, 234.26, 445.58, 229.08
222, 284, 96, 519, 384, 336.14, 234.45, 445.27, 229.12
223, 285, 97, 520, 384, 335.72, 234.28, 444.58, 228.98
224, 286, 91, 527, 384, 335.23, 234.52, 444.81, 228.35
225, 282, 96, 519, 385, 335.34, 234.91, 444.89, 229.27
226, 290, 97, 525, 381, 335.25, 234.77, 444.68, 229.22
227, 285, 101, 513, 380, 335.49, 235.24, 444.87, 229.47
228, 278, 99, 513, 386, 336.16, 235.14, 445.82, 229.04
229, 277, 100, 512, 386, 336.98, 235.19, 446.54, 229.40
230, 281, 100, 515, 386, 336.94, 235.16, 446.24, 229.04
231, 281, 98, 516, 387, 336.80, 235.55, 445.96, 229.59
232, 288, 101, 516, 380, 336.23, 235.81, 445.85, 230.04
233, 286, 102, 514, 381, 336.12, 235.99, 445.60, 230.35
234, 290, 100, 522, 382, 335.83, 235.34, 445.02, 229.92
235, 283, 97, 518, 384, 336.15, 235.13, 445.43, 229.28
236, 284, 97, 518, 385, 336.43, 235.00, 445.80, 229.26
237, 288, 101, 516, 381, 337.01, 234.73, 446.14, 229.10
238, 284, 100, 515, 382, 336.29, 235.33, 445.24, 230.08
239, 284, 100, 516, 382, 335.95, 235.45, 444.44, 229.58
240, 288, 99, 519, 381, 337.80, 236.53, 445.87, 229.71
241, 289, 100, 519, 382, 338.46, 235.21, 444.86, 230.69
242, 287, 99, 518, 381, 337.96, 234.76, 447.51, 229.84
243, 286, 98, 521, 386, 337.58, 234.26, 447.05, 229.04
244, 283, 99, 514, 382, 337.59, 234.63, 446.79, 228.77
245, 297, 101, 522, 376, 337.30, 233.81, 447.51, 228.11
246, 295, 96, 528, 378, 337.11, 233.16, 446.71, 227.75
247, 292, 95, 521, 376, 336.54, 233.58, 445.85, 227.84
248, 296, 93, 534, 376, 337.19, 233.52, 446.36, 227.02
249, 295, 98, 524, 378, 337.02, 233.95, 446.39, 227.91
250, 286, 97, 519, 381, 337.00, 233.31, 446.20, 228.07
251, 284, 95, 521, 384, 336.50, 233.66, 445.59, 227.87
252, 298, 98, 526, 380, 337.12, 233.51, 446.90, 228.01
253, 299, 97, 529, 379, 337.36, 233.85, 447.40, 228.10
254, 295, 96, 530, 381, 337.35, 233.66, 447.18, 228.44
255, 287, 97, 521, 382, 337.38, 233.77, 446.19, 228.07
256, 288, 96, 522, 382, 336.90, 233.37, 446.18, 227.72
257, 299, 97, 528, 378, 336.65, 233.52, 446.74, 227.58
258, 291, 97, 523, 380, 337.71, 233.64, 447.50, 228.00
259, 292, 93, 529, 383, 337.59, 233.53, 447.63, 228.33
260, 285, 96, 521, 385, 336.88, 234.35, 446.32, 228.44
261, 284, 95, 520, 383, 336.20, 233.80, 445.83, 228.11
262, 288, 99, 516, 377, 336.89, 233.44, 446.96, 228.20
263, 299, 95, 536, 377, 338.63, 233.45, 447.55, 228.07
264, 287, 100, 516, 378, 337.86, 233.67, 447.26, 228.29
265, 287, 96, 522, 382, 337.24, 233.73, 446.84, 228.16
266, 285, 96, 519, 383, 337.47, 233.98, 446.70, 228.60
267, 297, 95, 533, 381, 338.52, 234.37, 447.65, 228.63
268, 297, 97, 527, 379, 338.31, 233.88, 448.10, 228.23
269, 288, 97, 519, 380, 337.31, 233.61, 446.64, 227.89
270, 290, 96, 522, 380, 336.97, 233.14, 446.85, 227.62
271, 290, 91, 530, 384, 336.93, 233.29, 446.37, 228.02
272, 288, 98, 518, 380, 337.09, 233.50, 446.54, 227.78
273, 288, 98, 520, 380, 337.49, 233.52, 447.02, 228.08
274, 295, 94, 533, 379, 337.55, 233.62, 447.57, 228.06
275, 297, 94, 531, 382, 337.18, 233.49, 446.70, 227.45
276, 287, 98, 516, 379, 336.13, 233.21, 445.36, 227.70
277, 289, 97, 519, 379, 336.29, 232.93, 445.55, 227.58
278, 296, 98, 526, 378, 336.87, 232.99, 446.29, 227.78
279, 300, 98, 529, 377, 337.72, 233.34, 447.67, 227.80
280, 300, 97, 528, 378, 338.07, 233.67, 447.46, 228.43
281, 285, 98, 519, 383, 336.79, 233.70, 446.93, 228.48
282, 284, 96, 519, 384, 336.15, 233.59, 445.54, 228.23
283, 287, 96, 521, 383, 337.14, 233.61, 446.82, 228.44
284, 297, 93, 535, 381, 338.47, 234.11, 448.19, 227.79
285, 298, 92, 538, 380, 338.70, 233.97, 447.77, 227.98
286, 296, 93, 539, 381, 338.27, 234.25, 447.64, 228.10
287, 292, 92, 530, 383, 338.36, 233.50, 446.95, 228.76
288, 290, 98, 521, 380, 337.69, 233.44, 447.08, 228.10
289, 288, 99, 516, 379, 337.42, 233.59, 446.47, 228.16
290, 289, 98, 521, 380, 337.55, 233.71, 447.15, 228.27
291, 299, 98, 528, 377, 337.29, 233.82, 447.31, 228.23
292, 299, 97, 528, 377, 337.39, 233.65, 447.58, 228.37
293, 285, 96, 520, 381, 337.76, 233.45, 446.66, 228.27
294, 296, 96, 530, 379, 337.80, 233.62, 447.33, 228.36
295, 291, 97, 524, 380, 337.97, 233.50, 447.42, 228.16
296, 296, 96, 533, 378, 338.40, 233.49, 447.96, 228.05
297, 293, 94, 530, 382, 337.26, 233.45, 446.51, 228.12
298, 291, 96, 524, 380, 337.16, 233.41, 446.37, 227.91
299, 290, 96, 523, 380, 337.66, 233.26, 447.44, 228.01
300, 301, 97, 529, 376, 337.80, 233.55, 447.97, 227.77
bob/ip/qualitymeasure/data/real_client001_android_SD_scene01.mp4
0 → 100755
View file @
8559a22f
File added
bob/ip/qualitymeasure/galbally_iqm_features.py
View file @
8559a22f
...
...
@@ -38,20 +38,26 @@ def compute_quality_features(image):
"Image Quality Assessment for Fake Biometric Detection: Application to Iris, Fingerprint, and Face Recognition",
IEEE Trans. on Image Processing Vol 23(2), 2014.
"""
gray_image
=
None
#print("shape of input image:")
#print(image.shape)
if
len
(
image
.
shape
)
==
3
:
if
(
image
.
shape
[
0
]
==
3
):
gray_image
=
matlab_rgb2gray
(
rgbFrame
)
#compute gray-level image for input color-frame
gray_image
=
matlab_rgb2gray
(
image
)
#compute gray-level image for input color-frame
print
(
gray_image
.
shape
)
else
:
print
(
'error. Wrong kind of input image'
)
else
:
if
len
(
image
.
shape
)
==
2
:
gray_image
=
image
print
(
gray_image
.
shape
)
else
:
print
(
'error -- wrong kind of input'
)
gwin
=
gauss_2d
((
3
,
3
),
0.5
)
if
gray_image
:
if
gray_image
is
not
None
:
gwin
=
gauss_2d
((
3
,
3
),
0.5
)
# set up the smoothing-filter
print
(
"computing degraded version of image"
)
smoothed
=
ssg
.
convolve2d
(
gray_image
,
gwin
,
boundary
=
'symm'
,
mode
=
'same'
)
"""
...
...
@@ -61,6 +67,7 @@ def compute_quality_features(image):
approach is that smoothing degrades a spoof-image more than it does a genuine image
(see Galbally's paper referenced above).
"""
print
(
"computing galbally quality features"
)
featSet
=
image_quality_measures
(
gray_image
,
smoothed
)
return
featSet
...
...
bob/ip/qualitymeasure/msu_iqa_features.py
View file @
8559a22f
...
...
@@ -91,12 +91,12 @@ def sobelEdgeMap(image, orientation='both'):
refSobelX
=
refSobel_sep
[
0
,:,:]
refSobelY
=
refSobel_sep
[
1
,:,:]
if
orientation
is
'horizontal'
:
refEdge
=
iqm
.
edge
T
hinning
(
refSobelX
[:,:],
refSobelX
[:,:],
thinning
)
refEdge
=
iqm
.
edge
_t
hinning
(
refSobelX
[:,:],
refSobelX
[:,:],
thinning
)
else
:
if
orientation
is
'vertical'
:
refEdge
=
iqm
.
edge
T
hinning
(
refSobelY
[:,:],
refSobelY
[:,:],
thinning
)
refEdge
=
iqm
.
edge
_t
hinning
(
refSobelY
[:,:],
refSobelY
[:,:],
thinning
)
else
:
refEdge
=
iqm
.
edge
T
hinning
(
refSobelX
[:,:],
refSobelY
[:,:],
thinning
)
refEdge
=
iqm
.
edge
_t
hinning
(
refSobelX
[:,:],
refSobelY
[:,:],
thinning
)
return
refEdge
...
...
@@ -106,7 +106,8 @@ def sobelEdgeMap(image, orientation='both'):
'''
'''
#def computeMsuIQAFeatures(rgbImage, printFV=False):
def
computeMsuIQAFeatures
(
rgbImage
):
def
compute_msu_iqa_features
(
rgbImage
):
print
(
"computing msu iqa features"
)
assert
len
(
rgbImage
.
shape
)
==
3
,
'computeMsuIQAFeatures():: image should be a 3D array (containing a rgb image)'
# hsv = np.zeros_like(rgbImage)
# bob.ip.color.rgb_to_hsv(rgbImage, hsv)
...
...
@@ -115,7 +116,7 @@ def computeMsuIQAFeatures(rgbImage):
# v = hsv[2,:,:]
h
,
s
,
v
=
matlab_rgb2hsv
(
rgbImage
)
#defined above. Calls Bob's rgb_to_hsv() after rescaling the input image.
#print "compute
MsuIQAF
eatures():: check bob.ip.color.rgb_to_hsv conversion"
#print "compute
_msu_iqa_f
eatures():: check bob.ip.color.rgb_to_hsv conversion"
grayImage
=
np
.
zeros_like
(
h
,
dtype
=
'uint8'
)
bob
.
ip
.
color
.
rgb_to_gray
(
rgbImage
,
grayImage
)
...
...
@@ -147,7 +148,8 @@ def computeMsuIQAFeatures(rgbImage):
momentFeats
=
np
.
hstack
((
momentFeats
,
momentFeatsV
))
fv
=
momentFeats
.
copy
()
#print 'moment features:', fv
#print('moment features: ')
#print(fv)
fv
=
np
.
hstack
((
fv
,
colorHist
))
fv
=
np
.
hstack
((
fv
,
totNumColors
))
...
...
@@ -367,7 +369,7 @@ def rgbhist(image, maxval, nBins, normType=0):
for
i
in
range
(
0
,
numPix
):
# for i=1:size(I,1)*size(I,2)
p
=
(
im
[
i
,:]).
astype
(
float
)
# p = double(im(i,:));
p
=
np
.
floor
(
p
/
decimator
)
# p = floor(p/(maxval/nBins))+1;
p
=
(
np
.
floor
(
p
/
decimator
)
).
astype
(
np
.
uint32
)
# p = floor(p/(maxval/nBins))+1;
H
[
p
[
0
],
p
[
1
],
p
[
2
]]
+=
1
# H(p(1),p(2),p(3)) = H(p(1),p(2),p(3)) + 1;
# end
#totalNBins = np.prod(H.shape)
...
...
bob/ip/qualitymeasure/script/compute_msuiqa_features.py
deleted
100644 → 0
View file @
9988d042
'''
Created on 13 Oct 2015
@author: sbhatta
'''
import
os
,
sys
import
argparse
import
bob.io.base
import
bob.io.image
#under the hood: loads Bob plugin for image file
import
bob.io.video
import
bob.ip.color
import
numpy
as
np
import
msu_iqa_features
as
iqa
#import MSU_MaskedIQAFeats as iqa
import
antispoofing.utils.db
as
bobdb
'''
computes image-quality features for a set of frames comprising a video.
@param video4d: a '4d' video (N frames, each frame representing an r-g-b image).
returns a set of feature-vectors, 1 vector per frame of video4d
'''
def
computeVideoIQA
(
video4d
,
validFrames
):
numframes
=
video4d
.
shape
[
0
]
#process first frame separately, to get the no. of iqm features
numValidFrames
=
np
.
sum
(
validFrames
)
k
=
0
while
validFrames
[
k
]
==
0
:
k
+=
1
print
'first valid frame: '
,
k
rgbFrame
=
video4d
[
k
,:,:,:]
iqmSet
=
iqa
.
computeMsuIQAFeatures
(
rgbFrame
)
numIQMs
=
len
(
iqmSet
)
#now initialize fset to store iqm features for all frames of input video.
fset
=
np
.
zeros
([
numValidFrames
,
numIQMs
])
msuQFeats
=
np
.
asarray
(
iqmSet
)
# computeQualityFeatures() returns a tuple
fset
[
0
,:]
=
msuQFeats
print
'fset shape:'
,
fset
.
shape
j
=
1
for
f
in
range
(
k
+
1
,
numframes
):
if
validFrames
[
f
]
==
1
:
rgbFrame
=
video4d
[
f
,:,:,:]
#grayFrame = matlab_rgb2gray(rgbFrame) #compute gray-level image for input color-frame
msuQFeats
=
np
.
asarray
(
iqa
.
computeMsuIQAFeatures
(
rgbFrame
))
# computeQualityFeatures() returns a tuple
fset
[
j
,:]
=
msuQFeats
#print j, f
j
+=
1
return
fset
'''
loads a video, and returns a feature-vector for each frame of video
'''
def
computeIQA_1video
(
videoFile
,
frameQualFile
):
inputVideo
=
bob
.
io
.
video
.
reader
(
videoFile
)
#load input video
vin
=
inputVideo
.
load
()
numFrames
=
vin
.
shape
[
0
]
if
frameQualFile
is
not
None
:
f
=
bob
.
io
.
base
.
HDF5File
(
frameQualFile
)
#read only
validFrames
=
(
f
.
read
(
'/frameQuality'
)).
flatten
()
#reads list of frame-quality indicators
validFrames
[
np
.
where
(
validFrames
<>
1
)]
=
0
else
:
validFrames
=
np
.
ones
(
numFrames
)
#print validFrames
# print type(validFrames)
numValidFrames
=
np
.
sum
(
validFrames
)
print
'valid frames:'
,
numValidFrames
,
'of'
,
numFrames
#bob.io.base.save(vin[0,:,:,:].astype('uint8'), '/idiap/temp/sbhatta/msudb_colorImg.png')
import
time
startTime
=
time
.
time
()
fset
=
computeVideoIQA
(
vin
,
validFrames
)
print
(
"Time for one video --- %s seconds ---"
%
(
time
.
time
()
-
startTime
))
return
fset
'''
'''
def
parse_arguments
(
arguments
):
#code for parsing command line args.
argParser
=
argparse
.
ArgumentParser
(
description
=
__doc__
,
formatter_class
=
argparse
.
RawDescriptionHelpFormatter
)
# # verbose
argParser
.
add_argument
(
'-v'
,
'--verbose'
,
dest
=
'verbose'
,
metavar
=
'INT'
,
type
=
int
,
choices
=
[
0
,
1
,
2
],
default
=
1
,
help
=
'Prints (hopefully helpful) messages (Default: %(default)s)'
)
argParser
.
add_argument
(
'-db'
,
'--dbase_path'
,
dest
=
'dbPath'
,
default
=
None
,
#'/idiap/user/sbhatta/work/Antispoofing/ImageQualityMeasures',
help
=
'path where database videos exist.'
)
argParser
.
add_argument
(
'-op'
,
'--output_path'
,
dest
=
'outPath'
,
default
=
None
,
help
=
'path where face-files will be stored.'
)
argParser
.
add_argument
(
'-nf'
,
'--numFiles'
,
action
=
'store_true'
,
dest
=
'numFiles'
,
default
=
False
,
help
=
'Option to print no. of files that will be processed. (Default: %(default)s)'
)
argParser
.
add_argument
(
'-f'
,
'--singleFile'
,
dest
=
'singleFile'
,
default
=
None
,
help
=
'filename (including complete path) of video to be used to test this code: %(default)s)'
)
argParser
.
add_argument
(
'-ve'
,
'--video_ext'
,
dest
=
'vidExtn'
,
default
=
None
,
choices
=
[
'avi'
,
'mov'
,
'mp4'
],
help
=
'filename (including complete path) of video to be used to test this code: %(default)s)'
)
bobdb
.
Database
.
create_parser
(
argParser
,
implements_any_of
=
'video'
)
args
=
argParser
.
parse_args
(
arguments
)
database
=
args
.
cls
(
args
)
if
args
.
singleFile
is
None
:
#make sure the user specifies a folder where feature-files exist
if
not
args
.
dbPath
:
argParser
.
error
(
'Specify parameter --dbase_path'
)
else
:
folder
=
os
.
path
.
dirname
(
args
.
singleFile
)
filename
=
os
.
path
.
basename
(
args
.
singleFile
)
args
.
dbPath
=
folder
args
.
singleFile
=
filename
if
not
args
.
outPath
:
argParser
.
error
(
'Specify parameter --output_path'
)
return
(
args
,
database
)
'''
'''
def
main
(
arguments
):
args
,
database
=
parse_arguments
(
arguments
)
inpDir
=
args
.
dbPath
outDir
=
args
.
outPath
assert
os
.
path
.
exists
(
inpDir
),
"Input database folder %s does not exist"
%
inpDir
if
args
.
verbose
>
0
:
print
'Loading data from'
,
inpDir
if
args
.
singleFile
is
None
:
tr_realFiles
,
tr_attackFiles
=
database
.
get_train_data
()
dv_realFiles
,
dv_attackFiles
=
database
.
get_devel_data
()
ts_realFiles
,
ts_attackFiles
=
database
.
get_test_data
()
allFiles
=
tr_realFiles
+
dv_realFiles
+
ts_realFiles
+
tr_attackFiles
+
dv_attackFiles
+
ts_attackFiles
del
tr_realFiles
,
tr_attackFiles
,
dv_realFiles
,
dv_attackFiles
,
ts_realFiles
,
ts_attackFiles
numFiles
=
len
(
allFiles
)
if
args
.
numFiles
:
print
'Number of files to be processed:'
,
numFiles
print
'exiting'
return
# print numFiles
# numFiles = 1 #test
# if we are on a grid environment, just find what I have to process.
fileSet
=
allFiles
[
0
:
numFiles
]
if
os
.
environ
.
has_key
(
'SGE_TASK_ID'
):
pos
=
int
(
os
.
environ
[
'SGE_TASK_ID'
])
-
1
if
pos
>=
numFiles
:
raise
RuntimeError
,
"Grid request for job %d on a setup with %d jobs"
%
(
pos
,
numFiles
)
fileSet
=
[
allFiles
[
pos
]]
# objects = [objects[pos]]
print
'processing'
,
len
(
fileSet
),
' files'
k1
=
0
for
k
in
fileSet
:
#1. load video file
print
'filenum:'
,
k1
# infile = k.make_path(videoRoot, '.avi')
# outfile = k.make_path(featRoot, '.h5')
print
k
if
args
.
vidExtn
is
None
:
inVidFile
=
k
.
videofile
(
inpDir
)
#k.make_path(inpDir, '.avi')
else
:
inVidFile
=
k
.
make_path
(
inpDir
,
(
'.'
+
args
.
vidExtn
))
inFrameQFile
=
None
#k.make_path(inpDir, '_frameQ.h5')
outFeatFile
=
k
.
make_path
(
outDir
,
'.h5'
)
head
,
tail
=
os
.
path
.
split
(
outFeatFile
)
if
not
os
.
path
.
exists
(
head
):
os
.
makedirs
(
head
)
#create output folder, if it doesn't exist
print
inFrameQFile
print
outFeatFile
# if True: #not os.path.isfile(outFeatFile):
msuIQAFeats
=
computeIQA_1video
(
inVidFile
,
inFrameQFile
)
#4. save features in file
ohf
=
bob
.
io
.
base
.
HDF5File
(
outFeatFile
,
'w'
)
ohf
.
set
(
'msuiqa'
,
msuIQAFeats
)
del
ohf
# assert 0>1, 'stop'
k1
+=
1
else
:
# test feature-computation with a single file specified as input
filePart
=
os
.
path
.
splitext
(
args
.