java人脸识别api_【Java-人脸识别API】人脸库管理 核心类

  • Post author:
  • Post category:java


你知道吗?(十万个为什么….)

人脸识别API 包含有 :人脸检测,人脸对比,人脸查找,人脸库管理…

如果你还不熟悉 请移步到官方文档仔细阅读吧

API文档地址:http://ai.baidu.com/docs#/Face-Detect/top

那么今天荒墨给大家总结的 就是 人脸库管理 的核心类了~

赶紧贴上代码,马上分析~

1.将自己的accessToken填写在下方的变量中

2.用main方法测试你想要的方法

3.举例  新增人脸库 找到 addFace()方法 填写你的照片路径 执行OK 即注册成功

4.可以通过 用户组查询 删除 更新的操作

5.请详细了解下面代码注释内容 按照自己的一些业务方向 定义自己的接口~

package com.zfsoft.artificialIntelligence.faceRecognition.client;

import java.net.URLEncoder;

import com.baidu.aip.util.Base64Util;

import com.zfsoft.artificialIntelligence.util.FileUtil;

import com.zfsoft.artificialIntelligence.util.HttpUtil;

/**

* 人脸库管理 核心类方法

*

* 重要提示代码中所需工具类

* FileUtil,Base64Util,HttpUtil,GsonUtils请从

* https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72

* https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2

* https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3

* https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3

*

* @author liyingming 荒墨丶迷失

* @data 2018-01-24

*/

public class FaceDataManageAPI {

//人脸注册 (人脸新增 )

static String addFaceUrl = “https://aip.baidubce.com/rest/2.0/face/v2/faceset/user/add”;

//人脸更新 (人脸修改 )

static String updateUrl = “https://aip.baidubce.com/rest/2.0/face/v2/faceset/user/update”;

//用户信息查询

static String getFaceUrl = “https://aip.baidubce.com/rest/2.0/face/v2/faceset/user/get”;

//删除单个用户

static String deleteUrl = “https://aip.baidubce.com/rest/2.0/face/v2/faceset/user/delete”;

//用于查询用户组的列表

static String getListUrl = “https://aip.baidubce.com/rest/2.0/face/v2/faceset/group/getlist”;

//组内用户列表查询

static String getusersUrl = “https://aip.baidubce.com/rest/2.0/face/v2/faceset/group/getusers”;

//组间复制用户

static String adduserUrl = “https://aip.baidubce.com/rest/2.0/face/v2/faceset/group/adduser”;

//组内删除用户

static String deleteuserUrl = “https://aip.baidubce.com/rest/2.0/face/v2/faceset/group/deleteuser”;

//注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。

static String accessToken = “”;

//—————————-目前只有一个分组 (test_group_1)——每个用户命名为 (test_user_XX)——————–

/**

* 人脸注册

*

*/

public static String addFace() {

//用于从人脸库中新增用户,可以设定多个用户所在组,及组内用户的人脸图片

try {

//———测试 用本地文件路径————–

String filePath = “[本地文件路径]”;

byte[] imgData = FileUtil.readFileByBytes(filePath);

String imgStr = Base64Util.encode(imgData);

String imgParam = URLEncoder.encode(imgStr, “UTF-8”);

String param = “uid=” + “test_user_1”

//这个user_info 的规则可以自己定义

+ “&user_info=” + “荒漠丶迷失,123456789100,上海市徐汇区,12345678910”

//group_id 分组自己定义 最多100个分组

+ “&group_id=” + “test_group_1”

//image 图片数据

+ “&image=” + imgParam

//action_type 为 replace时,则每次注册时进行替换replace(新增或更新)操作,默认为append操作

+ “&action_type=” + “replace”;

String result = HttpUtil.post(addFaceUrl, accessToken, param);

System.out.println(result);

return result;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 人脸更新

*/

public static String update() {

// 针对一个uid执行更新操作,新上传的人脸图像将覆盖此uid原有所有图像

try {

// 本地文件路径

String filePath = “[本地文件路径]”;

byte[] imgData = FileUtil.readFileByBytes(filePath);

String imgStr = Base64Util.encode(imgData);

String imgParam = URLEncoder.encode(imgStr, “UTF-8”);

String param = “uid=” + “test_user_1” + “&images=” + imgParam + “,” + imgParam;

String result = HttpUtil.post(updateUrl, accessToken, param);

System.out.println(result);

return result;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 人脸删除

*/

public static String delete() {

// 用于从人脸库中删除一个用户

try {

String param = “uid=” + “test_user_1”;

String result = HttpUtil.post(deleteUrl, accessToken, param);

System.out.println(result);

return result;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 用户信息查询

*/

public static String getFace() {

// 用于查询人脸库中某用户的详细信息

try {

String param = “uid=” + “test_user_1”;

String result = HttpUtil.post(getFaceUrl, accessToken, param);

System.out.println(result);

return result;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 组列表查询

*/

public static String getList() {

// 用于查询用户组的列表

try {

String param = “start=” + 0 + “&end=” + 100;

String result = HttpUtil.post(getListUrl, accessToken, param);

System.out.println(result);

return result;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 组内用户列表查询

*/

public static String getUsers() {

// 用于查询指定用户组中的用户列表

try {

String param = “group_id=” + “test_group_1” + “&start=” + 0 + “&end=” + 100;

String result = HttpUtil.post(getusersUrl, accessToken, param);

System.out.println(result);

return result;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 组间复制用户

*/

public static String addUser() {

// 用于将已经存在于人脸库中的用户复制到一个新的组

// 说明:并不是向一个指定组内添加用户,而是直接从其它组复制用户信息 如果需要注册用户,请直接使用人脸注册接口

try {

String param = “uid=” + “test_user_1” + “&group_id=” + “test_group_2”;

String result = HttpUtil.post(adduserUrl, accessToken, param);

System.out.println(result);

return result;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 组内删除用户

*/

public static String deleteUser() {

// 用于将用户从某个组中删除,但不会删除用户在其它组的信息。

// 说明:当用户仅属于单个分组时,本接口将返回错误,请使用人脸删除接口

try {

String param = “uid=” + “test_user_5” + “&group_id=” + “test_group_2”;

String result = HttpUtil.post(deleteuserUrl, accessToken, param);

System.out.println(result);

return result;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

public static void main(String[] args) {

//基于main方法测试

FaceDataManageAPI.addFace();

}

}

今天的分享到这里  感谢大家~



版权声明:本文为weixin_36231975原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。