当前位置: 移动技术网 > 科技>操作系统>windows > 百度云人脸识别API人脸对比

百度云人脸识别API人脸对比

2019年11月06日  | 移动技术网科技  | 我要评论

中华道,食堂承包首选万康餐饮,上海ailete

 1 from urllib import request
 2 import base64
 3 import requests
 4 import re
 5 import json
 6 import urllib
 7 import os
 8 
 9 
10 # 获取token
11 def get_token(client_id,client_secret):
12     host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+ client_id + '&client_secret='+ client_secret + ''
13     headers = {'content-type': 'application/json; charset=utf-8'}
14     res = requests.post(host, headers=headers)
15     access_token = re.findall('"access_token":"(.*?)"', res.text)[0]
16     return access_token
17 
18 # 打开文件夹
19 def geturlpath(path):
20     dirs = os.listdir(path)
21     lst = []
22     for dir1 in dirs:
23         pa = path + dir1
24         lst.append(pa)
25     return lst
26 
27 # 打开本地图片,并转化为base64
28 def open_pic2base(image):
29     f = open(image,'rb')
30     img = base64.b64encode(f.read()).decode('utf-8')
31     return img
32 
33 # 对两张图片进行对比
34 def check2pic(client_id,client_secret,image1,image2):
35     request_url = "https://aip.baidubce.com/rest/2.0/face/v3/match"
36     for image in image2:
37         a = open_pic2base(image)
38         b = base64.b64decode(a)
39         params = json.dumps(
40             [{"image": open_pic2base(image1), "image_type": "base64","quality_control": "low"},
41              {"image": a, "image_type": "base64","quality_control": "low"}])
42 
43         # 调用接口
44         access_token = get_token(client_id, client_secret)
45         request_url = request_url + "?access_token=" + access_token
46         params = params.encode("utf-8")
47         request = urllib.request.request(url=request_url, data=params)
48         request.add_header('content-type', 'application/json')
49 
50         response = urllib.request.urlopen(request)
51         content = response.read()
52         score = 0
53         if content:
54             result = json.loads(content.decode('utf-8'))
55             if result["error_code"] == 0:
56                 score = result["result"]["score"]
57                 if score > 75:
58                     with open('g:/images6/'+ image.split('/')[-1],'wb') as f:
59                         f.write(b)
60                         f.close()
61             else:
62                 errors = {}
63                 error_msg = result["error_msg"]
64                 errors[image.split('/')[-1]] = error_msg
65                 print(errors)
66 if __name__ == '__main__':
67     client_id = 'mezaakibot5dgp4cfxgpv4wa'
68     client_secret = 'imadhittnavtgkleugrnunug3nodie7q'
69     path = r'g:/images5/'
70 
71     image1 = 'g:\images2\gu1.jpg'
72     image2 = geturlpath(path)
73 
74     # 将两张图片进行对比,得出相似分
75     check2pic(client_id,client_secret,image1,image2)

 

   

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网