获取接口权限是调用接口的前提,主要分为以下几步:
(1)跳转链接进入百度云的人脸识别控制台
https://console.bce.baidu.com/ai/?_=1528192333418&fromai=1#/ai/face/overview/index;
或直接百度搜索“百度AI”进入。
登录(若没有百度账号,可以用手机号快速注册一个)。
(2)创建人脸识别应用
账号登录成功,您需要创建应用才可正式调用AI能力。应用是您调用API服务的基本操作单元,您可以基于应用创建成功后获取的API Key及Secret Key,进行接口调用操作,及相关配置。
在您创建完毕应用后,平台将会分配给您此应用的相关凭证:API Key、Secret Key。使用秘钥将可以在下一步中获取调用接口所需的Access Token(访问令牌)。
(4)获取access_token(访问令牌)
百度AI开放平台上提供了获取access_token的代码,将下图相应(以Java为例)示例代码全部复制到编译器中,添加第三步获得的秘钥,以及主函数。
图中第二行会报错,方法为百度“org.json.JSONObject;”下载相关的jar包,并添加到项目里:
解压到桌面–>右键项目名称–>Properties–>Java Build Path–>Libraries–>Add External JARs…–>在桌面找到刚刚的jar包添加
添加后运行即可得到:
!注意不是这个
!!是这个
若请求错误,服务器将返回的JSON文本包含以下参数:
· error: 错误码;关于错误码的详细信息请参考下方鉴权认证错误码。
· error_description: 错误描述信息,帮助理解和解决发生的错误。
接下来就可以调用接口了,同样在百度AI开放平台提供了相应代码及提示,根据提示百度搜索并下载四个Java文件复制粘贴添加到项目中,部分粘贴时会报错无法正常保存是编译格式不同导致的,按“UTF-8”保存即可。
以及百度搜索报错的“GsonUtils”的jar包,下载以相同方法添加到项目中。
这样就调用成功了。
那么接下来我们怎么检测呢?
在刚刚复制的代码中,我们需要加入需要检测的图片的信息,方法这里列举两种:
第一:获取文件,创建字节数组,转换base64,将图片以字符串的形式导入,并将下图中标出的位置更改
增加的代码块:
//获取文件输入流
FileInputStream in = new FileInputStream("文件名");
//获取文件长度
int length = in.available();
//创建字节数组
byte[] fileContent = new byte[length];
//读取文件
in.read(fileContent);
//关闭流
in.close();
第二:百度搜索转换图片为base64的网站,如https://tool.css-js.com/base64.html,去掉默认的包含头的√,直接得到字符串,即上图的imgstr
这样就可以运行得到图像中人脸的位置等信息,如果未成功可以根据
找到错误原因及时修改。
百度AI开放平台里也提供了许多其他功能比如:
//返回实例:
{
"face_num": 1,
"face_list": [
{
"face_token": "35235asfas21421fakghktyfdgh68bio",
"location": {
"left": 117,
"top": 131,
"width": 172,
"height": 170,
"rotation": 4
},
"face_probability": 1,
"angle" :{
"yaw" : -0.34859421849251
"pitch" 1.9135693311691
"roll" :2.3033397197723
}
"landmark": [
{
"x": 161.74819946289,
"y": 163.30244445801
},
...
],
"landmark72": [
{
"x": 115.86531066895,
"y": 170.0546875
},
...
],
"age": 29.298097610474,
"beauty": 55.128883361816,
"expression": {
"type": "smile",
"probability" : 0.5543018579483
},
"gender": {
"type": "male",
"probability": 0.99979132413864
},
"glasses": {
"type": "sun",
"probability": 0.99999964237213
},
"race": {
"type": "yellow",
"probability": 0.99999976158142
},
"face_shape": {
"type": "triangle",
"probability": 0.5543018579483
}
"quality": {
"occlusion": {
"left_eye": 0,
"right_eye": 0,
"nose": 0,
"mouth": 0,
"left_cheek": 0.0064102564938366,
"right_cheek": 0.0057411273010075,
"chin": 0
},
"blur": 1.1886881756684e-10,
"illumination": 141,
"completeness": 1
}
}
]
}