当前位置: 首页 > news >正文

百度AIP:Springboot人脸对比

目录

一、简述

二、依赖

三、代码步骤

3.1 实体注入

3.2 服务实现

3.3 其它实现

四、小结


欢迎来到 盹猫(>^ω^<)的博客

本篇文章主要介绍了

[百度AIP:Springboot人脸对比]
❤博主广交技术好友,喜欢文章的可以关注一下❤

一、简述

        人脸识别在日常生活中是非常常见的功能,它大量的应用于APP的认证(实名认证)、验证(手机识别开锁),本篇文章是通过百度人脸识别(AIP)实现人脸对比或实名认证的实现步骤,通过Springboot+SDK的方式实现,实现人脸1:1对比接口实现人脸和活体检测,接口功能是免费的(但有次数限制)。

二、依赖

        调用百度AIP接口,我们需要使用以下依赖进行在线导入,也可以使用jar包的方式进行导入(记得在打包时包含本地依赖路径)

<dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.16.19</version>
</dependency>

三、代码步骤

3.1 实体注入

        SDK中提供了一个AipFace客户端,用于快捷的调用人脸识别相关接口,所以首先需要将AipFace交给Spring管理,其实就是Bean的注入,代码如下:

package com.uav.config;import com.baidu.aip.face.AipFace;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class BaiduFaceConfig {@Value("${baidu.face_app_id}")private String APP_ID;@Value("${baidu.face_api_key}")private String API_KEY;@Value("${baidu.face_secret_key}")private String SECRET_KEY;@Beanpublic AipFace aipFaceClient() {AipFace client = new AipFace(APP_ID, API_KEY, SECRET_KEY);// 可选:设置网络连接参数client.setConnectionTimeoutInMillis(2000);client.setSocketTimeoutInMillis(60000);return  client;}}

这里的APP_ID、API_KEY、SECRET_KEY使用的是在百度AIP中创建的应用的相关配置,如果没有可以在创建API应用 该链接下进行创建。

注:这里创建的应用只是AIP功能的应用,和其它功能的KEY不能通用。

3.2 服务实现

//matchImg: 匹配人脸图片
//idCardFront: 身份证证明图片
@Override
public void checkFace(String matchImg, String idCardFront) {MatchRequest matchRequest = new MatchRequest(matchImg, "BASE64");MatchRequest idCardRequest = new MatchRequest(idCardFront, "BASE64");ArrayList<MatchRequest> requests = new ArrayList<>();requests.add(matchRequest);requests.add(idCardRequest);org.json.JSONObject object = aipFace.match(requests);log.info("人脸识别接口返回结果:"+object.toString());if (object.getInt("error_code")!=0) {throw new SysException("人脸识别失败,请稍后再试!");}double score = object.getJSONObject("result").getDouble("score");if (score < FACE_MATCH_THRESHOLD) {throw new SysException("人脸识别失败,请上传清晰的照片!");}
}

        在该服务中,将接收到的Base64字符串的图片信息通过aipFace.match进行比较,将返回的结果分数进行比较,官方推荐的分数为80分,然后将识别结果返回。

3.3 其它实现

        对上述实现的人脸对比功能进行扩展可实现如人脸验证、实名认证等功能,如这里作为实名认证的代码如下:

   /*** 认证用户信息* @param certificationRequestDTO 认证信息*/@Overridepublic void authUserCertification(CertificationRequestDTO certificationRequestDTO) {checkUserAuthStatus(certificationRequestDTO);//人脸对比检测checkFace(certificationRequestDTO.getMatchImg(),certificationRequestDTO.getIdCardFront());//添加认证信息到数据库try {//TODO 这里是身份证照片byte[] imageBytes = Base64.decodeBase64(certificationRequestDTO.getIdCardFront());String url = OSSFactory.build().uploadSuffix(imageBytes, "jpg");certificationRequestDTO.setIdCardFront(url);}catch (Exception e){throw new SysException("图片上传失败,请稍后再试!");}addCertification(certificationRequestDTO);}

        上述代码按照【检查实名状态】->【人脸对比】->【上传身份证照片】->【保存到数据库】的流程可以实现比较完整的实名认证流程。

注:上述代码为图片对比,按照严格流程应该做权威库(如公安数据)的比较,才能实现严格的实名认证流程。

四、小结

本文通过SpringBoot+百度AIP SDK实现了高效的人脸识别功能,其特点包括:

  • ​快速集成​​:10行代码完成核心验证
  • ​低成本​​:免费额度满足初期需求
  • ​可扩展​​:可无缝升级至企业级方案

​适用项目​​:社交APP实名认证、智能门禁系统、金融开户验证等需要生物识别的场景。


如果你对区块链内容感兴趣可以查看我的专栏:小试牛刀-区块链

感谢您的关注和收藏!!!!!!

 

http://www.lqws.cn/news/492967.html

相关文章:

  • 用安卓手机,怎样远程管理孩子iPhone屏幕使用时间?
  • LNMP 一键部署脚本 shell脚本
  • R语言入门课| 05 一文掌握R语言常见数据类型
  • 面试150 分发糖果
  • 【设计模式精讲 Day 12】代理模式(Proxy Pattern)
  • idea 报错:java: 非法字符: ‘\ufeff‘
  • ISO 26262-11 半导体功能安全学习(二)
  • Meta-华盛顿大学-CMU联合研究多感官触觉表征在机器人操作中的新范式
  • 启用AWS VPC流日志保存到CloudWatch日志组
  • 设计模式精讲 Day 11:享元模式(Flyweight Pattern)
  • WPF中MVVM和MVVMLight模式
  • 单片机——浮点数转换4位数码管显示
  • Java面试复习指南:基础、并发、JVM与Spring框架
  • Nginx:互斥锁 accept_mutex配置
  • APO:自动化技术提升大语言模型在各类任务中的表现
  • 世赛背景下,高职物联网应用开发赛项实训解决方案
  • 《人性的优点》:破解忧虑密码,构建积极人生
  • 后台发热、掉电严重?iOS 应用性能问题实战分析全过程
  • RS485
  • Electron桌面程序初体验
  • OptiStruct功率流分析:功率分析理论基础
  • 哈希题解——有效的字母异位词【LeetCode】
  • HTTP协议(Linux进阶第一章)
  • C#最佳实践:为何优先使用属性而非字段
  • 基于LangChain的带摘要存储对话系统实战
  • 原生微信小程序网络请求与上传接口封装实战指南
  • 编程语言的设计之道:从底层控制到表达自由
  • 深入解析 Flutter Bloc 在 AppBar 中的实战应用
  • 如何下载并配置acolite进行Landsat等遥感数据的大气校正
  • 设计模式 | 单例模式