Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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']}
Beispiel #4
0
    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)
Beispiel #5
0
def main(argv):
    client = face_client.FaceClient(CameraController(), ImageDisplayer(),
                                    FaceApiProxy())
    client.start()