经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Windows » 查看文章
百度云人脸识别API人脸对比
来源:cnblogs  作者:饿了吃小孩  时间:2019/11/6 15:09:09  对本文有异议
  1. 1 from urllib import request
  2. 2 import base64
  3. 3 import requests
  4. 4 import re
  5. 5 import json
  6. 6 import urllib
  7. 7 import os
  8. 8
  9. 9
  10. 10 # 获取token
  11. 11 def get_token(client_id,client_secret):
  12. 12 host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+ client_id + '&client_secret='+ client_secret + ''
  13. 13 headers = {'Content-Type': 'application/json; charset=UTF-8'}
  14. 14 res = requests.post(host, headers=headers)
  15. 15 access_token = re.findall('"access_token":"(.*?)"', res.text)[0]
  16. 16 return access_token
  17. 17
  18. 18 # 打开文件夹
  19. 19 def geturlPath(path):
  20. 20 dirs = os.listdir(path)
  21. 21 lst = []
  22. 22 for dir1 in dirs:
  23. 23 pa = path + dir1
  24. 24 lst.append(pa)
  25. 25 return lst
  26. 26
  27. 27 # 打开本地图片,并转化为base64
  28. 28 def open_pic2base(image):
  29. 29 f = open(image,'rb')
  30. 30 img = base64.b64encode(f.read()).decode('utf-8')
  31. 31 return img
  32. 32
  33. 33 # 对两张图片进行对比
  34. 34 def check2pic(client_id,client_secret,image1,image2):
  35. 35 request_url = "https://aip.baidubce.com/rest/2.0/face/v3/match"
  36. 36 for image in image2:
  37. 37 a = open_pic2base(image)
  38. 38 b = base64.b64decode(a)
  39. 39 params = json.dumps(
  40. 40 [{"image": open_pic2base(image1), "image_type": "BASE64","quality_control": "LOW"},
  41. 41 {"image": a, "image_type": "BASE64","quality_control": "LOW"}])
  42. 42
  43. 43 # 调用接口
  44. 44 access_token = get_token(client_id, client_secret)
  45. 45 request_url = request_url + "?access_token=" + access_token
  46. 46 params = params.encode("utf-8")
  47. 47 request = urllib.request.Request(url=request_url, data=params)
  48. 48 request.add_header('Content-Type', 'application/json')
  49. 49
  50. 50 response = urllib.request.urlopen(request)
  51. 51 content = response.read()
  52. 52 score = 0
  53. 53 if content:
  54. 54 result = json.loads(content.decode('utf-8'))
  55. 55 if result["error_code"] == 0:
  56. 56 score = result["result"]["score"]
  57. 57 if score > 75:
  58. 58 with open('G:/images6/'+ image.split('/')[-1],'wb') as f:
  59. 59 f.write(b)
  60. 60 f.close()
  61. 61 else:
  62. 62 errors = {}
  63. 63 error_msg = result["error_msg"]
  64. 64 errors[image.split('/')[-1]] = error_msg
  65. 65 print(errors)
  66. 66 if __name__ == '__main__':
  67. 67 client_id = 'MeZaaKIbOt5DGp4cfxGpv4wa'
  68. 68 client_secret = 'ImadHITTnAvtGkLeugrNUNuG3NOdiE7Q'
  69. 69 path = r'G:/images5/'
  70. 70
  71. 71 image1 = 'G:\images2\gu1.jpg'
  72. 72 image2 = geturlPath(path)
  73. 73
  74. 74 # 将两张图片进行对比,得出相似分
  75. 75 check2pic(client_id,client_secret,image1,image2)

 

原文链接:http://www.cnblogs.com/erlchixiha/p/11805011.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号