Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import picamera
- import http.client, urllib.request, urllib.parse, urllib.error, base64
- import json
- def takePicture():
- with picamera.PiCamera() as camera:
- camera.resolution = (1024, 768)
- camera.start_preview()
- # Camera warm-up time
- time.sleep(2)
- camera.capture('foo.jpg')
- def findFaces():
- takePicture()
- headers = {
- # Basic Authorization Sample
- # 'Authorization': 'Basic %s' % base64.encodestring('{username}:{password}'),
- 'Content-type': 'application/octet-stream',
- }
- params = urllib.parse.urlencode({
- # Specify your subscription key
- 'subscription-key': 'SUBSCRIPTION_KEY',
- # Specify values for optional parameters, as needed
- #'analyzesFaceLandmarks': 'false',
- #'analyzesAge': 'yes',
- #'analyzesGender': 'false',
- #'analyzesHeadPose': 'false',
- })
- body = ""
- filename = 'foo.jpg'
- f = open(filename, "rb")
- body = f.read()
- f.close()
- try:
- conn = http.client.HTTPSConnection('api.projectoxford.ai')
- conn.request("POST", "/face/v0/detections?%s" % params, body, headers)
- response = conn.getresponse()
- data = response.read()
- print(data)
- conn.close()
- data = json.loads(data.decode("utf-8"))
- return data
- except Exception as e:
- print("[Errno {0}] {1}".format(e.errno, e.strerror))
- def identifyFace():
- headers = {
- # Basic Authorization Sample
- # 'Authorization': 'Basic %s' % base64.encodestring('{username}:{password}'),
- 'Content-type': 'application/json',
- }
- params = urllib.parse.urlencode({
- # Specify your subscription key
- 'subscription-key': 'SUBSCRIPTION_KEY',
- })
- data = findFaces()
- if len(data) < 5:
- print("No face detected")
- faceIds = data[0]['faceId']
- print(faceIds)
- body = '{"faceIds":["' +faceIds + '"],"personGroupId":"sample_group","maxNumOfCandidatesReturned":3}'
- print( body)
- personId = ""
- try:
- conn = http.client.HTTPSConnection('api.projectoxford.ai')
- conn.request("POST", "/face/v0/identifications?%s" % params, body, headers)
- response = conn.getresponse()
- data = response.read()
- print(data)
- data = json.loads(data.decode("utf-8"))
- print(data[0])
- print(data[0]["candidates"])
- print(data[0]["candidates"][0])
- print(data[0]["candidates"][0]["personId"])
- #for key, value in data[0]["candidates"][0] :
- # print(value)
- personId = data[0]["candidates"][0]["personId"]
- print("No fail")
- conn.close()
- except Exception as e:
- print("[Errno {0}] {1}".format(e.errno, e.strerror))
- headers = {
- # Basic Authorization Sample
- # 'Authorization': 'Basic %s' % base64.encodestring('{username}:{password}'),
- 'Content-type': 'application/json',
- }
- params = urllib.parse.urlencode({
- # Specify your subscription key
- 'subscription-key': 'SUBSCRIPTION_KEY',
- })
- try:
- conn = http.client.HTTPSConnection('api.projectoxford.ai')
- url = "/face/v0/personGroups/sample_group/persons/" + personId
- conn.request("GET", (url + "?%s") % params, "", headers)
- response = conn.getresponse()
- data = response.read()
- data = json.loads(data.decode("utf-8"))
- print("#################################")
- print("#################################")
- print("#################################")
- print("#################################")
- print("WELCOME " + data["name"])
- conn.close()
- except Exception as e:
- print("[Errno {0}] {1}".format(e.errno, e.strerror))
- def createPerson():
- headers = {
- # Basic Authorization Sample
- # 'Authorization': 'Basic %s' % base64.encodestring('{username}:{password}'),
- 'Content-type': 'application/json',
- }
- params = urllib.parse.urlencode({
- # Specify your subscription key
- 'subscription-key': 'SUBSCRIPTION_KEY',
- #'personGroupId':'sample_group'
- })
- body = '{"name":"sample_group","userData":"user-provided data attached to the person group"}'
- print( body)
- try:
- conn = http.client.HTTPSConnection('api.projectoxford.ai')
- conn.request("POST", "/face/v0/persongroups/sample_group/persons?%s" % params, body, headers)
- response = conn.getresponse()
- data = response.read()
- print(data)
- conn.close()
- except Exception as e:
- print("[Errno {0}] {1}".format(e.errno, e.strerror))
- def getPersonGroup():
- headers = {
- # Basic Authorization Sample
- # 'Authorization': 'Basic %s' % base64.encodestring('{username}:{password}'),
- 'Content-type': 'application/json',
- }
- params = urllib.parse.urlencode({
- # Specify your subscription key
- 'subscription-key': 'SUBSCRIPTION_KEY',
- #'personGroupId':'sample_group'
- })
- try:
- conn = http.client.HTTPSConnection('api.projectoxford.ai')
- conn.request("GET", "/face/v0/persongroups/sample_group?%s" % params, "", headers)
- response = conn.getresponse()
- data = response.read()
- print(data)
- conn.close()
- except Exception as e:
- print("[Errno {0}] {1}".format(e.errno, e.strerror))
- def trainPersonGroup():
- headers = {
- # Basic Authorization Sample
- # 'Authorization': 'Basic %s' % base64.encodestring('{username}:{password}'),
- 'Content-type': 'application/json',
- }
- params = urllib.parse.urlencode({
- # Specify your subscription key
- 'subscription-key': 'SUBSCRIPTION_KEY',
- #'personGroupId':'sample_group'
- })
- body = '{"name":"sample_group","userData":"user-provided data attached to the person group"}'
- print( body)
- try:
- conn = http.client.HTTPSConnection('api.projectoxford.ai')
- conn.request("POST", "/face/v0/persongroups/sample_group/training?%s" % params, body, headers)
- response = conn.getresponse()
- data = response.read()
- print(data)
- conn.close()
- except Exception as e:
- print("[Errno {0}] {1}".format(e.errno, e.strerror))
- def getTrainingStatusPersonGroup():
- headers = {
- # Basic Authorization Sample
- # 'Authorization': 'Basic %s' % base64.encodestring('{username}:{password}'),
- 'Content-type': 'application/json',
- }
- params = urllib.parse.urlencode({
- # Specify your subscription key
- 'subscription-key': 'SUBSCRIPTION_KEY',
- })
- try:
- conn = http.client.HTTPSConnection('api.projectoxford.ai')
- conn.request("GET", "/face/v0/persongroups/sample_group/training?%s" % params, body, headers)
- response = conn.getresponse()
- data = response.read()
- print(data.decode("utf-8"))
- conn.close()
- except Exception as e:
- print("[Errno {0}] {1}".format(e.errno, e.strerror))
- def addPersonToGroup():
- headers = {
- # Basic Authorization Sample
- # 'Authorization': 'Basic %s' % base64.encodestring('{username}:{password}'),
- 'Content-type': 'application/json',
- }
- params = urllib.parse.urlencode({
- # Specify your subscription key
- 'subscription-key': 'SUBSCRIPTION_KEY',
- #'personGroupId':'sample_group'
- })
- faceIds = ""
- times = 3
- while times > 0:
- faceIds = faceIds + '"' + findFaces()[0]['faceId'] + '",'
- times -= 1
- body = '{"faceIds":[' +faceIds + '],"name":"Jakob","userData":"Jakob!"}'
- print( body)
- try:
- conn = http.client.HTTPSConnection('api.projectoxford.ai')
- conn.request("POST", "/face/v0/persongroups/sample_group/persons?%s" % params, body, headers)
- response = conn.getresponse()
- data = response.read()
- print(data)
- conn.close()
- except Exception as e:
- print("[Errno {0}] {1}".format(e.errno, e.strerror))
- #addPersonToGroup()
- #createPersonGroup()
- #getPersonGroup()
- identifyFace()
- #trainPersonGroup()
- #getTrainingStatusPersonGroup()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement