使用jsp技术实现网站的人脸登录注册
- 在百度云AI上获取应用的密钥(注册百度账号->创建人脸检测的应用)
下面箭头标的会在封装百度AI工具类中用上
- 下载百度AI提供的java sdk(就是给java引入相关的jar包)
将下载的压缩包解压,并引入到项目中(WEB-INF的lib下)
- 构造一个项目来实现人脸登录注册
- 先编写一个封装了百度云AI提供的人脸登录注册方法的工具类
package com.project.util;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONObject;
import com.baidu.aip.face.AipFace;
import com.baidu.aip.face.FaceVerifyRequest;
import com.baidu.aip.face.MatchRequest;
import com.baidu.aip.util.Base64Util;
public class FaceUtil {
private static final String AppID = "your appid";
private static final String APIKey = "your apikey";
private static final String SecretKey = "your secretkey";
static AipFace client = null;
static {
client = new AipFace(AppID, APIKey, SecretKey);
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);
}
public static String detectFace(File file, String max_face_num) {
try {
return detectFace(FileToByte(file), max_face_num);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static String detectFace(byte[] arg0, String max_face_num) {
try {
HashMap<String, String> options = new HashMap<String, String>();
options.put("face_field",
"age,beauty,expression,faceshape,gender,glasses,race,qualities");
options.put("max_face_num", "2");
options.put("face_type", "LIVE");
String imgStr = Base64Util.encode(arg0);
String imageType = "BASE64";
JSONObject res = client.detect(imgStr, imageType, options);
return res.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String matchFace(File file1, File file2) {
try {
return matchFace(FileToByte(file1), FileToByte(file2));
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static String matchFace(byte[] arg0, byte[] arg1) {
String imgStr1 = Base64Util.encode(arg0);
String imgStr2 = Base64Util.encode(arg1);
MatchRequest req1 = new MatchRequest(imgStr1, "BASE64");
MatchRequest req2 = new MatchRequest(imgStr2, "BASE64");
ArrayList<MatchRequest> requests = new ArrayList<MatchRequest>();
requests.add(req1);
requests.add(req2);
JSONObject res = client.match(requests);
return res.toString();
}
public static String searchFace(File file, String groupIdList, String userId) {
try {
return searchFaces(FileToByte(file), groupIdList, userId);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static String searchFaces(