欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【百度大脑新品体验】人脸情绪实时识别

程序员文章站 2022-03-20 08:22:47
...

【百度大脑新品体验】人脸情绪实时识别
作者:才能我浪费99

首先认证授权:

在开始调用任何API之前需要先进行认证授权,具体的说明请参考:

http://ai.baidu.com/docs#/Auth/top

获取Access Token

向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:

grant_type:?必须参数,固定为client_credentials;
client_id:?必须参数,应用的API Key;
client_secret:?必须参数,应用的Secret Key;
例如:

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHlA4Fq5eR3LT0vuXV4&client_secret=0rDSjzQ20XUj5itV6WRtznPQSzr5pVw2&

具体代码如下:

-- coding: utf-8 --

#!/usr/bin/env python

import urllib
import json
#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id =【百度云应用的AK】
client_secret =【百度云应用的SK】

#获取token
def get_token():
host = ‘https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=’ + client_id + ‘&client_secret=’ + client_secret
request = urllib.request.Request(host)
request.add_header(‘Content-Type’, ‘application/json; charset=UTF-8’)
response = urllib.request.urlopen(request)
token_content = response.read()
if token_content:
token_info = json.loads(token_content)
token_key = token_info[‘access_token’]
return token_key

人脸情绪识别

具体说明请查阅: http://ai.baidu.com/docs#/Face-Detect-V3/top

人脸识别接口分为V2和V3两个版本,本文档为V3版本接口的说明文档,请确认您在百度云后台获得的是V3版本接口权限,再来阅读本文档。

能力介绍

人脸检测:检测图片中的人脸并标记出位置信息;
人脸关键点:展示人脸的核心关键点信息,及150个关键点信息。
人脸属性值:展示人脸属性信息,如年龄、性别等。
人脸质量信息:返回人脸各部分的遮挡、光照、模糊、完整度、置信度等信息。
业务应用

典型应用场景:如人脸属性分析,基于人脸关键点的加工分析,人脸营销活动等。

调用方式

向API服务地址使用POST发送请求,必须在URL中带上参数access_token,可通过后台的API Key和Secret Key生成,具体方式请参考“Access Token获取”。

请求说明

请求体格式化:Content-Type为application/json,通过json格式化请求体。
Base64编码:请求的图片需经过Base64编码,图片的base64编码指将图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。需要注意的是,图片的base64编码是不包含图片头的,如data:image/jpg;base64,
图片格式:现支持PNG、JPG、JPEG、BMP,不支持GIF图片

HTTP方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/face/v3/detect

Python3代码如下:

#获取人脸情绪信息
def face_detect_emotion(url):
request_url = “https://aip.baidubce.com/rest/2.0/face/v3/detect”

params = dict()
params['image'] = url
params['image_type'] = 'URL'
params['face_field'] = 'emotion'

params = json.dumps(params).encode('utf-8')

access_token=get_token()
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()
if content:
    #print (content)
    content=content.decode('utf-8')
    data = json.loads(content)
    #print (data)
    return data['result']['face_list'][0]['emotion']
else:
    return ''

这个函数将根据网上图片URL地址获取图片并检测人脸的情绪。让我们用网上找的一张微笑的图片进行测试:

【百度大脑新品体验】人脸情绪实时识别

执行代码:

image_url=‘http://p0.qhimgs4.com/t0159dd32381d0c25b7.jpg’
print (face_detect_emotion(image_url))

返回:

{‘type’: ‘happy’, ‘probability’: 0.97}

可见检测的还是很准的。

相关标签: 人脸识别