【百度人脸识别api】一、人脸检测

import json
import urllib
import cv2
import base64
from baidu_face_detect.token import GetToken


def img_detect_data(filepath):
    with open(filepath, 'rb') as fp:
        pic1 = base64.b64encode(fp.read())
        params = json.dumps(
            {"image": str(pic1, 'utf-8'), "image_type": "BASE64", "face_field": "age,beauty,expression,faceshape","max_face_num":10 }
        )
        return params.encode(encoding='UTF8')

def img_detect(fp1):
    request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"
    params =img_detect_data(fp1)
    access_token = GetToken()
    request_url = request_url + "?access_token=" + access_token
    request = urllib.request.Request(url=request_url, data=params)
    request.add_header('Content-Type', 'application/json')
    response = urllib.request.urlopen(request)
    content = response.read()
    content = eval(content)

    img = cv2.imread(fp1)

    face_num = content['result']['face_num']
    for i in range(face_num):
        location = content['result']['face_list'][i-1]['location']
        left = int(location['left'])
        top = int(location['top'])
        width = int(location['width'])
        height= int(location['height'])
        left_top = (left,top-16)
        right_bottom = (left+width,top-16+height)
        cv2.rectangle(img,left_top,right_bottom,(0,255,0),2)
    cv2.imshow("img",img)
    cv2.waitKey(0)

if __name__ == '__main__':
    #Here is your image path
    filepath = r'####################'
    img_detect(filepath)
import urllib, urllib.request

# 定义常量
#Here is your information for APP_ID,AK and SK.
APP_ID = '######'
API_KEY = '#####################'
SECRET_KEY = '###########################'


# token 请求 url 与图片不一样
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials' \
       '&client_id=%s' \
       '&client_secret=%s' % (API_KEY, SECRET_KEY)

def GetToken():
    request = urllib.request.Request(host)
    request.add_header('Content-Type', 'application/json; charset=UTF-8')
    response = urllib.request.urlopen(request)
    #获取请求结果
    content = response.read()
    #转换为字符
    content = bytes.decode(content)
    #转换为字典
    content = eval(content[:-1])
    return content['access_token']

 

注:第二个py文件名称为token.py,baidu_face_detect是我的python package名

除了添加一些app_id,AK,SK和照片路径以外,其余可按自己需要根据百度开发者文档修改

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值