summaryrefslogtreecommitdiffstats
path: root/data/face-train.py
diff options
context:
space:
mode:
authorJon Whiteaker <jbw@jon-th-desktop.(none)>2012-02-15 16:51:17 -0800
committerJon Whiteaker <jbw@jon-th-desktop.(none)>2012-02-15 16:51:17 -0800
commitd889de1824d70e90b2b1e2c51120517b8fbafea7 (patch)
treef7d697fe04e79c8c2c819d7fa0f37298ae96c40b /data/face-train.py
parent83c5e1cfd0b4b3546dd13ebf9010736ac9410ffa (diff)
downloadkinect-d889de1824d70e90b2b1e2c51120517b8fbafea7.tar.gz
face-detect and faces.py updates
Diffstat (limited to 'data/face-train.py')
-rwxr-xr-x[-rw-r--r--]data/face-train.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/data/face-train.py b/data/face-train.py
index 636607f..80ca4fa 100644..100755
--- a/data/face-train.py
+++ b/data/face-train.py
@@ -8,3 +8,43 @@ api_key = '34a84a7835bf24df2d84b4bded84e838'
api_secret = '5bc9e8c5a9e3a2d916abbe3659a1b3f8'
url_base = 'http://74.95.195.225/static/img/jon/users/'
client = FaceClient(api_key, api_secret)
+
+def train(ns,dataset,dirs):
+ f = open('train.log', 'w')
+ for d in dirs:
+ tids = []
+ count = 0
+ user = d.rstrip('/').split('/')[-1]
+ for line in open(d+'/'+dataset+'-train', 'r'):
+ pic = line.split(',')[-2].split('/')[-1].split('.')[0]+'.jpeg'
+ if pic != "face.jpeg":
+ count += 1
+ url = url_base+user+'/train/'+pic
+ try:
+ response = client.faces_detect(url)
+ sys.stderr.write(str(response['photos'][0]['tags'])+"\n")
+ for photo in response['photos']:
+ if len(photo['tags']) > 0:
+ tids += [photo['tags'][0]['tid']]
+ f.write("\t".join([user, pic, "face"])+"/n")
+ else:
+ f.write("\t".join([user, pic, "no-face"])+"/n")
+ except:
+ sys.stderr.write("Unexpexted error:"+str(sys.exc_info()[0]))
+ pass
+ saved = client.tags_save(tids = ',' . join(tids), uid = user+'@'+ns)
+ sys.stderr.write(str(saved)+"\n")
+ 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)])
+
+
+if __name__ == "__main__":
+ train(sys.argv[1],sys.argv[2],sys.argv[3:])
+
+