百度AI 人脸检测 API调用

1、 获取接口权限

获取接口权限是调用接口的前提,主要分为以下几步:

(1)跳转链接进入百度云的人脸识别控制台

https://console.bce.baidu.com/ai/?_=1528192333418&fromai=1#/ai/face/overview/index;

或直接百度搜索“百度AI”进入。

登录(若没有百度账号,可以用手机号快速注册一个)。

(2)创建人脸识别应用

账号登录成功,您需要创建应用才可正式调用AI能力。应用是您调用API服务的基本操作单元,您可以基于应用创建成功后获取的API Key及Secret Key,进行接口调用操作,及相关配置。

百度AI 人脸检测 API调用_第1张图片
创建新应用(只需填必填项):

百度AI 人脸检测 API调用_第2张图片
(3)获取秘钥

在您创建完毕应用后,平台将会分配给您此应用的相关凭证:API Key、Secret Key。使用秘钥将可以在下一步中获取调用接口所需的Access Token(访问令牌)。
百度AI 人脸检测 API调用_第3张图片
(4)获取access_token(访问令牌)

百度AI开放平台上提供了获取access_token的代码,将下图相应(以Java为例)示例代码全部复制到编译器中,添加第三步获得的秘钥,以及主函数。
百度AI 人脸检测 API调用_第4张图片
图中第二行会报错,方法为百度“org.json.JSONObject;”下载相关的jar包,并添加到项目里:
解压到桌面–>右键项目名称–>Properties–>Java Build Path–>Libraries–>Add External JARs…–>在桌面找到刚刚的jar包添加
百度AI 人脸检测 API调用_第5张图片
添加后运行即可得到:

!注意不是这个
在这里插入图片描述
!!是这个
在这里插入图片描述
若请求错误,服务器将返回的JSON文本包含以下参数:
· error: 错误码;关于错误码的详细信息请参考下方鉴权认证错误码。
· error_description: 错误描述信息,帮助理解和解决发生的错误。

2.调用接口

接下来就可以调用接口了,同样在百度AI开放平台提供了相应代码及提示,根据提示百度搜索并下载四个Java文件复制粘贴添加到项目中,部分粘贴时会报错无法正常保存是编译格式不同导致的,按“UTF-8”保存即可。
百度AI 人脸检测 API调用_第6张图片
以及百度搜索报错的“GsonUtils”的jar包,下载以相同方法添加到项目中。

这样就调用成功了。

3.人脸检测一张图片

那么接下来我们怎么检测呢?

在刚刚复制的代码中,我们需要加入需要检测的图片的信息,方法这里列举两种:

第一:获取文件,创建字节数组,转换base64,将图片以字符串的形式导入,并将下图中标出的位置更改
百度AI 人脸检测 API调用_第7张图片
增加的代码块:

	//获取文件输入流
	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 人脸检测 API调用_第8张图片
这样就可以运行得到图像中人脸的位置等信息,如果未成功可以根据
百度AI 人脸检测 API调用_第9张图片
找到错误原因及时修改。
百度AI开放平台里也提供了许多其他功能比如:

百度AI 人脸检测 API调用_第10张图片

//返回实例:
{	
  "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
            }
        }
    ]
}

你可能感兴趣的:(Java)