From ebc3844ae6598a05f922c31d382bc3100ffdd73d Mon Sep 17 00:00:00 2001 From: Jon Whiteaker Date: Mon, 20 Feb 2012 15:52:58 -0800 Subject: face rec accuracy --- data/face-recognition-accuracy.py | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 data/face-recognition-accuracy.py (limited to 'data') diff --git a/data/face-recognition-accuracy.py b/data/face-recognition-accuracy.py new file mode 100755 index 0000000..00feb8f --- /dev/null +++ b/data/face-recognition-accuracy.py @@ -0,0 +1,53 @@ +#!/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) + +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 + +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 + +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 + +print("True positives: ",tp/t) +print("False positives: ",fp/t) +print("False negatives: ",fn/t) + -- cgit v1.2.3-70-g09d2