物联网  >   生物识别  >  正文

用python来做人脸识别

  用python来做人脸识别代码量少 思路清晰,

  在使用之前我们需要在我们的配置的编译器中通过pip install baidu-aip 即可

  from aip import AipFace

  就可以开始使用api了 我们第一次接触这个东西不妨

  help(AipFace)

  你就可以看到他所支持的功能。

  在使用之前我们需要在百度的后台创建应用。将我们人脸都存放入库中。

  其次我们要了解一个概念,我们要将本机中的图片与后台的人脸对比的话我们需要将图片转成base64的字符串的格式

  import base64

  f = open('./photo/mr.jpg', 'rb')

  image = base64.b64encode(f.read())

  image64 = str(image,'utf-8')

  image_type = "BASE64"

  当然我们也可以将base64码转换成图片。

  人脸检测的原理是通过机器学习转化提前图片人脸中的七十二个关键点。并进行其他的分析。

  python3的代码为

  '''# 人脸检测与属性分析'''request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"f = open('./photo/mr.jpg', 'rb')image = base64.b64encode(f.read())image64 = str(image,'utf-8')image_type = "BASE64"# params = "{\"image\":\"%s\",\"image_type\":\"BASE64\",\"face_field\":\"faceshape,facetype\"}"%image64params = {'image': image64,'image_type':"BASE64",'face_field': 'faceshape,facetype'}# 此处的faceshape和facetype需要自己加上去 更具自己需要的返回值params = urllib.parse.urlencode(params).encode("utf-8")access_token = '[24.3941b86dfcbc8eaea432d11df4f6660d.2592001.282335-14255146]'request_url = request_url + "?access_token=" + access_tokenrequest = urllib.request.urlopen(url=request_url, data=params) # 发送请求content = request.read() # 将返回结果读取出来print(content) # 显示返回结果import urllib.request,sys,base64import urllib.parse# 返回实例a = {'error_code': 0, 'error_msg': 'SUCCESS', 'log_id': 1011018945051, 'timestamp': 1540301526, 'cached': 0, 'result': {'face_num': 1, 'face_list': [{'face_token': '80ed04e5e8771730b3fe240f8ead4e97', 'location': {'left': 564.6082764, 'top': 117.9681244, 'width': 263, 'height': 265, 'rotation': 1}, 'face_probability': 1, 'angle': {'yaw': -1, 'pitch': -15.59528351, 'roll': 1 } } ] } }

  具体各种属性请看百度文档 https://ai.baidu.com/docs#/Face-Detect-V3/top

  介绍完人脸检测我们就可以进行人脸对比了

  import base64from aip import AipFace'''新建aipface的配置'''''' 你的 app id ak sk '''AppId = '14255146'ApiKey = 'UoyrHmKFG3nGPL5HmDiGo80G'SecretKey = 'HUo1z36aDc1UxOwuS8d7Vxldh4GsQg8l'client = AipFace(AppId, ApiKey, SecretKey)f = open('./photo/huge.jpg', 'rb')image = base64.b64encode(f.read())image64 = str(image,'utf-8')image_type = "BASE64"print(client.detect(image64, image_type)) # 此处的返回值为人脸的基本检测的数值效果# print(strs)# 人脸检测# image = str(strs) # 取决于image_type参数,传入BASE64字符串或URL字符串或FACE_TOKEN字符串imageType = "BASE64"groupIdList = "17ai_1"""" 调用人脸搜索 """print(client.search(str(image64), image_type, groupIdList))# 将返回对比结果'''""" 如果有可选参数 """options = {}options["quality_control"] = "NORMAL"options["liveness_control"] = "LOW"options["user_id"] = "233451"options["max_user_num"] = 3""" 带参数调用人脸搜索 """# print(client.search(image, imageType, , options))# 人脸搜索返回例子''' face = { "face_token": "fid", "user_list": [ { "group_id": "test1", "user_id": "u333333", "user_info": "Test User", "score": 99.3 } ]}

  想了解更多内容,请关注我们

  

上一篇:再见了医院黄牛挂号,人脸识别技术持证上岗

下一篇:人脸识别平板方案对比