summaryrefslogtreecommitdiffstats
path: root/data/face-frame-recognition-accuracy.py
diff options
context:
space:
mode:
Diffstat (limited to 'data/face-frame-recognition-accuracy.py')
-rwxr-xr-xdata/face-frame-recognition-accuracy.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/data/face-frame-recognition-accuracy.py b/data/face-frame-recognition-accuracy.py
new file mode 100755
index 0000000..0d34cf9
--- /dev/null
+++ b/data/face-frame-recognition-accuracy.py
@@ -0,0 +1,63 @@
+#!/usr/bin/python
+import os
+import sys
+import pickle
+
+prun = 0
+runs = {}
+labels = {}
+users = pickle.load((open(sys.argv[3])))
+recs = map(lambda x:0,users)
+conf = {}
+thresh = 0.0
+try:
+ thresh = float(sys.argv[4])
+except:
+ pass
+
+for line in open(sys.argv[1]):
+ line = line.split(',')
+ try:
+ run = int(line[3])
+ except:
+ continue
+ user = line[1]
+ if run not in runs:
+ runs[run] = 0
+ labels[run] = users.index(user) + 1
+
+for line in open(sys.argv[2]):
+ line = line.split(',')
+ try:
+ run = int(line[3])
+ except:
+ continue
+ user = line[1]
+ rec = ' '.join(line[6].split('@')[0].split('_'))
+ if run != prun and prun > 0:
+ runs[prun] = recs.index(max(recs))+1
+ recs = map(lambda x:0,users)
+ recs[users.index(rec)] += 1
+ conf[run] = float(line[7])
+ prun = run
+
+t=0.0
+tp=0.0
+fp=0.0
+fn=0.0
+for (k,v) in runs.items():
+ #print v,labels[k]
+ if v == 0 or conf[k] < thresh:
+ fn += 1
+ elif v != labels[k]:
+ fp += 1
+ else:
+ tp += 1
+ t += 1
+#print runs[167],labels[167]
+#print tp,fp,fn
+#print("Precision: ",tp/(tp+fp))
+#print("False positives: ",fp/(tp+fp))
+#print("Recall: ",1.0-fn/t)
+print str(tp/(tp+fp))+","+str(1.0-fn/t)
+