def find_households (img_url): client = face_client.FaceClient(settings.FACE_COM_KEY, settings.FACE_COM_SECRET) try: response = client.faces_recognize('all', img_url, namespace=settings.FACE_COM_NAMESPACE) except: return None uids = response['photos'][0]['tags'][0]['uids'] if len(uids) > 0: ret = [] used = [] for uid in uids: uid = uid['uid'].replace('@' + settings.FACE_COM_NAMESPACE, '') if re.search("^p", uid): uid = uid.replace('p', '') try: p = pmodels.Person.objects.get(id=uid) except: pass else: #print p if p.household.id not in used: used.append(p.household.id) ret.append(p.household) return ret return None
def train(url): print 'training...' client = face_client.FaceClient(FACE_API_KEY, FACE_API_SECRET) client.set_facebook_credentials(session=FB_SESSION_KEY, user=FB_USER) if 'profile.php' in url: id = url[url.find('id=') + 3:] result = client.faces_train(uids='*****@*****.**' % (id)) return result url = url.replace('www.facebook.com', 'graph.facebook.com') result = fetch_url(url) if not result: return 'Could not train' id = simplejson.loads(result).get('id') result = client.faces_train(uids='*****@*****.**' % (id)) return result
def recognize(live=True, path='/tmp/pic.jpg'): client = face_client.FaceClient(FACE_API_KEY, FACE_API_SECRET) client.set_facebook_credentials(session=FB_SESSION_KEY, user=FB_USER) if live: os.system('%s %s' % (ISIGHTCAPTURE_PATH, path)) result = client.faces_recognize(file=path, uids='*****@*****.**', aggressive=True) if not result: return 'Could not recognize face' try: print[uid for uid in result['photos'][0]['tags'][0]['uids'][:5]] uid = result['photos'][0]['tags'][0]['uids'][0]['uid'] except: return result uid = uid.replace('@facebook.com', '') fb_result = fetch_url('http://graph.facebook.com/' + uid) if not fb_result: return 'Could not contact facebook' fb_result = simplejson.loads(fb_result) print '\n\n\nHello, %s\n\n\n' % (fb_result['name']) return {'uid': uid, 'name': fb_result['name']}
def face_detect(self): #print "Detecting Faces" client = face_client.FaceClient(settings.FACE_COM_KEY, settings.FACE_COM_SECRET) if self.image: response = client.faces_detect(settings.FACE_COM_HTTP + self.image.url) try: tids = [ photo['tags'][0]['tid'] for photo in response['photos'] ] except: pass else: uid = 'p%d@%s' % (self.id, settings.FACE_COM_NAMESPACE) name = str(self) #print tids client.tags_get(uid) client.tags_save(tids=','.join(tids), uid=uid, label=name) client.faces_train(uid)
def main(argv): client = face_client.FaceClient(CameraController(), ImageDisplayer(), FaceApiProxy()) client.start()