summaryrefslogtreecommitdiffstats
path: root/data/face-recognition-accuracy.py
diff options
context:
space:
mode:
Diffstat (limited to 'data/face-recognition-accuracy.py')
-rwxr-xr-xdata/face-recognition-accuracy.py86
1 files changed, 41 insertions, 45 deletions
diff --git a/data/face-recognition-accuracy.py b/data/face-recognition-accuracy.py
index 00feb8f..8b3584f 100755
--- a/data/face-recognition-accuracy.py
+++ b/data/face-recognition-accuracy.py
@@ -1,53 +1,49 @@
#!/usr/bin/python
-import os
+import matplotlib.pyplot as plt
+import matplotlib.mlab as ml
+import numpy as np
import sys
-import pickle
-prun = 0
-runs = {}
-labels = {}
-users = pickle.load((open(sys.argv[3])))
-recs = map(lambda x:0,users)
+numbins_distance = 15
+numbins_brightness = 10
-for line in open(sys.argv[1]):
- line = line.split(',')
- try:
- run = int(line[2])
- except:
- continue
- user = line[1]
- if run not in runs:
- runs[run] = 0
- labels[run] = users.index(user) + 1
+test_filename = sys.argv[1]
+bfile = open(sys.argv[2])
+distance=[]
+brightness=[]
+detected=[]
-for line in open(sys.argv[2]):
- line = line.split(',')
- try:
- run = int(line[2])
- 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(user)] += 1
- prun = run
+for line in open(test_filename):
+ values = line.rstrip().split(',')
+ subdir,name,run,frame,zv = values[0:5]
+ name = '_'.join(name.split())
+ detected_name = values[6].split('@')[0]
+ bline = bfile.readline().rstrip().split(',')
+ while bline[3] != frame:
+ bline = bfile.readline().rstrip().split(',')
-t=0.0
-tp=0.0
-fp=0.0
-fn=0.0
-for (k,v) in runs.items():
- if v == 0:
- fn += 1
- elif v != labels[k]:
- fp += 1
- else:
- tp += 1
- t += 1
+ br = bline[4]
+ distance.append(float(zv))
+ brightness.append(float(br))
+ detected.append(detected_name==name)
-print("True positives: ",tp/t)
-print("False positives: ",fp/t)
-print("False negatives: ",fn/t)
+distance = np.array(distance)
+brightness = np.array(brightness)
+detected = np.array(detected)
+distance_detected = distance[detected>0]
+brightness_detected = brightness[detected>0]
+range_distance = (min(distance),max(distance))
+range_brightness = (min(brightness),max(brightness))
+hist_detected,bins = np.histogram(distance_detected,bins=numbins_distance,range=range_distance)
+hist,bins = np.histogram(distance, bins=numbins_distance, range=range_distance)
+brightness_hist_detected,bins_brightness = np.histogram(brightness_detected,bins=numbins_brightness, range=range_brightness)
+brightness_hist,bins_brightness = np.histogram(brightness,bins=numbins_brightness, range=range_brightness)
+
+result1 = hist_detected*1./hist
+result2 = brightness_hist_detected*1./brightness_hist
+plt.subplot(211)
+plt.bar(bins[:-1],result1,width=np.diff(bins))
+plt.subplot(212)
+plt.bar(bins_brightness[:-1],result2,width=np.diff(bins_brightness))
+plt.show()