1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#!/usr/bin/python
import os
import sys
from face_client import FaceClient, FaceError
import time
from httplib import HTTPException
from urllib2 import HTTPError
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[4])
except:
sframe = 0
try:
eframe = int(sys.argv[5])
except:
eframe = sys.maxint
ns = sys.argv[1]
dataset = sys.argv[2]
pic_dir = sys.argv[3]
exclude = ['Anmol', 'Nina', 'Scott']
for line in open(dataset):
line = line.strip().split(',')
sub_dir,user,run,frame,zv,num,rec = line[0:7]
user = '_'.join(user.split())
while remaining == 0:
time.sleep(max(reset_time - time.time(),0) + 10)
remaining,reset_time = limits(client)
if frame != 'frame' and int(frame) > sframe and int(frame) < eframe and int(num) == 1 and rec == 'True' and user not in exclude:
response = None
while response == None:
try:
img = open(pic_dir + sub_dir + '/' + frame + '.jpg')
response = client.faces_recognize('all',file=img,namespace=ns)
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:5]
#try:
sys.stderr.write(frame)
sys.stderr.write(str(response['photos'][0]['tags'])+"\n")
photo = response['photos'][0]
out += [str(len(photo['tags'][0]['uids']))]
for tag in photo['tags'][0]['uids']:
out += [tag['uid'], str(tag['confidence'])]
#except:
# sys.stderr.write("Unexpexted error:"+str(sys.exc_info()[0])+" "+frame)
# out += ['0']
#client.tags_remove(tids=','.join(tags))
print ','.join(out)
time.sleep(0.3)
|