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 打完收工 简单记录一下 说的不对的 前辈们多多指教
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异