python人脸识别技术,基于python的人脸识别系统

  python人脸识别技术,基于python的人脸识别系统

  人脸比对和人脸检测人脸比对视图API文档获取访问令牌图片并转换为base64格式请求参数调用返回样本人脸检测代码返回样本误识别错误代码

  面部对比

  将两个人脸1: 1对比,得到人脸的熟悉度。

  View API文档人脸识别界面分为V2和V3两个版本。本文档是V3版本接口的描述文档。请确认您已经在百度云后台获得V3版本接口权限,然后阅读本文档。

  识别接口版本的方法是:在百度云后台进入【应用列表】,点击【应用名称】,在【API列表】中可以看到【请求地址】。如果请求地址有[v3]标识,说明你有v3权限,可以阅读这个文档;如果请求地址标有[v2],说明你有v2权限,应该读v2文档。

  Base64编码:请求的图片需要进行Base64编码。Base64编码是指将图片数据编码成一个字符串,并用这个字符串代替图像地址。可以先获取二进制图像,然后用Base64格式编码。

  图像格式:现在支持PNG、JPG、JPEG和BMP,但不支持GIF图像。

  获取访问令牌,使用POST向API服务地址发送请求。必须在URL中取参数access_token,这个参数可以由API Key和Secret Key在后台生成。

  API _ Key= own API _ Key secret _ Key= own secret _ Key def get _ token _ Baidu():client _ ID=API _ Key client _ secret=secret _ Key host= https://AIP . Baidu BCE . com/oauth/2.0/token?grant _ type=client _ credentials client _ id=% s client _ Secret=% s %(API _ Key,Secret _ Key)response=requests . get(host)if response:print(response . JSON())return response . JSON()[ access _ token ]图像转换为base64格式defget _ imgdata (file1path,file 2 path):f=open(r % s % file 1 path, Rb )pic1=base64 . b 64 encode(f . read())f . close()f=open(r % s %)。Rb )pic2=base 64 . b 64 encode(f . read())f . close()str P1=str(pic1, UTF-8)strp2=str(pic2, UTF-8 )上传两张图片时返回strp1,strp2请求参数JSON格式[{image: sfasq35sadvsvqwr5q . ,图像文件 image _ type: BASE64 , face _ type: live 通过BASE64转码后获得, quality_control: LOW , liveness_control: HIGH },{ image: sfasq35sadvsvqwr5q . 、 image_type: BASE64 、 face_type: IDCARD ,Quality _ control: low 、 liveness _ control: high}]人脸比对函数,传入两张合法格式图片(PNG、JPG、JPEG、BMP),通过get_ingdata()函数得到BASE64转码后的图像。

  def myface_compare(file1path,file2path):strp1,strp2=get_imgdata(file1path,2 file path) # http方法:post # URL:https://aip.baidubce.com/rest/2.0/face/v3/matchrequest_url= https://aip.baidubce.com/rest/2.0/face/v3/match #请求参数params= [{image:% s , image _ type: base64 , face _ type: live , quality _ control: Body},{image:% s , image _ type face_type: IDCARD , quality _ control : LOW }] %(strp1,str P1access _ token= access _ token headers={ content-type : application/JSON } response=requests . post(request _ URL,data=params,headers=headers)if response:# print(response . JSON())myret=response . JSON()# print(type(myret))print(myret)score=myret[ result ][ score ]print(score)ret score调用#两个传入图片的路径myface_compare(3.jpg , 4.jpg )返回示例{

  人脸检测接口能力

  人脸检测:检测图片中的人脸,标记位置信息;

  面部关键点:显示面部关键信息和150个关键点。

  人脸属性值:显示人脸属性信息,如年龄、性别等。

  人脸质量信息:返回人脸各部分的遮挡、光照、模糊、完整性、置信度等信息。

  获取访问令牌和图片转码与人脸对比方法一致,不同的是这里请求参数;

  超文本传送协议方法:发布请求网址:https://AIP . baidubce . com/rest/2.0/face/v3/detect

  需要检测人脸的什么信息,添加相应的参数就可以了:

  最大面数=10最大处理人脸的个数

  face _ fields=年龄、美貌、表情、脸型、性别、眼镜、种族、品质、情感、面具、地标150(年龄、样貌得分、表情、脸型…)

  代码使用之前注意更换自己的API_key,Secret_Key

  import OSI import sys import SSL import base 64从URL导入请求lib导入请求def get _ token _ Baidu():client _ id=自己的API_Key client_secret=自己的secret _ key host=https://aip.baidubce.com/oauth/2.0/token?grant _ type=client _ credentials client _ id=% s %(client _ id,client _ secret)response=requests。get(host)if响应:print(response。JSON())返回响应。JSON()[ access _ token ]def get _ img data(file 1 path):f=open(r % s % file 1 path, Rb )print(f)pic1=base 64。b64 encode(f . read())f . close()str P1=str(pic1, UTF-8 )returns straccess _ token= access _ token headers={ content-type : application/JSON } response=requests。post(request _ URL,data=params,headers=headers)j=1 if response:# print(response。JSON()[ result ])打印(响应。JSON()[ result ][ face _ num ])进行响应。JSON()[ result ][ face _ list ]:print(第%d张脸: %j,i[face_token]) print(age:,i[age]) print(beauty:,I[ beauty ][ type ])print( gender:,I[ gender ][ type ])print( glasses:,I[ glasses ][ type ])j=1 my face _ compare( 5 .jpg’)返回示例

  这里从返回结果中提取了face_token年龄、美颜(样貌得分)、表情、性别、有无眼镜。

  这个应用程序接口可以获取颜值得分哦,想要知道自己颜值能得多少分,人脸检测帮你检测,亲测可以使用。

  错误识别错误码请参考人脸识别错误码

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: