百度人脸识别在线API调用

百度人脸识别在线API调用

发布时间:2021-06-03 作者:未知
  百度人脸识别分为离线SDK和在线API调用两种方式,那么百度人脸识别在线API调用如何实现呢?下面以(Python)API接口调用的方式给大家进行演示,我们一起来看下!
  在开始之前呢,我们要先做一些准备工作,首先需要在百度智能云平台登录,登陆后创建应用,创建的应用是人脸识别的,默认已帮你勾选上了相关功能。创建应用后,点击管理应用,你就可以获取API Key和Secret Key。
  接下来就是获取token,现在就可以编写代码调用在线的人脸检测API了首先是获取token,用于校验,代码如下,注意换成自己申请的API Key和Secret Key。
  def getToken():
  global token
  #client_id为官网获取的AK,client_secret为官网获取的SK
  host='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的API Key&client_secret=你的Secret Key'
  request=urllib2.Request(host)
  request.add_header('Content-Type','application/json;charset=UTF-8')
  response=urllib2.urlopen(request)
  content=response.read()
  if(content):
  token=json.loads(content)['access_token']
  ————————————————
  然后把需要上传检测的图片进行base64编码,需要注意的是,图片的base64编码是不包含图片头的,具体代码如下:
  def imgToBase64(imgPath):
  with open(imgPath,"rb")as f:#转为二进制格式
  base64_data=base64.b64encode(f.read())#使用base64进行加密
  return base64_data
  接下来就是调用接口进行人脸识别,具体代码如下:
  def faceDetect(imgBase64):
  '''
  人脸检测与属性分析
  '''
  request_url="https://aip.baidubce.com/rest/2.0/face/v3/detect"
  request_url=request_url+"?access_token="+token
  request=urllib2.Request(request_url)
  request.add_header('Content-Type','application/json')
  data={"image":imgBase64,"image_type":"BASE64","face_field":"age,beauty,expression,face_shape,gender"}
  response=urllib2.urlopen(request,urllib.urlencode(data))
  content=response.read()
  if content:
  return content
  ————————————————
  这个函数中输入的是图片的base64编码,请求的参数中比较重要的是那个face_field,默认只返回人脸框的位置、概率和旋转角度,age(年龄预测),beauty(颜值打分),expression(表情)等更多属性,需要在这个参数中添加,具体的请参考官方说明文档
  人脸识别结束后返回的是json数据,但我们往往需要画个框框,把人脸框出来,同时把一些预测的属性也标注上。
  源代码梳理
  #coding:utf-8
  import urllib,urllib2,sys
  import ssl
  import json
  import base64
  import cv2
  global token
  def getToken():
  global token
  #client_id为官网获取的AK,client_secret为官网获取的SK
  host='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的API Key&client_secret=你的Secret Key'
  request=urllib2.Request(host)
  request.add_header('Content-Type','application/json;charset=UTF-8')
  response=urllib2.urlopen(request)
  content=response.read()
  if(content):
  token=json.loads(content)['access_token']
  def faceDetect(imgBase64):
  '''
  人脸检测与属性分析
  '''
  request_url="https://aip.baidubce.com/rest/2.0/face/v3/detect"
  request_url=request_url+"?access_token="+token
  request=urllib2.Request(request_url)
  request.add_header('Content-Type','application/json')
  data={"image":imgBase64,"image_type":"BASE64","face_field":"age,beauty,expression,face_shape,gender"}
  response=urllib2.urlopen(request,urllib.urlencode(data))
  content=response.read()
  if content:
  return content
  def imgToBase64(imgPath):
  with open(imgPath,"rb")as f:#转为二进制格式
  base64_data=base64.b64encode(f.read())#使用base64进行加密
  return base64_data
  if __name__=="__main__":
  getToken()
  imgPath=r"C:UsersleePictureslena.jpg"
  result=json.loads(faceDetect(imgToBase64(imgPath)))['result']
  face_list=result['face_list'][0]
  location=face_list['location']
  age=face_list['age']
  beauty=face_list['beauty']
  expression=face_list['expression']['type']
  gender=face_list['gender']['type']
  img=cv2.imread(imgPath,cv2.IMREAD_COLOR)
  leftTopX=int(location['left'])
  leftTopY=int(location['top'])
  rightBottomX=int(leftTopX+int(location['width']))
  rightBottomY=int(leftTopY+int(location['height']))
  cv2.rectangle(img,(leftTopX,leftTopY),(rightBottomX,rightBottomY),(0,255,0),2)
  font=cv2.FONT_HERSHEY_SIMPLEX
  #第一个坐标表示起始位置
  cv2.putText(img,"age:"+str(age),(0,20),font,0.5,(200,255,255),1)
  cv2.putText(img,"gender:"+gender.encode("utf-8"),(0,40),font,0.5,(200,255,255),1)
  cv2.putText(img,"beauty:"+str(beauty),(0,60),font,0.5,(200,255,255),1)
  cv2.putText(img,"expression:"+str(expression),(0,80),font,0.5,(200,255,255),1)
  cv2.imshow('image',img)
  cv2.waitKey(0)
  print("end")
  更多百度人脸识别在线API调用相关内容持续分享中!
  本文参考https://blog.csdn.net/qq_44158936/article/details/104674608整理而来,版权归CSDN博主「Dariuslwk」所有

7x24小时服务热线:400-996-8756

公司地址:河南省郑州市姚砦路133号金成时代广场6号楼13层

I CP备案号:豫B2-20110005-1

公安备案号: 41010502003271

法律顾问:河南天坤律师事务所-段志刚律师