百度AI⼈脸识别接⼝测试颜值评分性别识别物体识别java颜值
打分
百度AI⼈脸识别接⼝测试
最近在做项⽬,刚好做到了⼈脸识别,害怕以后忘记怎么调⽤,在这⾥进⾏⼀波记录
⾸先我们默认已经做好了百度接⼝的配置(申请应⽤,⽣成了AK,SK等)
不多说了直接上代码
st;
import com.baidu.ai.aip.utils.HttpUtil;
import com.baidu.ai.aip.utils.GsonUtils;
import java.util.*;
import org.json.JSONObject;
import java.io.BufferedReader;i
import java.io.InputStreamReader;
import java.HttpURLConnection;
import java.URL;
import java.util.Map;
@SpringBootApplication
public class helloworld {
/**
* 获取权限token
* @return 返回⽰例:
* {
* "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
* "expires_in": 2592000
* }
*/
public static String getAuth() {
// 官⽹获取的 API Key 更新为你注册的
String clientId = "官⽹获取的 API Key 更新为你注册的";
// 官⽹获取的 Secret Key 更新为你注册的
String clientSecret = "官⽹获取的 Secret Key 更新为你注册的";
return getAuth(clientId, clientSecret);
}
/**
* 获取API访问token
* 该token有⼀定的有效期,需要⾃⾏管理,当失效时需重新获取.
* @param ak - 百度云官⽹获取的 API Key
* @param sk - 百度云官⽹获取的 Securet Key
* @return assess_token ⽰例:
* "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"
*/
public static String getAuth(String ak, String sk) {
// 获取token地址
String authHost = "aip.baidubce/oauth/2.0/token?";
String getAccessTokenUrl = authHost
// 1. grant_type为固定参数
+ "grant_type=client_credentials"
// 2. 官⽹获取的 API Key
+ "&client_id=" + ak
// 3. 官⽹获取的 Secret Key
+ "&client_secret=" + sk;
try {
try {
URL realUrl = new URL(getAccessTokenUrl);
// 打开和URL之间的连接
HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
connection.setRequestMethod("GET");
// 获取所有响应头字段
Map<String, List<String>> map = HeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
}
// 定义 BufferedReader输⼊流来读取URL的响应
BufferedReader in = new BufferedReader(new InputStream()));
String result = "";
String line;
while ((line = in.readLine()) != null) {
result += line;
}
/**
* 返回结果⽰例
*/
JSONObject jsonObject = new JSONObject(result);
String access_token = String("access_token");
System.out.println(access_token);
return access_token;
} catch (Exception e) {
百度api接口e.);
}
return null;
}
/**
* 重要提⽰代码中所需⼯具类
* FileUtil,Base64Util,HttpUtil,GsonUtils请从
* ai.baidu/file/658A35ABAB2D404FBF903F64D47C1F72
* ai.baidu/file/C8D81F3301E24D2892968F09AE1AD6E2
* ai.baidu/file/544D677F5D4E4F17B4122FBD60DB82B3
* ai.baidu/file/470B3ACCA3FE43788B5A963BF0B625F3
* 下载
*/
public static String faceDetect() {
String clientId = "XXXXXXXXXXXXXXXXXXXXXXXXX";
// 官⽹获取的 Secret Key 更新为你注册的
String clientSecret = "XXXXXXXXXXXXXXXXXXXXXXXX";
// 请求url
String Filepath = "这⾥填你想要识别图⽚的路径地址,记得java中要转义“\”";
String image = Base64ImageUtils.GetImageStrFromPath(Filepath);
System.out.println(image);
String url = "aip.baidubce/rest/2.0/face/v3/detect";
try {
Map<String, Object> map = new HashMap<>();
System.out.println(image);
map.put("image", image);
map.put("face_field", "faceshape,facetype,age,beauty,gender");
map.put("image_type", "BASE64");
String param = Json(map);
/
/ 注意这⾥仅为了简化编码每⼀次请求都去获取access_token,线上环境access_token有过期时间,客户端可⾃⾏缓存,过期后重新获取。            String accessToken = getAuth(clientId,clientSecret);
String result = HttpUtil.post(url, accessToken, "application/json", param);
System.out.println(result);
System.out.println(result);
//
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
helloworld.faceDetect();
}
官⽹给出的代码为⽤FaceToken识别码进⾏识别,在此程序中我将这种⽅法改为了Base64码,Base64码个⼈感觉可⽤度更⾼⼀点。百度API所⽤到的⼯具类在注释中都包含到了可以直接进⼊⽹站下载
或者参考此⽂
接下来给⼤家展⽰⼀下⽬录结构⽅便理解
如果⼤家遇到任何问题可以在下⽅留⾔,我将与⼤家⼀同探讨
成功后的部分成果展⽰
其次,调⽤api需要设计meaven相关操作,由于上传此⽂档时已在深夜,笔者将后续视情况更新,⼤家可以关注⼀下后续的更新,如果此⽂档帮助到了⼤家,不妨给这篇⽂档点个赞,让更多的⼈看见!^_^

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。