首先我们需要打开百度AI,
我们需要复制API Key 和Secret Key
复制代码进行修改
修改后的代码,得到access_token
import requests
import json
client_id 为官网获取的AK, client_secret 为官网获取的SK
request_url= 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=官网获取的AK&client_secret=官网获取的SK'
headers={'Content-Type':'application/json;charset=UTF-8'}
content=requests.post(url=request_url,headers=headers)
res=content.text
res1=json.loads(res)
print(res1['access_token'])
结果:
24.2d3185345af00ae03ccfd479ec62971a.2592000.1570674919.282335-17195933
这就是我们想要的access_token
复制属性分析的代码
人脸检测与属性分析
修改后的代码
def index(request):
module_dir = os.path.dirname(__file__) # 获取当前目录
file_path = os.path.join(module_dir,'sy.jpg') #将获取好的路径与图片合并,以便打开图片文件或者使用相对路径历来读取
#base64译码图片文件
with open(file_path, 'rb') as f:
base64_data = base64.b64encode(f.read())
s = base64_data.decode()
#请求地址
request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"
#添加请求参数
params = {
'image': s,
'image_type': 'BASE64',
'face_field': 'age,glasses,beauty,gender,race,landmark150' #可以参考文档添加你想要的的参数,
}
headers = {'Content-Type': 'application/json;charset=UTF-8'}
#这里记得headers的修改符号,否则会报'set' abject has no attribute 'items'
access_token = '24.2d3185345af00ae03ccfd479ec62971a.2592000.1570674919.282335-17195933'
request_url = request_url + "?access_token=" + access_token
content = requests.post(url=request_url, headers=headers, data=params)
result = json.loads(content.text)['result']['face_list'][0]
xy = result['landmark150']
#为图片描点
image = cv2.imread('./jiance/sy.jpg') #读取文件使用相对路径
for point in xy:
x = int(xy[point]['x'])
y = int(xy[point]['y'])
cv2.circle(image, (x, y), 1, (0, 255, 0), 4)
cv2.imwrite('./static/a.jpg', image)
age = result['age']
beauty = result['beauty']
gender_type = result['gender']['type']
gender_pt = result['gender']["probability"]
race_type = result['race']['type']
rece_pt = result['race']["probability"]
gt=''
if gender_type=='female':
gt='女性'
else:
gt='男性'
gp=str(gender_pt*100)+'%'
rt=''
if race_type=='yellow':
rt='黄种人'
elif race_type=='white':
rt='白种人'
elif race_type=='black':
rt='黑种人'
elif race_type=='arabs':
rt='阿拉伯人'
else:
pass
rp = str(gender_pt * 100) + '%'
return render(request,'index.html',locals())
模板代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<img src="/static/a.jpg" alt="" width="400px"> <br>
年龄:{{ age }} <br>
颜值分:{{ beauty }} <br>
性别:{{ gt }} <br>
性别可信度:{{ gp }} <br>
肤色:{{ rt }} <br>
肤色可信度:{{ rp }} <br>
</body>
</html>
展示结果:
补充:
这里在是用cv2之前要先安装使用
pip install opencv - python
但是提前还需要安装c++环境,否则会出现超市的问题
下载地址:
https://www.microsoft.com/zh-CN/download/details.aspx?id=48145
根据自己的电脑进行选择下载
下载玩进行安装即可在进行命令操作:
pip install opencv - python
会得到下图就成功:
这样cv2才可以使用。