SpringBoot实现人脸识别功能( 二 )

页面截图,本人太帅,先行打码,嘿嘿

SpringBoot实现人脸识别功能

文章插图
 
后台具体代码如下:
private static final String App_ID = "****";private static final String API_KEY = "*******";private static final String SECRET_KEY = "*******";@Autowired private IUserService userService;@RequestMapping(value = https://www.isolves.com/it/cxkf/jiagou/2022-05-18/"register",method = RequestMethod.POST) public String register(String userName,String faceBase) throws IOException {if(!StringUtils.isEmpty(userName) && !StringUtils.isEmpty(faceBase)) {//文件上传的地址String upPath = ResourceUtils.getURL("classpath:").getPath()+"static/photo";//用于查看路径是否正确System.out.println(upPath);// 图片名称String fileName = userName+System.currentTimeMillis() + ".png";System.out.println(upPath+"/"+fileName);File file = new File(upPath+"/"+fileName);//初始化百度云的AipFaceAipFace client = new AipFace(APP_ID, API_KEY, SECRET_KEY);//往自己demo数据库里插入一条用户数据Users user = new Users();user.setUserName(userName);user.setUserPhoto(upPath+"/"+fileName);Users exitUser = userService.selectUserByName(user);if(exitUser != null) {return "2";}userService.addUsers(user);// 往自己demo服务器里面上传摄像头捕获的图片GenerateImage(faceBase, file);//向百度云人脸库插入一张人脸facesetAddUser(client,faceBase,userName);}return "1";}APP_ID 、API_KEY、SECRET_KEY三个参数分别为百度云人脸识别上面的三个数据项,如下图
SpringBoot实现人脸识别功能

文章插图
 

SpringBoot实现人脸识别功能

文章插图
 
点击完注册按钮后,就会发现 。。。
SpringBoot实现人脸识别功能

文章插图
 
1
SpringBoot实现人脸识别功能

文章插图
 
2
SpringBoot实现人脸识别功能

文章插图
 
3
SpringBoot实现人脸识别功能

文章插图
 
4
到这就算一个用户注册成功了,个人这张大帅脸也算是录进去了,下面就是刷脸登录了 。面试题推荐:面试前可以在这里刷刷题,很巴适!(Java版)
二、刷脸登录当我注册完后就会进入登录页面
SpringBoot实现人脸识别功能

文章插图
 
这时我点击登录按钮,js触发后台方法,具体入下:
@RequestMapping(value = https://www.isolves.com/it/cxkf/jiagou/2022-05-18/"login",method = RequestMethod.POST) public String login(String faceBase) {String faceData = faceBase;//进行人像数据对比AipFace client = new AipFace(APP_ID,API_KEY,SECRET_KEY);Double num = verifyUser(faceData,client);if(num>95) {return "1";}else {return "2";}}/*** 人脸比对* @param imgBash64 照片转bash64格式* @param imgType 类型* @param groupList 百度云人脸识别用户组* @return*/ public Double verifyUser(String imgBash64,AipFace client) {// 传入可选参数调用接口HashMap options = new HashMap();JSONObject res = client.search(imgBash64, "BASE64", "user_01", options);System.out.println(res.toString(2));System.out.println(res.getJSONObject("result"));System.out.println(res.getJSONObject("result").getJSONArray("user_list"));JSONObject user = (JSONObject) res.getJSONObject("result").getJSONArray("user_list").get(0);Double score = (Double) user.get("score");return score; }接着我正面面对摄像头,点击登录按钮,就进入了一个大大的success页面
SpringBoot实现人脸识别功能

文章插图
 
我侧脸或者拿照片试一下,不好意思,您老只能是404了
SpringBoot实现人脸识别功能

文章插图
 
以上就是整个实现的思路和一些步骤了,demo涉及的类和页面比较多,不方便一一截图,随后我把资源上传到本站 。如有需要可自行下载 。
综合而言实现还是比较简单的,牛逼的地方都在人家百度云那边呢,咱们只是根据需求合理利用人家的解决方案罢了 。其实如果不是很牛逼的专项技术研发公司,做项目能合理利用别人的产品是最有效率的,项目建设最重要的还是投入产出比嘛 。与其自己团队苦苦研究,花点成本买人家的成品直接用它不香吗?
原文链接:
https://mp.weixin.qq.com/s/MMrzS5dPkCr5Pz7SekpuaQ




推荐阅读