#face.py
#上传图片进行识别
# -*- coding: utf-8 -*-
import urllib.request
import urllib.error
import time
escape_dict={'\a':r'\a','\b':r'\b','\c':r'\c','\f':r'\f','\n':r'\n','\r':r'\r','\t':r'\t','\v':r'\v','\'':r'\'','\"':r'\"','\0':r'\0','\1':r'\1','\2':r'\2','\3':r'\3','\4':r'\4','\5':r'\5','\6':r'\6','\7':r'\7','\8':r'\8','\9':r'\9'}
def raw(text):
new_string=''
for char in text:
try:new_string+=escape_dict[char]
except KeyError:new_string+=char
return new_string
def up(filepath):
http_url = 'https://api-cn.faceplusplus.com/facepp/v3/detect'
key = 'j1eIBCbzSTcwoXFyHdrVn-3RURnwP3Nu'
secret = 'w5RPm5a43r5DthilCgZiZFsBQxC0N8Si'
filepath = raw(filepath)
boundary = '----------%s' % hex(int(time.time() * 1000))
data = []
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'api_key')
data.append(key)
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'api_secret')
data.append(secret)
data.append('--%s' % boundary)
fr = open(filepath, 'rb')
data.append('Content-Disposition: form-data; name="%s"; filename=" "' % 'image_file')
data.append('Content-Type: %s\r\n' % 'application/octet-stream')
data.append(fr.read())
fr.close()
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'return_landmark')
data.append('1')
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'return_attributes')
data.append("gender,age,smiling,headpose,facequality,blur,eyestatus,emotion,ethnicity,beauty,mouthstatus,eyegaze,skinstatus")
data.append('--%s--\r\n' % boundary)
for i, d in enumerate(data):
if isinstance(d, str):
data[i] = d.encode('utf-8')
http_body = b'\r\n'.join(data)
req = urllib.request.Request(url=http_url, data=http_body)
req.add_header('Content-Type', 'multipart/form-data; boundary=%s' % boundary)
try:
resp = urllib.request.urlopen(req, timeout=5)
#urllib.request.close()
qrcont = resp.read()
qrcont=qrcont.decode('utf-8')
dictinfo = eval(qrcont)
FACE=dictinfo['faces']
result='\n'
result=result+'共检测到'+str(len(FACE))+'张人脸'+'\n'
num=1
for i in FACE:
result=result+"peo "+str(num)+'\n'
num+=1
sx=i['attributes']