2021-11-27 16:28

Java调用百度AI-实现人脸识别

码自答

JavaEE

(789)

(0)

收藏

通过百度AI实现人脸识别。

1 百度AI申请人脸识别

   image.png

2 百度下载aip的SDK

  image.png

3 Java代码

package com.wanmait;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONObject;

public class TestMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String ak = "百度AI申请的人脸识别的API Key";
		String sk = "百度AI申请的人脸识别的Secret Key";
		
		String authhost = "https://aip.baidubce.com/oauth/2.0/token?"
				+ "grant_type=client_credentials&client_id="+ak+"&client_secret="+sk;
		
		try {
			URL realUrl = new URL(authhost);
			HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
			conn.setRequestMethod("GET");
			conn.connect();
			//利用GET传输方式 访问百度AI
			
			BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
			String result = "";
			String line = "";
			while((line=in.readLine())!=null) {
				result+=line;
			}
			//获得百度AI返回的相应的链接信息 包括session等信息
			
			//System.out.println(result);
			
			JSONObject jsonObject = new JSONObject(result);
			String access_token = jsonObject.getString("access_token");
			//获得百度AI返回的信息中间的token信息
			System.out.println(access_token);
			
			
			byte[] b = FileUtil.readFileByBytes("d:/data/1.jpg");
			String img = Base64Util.encode(b);
			//打开本地图片文件,转换成BASE64格式
			
			Map<String,Object> map = new HashMap<>();
			
			String url = "https://aip.baidubce.com/rest/2.0/face/v3/detect";
			map.put("image", img);//设置上传的图片数据
			map.put("image_type", "BASE64");//设置上传的图片类型
			map.put("face_field","age,beauty");//设置想要通过人脸识别获得的数据
			
			String param = GsonUtils.toJson(map);
			
			String str = HttpUtil.post(url,access_token,"application/json",param);
			//访问百度AI 将图片信息上传  str获得百度AI人脸检测根据请求参数 返回的信息
			//System.out.println(str);
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

image.png

百度AI返回的信息.


0条评论

点击登录参与评论