调用百度的AI平台接口,做一个人脸搜索的例子。
搜索效果展示
首先展示一下搜索效果
{"error_code":0,"error_msg":"SUCCESS","log_id":1594001001201,"timestamp":1605865451,"cached":0,"result":{"face_token":"869a08589f2ef7d0c9424204ae3bd3f5","user_list":[{"group_id":"user","user_id":"001","user_info":"","score":97.478187561035}]}}
可以看到错误代码为0(即人脸搜索成功了),识别出用户为001号员工,搜索打分为97分。
实现流程
参照官网文档实现:
官网地址
1. 注册百度云,创建一个应用(系统默认勾选了人脸识别)
创建成功后
可以获得这个应用接口的API key
和Secret key
2. Access Token的获取
参考官网文档,可以获取权限令牌。
官网给的是一个工具类,我们可以在@Test的测试下执行获取Token信息。
注意:1. 代码里面的API key
和Secret key
要替换成我们上面自己创建应用接口的内容; 2. 替换完成后,可以在Test环境下执行该java文件,获取Token信息
(替换内容)
(在Test下执行)
(获取的Token信息)
3. 下载依赖库
项目结构最后为
4. 根据官方文档,生成FaceSearch.java
文件
注意:1. 把FaceSearch文件里的accessToken切换成我们在第二步中得到的 2. 输入需要搜索的照片可以通过直接配置文件地址,然后通过Base64Util.java
工具包将照片文件编码成base64格式(不是官方文档中方法,是下面截图中的方法);官方中的方法是直接输入base64格式的文件 3. 注意需要设置group_id_list用户组,即我们导入照片的时候的用户组
(通过工具类实现对照片文件的编码)
(用户组的信息在百度账户中自己设置的)
执行FaceSearch.java
文件,获得人脸搜索信息。(可以获得该用户的ID信息)
后续我们可以通过用户的ID信息和数据库中具体员工的信息,通过联表查询得到更加详细的信息。
下面是查询得到的JSON格式的数据:
{"error_code":0,"error_msg":"SUCCESS","log_id":9489793599059,"timestamp":1605872957,"cached":0,"result":{"face_token":"869a08589f2ef7d0c9424204ae3bd3f5","user_list":[{"group_id":"user","user_id":"001","user_info":"","score":97.478187561035}]}}
具体的信息我们看:
代码见:代码地址