summaryrefslogtreecommitdiffstats
path: root/data/face-train.py
diff options
context:
space:
mode:
Diffstat (limited to 'data/face-train.py')
-rwxr-xr-xdata/face-train.py91
1 files changed, 15 insertions, 76 deletions
diff --git a/data/face-train.py b/data/face-train.py
index 8f34425..f27074d 100755
--- a/data/face-train.py
+++ b/data/face-train.py
@@ -1,86 +1,25 @@
#!/usr/bin/python
-from subprocess import Popen
import os
import sys
-from face_client import FaceClient
+from face_client import FaceClient, FaceError
+from httplib import HTTPException
+from urllib2 import HTTPError
+from httplib import HTTPException
+import time
+import pickle
+
+users = pickle.load(open(sys.argv[1]))
+exclude = ['Anmol', 'Nina', 'Scott']
+ns = sys.argv[2]
api_key = '34a84a7835bf24df2d84b4bded84e838'
api_secret = '5bc9e8c5a9e3a2d916abbe3659a1b3f8'
client = FaceClient(api_key, api_secret)
-def limits(response):
- return response['remaining'],response['reset_time']
-
-remaining,reset_time = limits(client.account_limits())
-sframe = 0
-try:
- sframe = int(sys.argv[3])
-except:
- sframe = 0
-
-ns = sys.argv[1]
-dataset = sys.argv[2]
-pic_dir = sys.argv[3]
-f = open('train.log', 'w')
-for line in open(dataset):
- line = line.strip().split(',')
- sub_dir,user,run,frame = line[0:4]
- while remaining == 0:
- time.sleep(max(reset_time - time.time(),0) + 10)
- remaining,reset_time = limits(client)
- if frame != 'frame' and int(frame) > sframe:
- img = open(pic_dir + sub_dir + '/' + frame + '.jpg')
- response = None
- while response == None:
- try:
- img = open(pic_dir + frame + '.jpg')
- response = client.faces_detect(file=img)
- img.close()
- remaining,reset_time = limits(response['usage'])
- except (HTTPException, HTTPError):
- sys.stderr.write("HTTP Exception\n")
- time.sleep(5)
- except FaceError:
- sys.stderr.write("Face Exception\n")
- sys.stderr.write(str(img))
- time.sleep(5)
- out = line[0:4]
- tids = []
- try:
- sys.stderr.write(frame)
- sys.stderr.write(str(response['photos'][0]['tags'])+"\n")
- photo = response['photos'][0]
- out += [str(len(photo['tags']))]
- for tag in photo['tags']:
- out += [str(tag['recognizable']),str(tag['width']),str(tag['height']),str(tag['center']['x']),str(tag['center']['y'])]
- tids += [tag['tid']]
- except:
- sys.stderr.write("Unexpexted error:"+str(sys.exc_info()[0])+" "+frame)
- out = line[0:4] + ['0']
- #client.tags_remove(tids=','.join(tags))
- if len(tids) > 0:
- saved = None
- while saved == None:
- try:
- saved = client.tags_save(tids = tids[0], uid = user+'@'+ns)
- except (HTTPException, HTTPError):
- sys.stderr.write("HTTP Exception\n")
- time.sleep(5)
- except FaceError:
- sys.stderr.write("Face Exception\n")
- sys.stderr.write(str(img))
- time.sleep(5)
- sys.stderr.write(str(saved)+"\n")
- print ','.join(out)
+for user in users:
+ if user not in exclude:
+ user = '_'.join(user.split())
+ trained = client.faces_train(user+'@'+ns)
+ print trained
time.sleep(0.3)
- #trained = client.faces_train(user+'@'+ns)
- #sys.stderr.write(str(trained)+"\n")
- #f.write("\t".join([user, str(len(saved['saved_tags'])), str(trained)])+"/n")
- #k = trained.keys()
- #k.remove(u'status')
- #ntrain = trained[k[0]][0][u'training_set_size']
-
- #print ",".join([user,str(count),str(len(saved['saved_tags'])),str(ntrain)] + out)
-
-