Java调用百度人脸识别
没有使用过百度的人脸识别接口之前,我以为这是一个很复杂的功能,但是尝试了之后,发现接口非常友好,使用起来相当简单。
记录一下使用的步骤如下:
一、准备环境
① 注册百度智能云的账号(https://login.bce.baidu.com/)
登录后在产品中找到人脸识别

② 进入人脸识别页面后,点击“创建应用”

应用创建完后,记录下AppID、API Key和Secret Key

二、后端接口
① 引入依赖
<dependency> <groupId>com.baidu.aip</groupId> <artifactId>java-sdk</artifactId> <version>4.16.3</version> </dependency>
② 代码应用
/** * 百度人脸服务的封装 */ @Service public class BaiduFaceServiceImpl implements BaiduFaceService { @Resource AipFace client; /** * 创建用户组 - 组 对标 工程 * @param groupId 组id */ @Override public void groupAdd(String groupId) { // 创建用户组 JSONObject res = client.groupAdd(groupId, new HashMap<String, String>()); System.out.println(res.toString(2)); } /** * 人脸注册 * @param userId 人员id * @param groupId 人员所在组 * @param userName 人员名称 * @param image 即将被注册的人脸图片 * @return face_token 人脸图片的唯一标识 */ @Override public String faceSign(String userId, String groupId, String userName, String image) { HashMap<String, String> options = new HashMap<>(4); options.put("user_info", userName); options.put("quality_control", "NORMAL"); options.put("liveness_control", "LOW"); options.put("action_type", "APPEND"); String imageType = "BASE64"; // 人脸注册 JSONObject res = client.addUser(image, imageType, groupId, userId, options); System.out.println(res.toString(2)); String faceId = null; if (res.getInt("error_code") == 0) { faceId = res.getJSONObject("result").getString("face_token"); } return faceId; } /** * 人脸认证 * @param userId 人员id * @param groupId 人员所在组 * @param image 即将被核验的人脸图片 */ @Override public boolean faceSearch(Integer userId, String groupId, String image) { HashMap<String, String> options = new HashMap<>(6); options.put("max_face_num", "1"); options.put("match_threshold", "80"); options.put("quality_control", "NORMAL"); options.put("liveness_control", "NORMAL"); options.put("user_id", userId.toString()); options.put("max_user_num", "1"); String imageType = "BASE64"; JSONObject res = client.search(image, imageType, groupId, options); int errCode = res.getInt("error_code"); return errCode == 0; } /** * 人脸删除 * @param userId 人员id * @param groupId 人员所在组 * @param faceToken 人脸图片的唯一标识(人脸注册时会返回) */ @Override public void faceUninstall(String userId, String groupId, String faceToken) { JSONObject res = client.faceDelete(userId, groupId, faceToken, new HashMap<String, String>()); System.out.println(res.toString(2)); } /** * 用户删除 * @param userId 人员id * @param groupId 人员所在组 */ @Override public void userDelete(String userId, String groupId) { // 删除用户 JSONObject res = client.deleteUser(groupId, userId, new HashMap<>()); } }
ok 打完收工 简单记录一下 说的不对的 前辈们多多指教

浙公网安备 33010602011771号